The Plan

March 27, 2009 21:51

Wow, it’s been a while. But I’m back, and in full force. Well that is The Plan.

Anyway, I’ve done a lot of research, spending much of my time figuring out how to make it all work. I almost have read (and translated…) the full master thesis of Pascal Mueller, he did a great job and I can use a lot of what he did. Of course it’s not entirely the same, and I don’t have the time to make all the details that he put in his software. Keep in mind that I’m generating a city AND making it so that it will be able to navigate in.

The software I’m going to write will exist out of several blocks: L-systems, Polygon calculations, Threads and GUI. And the program flow consists out of a number of steps, to build a city. First of all the street plan is going to be build by a set of L-system rules, it is NOT possible to make it multi-threaded because the complex L-system I will use sometimes relies on a specific order! Second there is dividing the street plan into lots, this is where the Polygon math hugely comes into play, and this will be done multi-threaded, because every lot can be handled on it’s own. Than the lots will be filled by houses, also multi-threaded. After building the city, I will use LOD to control the amount of memory and CPU use.

The problem is that all of these steps are pretty complicated. That’s the reason why I needed good libraries. William van Haevre supplied me with an old L-systems parser he wrote and used, It works great and I am very thankful! I have already started to rewrite parts of this parser to fit my use. I also searched for a good math library for working with polygons and found a great geometrics library. Then there are Threads, after working a short while with JThreads I like them, and will probably use them. JThreads are designed by Jori Liesenborgs.

I also picked the 3D engine I’m going to use. Inspired by our project for Architecture and Algorithms for Games I will use Ogre3D together with Awesomium for the GUI. I already have a lot different things to learn, so I’m not going to pick something exotic that needs a lot of time to understand.

Now, I also have fixed up a schedule.

  • Week 7-8 (10/04) - Street plan up and running
  • Week 8 (17/04) -Dividing into lots
  • Week 10 (1/05) - Buildings

Now that’s pretty tight… I need to tell that I can play a bit with this. I will try to be working on those goals at the same time, so If I don’t get everything finished on time, at least I can show something of every step, and explain how to do it and where it went wrong. My goal is NOT to make a very cool city, finding good L-system rules is pretty hard, my focus is on making it all work. And be able to navigate through the city in real time. Making things more complex and prettier can always be done with spare time.

No comments yet

Leave a comment