Exhausted right now, so instead of writing something new, I thought I’d show off a few older prototypes and games to demonstrate my programming bona-fides a bit. And hey, might as well let you guys download and make fun of them: they’re a little embarrassing, especially some of the older ones.
I make no guarantees’s that any of these games, prototypes or technical demo’s will work on your machine. Very much provided as-is.
Made this little Actionscript game when I was still in senior year at school, 7 years ago now. It was one of my first projects on a larger scale than mouse-controlled point and click games (I’m not going to post any of those, they’re embarrassing), and it’s buggy as all hell: but it’s more the endearing, entertaining kind of buggy than the crappy crash-and-burn kind of buggy.
A stick figure fighting a scorpion. Because I could.
It’s also a suprising amount of fun with two players, although you’re both stuck on the same keyboard. The single player AI is utterly merciless, but easily killable once you learn it’s bugs (it was programmed before I learned about Finite State Machines, so it’s a massive mess of if statements).
– You’ll need a keyboard with a num-pad. Controls can be found in the tutorial.
Showing off my leet naming skills here. It’s another little two-player flash game: a lot cleaner than Chaotic, and it has very basic destructable terrain. No single player, sorry.
Real men shoot pink death lasers.
– Can also be found in-game. Click the Help button.
This was one of my initial forays into 3d games programming. Built in Blitz3d and abandoned when I went to XNA and started work on Species, the idea was to make a non-generic third person shooter. The result was the little floating robot you see here, which I labelled the RT-22 droid.
The game was to be small, (seven fairly short levels), and have a comedic futuristic setting inspired by Douglas Adams (I’d been reading Hitchikers Guide to the Galaxy at the time). It never got past the testing phase, since I changed programming environments before I was done with it and didn’t want to bother with porting.
It features 4 different weapons (middle click to switch), some pretty neat hover-flight controls, and my very first attempt at Finite State Machine AI in the Debug Squids (that’s their name canonically, too).
– Mouse: Aim
– WASD: Move.
– Left Click: Fire Weapon
– Middle Click: Change Weapon
– Right Click: Zoom.
– “+/=”: Toggle Turbocharge
Voxel OcTerrain (Technical Demo)
The heightmap QuadTerrain class in Species isn’t my only attempt at terrain: after I built that, I tried my hand at Voxel Terrain for another project.
To quickly clarify: a “voxel” is a single cube in a 3d grid. You might be familiar with the term thanks to Minecraft. This terrain isn’t cubey though: voxels are the method by which it’s geometry is split. Imagine putting a 3d object through one of those slicers that cuts things into squares: along the cuts is where this method of rendering will create polygon edges. This method of terrain generation is used by, among other things, Starforge, Crysis and the NVidia Cascades Demo.
It’s a good way to create 3d procedural geometry, and you an use it to make caves and overhangs and… well quite frankly, any 3d object can be rendered with enough voxels. It’s far more versatile than a height map: you can render vertical towers, round planets… anything you can think of.
Naturally, I went and extended the concept to be editable. As you can see here, I succeeded fairly well: it’s quite possible to carve out canyons, mountains and paths with this little editor.
Not included in the sample: I also went and implemented a save/load system and an octree LOD system similar to the quadtree system in species, but with geomorphing (Geomorphing is a method to stop the terrain geometry from ‘popping’ from high-detail to low detail as you move away from it).
Voxel Terrains are not the easiest system to geomorph. It fought me every step of the way, and still has occasional gap artefacts in that mode, but I’m proud of it anyway because, seriously, Geomorphing Voxel Terrain. That’s not the sort of thing most people don’t code because it’s hard, it’s the sort of thing most people don’t code because it’s frikkin’ nuts.
An attempt to make something epic-but-unpolished with a two week deadline. It came out pretty cool, but also with some rediculous performance issues. Features my first attempt at instanced models, flocking behavior, and insane amounts of… whatever those things are. Kamakaze robots or something.
WASD to walk, Mouse to aim, Left Click to shoot.
Project Aria (Technical Demo)
Project Aria was the first project I did in cooperation with Jade (the artist working with us on Species), and it’s noticable. In addition to the environment, character models and textures, Jade kept pushing me to implement various graphical effects: fancy water, shadows and lighting, normal maps, bloom and even a special sorting method for rendering the characters hair. This resulted in the game demo you see here, which I rather think speaks for itself.
I should warn you though: it has a large number of effects as well as realistic physics, and nothing is optimised: I was more interested in getting all the features in than in keeping it from lagging. It’s pretty, but its performance is a dog.
WASD to walk, Mouse to aim, Right click to change modes
– Telekinetic mode: Left Click to pick up objects, Mousewheel/Q/E to push/pull them. You can use that to throw them rediculous distances, by releasing as you roll the wheel.
– Gun mode: Left Click to shoot stuff.
B – Blur Shadows (performance setting)
M – Draw Shadows (performance setting)
Welp, uploading all that was a lot harder than writing a new post. I’m goin’ to bed now.
Our IndieGoGo project is still here:
Contribute, Share, help us out!
The rise hasn’t been exactly meteoric, but there’s still a month for it to pick up. Besides, we can use any amount of funding. Species getting made is not dependant on us making our goal. Funding is a way to accellerate our progress towards the goals and give us more chances to polish the game when we reach them.