News from the programming trenches

Hello guys :)

after all this time, all those months of silence and wandering in technological lands, my work and research on my city generator are finally coming together for the next version, to be released in a month at best, two at most. Since I'm very bad at guessing my remaining workload, let's say 2 months.

So, what's the state of the generator ? Well, here is a screenshot of the realtime renderer (work in progress still) And here is an older image of a Cycles render (WOOHOO :D)

First, I'll change the name of the generator. "Suicidator" was good as long as it was a pet project. Now that I'm bringing it to the next level, a proper name is required. I'll announce it when the time comes. Just know that it'll be much more suitable ;)

The next public version won't be 0.6, but 0.7. This is because 0.6 was such a huge task, I didn't realize I was running straight into a wall, trying to code everything from scratch, especially the 3d renderer, and the asset manager (see this previous post). Instead, I did the wiser choice to step on the broad shoulders of a category of software whose work is just that: realtime 3d rendering and asset management, namely game engines.

The two big popular ones being Unreal Engine (UDK and now UE4) and Unity. Since I had previous experience with Unity, and since it's using C#, a programming language I absolutely love (very similar to Java. Some say it's a messier than Java, I say it's Java on steroids), I went the Unity route. Now I can concentrate on generating pretty cities.

All the building models are hand-made for now. I'm working on a building generator, but the results aren't up to the quality standard I'm targeting. That means purely random buildings will be for a later version. For now, the free version will have a collection of finely crafted pre-made buildings, and the paid version will have even more of them, for a more varied-looking city.

Notice the buildings are correctly placed, no more ugly overlapping. All the materials work in BOTH Blender Internal AND Cycles, WOOHOO :D. So you'll just choose the renderer you prefer. More rendering engines could be supported in the future, if there is enough interest. I'm thinking about LuxRender especially, since their integration with Blender is pretty good. Notice also how you can now zoom down to the street level. This is a huge step forward, compared to previous versions, where the cities looked kind of good only from a far distance.

For the (temporary) bad news: version 0.7 doesn't support population maps and height maps, all the streets are axis-aligned (that means no more curved streets) and the night version of cities is disabled.

All these features will be restored back in future versions. I think it's best for you guys to have fewer features, but with better quality, ease of use, and support. This is why I invested so much time and money to bring you the best automatic cities possible for Blender, at an affordable price. Right now, I concentrate on usability first, and visual quality second. I'll integrate more features properly later, keeping my two priorities in mind.

That's it guys! I hope you're as excited as I am for the coming version 0.7. I remind you that I post on my Twitter account almost daily about my progress (those screenshots above are from Twitter). See you very soon.

Most wanted features survey result

I asked you some time ago what you wanted most for version 0.6 of my city generator. The survey is now closed, so let's have a look at the results.

I've had 184 participants, which is not bad. I'm no statistician, but to me the sample is large enough to be somewhat representative of my user base, or so I think. Some people may have answered more than once by looking at the answer dates. At least it's better than nothing.


1 - Cycles materials generation

Under work for 0.6 ...

This one I also wanted before I created the survey. Having realistic lighting will make the city look more believable. I'm about to tackle it, but with OSL, that should be easy (read: not too hard)


2 - Buildings don't overlap on each other and on streets

Complete and ready for 0.6

Good news, it's partially the case in the coming 0.6. The buildings are still overlapping, but the streets are always clear of buildings and obstacles, because they're grid-aligned. I know having straight roads only is a restriction, but I can always add curvy roads later: I'd rather have clutter-free straight roads right now than unusable randomly shaped ones.


3 - A live preview of the city while tweaking its parameters for fast feedback

Complete and ready for 0.6

No longer will you need to switch between the generator and Blender: see your result immediately. Export to Blender when you're happy.



The three most wanted features will be in the next version. The rest perhaps, but most will have to wait a little longer.


Custom responses

Some people also took the time to write exactly what they need, so here are their responses:

  • Ability to define where streets are and how large
  • Generate city from street map (splines)
  • MAP!
  • Interior
  • Street Light Poles
  • Medieval
  • v0.6 looks promising :-) - Mac compatible - larger area - higher blocks - style e.g. sci-fi - switch day/night after built

Thanks to those answers. In short, you also want various architectural styles, better street control, and customizable city (to some extent) AFTER it's been generated, which means once it's in Blender. Noting on my TODO list...


Finally, on a scale from 1 to 5, most people think of the city generator as being moderately useful, while slightly more people find it very useful than those who don't. So the end result is positive :)

City Generator 0.5.7 released

SCG 0.5.7 is out. Get it now! It is a minor release, compatible with Blender 2.67. As always, remarks and bug reports are welcome.

Inside the city generator

I've been very busy coding the next version of SCG. I've made a lot of progress. Especially on the supporting parts of the application, namely the nodes and the 3d renderer.

In every software, there is a huge part the developers have to deal with, and we don't even think about as users : it's the code architecture. By architecture I mean how things are logically represented in the code, how they interact, and how they ultimately serve both the users AND the developers, to make their life easier. That last part, "easier", takes a lifetime to master. For one usable feature, there are tens of small supporting features underneath. For example, when you rename an object in Blender, the developers had to make sure no other object in the scene has the same name, and to rename any other object having the same name to something else, by appending .001 for instance. But wait, maybe another object has that new name too, so we have to check that again, and act accordingly. Those are the kind of issues a developer must take care of all the time, more than implementing the next killer feature. These details constitute what makes an app usable, versus an app which may look cool, but nobody uses because it's a pain.

So what does SCG's architecture look like ? From a high level point of view, it can be viewed as a set of subsystems. We call an app's architecture "code plumbing" because it's like plugging things together. I considered using the Netbeans Platform specifically to save me some work and to avoid coding the plumbing myself, but I realized it's over-sized and over-complicated for my needs.

Here are SCG's subsystems SCG's architecture and subsystems

10 tips everyone should know for better renders of cities

Below I list a few basic tips on improving realism when rendering your cities, for achieving greater impact through camera settings and positioning, colors, render options, and lighting. These can be used in any software, not only in Blender. I don't consider myself a great artist, but I should share my limited knowledge with you :)

There is no "good" or "bad" shot. It depends on what you're trying to achieve. Maybe one may not like your top view of simple-looking, grid-aligned buildings, but if this is your way of picturing a city, then you succeeded.

In this post, I assume you want to render realistic cities. Follow the next recommendations to make your cities a bit more believable, and to show them under their best angle. Of course, experimenting is still very important.

City Generator 0.6 update 4

The city generator's 3d preview in its current state. The GUI controls are still missing, I'll add them at the very end. Notice that almost all elements (terrain, buildings, roads, water, sky) are shown, and this is in realtime (free navigation). Changes are applied automatically as you set the city options (city size, buildings height etc...)

The development of the next version (0.6) of the city generator is moving forward. I was a bit slower in the last 2 weeks because I was watching the olympic games (I took two weeks off just for that). I'm back on track now.