BeeSiege Overview

August 13, 2008 at 2:36 pm (BeeSiege Game)

This is a new game that I will be developing this Fall (2007) with two other people. The game idea is this. Life was good for the bees and their queen. They lived in their hive making honey and having fun. Until one day a spoiled little teenager threw his cigarette underneath the hive which caught on fire. Now the bees are left with no home and they have to travel through the forest to find a new place to live. But they are going to face a lot of challenges on their way…

The player controls the queen bee and her soldiers are following her at all times. Throughout the forest there are going to be a lot of enemies that will make the player’s life difficult. The queen is not able to attack, because that’s not her purpose in life, so she depends on her soldiers to protect her. Whenever an enemy is nearby the queen (player) will be able to select a number of bees and command them to destroy that enemy. The bees that survive the challenge will return to the queen. Of course many of them will die so a number of power ups is going to be distributed around the forest. When the queen makes it to the new hive the level ends. If the queen dies then it is game over.

Now just to give you an idea of how the game is going to look like, think of Wing Commander. Only replace the spaceship with the queen and the missiles with bees. Of course bees will not be shot at the enemy, they are going to move there at their own speed and attack him.

I am very excited about this project because it features various new stuff. First of all I do not know of any game that has a similar story / goal. Also I do not know of any game that uses this attack mechanism. Also the game features a very interesting animation mechanism. We use Behavioral Animation to move the bees around, which means that every bee or game character has a controller that generates forces and torques which drive the character. These forces and torques vary depening on the behavior that we are implementing. Behaviors include

  • Seek: the object travels to a target at maximun speed
  • Arrival: the object travels to the target while slowing down until it reaches it
  • Wander: the object moves in random directions within a radius
  • Separation: the object is keeping a distance from its surrounding objects
  • Allignment: the object follows the general direction of its neighbors

The nice thing about these individual behaviors is that you can combine them and get more complex behaviors like Flocking where the objects form groups and also have a randomness to their movement like actual bird flocks. Behavioral Animation is not a new idea however what is original in our implementations is that these forces and torques that the controllers generate are given to Ageia’s PhysX which then takes care of the simulation and moves the objects. The effect of all that is very realistic movement.. You actually think that these are actual bees you see on the screen.

Another cool thing in my opinion will be the simplicity of the game. The player only controls the queen and everything else is AI. Of course it is more than that, the player will have to make decisions that will affect his chances of survival, but still the gameplay is very simple and fun.

Before I go, I will also say that the game will be developed using Gamebryo 2.3 and PhysX. I’ll see you at the release party!

Regards,Vaios

Permalink Leave a Comment

BeeSiege Alpha Version Video

August 13, 2008 at 2:34 pm (BeeSiege Game)

Permalink Leave a Comment

Asteroids Game Screenshots

August 13, 2008 at 2:31 pm (Asteroids Game)

Some screenshots from the game.

pic1pic2pic3

pic5pic4pic6

Permalink Leave a Comment

3D Asteroids

August 12, 2008 at 3:20 pm (Asteroids Game) (, , , )

This is a project for the game design and development class that I had in June. Students had to implement a 3d version of a classic game, using Gamebryo and Maya. Here me and James chose to do Asteroids. James did all the art, I did all the programming. We had a 3d model of the player’s ship, a model for the asteroids that was scaled according to the size of the asteroids, a big and a small enemy ship, a model for the missiles, and two different kinds of billboards. One for the stars, which gave a 3d feel to the environment, and one for the explosions.

When we got very close to the deadline, the game was playable but it didn’t have any sound or explosions. The explosions were something that we knew we should implement if we wanted a better game, so we were looking for ways to do that. We definitely didn’t have enough time to learn Gamebryo’s particle system, so we decided to use billboards. Basically an explosion is a quad that always faces the camera, and grows big and small very quickly. The quad’s texture has fire drawn on it, so the final effect looks like an explosion.

On the other hand, Gamebryo was supposed to come with Miles Audio System, so we thought that we could use that for sound. Nevertheless, our version of Gamebryo did not have this audio system so we all supposed that we would not implement sound, because the game was due the next day anyway… However, our professor told us to implement sound using FMOD, and everybody panicked because people had still not implemented basic features in their games and now they had to do sound as well. I also heard that a group was writing code for six hours, trying to implement the sound system using Miles Audio, and after these six hours they hit compile… Of course they found out that all this time they spent was lost without reason… I don’t understand how people can write code for hours and then try to compile their projects… I feel that code should be written in small units that can be easily tested, before going for the whole application. Anyway…

I was worried about the sound system too, but it turned out to be fairly straightforward. I think I finished it in 2 hours or something, and it worked pretty well. It’s true that sound really changes the feel of a game. If you are an amateur game programmer DO NOT NEGLECT SOUND! It totally changes things. Now we had missiles firing all over the place, aliens squealing, loud explosions…

