Category: News

Milestone #? - no more milestones!

May 6, 2009 21:03

Ok, I can and must do much work in parallel. So there are really no milestones… . Yes there are things that I still have to do and to finish off. This week I’m mostly working on the cameramovement that can walk through the cities. And meanwhile, threading! Oh boy is it FUN. I like threads, threads are good, but also dangerous. I had several crashes so far, and now, after two complete reworks of my threading system there are still problems. But my supervisor has another solution I will try this week. Hopefully, and probably, this will work as it is a much safer way.

Anyways, buildings are already loaded from L-system scripts. You can assign a number of scripts to be used in a city, and they will be used at random (pseudo-random!). I’m thinking of how I can implement cooler buildings, but now they can only shrink and expand their walls.

Here are some screenshots:

Gallery included (5)

Milestone #1 - Streetplan

April 10, 2009 23:34

So, I have set a milestone on this date for the steetplan to be up and running. Now… .Things have been hard the last weeks. First off, the math library I use for polygons etc. was a pain in the ass. It was not working like it should and therefore gave me a ton of big errors. After looking into it, the errors didn’t make sense to me. The library code looked ok and clean, but the faults told me otherwise… . I had a quick but unhandy solution that worked. But after a couple of days that workaround was just too unhandy. So I gave it another attempt to fix it. After a few frustrating hours I finally fixed the code and now it really works as it should. This cost me at least a day in total of working hours, and much more frustration.

That said, I have been making progress, but not as much as I hoped for. It now is possible to make streets and recognize the lots in them. There are a few things left to do for the data structures, but mostly they are done. But now comes the hardest part, generating them from some L-system rules. I already made a couple of helpfunctions, like scanning for neighbours, but I noticed that I need a couple more to make good rules possible.

So for the coming week I will be working on generating streets and improving the L-system. Milestone #2 is actually already achieved, diving into lots was actually more easy than I first imagined. So that buys me more time for the generation of streets. I also will be working on how to generate a building, still not figured out how to actually do it eventually.

With mixed feelings for this milestone I will continue to work. But I have still good hope that I can finish with a product that’s good for the job.

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.

Bachelor Thesis

December 4, 2008 21:43

This blog will be about my - Reekmans Steven (0623675) - thesis for graduating as Bachelor in Computer Science at Hasselt University (2008-2009). Under supervision of Jeroen Dierckx and promoted by Prof. dr. Wim Lamotte.

The subject is an own proposal about procedural generated cities.  Which I called: Skyline.

The purpose is to generate unique cities from a set of input parameters. A secondary objective is to let a user ‘walk’ through these cities, which means that the generation has to be fast and therefor smart enough.

Here are some examples and information about procedural generation.

And a video about the developments of Subversion, which is pretty close to what I want to achieve in this bachelor thesis.