This video is computer generated, do not try at home …

•March 4, 2008 • Leave a Comment

Due to being stumped with an issue with the new engine I decided to make a video of my old car sim, enjoy … 

Building with templates …

•March 2, 2008 • Leave a Comment

When creating a game you have to think about the end-game, debugging and final tuning, and so the more data you can make accessible, the better.

Let’s say you have an enemy type ‘blobby’ and this enemy has a health value, if you have 10 of these blobbies in a level, when it comes time to tune your game and you want to change the health of blobby then you will need to find all of the blobbies and adjust the health level of each one to be the same number. Man, that is a lot of work …

So, what do we do ?

We are going to use a ‘template’ system, templates are essentially a named copy of an entity definition that can then be referenced by spawners etc. The editor layer will keep a list of the templates and we will allow the user to switch to any of these templates at any time to tweak the data fields.

So in practice, we will create a template called ‘Blobby’ in the template list, when placing spawners, we will select the name of one of the templates as the object type to spawn. When we want to tune the values of ’blobby’, we can just switch to the template list, select blobby and adjust it’s value. In the game we then see an instant change in the values of all of the instances of the blobby enemy.

No sleep is not such a bad thing …

•March 1, 2008 • Leave a Comment

Knocked up a screen shot and new video of the progess … must … work … on … save and load code …

engineframework003.jpg

Generic entity spawner

•March 1, 2008 • Leave a Comment

In a previous engine objects and enemies are treated as seperate spawnable types, for this engine I want a spawner to be able to spawn anything that the engine determines is ’spawnable’. In C# we do this by deriving an entity def class from the interface class ISpawnable, we use this class derivation to allow the engine to sort through registered classes to see what is spawnable or not and will only let the spawner entity select these types from a list.

So I made a another movie, slightly larger to show the spawner entity, 12 ‘enemies’ in total are spawned, 6 on screen at once in waves of 3, the spawner must wait until the required wave amount is available before spawning any enemies.

It was a small event …

•February 29, 2008 • Leave a Comment

So, I’ve not really done much gui style programming, yes I took care of the hud and some of the midscreens on previous games but I’ve always avoided the gooey sticky parts of a full blown gui.

For this engine I’m taking an event driven approach that seems to be working well for me so far, each layer of the editor (grid, entities, buttons) can register an event listener and what types of events it wants to listen for, then things like mouse clicking and moving are sent out as global events that the editor layers then try and intercept. If an upper layer catches an event then lower layers can optionally not be told about the event, this fixes issues where by when a button is clicked, the panning of the viewport is not triggered.

And here is a movie I made earlier …

When entities are moved around, what is really happening is the definition data of that entity is being modified, this is why the alreadyy living particle systems do not mirror the dragging of the entity definition.

It almost seems that you’ll be able to see the entire development cycle from the videos that I’m posting on youtube, hope they don’t get upset with me posting a video per day :)

Entity visualization …

•February 28, 2008 • Leave a Comment

So I’ve been working hard on the entity system and editor visualization. The entity system is based around the concept that there is an underlying set of constant data that actually defines the entities. Using this constant data we can create and control the runtime entities.

Here is a pic of the visualizer (please note that I’m currently using modified icons from Cinema4D until I can get around to making some new ones) …
engineframework002.jpg

And a video to demonstrate the realtime debuging info …

Engine framework update #002

•February 27, 2008 • Leave a Comment

Added a video of the engine test to youtube !!!, what you can see is the start of the particle system, the editor grid and mouse and view dragging functionality …

And one more showing the intended stop and editor functionality, of course it’s a little hard to see the grid fading in because the video is a little small …

 

Engine framework update #001

•February 27, 2008 • Leave a Comment

Been working on the engine framework, with the intention of doing an in-game editor, I now have the coordinate grid and mouse all working under XNA. Each derived entity will have an ‘editorDraw’ function that will allow all of the entities to be visualised inside the in-game editor.

Progress so far :-

engineframework001.jpg

Tree falling …

•February 26, 2008 • Leave a Comment

As I’m writing the new engine components I am very aware of a trap that I don’t want to fall into again and that is the dependence of graphics on the game objects. I have found in the past that I avoid working on gameplay related code if I’m not digging the current graphic style …

So for the new engine I am adopting the ‘tree falling’ approach where by the whole game can run even if it is not seen or more precisely, the whole gameplay structure has ZERO dependence on graphics. This actually ties in with something Wiebo touches on in his most recent post about Trapped (http://wiebo.wordpress.com/2008/02/22/trapped-dev-update-16/)

The benefits of doing things this way are :-

1) I won’t get tied down to a graphic look.

2) I can easily change from straight 2D to 2.5D and back.

3) You can even create the whole game using debug graphics (just a bunch of boxes) and hence be more agile.

Well, we shall see how this plan works but I’m gonna be very strict on myself and push through the pain.

Agility

•February 24, 2008 • Leave a Comment

The development of my new component library is aimed at making the development process move agile, I have found that I usually get sucked into working on a specific graphic style and then end up wasting time not working on the game code, this is something that I’m going to try and remedy.

Another huge step in reducing time spent messing around with a graphic look will be the creation of particle and world editor tools, yes this is a huge investment upfront but it will totally pay off in the long run …