Monday, December 23, 2013

Let there be Light!

Yup, lighting is now implemented. Not much more to this update than that.

Oh, and Merry Chrismahannakwanzica!


Saturday, December 21, 2013

Just some quick Eye-Candy...maybe not so quick

As the title says, just some eye-candy today...well, and a little explanation.

Basically, I've nailed down my density function for the terrain generation and have implemented ambient occlusion (essentially faked ambient lighting...to a certain extent). I've got all this running smoothly in JavaScript using Three.js. The upside is that it'll translate quite smoothly into Unity later, and I can work on it anywhere I have Chrome installed.

For my next trick? Getting the lighting algorithm down. It's not nice and compartmentalized like the AO and mesh generation -.-

Anywho, Pictures! (or rather, Picture!):


Friday, December 13, 2013

Make some Noise!

Noise, beautiful, wonderful noise. Coherent noise that is.

I've been working on developing the terrain generation bit that will be merged with the dungeon generation code that I have. The idea is to create some interesting terrain in which the dungeon can reside. I've got some ideas for placing the dungeon in the terrain, but I have to decide if I'm going to extend my BSP implementation into 3-dimensional space or not (I probably will at some point, but maybe not quite yet).

Anywho, I spent a good portion of time studying GPU Gems 3...which is now available free on the nVidia developers site. And the generation of terrain via 3D Perlin noise has now clicked. It also helped to have recently been doing some System Frequency Response stuff recently to help with keeping my signals straight (terrible pun intended).

But I wholeheartedly recommend reading that book. Wonderful stuff there.

So, without further ado, the required eye-candy:

Height Map generated by 3D Perlin Noise, 8 octaves
Showing the caves and overhangs of the terrain

Tuesday, November 26, 2013

An update?! Really?!

It's been a while (just shy of three weeks) since the last update, I've been busy...just maybe not entirely with this project.

I have another project which is taking up time, but should take up less here in about two weeks. It's another game, but it is for finishing up my degree...so it's a tad higher on the priority list than this project. No worries though, like I said, in two weeks the semester ends and I shall have more time for this project.

That being said, I've been making progress on the dungeon generator. I'm using a BSP algorithm, and I've since re-written my initial implementation to be more modular. Basically I can plug in different room and corridor painters, as well as different post-processors.

The results you see below are 4 dungeons generated using the same settings. I don't have a corridor painter implemented yet, and I need that implemented before I can make sure my current post-processor produces a nice final dungeon. But, I'm pleased with the results.


Thursday, November 7, 2013

Dungeons and, well, Dungeons

Things have admittedly been a bit slow lately. Juggling work, school and two game projects kinda eats into one's free time. (Obviously the one project is this one, and then the other is my Senior Capstone project).

But, fear not oh intrepid reader! Work is being done! Well, nothing visible, not really, but work nonetheless!

I've been looking into Dungeon generation algorithms, of which there are a number of decent articles over at Roguebasin, and how I would implement them in a 3d voxel environment. So it's been a lot of design work of late. I've settled on a scale of 1 meter = 1 voxel, with mechs being about 4-6 meters tall. The mechs and equipment will have a higher voxel resolution, but I feel the world voxel scale fits well with the standard of minecraftian games.

I have also been doing research into getting Ambient Occlusion calculated for voxels, and how to integrate that into my Voxel to Mesh converter. Basically I've been finding that, while my algorithm works, the meshes can look a bit wonky with AO applied due to how the quads get built. I wouldn't have to have AO in Unity, but Blender renders it's viewport with AO when viewing textures. And, well, the AO will make the models look nicer in-game. When I get it integrated with my tool, I'll try to do a write-up on my findings.

That all being said, it's crunch time in putting together the prototype for my Senior project, so development on this is going to slow down a bit. It'll still move forward, but it will have to slow down for the next 2-3 weeks.

P.S. Sorry for the lack of eye candy this time 'round >.>
P.P.S Edit: Wait! I DO have eye candy for you! Behold!

Monday, October 21, 2013

Voxels To Meshes

So, I finally finished my command-line tool for converting voxel models to meshes. I've put it up on Codeplex for anyone who's interested.

It generates a UV-mapped OBJ file that I can import into blender. The algorithm that I developed for it can be used in creating the collision meshes inside the voxel engine I plan to implement, and it will also be used to generate Mecha parts from "template" files...which will be voxel model files.

Anywho, pictures! Granted, it's command-line...so the best I can do is post input/output pictures:

Input

Output

Friday, October 11, 2013

Quick Art Update

As the title says, I just kinda had fun making something real quick and I plan on using it in-game:
Oh, and the software I'm using (MagicaVoxel) renders shades of grey as shades of purple for some reason. While licensed under the GPL, the source isn't available yet, so I can't fix the issue myself -.- Oh well.