Wednesday 27 February 2013

New playable version

Just uploaded a new playable version of the game.

Added spell system, fixed timestep, added fullscreen ability, fixed glitchy weapons.

Get it here!

Enjoy!

Spell System

Ive been hard at work implementing the spell system for my game, and I finally have something to show! Watch the following to see a demonstration of a simple fireball spell:

Spells are formed of a set of damage stats, and a two stage behaviour system.

Behaviour 'move' is evaluated until the spell collides with something, then behaviour 'damage' is evaluated until the alive flag is set to false.
In this example the 'move' behaviour is simply a move forward, and the 'damage' behaviour is a small explosion.

In my game spells are not skills or anything like that, instead they are just weapons. They can be crafted. This means that I am intending to allow players to customise the behaviour of the spells they create, hopefully making the spell system more interesting.

Deferred Rendering Pipeline

I made a little video demonstrating the Deferred Rendering pipeline, for anyone that is interested:

Friday 22 February 2013

Deferred Rendering Fixed!

Finally! I managed to get deferred rendering to work nicely, without lighting artifacts! Also added some nice stuff to fix weapons jittering around and to allow for undecorated, native resolution windows on desktop :)

For the more technical minded of you heres some information about my deferred rendering woes.

Due to aiming the game to eventually work on android I need to make it compatible with OpenGL ES 2.0, and therefore I cannot use MRT for deferred rendering. This is a massive bummer, but seeing as I want loads of light sources in scenes (lots of torches, flashy spells, shiny weapons, glowy stuff) using a forward rendering approach is not feasible. For example, to get the same lighting quality, the cost for each approach is:

Deferred Rendering cost = Objects * 2 + Lights
Forward Rendering cost = Objects * Lights

As you can see deferred is much cheaper (btw with MRT that would be Objects + Lights).

So, without MRT I am limited to a maximum of 4 x 8 bit channels (rgba) output per scene pass. Obviously I'd prefer to keep the passes to a minimum (i.e. 2) so I settled to only being able to output the normals and the pixel depth (so that the position can be reconstructed). Now normals are 3 dimensional, but depth requires more than 8 bits or it'll have artifacts when reconstructed due to rounding errors. Obviously an issue with only 4 channels :p

This site to the rescue! After much googling I came across this site, with information for packing normals in 2 channels, leaving me 2 channels to pack depth into. Yay! Problems all soved! Woot!

Anyway hoped you like that narrative :p I'm off to work on more UI Screens (boring but necessary) so sometime soon I should be able to have a new and improved build of the game out for you lot to try :)

Wednesday 20 February 2013

New game test version!

Well after implementing loads of debugging features and some more UI's I decided to make another playable .jar. You can download it here.

Again, requirements are Java SE 6+ and OpenGL 2+.

Changelog:

+ Added separation between Forward and Deferred rendering.
+ Improved Options screen to allow for changing Renderering type
+ Added Inventory screen
+ Added Viewing different parts of the deferred rendering pipeline with the '1' key (toggle between final output, geometry, normals, depth, lighting)
+ Added ability to leave menu screens with 'esc'
+ Fixed Delta time code to work fine with acceleration and etc (i.e. turning off vSync doesn't break everything anymore :p)
- Removed ability to change 'Lights per Model'

Tuesday 19 February 2013

Progress!

New improvements:

Deferred Lighting now implemented. Intention is to add specular reflection, SSAO and HDR/Bloom soon.

Delta timestep fixed so as framerate changes the game doesn't go mental :p

Now doing UI Screens again... yay...

Sunday 17 February 2013

Renderer Refactoring / Upgrading

Update on what im currently doing:

Rewriting the renderer code to allow for lowered minimum specs and allow for much better higher caps.

Explicitly seperating code into forward renderer and deferred renderer. This will allow the deferred renderer to implement effects like DOF and SSAO, so should look nicer :)

Thursday 14 February 2013


Link to Game

 Here is a link to a very early version of the game. It uses Java SE6 and OpenlGL ES 2 so if the game doesnt work on your machine check that it meets these requirements first :p

Click new game to start a new game :p
Options takes you to a simple options menu but there is no key to return from it
Test tasks you to a test recipe crafting screen with test components. Again, you cant return from this screen yet.

WASD movement and mouse to look around / attack.

First level is a static level, second level is randomly generated. Restart the game to generate a new level.

Again, be warned this is a very early test release, dont expect everything/anything to work :p

http://www.mediafire.com/?dixbnotio8k917c

More screenshots!



Tuesday 12 February 2013

Game Progress!

Well well well, It has been a long time since I last posted on here (not that anyone looks at the blog except search engine trawlers :p), but things have been progressing rapidly in the mean time.

Here is a small list of additions to the game:

Level generation (with rooms and room contents)
Enemy Evolution (not fully tested yet)
Item crafting (stats wise, not visually yet)
Saving/Loading
Much better particle system
Normal mapping
Bloom Shader
Rigged Models (weapons atm)
Skyboxes
Many many performance enhancements
Better collision detection
MORE XML!!!

Upcoming features:
UI system (Design All The Screens!!!!)
Dynamically deformable weapons (depending on crafting materials)
Better enemy AI
Description Generation
More content


And finally heres a screenshot of the game:




More updates coming soon :)