While working on this project, I started using some ideas I had more systematically. First of all I started using the singleton pattern. However I only use it for managers. The sound manager, the game manager, etc. We shouldn’t overuse it. Also I understood inheritance better. The game is fully based on inheritance. There is a GameObject, and everything you see in the game inherits from GameObject. That was a very flexible system that is extremely extensible. This way I can add a new feature in the game in very little time – I just need to write an update function, a draw function, and a collision response function and we’re set. And this makes sense… You need to specify what the object is going to do in the game, how is it going to look like and what its behaviour is going to be when it collides with something. That’s the way we did explosions too. We just added a new GameObject and told it to grow and shrink in 2 seconds… Easy.

Permalink Leave a Comment

Rendering Semi-Transparent Layered Media : Final Video

August 12, 2008 at 3:10 pm (Rendering Semi-Transparent Layered Media)

So we’re done… I’m pretty proud… We used the algorithm that I talk about in the design doc and we got some pretty cool results. Check it out:

Permalink 1 Comment

Beesiege – Final Video

August 12, 2008 at 3:04 pm (BeeSiege Game)

So we are done with the features that we said we were going to implement. Now the game needs tuning and some optimizations, but I don’t know when I’ll hve the time to do this. It’s been a fun period with a lot of work. Now we need to rest a little… I hope you will enjoy the final video:

Permalink Leave a Comment

Coden – Game Engine

August 12, 2008 at 3:02 pm (Coden Engine) (, )

After graduating from Penn and getting back home I decided to create my own game engine. The reason for this is that I regularly get new ideas for games that I want to make, and I am excited to start coding the gameplay part of the game, because this is the most fun part to me. But when I start thinking about all the things that I have to implement first, like input, graphics, managers etc I get so bored that I simply drop the idea… One could argue that I could use an existing engine like Ogre 3D or Gamebryo, but the thing is that I need an engine that will contain other systems too except graphics and input… For example AI, Event Managers, Sound, Networking, Scripting etc. And I want to use a SINGLE math library for a change, not 3 or 4 different ones just because the game will consist of 4 different API’s.

Also I want to learn about various things like Scene Graphs. And I believe that the only way to really learn is to start making something on your own. The name that I came up with for the engine is Coden. It comes from CODe studios ENgine.

So far I have implemented a math library that supports quaternions, matrices, vectors, transforms and the like. Also I embedded Lua for my script engine. In addition, I created some AI systems like steering behaviors, some physics integrators like euler or RK4, and a few loaders like a 3ds loader. I am currently working on the scene graph, which is harder than I thought… But it’s getting there.

If you want to look at the code you can visit my Google Code project called coden at http://code.google.com/p/coden/ .

Cheers!

Permalink Leave a Comment

My life as a junior games developer

August 12, 2008 at 3:01 pm (General) (, )

It’s been a while since my last post, but I guess not many people read it anyway. I’m a very good friend of a few bots lately though! So for the last 3 months I’ve been a Junior Tools Programmer at Sony Computer Entertainment Europe. I can safely say that this has been one of the best experiences in my life so far… One thing I noticed is the amount of knowledge one aquires when working, compared to just doing this for a hobby. Even if you don’t feel like doing much, you learn something just by observing others.. I can’t talk about the game I’m working on but I assure you that it’s going to be a hit when it’s released…

The offices are in central London which is a very vibrant place. Lots of people walking in the streets ALL the time and generally the area has a nice feel. Luckily I live next to very good friends of mine and that makes the whole experience more pleasant. The weather sucks though… It’s raining almost every day… So far I’m ok with it but later on it might become a little depressing..

You might be wondering why do I tell you this.. Well I’m a guy who started programming without anybody else giving me tips or advice. I spent all of my years as a student wondering what’s the right way to do things.. And this blog is for all you guys who dream about becoming a game developer some time. I just want to let you know that it is not impossible and all it really takes is hard work and patience. If you are a student there will be times when you just want to quit. If you are working on another part of computer science you might be discouraged to start something new. But once you overcome all the obstacles believe me;  it’s worth it.

There are a thousand web sites giving tips on how to “break into the industry”. How to make a good demo.. Saying how awsome game development is compared to working on databases or other subjects. And I always felt that this creates an impression that this is an elite industry, almost impossible to get into. I always felt discouraged when I was reading these articles… My advice to you, and by you I mean the guy or girl who feels inadequate, untalented and mediocre, is this: feeling the way you do is the greatest motive to become better; to try harder; to expand your horizons. And this is the only thing this industry looks for. People who want to become better just for the sake of it.. People who care enough to read these blogs. And when you see something you don’t understand, or you feel there is no point to just sit  there by yourself doing things that maybe noone will ever see, do not give up. Try to learn the basics about the thing you’re doing and then experiment. Even if no one sees what you ‘ve done, the experience you ‘ll get from solving the problem you’re facing will make you more than ready to join this industry.

Now go write some code you lazy bastards

Permalink Leave a Comment