Monday, 6 July 2009

Problems and Progress

Since my last post I had been planning for the game, putting all my ideas into the Groove Workspace and so forth. I had also decided to incorporate some planning methods learned from school which I know will be annoying to manage but will keep me much more organised. The planning is relatively complete, I have written a document detailing some things I would like the game to include, why I would want them in the game, what kind of audience I will try to target etc, which can be found here.

Recently I had come across a serious problem concerning rotation. Initially I had decided that I would need to create 360 or 180 images of the tank and its gun to allow a good degree of rotation, however when it came to just drawing a square 180 times to represent a tank for the test, it proved to be extremely long and tedious. Thinking ahead, I know that the changing tank style would represent what upgrades it had and how powerful it was therefore I would need to create lots of drawings, each with 180 different orientations! That is forgetting about animations! I decided to take a leaf from the 3D game programming book about texture mapping and implement one into my 2D engine which would allow rotation, skewing, scaling, etc. It took me around a week of learning before I felt confident to implement it and now after 3 days of bug fixing, even though there are still bugs, I have finally come up with my texture mapper! I have created a demo of the texture mapper here for you to try. You can use W,S,A,D   T,F,G,H   I,J,K,L and UP,DOWN,LEFT,RIGHT to control the movements of each corner point of the bitmap. Left Shift and Left Control also rotate the bitmap round. It is still rather buggy as I haven’t completely finished the error checking such as straight lines in the polygon but it is rather good. The texture mapper uses point sampling with no filter methods or anti-aliasing but I may try to get some put in to make it look a little nicer, further since it is an affine texture mapper, scaling and skewering can produce slightly odd looking results similar to the image on Wikipedia.

Now that I have completed that first hurdle, I can continue to make the game which I have now decided to call: Panzer! If I see the game developing into a fast and fun game I will keep the exclamation mark on the end of the title to make it seem more fun, however if it develops into more of a serious game, which i doubt, i will remove the exclamation mark to make it seem serious :).

Whilst making the texture mapper I also discovered Verlet Integration! Verlet Integration is a surprisingly simple and easy way to produce physics models on the computer. When I first found out about it I thought it was so simple that it was stupid! I have created a small rope demo which shows the capabilities of around 4 lines of mathematical code to produce such an amazing outcome.


Links:

Panzer Game Detailed Document
Texture Mapper Demo
Verlet Physics Chain

Monday, 15 June 2009

Planning

I’ve been planning the tank game so far for a week now, before I even created this blog. It was the game that made me decide to create this blog. Ideas aren’t an issue but incorporating them will be. I put these ideas into the Groove workspace under a tool conveniently called ‘Ideas’. Below are screenshots showing the ideas that have been posted into Groove. Before I actually start developing this test I will need to try out the different methods I have talked about in the plan before I put them into a game. Therefore I will be making lots of little flash demo’s of these different methods and posting them here. I will make them interactive so that you can have a play with them.

So far It’s all going well, that is taking into account I haven’t done any developing for it yet but I the ideas seem reasonable, doable and fun. I haven’t asked for any help on ideas yet but I will soon, this is so I don’t need to heavily modify my code for the game in case a super idea is found: I can just build it in as I go. A little off topic: the weather is weird down in SW London. I was just outside and it was lovely and sunny then it all of a sudden started raining! Like something out of a movie…

Below are some screenshots of the workspace inside Groove. They are of the 'Ideas’ tool showing what I have come up with so far. I am going to be stuck in my bedroom for a while during the up coming summer holidays if I want to get this done…

Saturday, 13 June 2009

New Game Awaits…

I’ve decided to work on a new game to test myself in both programming capabilities and my commitment to a project.

I’ve never really completed a game, well, those which I had completed I rushed to finish as I found that I wished to develop new ideas and that working on the game was just slowing me down. Furthermore they were games of a genre that I had developed before: platformers, space shooters, etc. This time round I am going to find an idea that I both want to complete to a full extent and that will challenge me code-wise. My new game will be a Tank Warfare Game, similar to the mini game found in Crash Bash. It’s a game which has been created many times before but a fun one nevertheless. When developing a game it’s always good to add your own spin on it to make it unique. That said I shouldn’t be the one to talk as I have just been making straight clones of games.

I’ve never tried to make a game so AI dominant before furthermore I have never attempted to make a solid complete game which I realise will take a lot of planning. To manage the planning I have created a Groove workspace to document changes and ideas to the project as I go along. It will also hold designs and images that I may have drawn to demonstrate what I intend to make. You can download the Groove Workspace Invitation here to see extra development stuff whilst I make it. However I will be posting most of the stuff from the Groove Workspace onto this blog so it isn’t necessary to download it. So far I have just set out some goals for myself such as incorporating full sound and music; AI solutions that are both tough and would give the user a sense of satisfaction upon defeating it; fun gameplay.

I have a bit more planning to do before I actually move on to implementing the designs into the game. When I have some news or something to show from the project I’ll post them here. See you soon!

Friday, 12 June 2009

WA'HEYY!!!

Hello World!

This blog is just to document my developments about game programming. Previously I was against blogging and Facebook and MySpace and what not because I believed they were a waste of time. I learned that Facebook is good for contacting people and blogging is good for recording things. I also haven't renewed my website therefore this is also a substitute, whether I will continue this if i renew my website is unknown. For now though I will try to update it often. I still won't use Bebo or MySpace though...

Since I have just created this, there is nothing really interesting to blog about therefore I'm just writing this intro blog. I created a little team called Vereia which was a group of people keen on gaming and possibly game development. The team became smaller and smaller until I realised I couldn't rely on anyone as no one is truly committed to this. I still hold the name Vereia for the productions, if any, that I create. Normally I don't create games but rather update my game engine and code. Now though I am taking time from developing the engine to developing games. I say engine, which is what it is, however you probably think its super high tech and 3D. It's completely software based, as in i wrote it all with the help of books, but it's not very advanced. One of the reasons that I want to create games instead of working on the game engine is to see if I can use it to create a full game. Previously I have created demo's of such things as mathematical problems in game development, collision detection demo's, physics demo's but nothing of a complete game. I will start working on a new game soon and when I have something to blog about I'll come back here and do so.

Now I have gotten that information out of the way it is best that I introduce myself:
My name is Dorian, I am 16 years old, just moving onto 6th form. Currently taking my GCSE's.
I aspire to be a games developer, preferably on the engine side of games development. I would love to work at Epic Studio's to work on Unreal Tournament, one of my favourite game series ever. I started programming when I was around 12, I was learning HTML in school. I quickly moved on to CSS and JavaScript when I was finally introduced to C++ by my dad. Since then I have been learning C++ to work my way up to reading Tricks of the Windows by Andre Lamothe which was purchased from a charity shop long before I could understand any of the code written in it. Since then I have just been reading and learning and developing games. I love programming, hate art, adore music and some literature.

That's all the blogging I will do for now, come back soon for when I do start blogging about game development.