Saturday, December 26, 2009

Dragons - tomorrow

The 26C3 stars tomorrow (ok, technically it starts TODAY, but I'm going to sleep in between, so it's tomorrow for me ;). If you're interested in hacking, (internet) politics and/or technical computer stuff you might want to check it out here:

motor3d - on google code

I just released the first piece of the motor3d code. It's currently heavily under development and probably not interesting to anyone ;)

I just released parts of the (new) graphics module that I work on right now. Most of the other (required) modules are not released yet.

I mainly wanted to secure the project name in google code and try if I could use the google code subversion server directly as my development server. I'm not entirely sure about the latter point though. On the one hand their server is much faster/more reliable than my shitty linux box and I would have access to the latest code from everywhere on the other hand would it be problematic with my approach of committing the complete compiler binaries (i guess Microsoft would like it if I checked in the complete msvc 8.0 copmiler ;) Not to speak of the 1GB size limit on the code repository (which should be enough for the source code).

I'm still thinking about the options.. But either way I will publish the source code on google code.

Tuesday, December 22, 2009

Building motor3d

Ok, this finally is the first technical post about the motor3d engine:

The first thing I have to talk about is the build system that I use. After years of pain and frustration we finally came up with a solution that I can live with. If I say "we", I mean mostly my colleagues at keengames who did most of the actual implementation. You can find the build system we use exclusively at keengames here. It's called 'lace' and it is basically a replacement for make with a real programming language (ruby) in the background.

The first and most important requirement for the build system was that we needed to be able to reproduce a build after months / years on a different computer without too much trouble. That's not really a big problem for me (it's a nice feature to be able to just compile your project very easily on another machine though). But additionally the way lace supports modules is very flexible and useful even in single-person projects like motor3d.

I won't get into lace much more because you can just read the documentation or the source above if you're interested.

Sunday, December 20, 2009

Blogs that I read

Someone asked me to post a list of programming related blogs that I read. So here it is:


I created this list from the exported Google Reader Opml file that you can find here (If you want to import it directly)

Friday, December 18, 2009

Awesome repository visualization software

A colleague of mine just found this wonderful application that can be used to visualize your source code repository over time.





Very beautiful and nerdy..

Sunday, December 13, 2009

Why yet another 3D Engine?

The plan for this blog is that I want to use it to write about the development of my private 3D stuff. The first question that comes to mind is: Why does the world need another 3D engine? The answer for this question is: It probably doesn't. But I don't care that much because my motivation is really something else: I just want to play around with different design and architecture decisions without having to fight against an existing code base. Additionally most of the existing open source engines are in my mind not really suited well for the current consoles and multi-core pcs. Most of the design choices in engines like ogre, irrlicht or nebula (To name some of the more popular engines) are directed not only be performance and scalability concerns but also by ease of learning, extensibility and generality. That is perfectly fine and probably the best for a wide acceptance. My "engine" has a different set of requirements though:

  • I want to be able to try to find optimized solutions for specific problems
  • The "engine" has to be flexible enough to let me try different approaches
  • Even though I only have a PC at home I will try to make find solutions that work nicely on current consoles. (I only work on consoles at work)
  • It is not really important to me that everything is completely bug free and/or feature complete. I obviously have to do that at work but it makes experiment a lot quicker if I don't have to develop a feature to 100% completion.
  • The "engine" is currently only used by me and even if I'm releasing the engine to the open I will not fear breaking the interface to any module. Compatibility requirements can really slow development down a lot.
The reason I put the word "engine" in quotes is that I generally don't like monolithic engines and motor3d will be a loose collection of (hopefully) orthogonal modules that can be mixed and matched (ok, this is the goal anyways..)