Category: Editor

Engine Basics

Interesting workplace, I'm sure that floating brain is a real slave driver

Interesting workplace, I’m sure that floating brain is a real slave driver

The classic

The classic

So, it’s been a while since i posted last but stuff has been moving. I have made a serious start on the engine, I have gone for a ‘roll your own’ approach which may seem like masochism to many people but is, for me, a good deal of the joy of working on a game. It also has the additional benefit of never encountering an issue that cannot be fixed.

Features so far:

  • Deferred Render Pipeline
  • Normal mapping
  • Per-texel material properties (Specular, Specular function, Gloss, Ambient / Emissive)
  • Direct lighting with shadow mapping (buggy)
  • Tile based Dynamic point lights (diffuse and specular)
  • Quad tree LOD terrain
  • Reverse ray-traced model paint feature (more on this below)
  • more I’m sure

Reverse ray-traced model painting?

It became apparent that we could nether afford in time or money to buy or learn a fully featured 3D package, and it would not really play to Luke’s strengths as a painter. It would be far better to be able to paint the scene in photoshop and transfer the painting into texture space, I bought a simple program for this purpose (pixexix) however it was very alpha and little bit riddled with bugs. We don’t have time to wait for it to mature but the concept was sound so I implemented my own, it did not take to long, it also allows us to paint material properties, see the actual results in engine, place lights, create scenes and test shit so its a bit of a win.

 

Advertisements

Documents: First pass

So a big part of the game is going to be sleuthing and deducing, to this end you will be required to sift through paper work from various places. So we need a document system that is a little more complex than just an image or some text, we need to be able to embed metadata in the documents have them be transformed and distorted by photocopiers and fax machines.

With this in mind here is my first pass at a document editor, on the left you have a poor mans XML markup and on the right the rendered page, I’m trying to invoke the look of declassified military documents of the period.

Simple document editor

Simple document editor

This was my reference, the very famous and maybe a little to obvious, declassified Project MKUltra documents. I may have gone back too far on reflection as these documents were probably typed on a typewriter and in our selected period dot matrix printers we common. However they are clearly photocopied. Notice the bulldog clip, copy distortion, the dialation on the characters and smudges. These are things to attempt to recreate in future iterations.

MKULTRA Sample

Phill

This is no game?!

So while Luke gets on with his business of creating concept art and the like I have been building the game, and this is not what it looks like. The following image is of the map editor, or at least the first version of it.

Map Editor

Map Editor

Obviously there is zero art in it, it is not the game engine, in fact the plan is at present that at no point will you see the contents of the map in the game! It is a tool for tuning units, creating landscapes and devising puzzles. I made the decision not to write the engine first as far as I can tell this is the biggest mistake I have made in the past when setting out to write a game because invariably I rarely get past it. So as a change I decided to write the game bit of the game first and leave the engine bit till later.

Story Editor

Story Editor

The game bit includes the story and for that I have build a story node system and editor, seen above. It allows me to craft loose narratives and dynamic story arcs using a simple scripting language I created for this purpose, I can step through and debug the story and will eventually build or generate test run throughs so we can plug holes and see issues at a high level. For the final product I can convert (Emit) the finished story as IL bytecode for maximum efficiency but having it as a scripting language allows me to analyses and modify the structure more easily. For instance the blue node diagram in the upper left portion of the image is generated by analyzing the script and not by explicitly linking nodes.

Phill