Tuesday, February 19, 2013

A Context Menu

As I'm getting more and more things added into the engine, interacting with all the objects in the scene has gotten more complicated.  Also I'd like to start working toward an actual game-like interface as opposed to my cheesy test interface.

Besides all the debug-type side buttons, you could take control of any of the entities in the scene by double-clicking on them.  This allowed you to pilot them with the arrow keys (a bit cumbersome, but fine for testing physics/collisions/rendering).  A single click would select an object, highlighting it.

Thursday, February 14, 2013

Forward Rendering and Transparency

After quite a lot of work into the wee hours last night I now have the Forward Rendering pipeline set up.  When an entity is created it can be given a RenderBehavior of Full, DeferredOnly or ForwardOnly.

'Full' entities are rendered via the Deferred rendering step.  They are also active in the Forward rendering step, but the entities themselves are not drawn, just (if activated) associated primitives such as bounding boxes, debug info, etc.

DeferredOnly entities are rendered via the Deferred step, and completely excluded from the Forward step.  Vice versa, ForwardOnly entities are rendered via the Forward step and completely ignored during Deferred processing.

The is one complication I do need to deal with:  an entity that is party transparent, but has non-transparent parts needs to render in both the Deferred (non-transparent parts) and Forward (only the transparent parts). I need to sort that out properly.

Cloud layer is transparent and Forward rendered.

Specular and Normal Mapping

I've finally gotten around to re-adding specular and normal (bump) mapping.  Project Vanquish, the framework I began from, implemented these.

Early on since I quite frankly had no idea what I was doing, I disabled a lot of things for simplicity.  Specular and normal mapping were among the first things to go in the Great Renderer Simplification.  They've now returned, and look quite nice!

Shiny!

Tuesday, February 12, 2013

Restoring Depth

I've been refactoring some of the drawing code in the Rogue Moon game engine.  I've had nice bounding box drawing working and in the same manner wanted to add some sort of 'engine trail' effect.  I got this working, but then decided that both of these needed to move to a 'post process' step.

Tuesday, February 5, 2013

Game Engine Part 2

As I said in the last post:

I'd been mulling the engine design over in my head while working on the graphics engine.  I wanted, above all, to make it easily extensible and cleanly separated from the rendering engine.  After all, Rogue Moon is to be an online client-server game.

Then I got off onto the tangent about game networking.  But it did have a direction.  If you followed that post, you may have realized that modern latency-compensating online games require two simultaneous (yes, I know I said simultaneity largely goes out the window) simulations, client and server.

Monday, February 4, 2013

A Game Engine

So, it's been a while since I made a post; Christmas and the like interfered a bit.  But I have done quite a lot of work.

For now the shadows and rendering engine are 'good enough', so I've moved on to the meat of the game engine, as it were.

I'd been mulling the engine design over in my head while working on the graphics engine.  I wanted, above all, to make it easily extensible and cleanly separated from the rendering engine.  After all, Rogue Moon is to be an online client-server game.

Edit:  this turned into a post about networking and game engines, not where I initially meant to go.  But I'm going with it...