The Initial Game Plan

•March 20, 2010 • Leave a Comment

This is just a small post to go over some of the initial game planning.


Right now I’m working on adding lightmapping support to my editor. Initially I will focus on static sector geometry, but will later add static lighting support for static “instanced” objects as well – in the form of static vertex colors. I think that lighting will provide a lot of the game’s atmosphere, so there will be a lot of focus on making it look good and making sure that dynamic objects mesh well.

Lighting for dynamic objects will be handled by using a 3D light grid system, in the same vein as Quake 3. The light grid will generate a colored directional – based on the dominate, brightest light direction – and a simple hemispherical ambient. Basically when the normal is pointing down, one ambient color is picked up and as it tilts upwards it is interpolated to another color. To see how it works, think of an outdoor scene. You have the sunlight which is captured with the directional, the sky color which is captured from the “top” ambient and the color of light reflecting off the ground – the “bottom” color.

I think that if the light grid is combined with simple fake shadows that are simple (precomputed) shapes but are oriented on the ground using a planar projection – that the dynamic objects will fit very well. Features will be scaled as needed for the various platforms, of course (approximating the light grid with 3 directional lights plus an ambient for OpenGL ES 1.x for example).

The next post will be about the results of the lightmapping implementation.

Level Design and Art

The game itself will technically be split into many levels, but these levels will be inter-connected to form a single world (like Metroid games). The levels will serve to keep the memory consumption manageable while not limited the overall size of the world. In addition the world will be split across 6 major themed areas – each being unique and different looking from the rest. These areas will inter-connect, you could go through a small part of one area to get to another part of the first, or find shortcuts through areas, etc. I’ve not decided what all these areas will be like yet, but I do have the first three planned out.

The first area that you will experience is part of the surface and top-level cave structures. This will be composed of exterior areas and “natural” caves – with a few constructed rooms and other technological elements. The second area that you’ll see is a network of power stations and tunnels, controlling power for the machines on the planet. This will be technological in nature – lots of machines, power conduits, metallic hallways and so on. The third planned area (though probably not the third area you’ll see in the game) is inside the spaceship… more on this part later. 🙂

So the goal, once the basic lightmapping is in, is to start building the layouts, textures and other art for the beginning game experience. Basically from the point you are planet-side to acquiring your first item. Then I will work on the basic game systems to make that part of the game playable – collision detection, doors, object manipulation and player control. (I do have player control now, but have to refine it and add features beyond just looking around and moving).

Welcome to the Control Protocol Blog.

•March 18, 2010 • Leave a Comment

What is This All About

I will be blogging my progress on the upcoming iPhone, iPod Touch and iPad game – Control Protocol. This project is only about a week old with only a fraction of that in actual coding time. What this means is that the project is still very early in development. In addition I am writing the engine from scratch, specifically for the iDevices. I will be blogging about the engine and game development but will avoid talking about spoilers and plot twists.

What is Control Protocol?

Control Protocol can best be summed up as a First Person Action Adventure game. While it may look like an FPS, it will play more like a Metroid game. In fact I’ve taken heavy inspiration from games such as Super Metroid, Metroid Prime and Symphony of the Night. There will be shooter / action gameplay; but with much more focus on exploration, puzzle solving and character growth. Character progression will be in the same vein as Metroid and most Zelda games – by gaining new items, weapons and powers that allow you to manipulate and interact with your environment in new and interesting ways.

The Story

Only a small part of the story will be revealed at this time, much of it is unraveled while playing the game itself. However I’ll give a real quick brief on the introduction:

(Please note, this is an incomplete early draft.)

Within the next 10 years there are many fantastic technological advancements, from power generation and storage to AI and even FTL space travel. Humans discover, however, that the FTL technology is far too dangerous for organic materials (like humans, animals and plants) – so autonomous explorer robots are developed to help humanity explore the cosmos. “Conscious” level AI is nearly achieved but due to various accidents and paranoia, development is put on hold.

Many years after the search begins, SETI finally confirms a regular laser pulse emanating from space. Unlike previous false positives, this pulse occurs at regular intervals over several days – plenty of time for its validity to be confirmed by several sources. In fact, the actual source is discovered – an Earth like planet close enough for the new FTL system to reach in mere months.

Humans cannot travel to the new world to make contact themselves, so they need to send the explorer robots. The Conscious AI development continues in earnest – to enable the explorers the necessary flexibility and problem solving skills. To ensure the mission is carried out as planned and that the robots remain in human control, a Control Protocol is developed – the AI is allowed to think at “near human” levels within the constraints set by the control protocol.

You start the game as one of these “explorer” robots, sent to make first contact or at least figure out what happened to the alien race that sent the laser signal. Something goes terribly wrong… as you’ll discover when you play the game. 🙂

The Engine

As I mentioned before, the engine is being developed specifically for the iDevices. It is a 3D sector engine – which allows connecting sectors along any of the walls as well as on top or the bottom. Floor and ceiling slopes and heightmaps will be supported as well. This will allow easy editing, level creation as well as fast unwrapping for lightmapping and fast 3D collision detection. 3D objects and (potentially) sprites can also exist in the world, things like enemies, objects, environmental details and so on. This technology will allow levels to be stored in a compact form that can be transformed into proper 3D geometry as needed – to allow larger levels without consuming too much ram.

Quake 2 level architectural complexity is possible, as well as natural environments such as outdoor terrain and caves will also be possible using floor and ceiling heightmaps. Lighting will be done using lightmaps for sector geometry, static vertex lighting for static 3D models and a light grid for dynamic geometry.

In addition I already have a level editor working on the PC and can generate simple levels that work on the iPhone engine now. The textures are all the same right now and only basic sector shapes and varying floor and ceiling heights are supported right now. But the engine should fill out pretty quickly, with lightmapping being the next task.

Here are some very early screenshots from my test level taken on the simulator, but it looks the same on the iPhone as well. Note this is using placeholder textures and simple geometry, as I said the engine is in a very early state.