Mar 21, 2013

Escherreal

Escherreal


At long last, here we have footage of one of my current projects. This is Escherreal, a game I have been working on for the past 8 weeks as the lead programmer with a group of 13 other individuals. This footage represents 6 weeks of work inside of the Havok Vision game engine. Escherreal is a 3D/2D platforming puzzler in which the main character Raffi is forced to navigate the impossible world of MC Escher. At his disposal, Raffi has two objects called the Mirror Marble, and the Infinispecs. The Infinispecs provide Raffi with the ability to dynamically shift the perspective of the world from 3D, to a 2D orthographic. In this 2D mode, the world behaves just as you would expect it to in 2D, and objects that happen to align appropriately are interactive as you would expect them to be. The Mirror Marble gives Raffi the ability to change the orientation of the world, to whichever axis fits his needs. We have put a lot of effort into this vertical slice of the game, and are proud to present our current progress.


Mar 19, 2013

High Resolution Voxel Rendering


Voxels

So I have recently begun exploring the realm of volume rendering, looking for an excuse to challenge myself and investigate new territory. I've since moved forward with the development of a rendering framework for producing large resolution scenes (512^3 and higher) of geometry data expressed through voxels.

When researching for this topic, I found myself surprised at the "flavor of the month" characteristic that the voxel seems to have at the moment. It seems everyone, and their brother, is interested in producing what they call a "voxel" based game engine. I imagine this is largely due to the popularity of Minecraft, and the craze that has been brought upon by the cubic structure of that universe.


The Graphics Frontier

Minecraft has certainly done a lot to popularize the concept of a voxel over the past few years, but it falls short in the realm of graphical quality. While no one can disagree that Minecraft wasn't developed with the intention of being a graphical masterpiece, voxel based rendering provides us with optimizations that current polygon implementations do not.

The world of graphics programming is like a fantastic wild west where anything goes, and new shit is brought to the scene on a regular basis. With companies like ID, Crytek, and Epic being leaders in the commercial game engine market, they also end up becoming leaders in the realm of graphics development as well. Technologies such as real time per pixel lighting for volumetric particle effects, mega texturing, and SSAO being pushed by companies such as these, it is also interesting to see them investing their efforts into the realm of voxels as well.

Where To Go From Here

So I've rambled a bit about voxels, and the major players supporting them as well as the abundance of imitators trying to implement "voxel" rendering systems which typically just end up being cubes thrown into the world, but where am I taking this? 

I'm extremely interested in the ability to represent a nearly infinite level of detail within geometry, and provide dynamic detail shifts as the game is running. This sort of technology will provide next generation game engines with incredible implementations of dynamic terrain systems, as well as realistically destructible environments, and manageable level of details without the need to generate additional model information, or swap out models at run time.

As I continue to take my project forward, I will be making updates as frequently as I can manage (grad school has me a tad busy), and hopefully making substantial progress towards my goal. Having just finished implementing a system to provide me with randomized data sets, you can expect the next update to feature my first iteration on the ray tracing approach I am taking, and hopefully screen shots.

Mar 13, 2013

The Decision








"The Decision" was a game, or rather more of an interactive story that I put together with a few other people over a period of two weeks. It follows a silent and neutral individual that gets dragged along with his problematic girlfriend, until the evening ends in murder. This game was developed using Unity 3D 3.5, and was my first experience with the prototyping tool. I must say I love the convenience of it, but I don't feel that I learned much from any of my Unity projects. The "works out of the box" or "prepackaged" feel of it is fantastic for rapid prototyping though. This game was made using 2D sprites for the characters, and many of the interactive objects, while leaving the world itself 3D.

Mar 12, 2013

Motorolla 68000 ASM Breakout


This is a simple remake of the classic Atari game breakout. I wrote this for an emulator called Easy68K, which strives to replicate a 2mhz (if i remember correctly) processor, and an actually sizable quantity of usable memory, 16 megabytes. I wrote this using plain Motorola 68000 assembly language, while only using the virtual trap codes provided by the simulator to interact with the virtual machine. This project presented some fun challenges considering how new I was to assembly language, including the simple collision detection, a data driven seven segment display, and the need to redraw a complex bitmap background, as opposed to solid color (as was seen in Atari games).