Back to the addons

Hi city lovers,

I have great news for you: new stuff is coming very soon. But first, here is the state of Scene City's development.

Since I released the current version 0.7, I've received largely positive feedback, and people are happy with it so far. Thanks to all of you for your support, Scene City is getting better and better.

Standalone app? YEAH!... well not so much...

After shipping version 0.7, I reassessed my goals for Scene City and what it should be. I was really happy with the features and direction I was taking, except for one thing: development was painful. A long, frustrating development process, which would have inevitably led to a lower quality application. So I had to change something radically.

The painful development part was the fact that I decided to develop a standalone application rather than a "simple" Blender addon like I did before. I had several reasons to do so (users could test the app without Blender installed, realtime 3d previews, cool factor, zero installs...) but I primarily wanted to have a universal app that could export to Blender for a start, then to Unity, and later to other software.

That sounded like a smart idea... on paper, because once I finished version 0.7, I realized making the app work, then ALSO the Blender part work was almost doubling the workload(!) I missed the famous KISS principle. It's much much better to have something simple that works right now, rather than a promising pile of complex code that might lead to something useful.. or most probably to nothing at all.

I also realized once I was done with 0.7 that exporting a city, while extremely easy and useable, is a 2 step process, and will never be as direct as when you have the features right inside Blender, like an addon does. Sure the standalone app is easy to launch and all, but it's still a step that could be avoided. An addon has the added benefit of context: it is "blended" in Blender. It makes itself invisible, it does its job then disappears when no longer needed, and that's precisely what good software is.

Since it'll be the same kind of issue with any other application SceneCity might support later, I decided to drop the standalone part, and revert back to a good ol' Blender addon. Hence the long time I took after 0.7 until today: re-designing and re-coding the app as an addon. Lesson learnt the hard way, but that's what makes software development interesting ;)

Huge download size fixed

With 0.7 there was another issue I was concerned with: download size. A mammoth 2GB! And with all the content I'm adding with each new version, I had to do something.

Why is Scene City so large?

  1. in the current state, you download 3 versions of SceneCity: one for Windows, one for Mac, and one for Linux. So you basically download the app 3 times... That's inefficient I know, but it's the simplest and quickest solution I found for me and for you.
  2. Then for each version, the resources that take most disk space are bundled twice: once to be used in realtime in the generator (the standalone app) and once again in a zip file which is uncompressed when exporting to Blender. What takes a lot of disk space are the 8k HDR skies, more than 200MB, then the terrain preset textures, another 150MB.
By making an addon I solve both problems at once: the addon will work in Blender no matter what platform it runs on, and you only need the files for Blender. It's fixed: Scene City's download size went from 2GB down to about 200MB. Also thanks to an update to the OpenEXR library in Blender 2.75, the skies textures now only take 16MB.

Scene City 0.8 will be a Blender addon... No? Three addons?

Scene City has 3 components working together, but that could be used independently: the skies, the terrain generator, and the city generator. Perhaps some people may be more interested by one or two parts, and not so much by the other. It's also a good design practice to make smaller parts work together rather than having a monolithic engine.

So I split Scene City into 3 addons: one for the skies, one for the terrains and one for the roads and buildings. That doesn't change much for you, except that you can use them independently if you wish. They still work together if needed, as expected. I might distribute them separately in the future, but for now I keep them bundled together when you buy and download Scene City.

Scene City 0.8's release is this month, more news will follow!

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 language 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.