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.
Tuesday, February 19, 2013
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.
'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!
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:
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.
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...
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...
Subscribe to:
Posts (Atom)