Saturday, March 20, 2010

The Genesis Project. No, not that one (but kind of close)... The GenesisEngine Project, virtual landscape/world builder (alpha, with source)

Eric Lee - The GenesisEngine Project

“I’ve been working on a personal project off and on for awhile now.  It’s called GenesisEngine and it’s a program that generates and renders a procedurally-generated planet.  I can take in the view down at ground level with the terrain generated at ~1-meter precision, or I can zoom all the way out into high orbit and see the entire planet at once.  This requires relatively little memory and no storage because the whole landscape is generated on demand via fractal algorithms.

Now that I’ve got it to a decent alpha state where it renders mildly interesting terrain I decided to throw it up on GitHub for public amusement.  I don’t have any grand plans for this project; it’s just a little laboratory where I can experiment with new code design ideas or new tools, and in the process maybe build something that looks cool and teaches me more about graphics and other stuff that I’m interested in.  It’s already been a useful experience for me because I’ve taken several concepts that I read about, tried them out in GenesisEngine, and incorporated them into my code bases at work.

image

…”

githubGenesisEngine

“…

License

Licensed under the Ms-PL.

What is it?

GenesisEngine allows you to create and explore procedurally-generated planetary systems, from ground level all the way out into space. At the moment there's no larger purpose other than to wander around in a virtual world. It's written in C# with the XNA framework.

Mostly, this is a personal project that I'm using to experiment with new software development techniques and maybe learn something about procedural terrain generation and rendering along the way. This project is NOT intended to be some kind of best-practices reference for, well, anything. Some stuff is well-written and some stuff is terrible. Over time I hope to improve the terrible stuff and add more good stuff. I'd be happy to receive constructive feedback.

If you're looking to learn something about procedurally-generated terrain or rendering techniques, don't start here. Really. I don't have any original ideas - I'm just borrowing everything I know from people much smarter than me and re-implementing it badly.

This project is also not a good reference for high-performance game engines. I'm explicitly choosing to favor clarity of code design over high performance when those two principles are in conflict. My computer is reasonably fast and hardware is cheap - so there!

I'm going to blog occasionally about the journey so feel free to follow along.

Can I build and run it?

Please do! The GenesisEngine project is a Visual Studio 2008 solution with dependencies on StructureMap, Machine.Specifications, and Rhino Mocks (all included) and Microsoft's XNA Framework (not included). Right now the project is Windows-only and won't run on the Xbox or Zune. If you run into any problems, let me know.

image …”

Nothing like a little fun world building to brighten up a weekend… ;)

1 comment:

Jerome Palaypay said...

Its fun. anyway, do you have any idea about cool architectural rendering software stuff.