Thursday, September 18, 2008

First Buildings

Here is a look at the very first buildings in my game. Yep, it looks rough, but I did say it is the very first buildings! :) It's randomly-generated so each run of the demo has different geometry.

I plan to spend the next day cleaning up the code. I was mainly pushing to get something up and running first before doing any major rearchitecting. The component system is still being rolled out (only rendering and positioning use it right now). But in the process of doing it, the intricacies of how it will work are becoming clear. I am sure problems will come up along the way, but it will be very interesting to see what the end product will look like.

I will also start writing my first procedural-art code in the texture generation code. The one texture used in the demo right now is actually generated (there are no images or any other data used in this demo). At the moment, it is just based on a random noise generation function (i.e. the static pattern). As a first stab at procedural texture generation, I will probably put in something based on Perlin noise.

Still a heap to do, but it's getting there!


Browse the source code: http://code.google.com/p/glutinous/source/browse/#svn/trunk/carpac

Monday, September 15, 2008

Work on Carpac

With a basic, functioning engine done (in the form of the Tumbling Robots demo), I am now working on making a more complete demo with it. The plan is to make some variant of a Pacman game (hence the name, 'Carpac').
I am also exploring the idea of a component-based software architecture for the code, as described by this article on GameArchitect.net. It's quite an interesting read.
So far, my design consists of three separate worlds: rendering, physics, and game. Each object in the game can then have components in each of these worlds. For instance, a static floor would have:
  • a rendering component that draws the box representing the floor volume, and
  • a physics component that adds a solid, static body to the world in the space the floor occupies.
It won't have a game component since a floor doesn't really do anything (not at this stage atleast - maybe I will add one in the future if I find a need for it). Usually, game components are used to interact with other objects in the game world like damage players or pick-up power-ups.
So what's the point? Read the GameArchitect.net article for more information.
This is just a rough idea. I do not know if it will work or whether it is a better structure. This is an experiment after all. It will most probably change significantly by the time I am done though!
Check back in a day or so. I should have a video to show soon!
Browse the code so far: http://code.google.com/p/glutinous/source/browse/#svn/trunk/carpac/src

Tuesday, September 9, 2008

Mass Effect and Bioshock Review

A quick review of two games I played recently. Both games were awesome and are widely applauded on the Internet. To keep the content original, I will cover what I thought could have made it even better.

Mass Effect (PC)

There are certain things I am a sucker for and Mass Effect has some of them in droves. It has science-fiction and a good story. The story still pales in comparison to real story-lines in film and literature, but that's a problem with the games industry in general (fortunately, it's an improving situation with games like Heavy Rain on the horizon).

Some aspects of the game did feel unfinished though (i.e. driving the Mako rover). The features in this game go far and wide, but none have any extraordinary depth. Bioware still have my respect though in producing a good, overall result for such an ambitious project. I will definitely be keeping my eye on the sequels, and hope to see them build and expand on the foundational systems they have laid, rather than just reuse them again as-is for a quick buck.


This part of the game was really easy. Especially considering it's late in the game...

Bioshock (PC)

Another game with science-fiction and story. It's not very hard to pick out my buying habits. :)

It basically follows the same formula as System Shock 2 did, which is an older game by Irrational Games (now 2K). This is a game where you are one player against hordes of enemies. Irrational Games then add the illusion that you have at least one friend in this world in the form of a guiding voice over the radio. They then dress the story up a bit more by adding another layer of radio message pick-ups. These let you listen to audio logs and follow the lives of the various inhabitants of Rapture. Don't ask why these pick-ups are laid out such that you are picking them up in chronological order.

Some people like this. It makes story an optional thing for players (i.e. if you don't want story, don't pick up the audio logs). But I, however, do like story and I don't mind it not being optional. :p I wanted the player involved in Rapture's spiral into chaos - to actually interact with the key characters involved in its demise and influence the direction of the story. Instead, you are a mere observer of what has already happened. Of course, this would have meant Bioshock would be a completely different game. So I'm just dreaming again.

Don't get me wrong either. Bioshock is a great game. Otherwise I wouldn't have finished the game in one, long, marathon session. If I was to write about what I enjoyed about it, this review would be five times as long. Irrational might have stuck to the same, basic formula as System Shock 2, but they executed it well. It just goes to prove that you don't need great, innovative ideas to make successful games. It's all about the execution. Combat feels natural, action is constant, the AI isn't completely dumb, the enemies are varied, the art is appealing and I love the music. It has all the things gamers expect from a game and it does them well. Makes me wonder what's planned next...


Those flying turrets were really annoying. Much better to hack and control them rather than take them out!

Sunday, September 7, 2008

Tumbling Robots

Lately, I've been working on integrating the Ogre 3D Engine and Bullet Physics Engine together in order to build myself a nice, little engine for future experiments. Here's the progress so far. It is basically a bunch of robots falling from the sky. They pile up and fall off the edge. The physics is simulated by Bullet, and the rendering is done by Ogre.

I have also started using CMake to generate cross-platform build files. It basically allows me to have one build file that will work on all platforms (rather than the mix of SCons, MSVC, and XCode I had before). I've only tested it on Windows (MS Visual C++ Express '08) and Linux (GCC/Makefiles) so far and it seems to be working well. Not sure about OS X yet.

Browse source code: http://code.google.com/p/glutinous/source/browse/#svn/trunk/tumble

Download source code: http://glutinous.googlecode.com/files/tumble-src-svn8.zip

Download Windows binary: http://www.zensaki.com/tumble-windows.zip

Monday, September 1, 2008

Particle Effects Fun

I made this today - it took about half a day. I used my portable demo from before as a base, so it even works on Windows, OSX, and Linux. It is a fairly simple particle engine, but I think it's a good first attempt. :)
I did something different when recording the video this time though. With the Linux-based records, I had problems with slow speed and tearing artifacts (it is noticeable in the other videos I have uploaded in the past). So instead of using recordMyDesktop, Istanbul or any of the other Linux-based desktop video recorders, I decided to run the demo on windows and record it using Fraps. Worked a charm.

I hope there is a way to make nice recordings from Linux, but I wasn't feeling up to the task of scouring the 'net for it. One day I will. I am open to any recommendations or suggestions! :) And if you are up to it, feel free to check my code - maybe I am not setting up the vertical sync settings properly.

Update: I added another video with the particle sizes increased slightly so that the red ones are slightly more noticeable. They just look like artifacts of the video encoding though now. Oh well - trust me, it's there. :)

Download source code: http://www.zensaki.com/particle_shooter.zip