Wednesday, January 30, 2008

Random performance loss...

Went to bed around 2 a.m. last night trying to figure out why our framerate would drop to 30 fps randomly when the game was running on a perfectly. Every other module was commented out in the code except for the map drawing and map coordinate updating loops and we found that we'd still get a jitter.

Since we count on XNA to time our loops perfectly we get smooth movement by increment/decrement the x, y value whenever we want to move. If a draw pass is missed and the game updates twice then the position will jump two pixels, something we thought was very noticeable (considering that we are working on a very small scale). We tried pretty much everything to try and slim down the functions but it never fixed the problem... then we stumbled on Shawn Hargreaves's blog and his explanation on random slowdowns.

Our conclusion, based on his explanation of the GameTime class, is that the random framerate drop (for only a single frame every 100-200 frames) is caused by garbage collection. Gah...

On a good note I managed to make a GUI that I'm pleased with, check 'er out!


Monday, January 28, 2008

Game Design

So I finished reading A Theory of Fun for Game Design by Raph Koster and it is wicked. I have never finished a game so I can't call myself a game designer but I'll gladly say that when I do finish a game I will be a better game designer.

What's so interesting about the book is that it doesn't tell you how to make a good shmup or how to make the coolest flight simulators, instead it focuses on the psychology behind fun and games. So what makes a game fun? Well I'd be spoiling the book if I told you, wouldn't I?

Though I'm going to swear by Raph Koster's book as if it was the Bible and he was Jesus (because Jesus wrote the Bible*) I have to mention I found other great resources on good game design. Some of these are more axed on specific aspects of it (like level design) and some focus on the higher level details.
(I didn't find all these resources by myself but I think it doesn't hurt that I redistribute the links)

*Don't quote me on that...

Sunday, January 27, 2008

Pixel Art

So I don't have much to show except for some gifs I put together. I studied pictures of explosions to get a basic colour palette and some youtube videos for the progression/movement of the flame. This is my first attempt at making one of these and I'm pretty happy about the results. I think it's good to note that I was also trying to stay true to the old school look.



And so you can imagine having those explosions tile and igniting in a cascade motion all over a tank sprite... just wicked...

[edit]I'm using Photoshop Elements 4.0 for my pixel art but that can be a little pricy (I was lucky and got a copy with my Wacom Tablet). In case you want to use free software and think MS Paint is a little dated here's a good tutorial on how to setup the GIMP for pixel art.[/edit]

Saturday, January 26, 2008

Project Outpost, wow...

So the new project is a pretty cool idea that took a different approach when being designed. The constant failures of all my projects could always be traced back to wanting to do too much with the little experience that I had in game development.

Knowing this I knew that I had to scale back and start with something small. My first idea was to make a breakout clone that had a small story tacked on to the gameplay. The reason behind this choice was to be able to stay motivated and finish the game with a degree of polish. I never started on the coding of the project because I had told myself that I would start as soon as I knew I'd have the time to invest in it but most of the sprites had been drawn.

Two weeks ago my buddy who had worked on Popo contacted me telling me that he had started coding a shmup with base building elements. He showed me a screenshot and I knew right there and then that I had to get involved.

All his artwork was placeholder art taken from various online sources. I figured that since the project had a simple enough scope we'd be able to finish it.

So we got together, discussed some of the games feature and came to a consensus. So far my involvement in the project has been pixel art for all the sprites and tiles but I hope to move onto coding once the graphics have all been assembled.

The project uses XNA 2.0 and C# for development. All graphics were made in Photoshop Elements 4.0 in a 32x32 pixel grid to achieve the SNES-era look. We have already invested a large amount of time into it and reached an important milestone at the beginning of the week:

  • Tile engine that picks random tiles from a specific set to avoid the "grid" look.
  • Placeable walls that link up together when placed one next to the other.
  • Placeable turrets that look in a specific direction and will only fire once an enemy enters its perimeter.
  • Monster generation with layered sprites which allows us to make breakable parts.


Thursday, January 24, 2008

All Formalities Aside...


<A little bit of history> So as a teenager I was convinced that I wanted to make video games. I ran a Message Board Based Role Playing Game called Oblivianatus for about four years and thought I had the greatest ideas for RPG story lines. Like any snot-nosed teenager who has no clue about such things I would sit on the couch playing games thinking "oh they should have added this or that feature" and that my ideas would make me millions. So far they haven't.

After my first year of university I wanted to make a video game so I started work on a project I simply called The Adventures of Popo. It was supposed to be a Zelda-esk game where a monk traveled through a magical/oriental land exploring various temples trying to unlock the mystery of his past.

A friend and I started work on it (my friend did all the programming, though I helped a little with some of the algorithms)... I'm pretty surprised at how far we got into the game. At the end though our inexperience would kill the project; it was way too ambitious for a first project and all the different hand made pixel art I had to do was wearing me out. (Though working with DirectX7 and C didn't help much either!)

I attempted to work with directX9, mdx, opengl, sdl, allegro, and whatever else but I never really got the hang of any of them. My first completed game was a console application tic tac toe and connect 4 clone that I, so cleverly, called QuadConnect. Screenshots, preview, and source code can all be found on a thread I wrote on the gamedev forums.

Fortunately time and patience has rewarded me and my partner in crime and we now started work on a new project (expect many posts related to it later on).

On a completely unrelated note I would like to point you in the direction of Ravuya. He was the major character in inspiring me (indirectly) to join the indie gaming community.

Introductions and such...

Alright so I'm Gazillion and as much as I would love to have had that handle as the url to this blog I wasn't able to secure it. As mentioned in my profile I am a software engineering student at the University of Ottawa and hopefully I'll be graduating one day.

I have always loved video games and anything related to computers so it seemed like a logical choice to pursue it as a career (though I don't really know what I'd like to specialize in).

I don't really like to spread private information for the world to see and I'm sure if anyone ends up reading this that you don't want to know that my girlfriend and I had a fight or that my cat* vomited on the carpet.

I'll try and keep posts oriented around video games, software engineering, and game design. If this changes with time: I sincerely apologize. Oh and before I publish this, I would like to let you all know that I am not an expert, I do not pretend to be an expert, and if I ever post code on this blog it will probably be riddled with bugs, inconsistencies, and follow bad practice. Feel free to correct me and criticize everything and anything I do.

*I don't have a cat.