Monday, March 17, 2008

Crystal Space And You!

So my latest foray into programming has led me to a toolkit called "Crystal Space 3D". Well I'll come right and say it. I don't know much C++. And with that out of the way I can then begin my hour long rant about how hard to use it is.

Well, it has a Python binding via swig, and it's quite nice. I like it. So I started work with one of the samples, tweaking it to what I wanted. I added different key bindings, as well as a first-person camera control. Sort of. It worked, except for if you moved your mouse in a circular motion, it would roll the camera some degrees. Annoying. So after a couple (few) hours of trying different things to get it to work, I finally gave up.

And that's when I discovered Blender2Crystal. I thought it was just some crappy exporter plugin that just dumped the contents of my blender meshes to some xml format. I was WRONG. Turns out it's one heck of an IDE for Crystal Space games. AND it's what the Apricot team is using.

So basically you just build to your hearts content (and remember that you should keep stuff as low-poly as possible) and hit "Run" and in a couple seconds (it has to cache lighting and such) you're off and running. Literally.

Now I can get on with actually making my game instead of bashing my head against quaternions and matrix transformations.

Anyway, about the game. I had an idea for a game, roughly inspired by various gardening/animal raising/farming games. Basically:

You are a druid in a some-time-post-stone-age era. You've been charged with caring for a patch of land. You gain points by growing plants in your land, getting animals to enter your land and reproduce, inviting other animals (plants invite deer invite bears, etc.). With those points you're able to buy levels or spend them outright. If you buy levels, those points are "locked in". When you level up, you gain things like better land, better spells, better tools, etc. With those higher levels you also unlock other things for "purchase" with your points.
When you spend points outright, you can purchase things like animals, seeds, plants, and various hardscapes (Cairnstones, statues, lanterns, etc)

It is an open ended game and as such will never end, your land forever expanding, gaining more and more creatures, plants and other things.
Due to its open nature, "mods" or as we like to refer to it in the open source world: "content" are extremely easy to make. Or at least it will be. Each object (animals, plants, etc) will be in their own file, and will be linked into the main .blend, or loaded programmatically. From there, you can assign a value to it, and it'll appear in game.

Also, as a secondary feature, I plan on having it work as a screensaver, loading up your map, optionally saving your "progress". In short, you end up with a pretty screen saver with deer and bunnies wandering around a pretty forest.

Perhaps when it's "done" I'll add downloading of new content from a website or something. Who knows.

Anyway, this project will be dubbed "Sylva" from the latin "Sylvan" (see http://en.wikipedia.org/wiki/Sylvan )

It will be GPLv3, and maintained locally in a git repository, pushed periodically to a bzr repository on Launchpad.

If you're interested, I can find something to occupy your time. I'm in need of Python programmers, Texture-ists, Model-ers, and generally any possible skill you may have. I'd love to have you aboard.

No comments: