Pixel City, Test

By Shamus Posted Friday May 8, 2009

Filed under: Programming 133 comments

If you’re one of the people who has reported 5 minute loading times with Pixel City, would you be so good as to try this download and report the results?

I’m not sure what’s causing these slowdowns, but the program should be running orders of magnitude faster than what you’re seeing and I’m sort of groping around looking for possible causes.


Also, the YouTube demo of the program seems to have taken off. It’s now the #6 top favorited movie this week under “Gaming” on YouTube. It’s also the #6 most watched gaming video in New Zealand. (Far outpacing interest in other countries.) I had no idea I had so many fans down there. Hello, New Zealanders. I love your accents. Your country is beautiful.

Link (YouTube)

Anyway, thanks to everyone for spreading the thing around. I do think that lots of public interest is a great motivator for taking care of a project after the fun parts are over with. We’ve very much entered the dull grounds keeping and janitorial phase of software engineering here, and knowing people are still using the software and following the project gives me a reason to make sure everything is as polished as possible given my miserly time budget and general indolence towards projects that have left the experimentation stage.

Finally, thanks to those who have worked on the project over at GitHub. I’ve brought some of your changes back into my own codebase. If we had a forum over there we’d be golden.


From The Archives:

133 thoughts on “Pixel City, Test

  1. Visi says:

    That version takes 2 seconds to load for me, instead of the 9 seconds it took before, so something must’ve changed. It also doesn’t seem to lag as much. Steady 64fps, but it goes down to 20 if I turn bloom back on, which I don’t want to do anyway.

    Edit : I was getting the window-flicker sometimes with the last version, so it’s not something new. (I have a radeon 3600series graphics card and 2gb ram, don’t ask me more than that :p)

    Works fine on dual monitors too.

  2. Kim Sullivan says:

    I didn’t have problems with the original version, but in this version, several new things seem to be broken:

    * Some window textures flicker (it looks like two surfaces with different textures are at almost the same position and depending on rounding, the lower one shows through… difficult to describe, you probably know the effect). Happens mostly in the lowest segment of a building, next to the street (and only on one side of the corner)
    * Displaying the OSD doesn’t seem to work (the text seems to be overdrawn by the city, so I can’t report the FPS).
    * Help doesn’t seem to work?

    I’m on a P4 2.8 using a GeForce 7600 GT.

    1. Shamus says:

      Kim Sullivan: That effect you’re describing is called z-fighting. It’s actually present is all version of the program. (Blocky style buildings have a random chance to exhibit this effect.) It’s fixable, but hasn’t made it up the list yet.

  3. Jurjan says:

    This does the trick for me (or, rather my computer here at work).
    startup is about ten time faster for me now.
    What did you change?

    Thanks for the interesting series,

    edit: Thanks instead of hanks….

    1. Shamus says:

      Jurjan: Yesterday I mentioned that I was suspicious that windows simply wasn’t calling WM_PAINT fast enough. This one ignores whatever windows tells it about needing to update and runs on its own timer. If I get more reports like yours, it will mean I was right.

      Note that the program will now be capped at ~60fps, so even people with great hardware will no longer be seeing framerates of 150+. That’s just as well.

  4. Factoid says:

    Loaded this up on my home vista machine, which before was working fine, but now I can’t get the F1 display to appear, so I can’t see the FPS.

    I am surprised that I’m only getting in the 30-50 FPS range during full-effects mode. It jumps to the 60s if I flip on letterbox.

    I have an Intel Core2 @2.12ghz, and an NVidia 8800GTS 640MB graphics card.

    I figure the graphics card should be smoking this puny city, but I guess my old-architecture CPU is where the slowdown happens? Is this thing multithreaded in any way to take advantage of dual cores?

    I’ll check my windows VM on my mac to see if this solved the long-load problem when I get to work.

  5. João says:

    my work laptop just displayed a black screen with the previous version: with this one it hangs at what appears to be a random spot in the loading process… :( I’m on a core 2 duo laptop, 1gb ram and an integrated Intel 945GM graphics adapter running XP.

    Worked fine with latest version at home, I’ll try this one when I get back home tonight. (main PC is a core 2 duo with 2GB ram and an nvidia 8800GTS – works fine. haven’t tested with the Athlon XP2800+ with ATI card I also have – both run XP)

  6. Kim Sullivan says:

    Shamus: you’re right, it looks like I was just unlucky to have several bad cases appear the first time I ran the new version. Or maybe I was just looking harder.

  7. cavtroop says:

    I have a three monitor setup, and it won’t run at all. the thumbnail preview in the screen saver tab used to take a minute or so to load, and now loads nearly instantaneously, but I can’t get the screensaver to actually run.

  8. yd says:

    Latitude D820, 2.2Ghz core duo, 3.2GB ram, NVIDIA NVS 110M (1920×1200 and 1280×1024 two monitors)

    This feels a lot better in terms of framerate even with both monitors enabled. I can’t, however, turn the framerate display on. F1 works, but only up until the loading graph shows – then none of the hot keys work for me.

    Whatever you did seems to be a big change, but there’s still more to go. It started up with bloom off, and I can’t turn it back on, so that might be a big chunk of the frame rate increase.

    This laptop isn’t great, but I don’t think it’s so underpowered for this app. I have a feeling there’s a lot of performance to untap yet.

    Thanks for the sharing the fun.

  9. Lethe says:

    Well, this version doesn’t work on my laptop, either. The previous one would just show a blank screen for a minute or so before popping back to the desktop. This one shows the loading icon, which fills quickly (<2 sec) to 60-90%, then hangs there. If I move the mouse or hit a key to cancel the screensaver, it takes ~5 sec to go back to the desktop.

    I’m checking this on my graphics-underpowered work laptop (a Compaq 6510b), specced as follows:

    Core 2 Duo T8100 @ 2.1 GHz
    2 GB RAM
    Integrated Intel Mobile 965 graphics (I suspect this may be the problem)

  10. Daedalist says:

    This now runs on Windows XP under VMWare Fusion on my Mac. The frame rate is awful and the F1 menu doesn’t display properly.

    My hardware: A 2007 Macbook 13″
    CPU: 2.16GHz Intel Core2Duo
    Graphics: Intel GMA 950 (64MB shared memory)
    RAM: 2GB

  11. food4worms says:

    It loads much faster on my crappy Intel card at work, but I’m getting, maybe 1 frame every 2 or 3 seconds. Stoopid crappy Intel card.

  12. Factoid says:

    Just checked on my windows VM on a mac. It loads much faster now..probably within 15 or 20 seconds.

    Gets about 0 to 1 FPS, still, though. I’m thinking that it’s the virtual environment causing the problem. vCPU access is scheduled in strange ways, so it’s probably not getting the CPU priority it wants.

    Whatever was causing the loading issue seems to be fixed, though. It was about 4 seconds of black screen, followed by the loading clock for another 5 seconds, at which point it hung at about 75%, went to a black screen for a few seconds and then displayed the city finally.

    That took around 15 minutes previously.

  13. perry says:

    yes! this works on my core duo with intel 945gm. the earlier one just showed a black screen. but now it starts loading instantly and very quickly. the framerate is only 15-20 but i guess this crappy 945gm can’t do anything more.

  14. Thijs says:

    This version is much better for me too. Loads very quickly, and fps over 50 without bloom. I’m at work, so low-end graphics card, but with 2,7 Ghz and 1,75 GB RAM.

    One thing on the cars. I saw many people commenting that the cars look weird from the side, and I agree, but for me, it’s only a problem at junctions. So I thought perhaps it’s possible on junctions to only have cars in one direction? I have no programming experience on these kind of things, so I cannot imagine how feasible that is though. It would also stop the cars from riding through each other on junctions.

  15. Sean says:

    This one works in a reasonable amount of time, now. :) Thank you!! I was very much looking forward to running it, and nearly wept like a little girl when I couldn’t.

    While before, it took an hour or more to load the city (I just let it crank while I was doing other things), this one loads in 30 – 40s. I’m still only getting about one frame for 3 seconds with default settings, ~1 FPS with bloom off, but I’m either running it in a Windows XP VirtualBox VM or through wine, so I’m expecting slowdowns.

    I can back up the reports of missing help text… but on watching a little more, it looks like the help text is just black, and so only really appears when it’s backlit by a building.

    It looks like the help text turns white again during loading (like when regenerating the city)… sometimes. I saw it once, but couldn’t duplicate it.

    It also may have been the slow framerate and general unresponsiveness, but it seemed like the hotkeys weren’t working either…

    My Guest “hardware”:
    Windows XP VirtualBox VM
    32 MB Video Memory
    896 MB Base Memory
    VT-x/AMD-V Enabled
    3D Acceleration Enabled

    My Host hardware (which was also running Wine):
    Wine 1.1.15
    Fedora Core 10
    Intel Pentium Dual-Core 3.60 GHz
    2 GB RAM (note that ~1 GB was dedicated to the XP VM)
    256MB ATI Technologies Inc RV380 [Radeon X600 (PCIE)]
    – setup for a dual-head display

    One last request – I love the screensaver, but I would really like just a straight executable version, or a way to lock it to ignore mouse movement, and only exit when I hit Esc. It’s nice to open it on a second monitor and let it run while I’m only working on a single monitor.


  16. Vladius says:

    The New Zealanders must have noticed your infamous webcomic about their country.

  17. steve? says:

    Load time is significantly better, but I couldn’t tell a difference on program performance, I’m at 3-4 fps in letterbox with bloom off. Oddly, the framecounter (or any other menu/display screen) would only show up when the bloom was off.

    Specs: XP Pro, AMD Athlon 3000+, 1 gig memory (two 512 sticks), Nvidia TNT2 64 video card

    As you might guess, the really old video card is the bottleneck. In the preview box on the screen saver options page the program runs ~25 fps.

  18. wererogue says:

    I don’t see a lot of difference, but loading time wasn’t a problem for me before. However, none of my buildings are textured. I keep meaning to grab the code and take a peek at what’s going on.

  19. Daniel says:

    I have an XP laptop with crappy onboard video card (Intel 855GM) — with the previous version it took five minutes to get through the load screen, after which it would crash immediately.

    This version loads much more quickly — just a few seconds — and runs without crashing, but at less than 1 fps. There’s something odd about the bloom lighting, too; it’s much more prominent and is sort of spread across the screen instead of near the lights, it looks a bit like the photoshop “radial blur / zoom” filter, if that makes any sense. If I turn off bloom lighting and switch to the plain texture, I can get up to 5 fps.

    (FWIW the previous version ran beautifully on my dual-monitor mac in bootcamp. Haven’t tested this one yet because I don’t want to reboot right now.)

    As a web developer I often get irritated about having to support four or five different browser environments… I’m gaining a new appreciation for how difficult it must be for windows developers, who need to support hundreds of different graphics cards and hardware combos — what a nightmare! (I’m also gaining a new appreciation for how truly junky Intel integrated graphics cards are.)

  20. ibr_remote says:

    Well I linked to your video ! I love it !

  21. Alan says:

    [This time you asked for feedback]
    I couldn’t get the original one to work at all. This one does something which is an improvement.

    Here is what happened:
    I don’t know if this is significant, but is started loading, and did most of it quite quickly, but then hung on 85.74 for several seconds. It then went to a blank screen for about 10 seconds.

    I have not problem with the overall look of the buldings which do look very cool, but unfortunately it is more like a slideshow than a screensaver. It looks like a succession of stills which jolt from one to another every 5-6 seconds.

    Strangely, in the properties section when choosing the screensaver, the miniscreen on there has a frame rate of about 5 frames per second.

    I have a fairly old computer, and here are the specs:

    Windows XP
    Intel Pentium 4 2.80GHz processor
    1.00 GB Ram
    Intel(R) 82865G graphics controller

    I don’t know what it was, but I tried pressing buttons and couldn’t access the thing to turn off bloom or change things which I heard made things faster.

    The above was found after clicking ‘preview’. I set the time for the screensaver to 1 minute before it came one, and it refused to even show what I had above-just a blank screen. I didn’t sit around and wait to see whether anything would load after that (I am a busy man, I have games to play…).

    You know, I think that these problems are deliberate and that you are building up the suspense for people with low end machines, and have a properly working copy of it just ready to upload.

    I haven’t been this interested about a piece of software for quite a while, so this tactic is obviously working.


    EDIT: I rebooted and tried again, no change. I did however see one of the company names as “Green Health” which was coloured green.

    I found this amusing.

  22. ibr_remote says:

    and the version of PixelCity of this post – loads in couple of seconds for me using ATI Radeon HD 3650 on WinXP SP3 32-bit running at 3.20 GHz and 3.19 Ghz, and 1 GB of RAM.

  23. Agaib says:

    New Zealand huh? Interesting. Maybe you got linked by a well known New Zealand blogger?

  24. Nick says:

    Just ran it on Windows XP Pro in a Virtualbox myself; took about 15-20 seconds to load and ran at a whopping 5 seconds per frame…

    About expected from me, really. Still, pretty cool. I’ll have to learn how to port this to Linux. I’m pretty sure it would be cool to have this as one of the “standard” screensavers packaged in Ubuntu or something… :)

  25. Ryan says:

    Like several other people reported, this version loads quickly (3-5 seconds) but then runs at 1/3 FPS. Also, I too have not been able to view the F1 menu or framerate.

  26. Anachronist says:

    The performance of this version is somewhat worse for me. The generation time is quicker, but the frame rate is slower. In the standard non-bloom mode I was getting 60 fps, now I’m getting 45 or so. The frame rate display and F1 menu appear only intermittently, so 45 fps is base on those intermittent appearances. I’ve seen it as high as 59, but mostly it’s in the mid 40 range when it appears.

    My home machine here is reasonably high-end, an HP d5000z, AMD Phenom 9750 quad core 2.4 GHz cpu, NVIDIA GeForce 9500, 3 GB RAM, running Vista (not my choice, that’s what it came with).

  27. modus0 says:

    Definitely loads quicker, but like others I’m having difficulty with the menus displaying with this version.

    They usually appear black, sometimes grey, sometimes flickering between black and grey, and only the “rainbow” lighting effect does the menu show up as white.

  28. Nick says:

    This version works fantastic now. The work computer (Server 2003) now loads much faster (compared to my home computer, it seems about right for how bad the hardware is here), and actually runs. Whatever you did, helped the load time on the computers I own that had a problem immensely. There’s nothing you can do about making the framerate better on this old junker, but that’s not your fault. ;)

    Did you fix the memory leak yet? I forgot about it, set my home computer screensaver to it, and returned 3 hours later to an application crash.

  29. Delta Force Leader says:

    This version loads faster (approx. 5 secs. in preview and 20 secs. in full-screen), however it only runs at less than 1 FPS.

    Windows XP Home SP3
    Intel Celeron M 1.3GHz
    2GB RAM
    Intel 82852/82855 GM/GME Graphics Controller

  30. Nick says:

    I think I found out why sometimes the framerate counter is not showing up, or the menu. Long story short? It is.

    I noticed, that when in no texture mode (on a work computer with no graphics driver that performs slowly) the menu or framerate counter show up in the upper left corner, but it’s BLACK with a black shadow. Since the upper half of the screen most of the time is a black sky, or a dark building, nobody notices they are there.

    Also, is it possible to have the menu/framerate counter show up in the upper left corner when in letterbox mode? Seems to me that since that space is wasted with black, you might as well keep the menu there. (it moves down when letterbox is enabled, and sits in the city display area)

    Anyone know of a good site to upload a picture, no registration required? I still have no web storage of my own, but would like to produce a screenshot of the black on black menu… Or, with Shamus’ approval, I’ll email it to him.

  31. Mike says:

    This version does offer the promised improvement on city generation time, down on my work laptop from several minutes to about 5-10 seconds. It hangs around 90%, but I believe that to be when the program goes to start drawing the city. Given the unfortunately abysmal framerate (I would estimate 1-2 new frames every 20 seconds or so) I still can’t run it on my primary work laptop, but I have it set to run on a spare machine now where it merrily chugs away at 20fps, just enough for some procedural eye-candy when I’m not using it for terminal clients.

    XP Pro SP3
    Intel Pentium Dual Core T2390 @ 1.86GHz
    2 GB shared RAM
    Intel 965 Express Mobile (Shared RAM up to 384MB)

  32. CaroCogitatus says:

    Those of you who can’t get F1 to work, try hitting F1, then “e” three times. That brings up the menu for me.

    Perhaps it’s there already, but that mode makes the text white instead of black?

  33. vdgmprgrmr says:

    Yeah, that “z-fighting” I noticed in the earlier versions, but it was so rare, it didn’t really affect the experience, but in the new version, it seems like every other building has got a brawl going on.

    And key-strokes seem really hard to get to work.

  34. Chargone says:

    I’d say the NZ popularity was totally not my fault, but…
    well, it’s a good thing.

    and, to be honest, totally not my fault. *laughs*

    if it’s just the youtube video that’s picking up the traffic, it’s probably just flukeness.

    ok, it’s 5:22am and i haven’t slept yet. my brain’s not working.

    yay NZ!

    oh, and pixel city is shiny. the first download worked fine for me… ‘cept for a bit of blurring if the camera got too close to the buildings as they went past. which may be intentional, but was kinda… blah.

    i seriously can’t remember my own system specs beyond that it’s got a 64 bit processor that nothing knows how to use. the only thing that Ever noticed it was there was Alpha Centauri [since sold] and That was only because it didn’t know what to do with it!

    umm, yeah. yay city! err.. thing.

    I’m just going to leave before my sleep deprived madness slips any further away from reality…

  35. Eltanin says:

    Well, this version works less well on my XPS Gen 2 (Nvidia GeForce Go 6800 Ultra) generally running at about 25-30 FPS instead of 60.

    As others noticed, the menus are colored black, grey, or flickering unless it’s on the rainbow setting.

    I’m also still getting funky skies. This time I took screenshots.

    Funky skies: http://i135.photobucket.com/albums/q131/Zubenel/pixelcity1.jpg

    Obscured FPS menu just visible: http://i135.photobucket.com/albums/q131/Zubenel/pixelcity2.jpg

    Note: You really have to squint to see the FPS menu in the second picture, but it’s there, I swear! I tried to get it at a moment when a light colored patch of sky was visible behind it.

  36. radio_babylon says:

    well, before it never worked (left it running over lunch and still had a black screen when i got back)… this one, i see a progress meter that gets to 91.31% almost immediately, then stalls for about two minutes… then i get about one frame every 60 seconds…

    i have a mac mini running xp sp3… no clue at all about what kind of mac mini or anything, this is just the machine they gave me at the office :)

  37. Rob S says:

    First, the system specs:

    Dell Inspiron E1705 running Windows XP (Media Center version, I think)
    1.7 GHz Celeron Dual Core
    1 GB RAM
    Mobile Intel(R) 945GM Express Chipset Family (from the Device Manager – I have no idea what that equates to)
    1440×900 screen

    Now the results…

    On version 1, I assume I had one of those 5 minutes build times, but I can’t verify that. Impatience had me bail out long before anything showed up on screen.

    With this version, It loads everything up and builds the city quite rapidly, then things get interesting. The screen updates about once every 15 seconds. I had to watch it for several minutes when a lucky window backlit the black text showing 1 FPS.

    The really odd thing was the light bloom – the displayed bloom didn’t correspond to any existing lights. After watching for a couple of minutes, I noticed that the bloom matched the lights in the *last* displayed image.

    When the city rebuilt, the menu finally showed up in white (hallelujah!) and I could finally figure out what to press. (Oh! ‘G’ to toggle Fog, not ‘B’ for ‘Bloom’…) It took a few times alternately hitting G and E to finally get the Bloom to disappear completely, which helped the framerate some. Also, switching to letterbox mode got the observed about the same as the reported framerate – 1fps or so.

    As mentioned above, it runs like a moderately fast slideshow, but at least I can see the coolness now. :)

    A few of the more interesting signs I’ve seen:
    National Aerospace (Isn’t that a real company somewhere?)
    Green Petroleum
    Monolithic Financial

  38. pffh says:

    Old version worked fine but in this version I can only watch the F1 commands and the frame rate on one of the full scene effects (the one just before the one where all the buildings are transparent).

  39. LotsofLuck says:

    This version loads ridiculously fast compared to the previous version. I think it loads in less than a second, as compared to 2-3 previously…

    It looks like you can’t access the menu unless you’re in the “standard mode”. As soon as you switch to another special mode, the fps counter disappears and the the menu is inaccessible.

  40. Spam says:

    I’m running a windows XP Pro with a gig of RAM…I get 5 FPS…if I’m lucky. Silly work machine! I’ll try it at home and see if it runs better there. Looks great in the video though! Thanks for releasing it!

  41. Ermel says:

    Definitely an improvement: loads equally fast as a screen saver and as an exe file, BUT the screen saver load screen stalls at 96.something %; maybe it would run eventually but I lack the necessary patience.

    Remaining issues, all mentioned before, in order of relevance to me:
    – Z-fighting aka Blinkenlights effect. This is ugly!
    – Predictable camera paths. Gets boring after a while.
    – Delayed bloom effect. But my machine’s too slow anyway.
    – Black menu texts. Which I don’t usually need.

    If the Z-fighting, the camera paths and the remaining screen saver loading delay were fixed, I could happily live with it. As it is, I start the exe every now and then and despite the great looking images get a little annoyed with the first two issues. I mean, forget about cars and streetlights and stuff; they could use some work, granted, but I don’t really care. But Z-fighting and the ever-repeating camera paths are really beginning to annoy.

    That said, I still think this is an outstanding project. I wouldn’t keep bitching about what’s missing if I didn’t really want this to be my sceen saver! Thanks again Shamus!

  42. Kimari says:

    Alright! this time it’s waaay faster than before! =D
    I get 1 frame every 13 seconds, and the loading takes 30 seconds, more or less (it always get’s stuck around 75%).
    For reference: I have a core2quad 2.33GHz, 2GB of RAM and an integrated graphics card (Intel g45/g43 chipset) which is more than probably my bottleneck here.

    Oh, and the bloom effect appears to be delayed. In fact, it runs so slow that there’s no correlation between what I see of the city itself and what the bloom is lighting.

    1. Shamus says:

      Hey, can one of you people exhibiting the “black text” bug please download and try this version:


      I’m just groping for answers, here. The bug doesn’t happen on my system and so I’m reduced to guesswork.

  43. Ermel says:

    Update: I finally waited long enough for the screen saver to run. 10 seconds of blank screen, 5 seconds of loading “clock”, 20 seconds of same stalled at ca 99%, 30 seconds of blank screen. This gets better on subsequent iterations.

    But the animation only runs at ca 1 fps, as opposed to the ca 10 fps I’m getting when I run it as an exe from the command line. That’s way WAY better than with the old version, but it’s still, well, bad.

    I noticed something else though: when running as an exe, and the camera moves really slowly like it does at times, there’s hardly any visible Z-fighting (blinkenlights), and it even looks rather smooth. So if I could configure away those fast camera runs … please?

    Samsung NC10 netbook (Intel Atom @ 1.6 GHz, 1 GB RAM) running XP Home, JFTR.

    Thank you.

  44. steve? says:

    The “black text” bug is fixed for me in that version.

  45. Ermel says:

    Shamus: 1.0.011 fixes the black menu text bug for me. Thanks.

  46. RetSpline says:

    Before testing 1.0.010, I ran 1.0.005 again. I didn’t get an insane 80 minute loading this time, not sure what happened then. Running 1.0.005 I had about a 7-8 minute loading time for a city.

    Running 1.0.010 took about 5 seconds to load, though I still had only about 1 fps.

    1.0.011 fixed black text for me.

  47. wullon says:

    With some music+design/concept it could make a really nice demo (“demo” like in demoscene http://demoscene.info).

    After a landscape ( http://www.pouet.net/prod.php?which=52938 ), a city in 4k ? :p

  48. Lanthanide says:

    We don’t have accents, it’s you dirty foreigners that do.

  49. Martin says:

    Love it! Less than one second load time on Windows7 RC1 64-bit. nVidia gtx 280, 3.16Ghz CoreDuo, 6GB RAM, 1920×1200

  50. Jabor says:

    I think the underlying issue is that us New Zealander’s aren’t actually interested in most of the crap on YouTube, so when something that’s actually good shows up it gets disproportionately high hits from here.

  51. Ermel says:

    New bug in 1.0.011: it generates the exact same city every time. Easily recognizable from the company names.

  52. Brian Ballsun-Stanton says:

    Well, in 1.0.010, it actually loads as opposed to last time. In slideshow mode, still, but loads. (Framerate around .1 fps)

    No button pushes seem to do anything. Intel 945 graphics card, 4 gigs ram, lots of CPU, touchscreen. Vista Business.

  53. Gary says:

    Ok, with version 1.0.011 I can now see the text :)

    Also it is MUCH MUCH faster loading on this computer. It loads in about 10 seconds. The camera movement is actual movement now, though it is still reading 2 fps.(Sans bloom) (I’m thinking it was lying last time about the 2fps, because this version of 2 actually seems like movement rather than a rotating abstract art background)

    I have yet to test it on my laptop, I’ll let you know if the crashing bug has been fixed on that (later). :)

    Edit: When I remove textures I jump up to 11-12 fps.

  54. Kevin says:

    Just to add my two cents:

    On each version I tried (3, 10, and 11) it loaded fairly quickly (a second or two) and ran at around 30 fps with bloom, 60 fps without bloom.

    AMD 64 Athlon 3000+
    1GB RAM
    Radeon 9800 Pro
    Windows XP SP3

  55. Cuthalion says:

    Win2K Pro, 512RAM, AMD Athlon 2000+, Radeon 9500, 1280×1024

    Loads much faster now. Takes about 10 seconds then hangs at 99% for another 10 or 20. But when it starts flying around, it’s more like 1 frame every several seconds, skipping a lot of distance like the camera kept moving but it only took a photo every few seconds.

    With the old one, it took several minutes to load and then ran at a couple fps, though it sped up if I turned textures off.

    Judging by the task manager’s cpu and ram monitoring screen, I’d say the bottleneck’s in the cpu, which is maxed out pretty much the whole time. It’ll max out for several seconds, then drop to nothing for an instant, then max out again. I’d hazard a guess that each of the plateaus of maxed-outedness are one frame, since it only did a few frames before I got out of it.

  56. DmL says:

    Black text fixed with 1_0_011.zip I noticed that your radio towers render in front of signage and such.

  57. LordXarod says:

    I’ve done a cursory glance of the comments on the two recent Pixel City post’s, and I haven’t noticed anyone else experiancing/commenting on wild fluctuations in fps. Im using the original version, and in screensaver mode, without bloom, I’ve seen my fps gyrate very wildy. Just now, I started at 128 fps, climbed within seconds to 400 something fps, then was at 166 fps. Is this because of what the camera is viewing( turn a street corner and fps drops by 200), or something else? It ultimately doesn’t matter, as it isnt affecting the program, I’m just curious.

  58. Rick says:

    Also a Kiwi here.

    The black text bug from 1.0.010 is fixed for me in 1.0.011 also, well done, thanks.

    Also, I just noticed that the sky box sometimes has ‘edges’ on the texture… more easily seen with brightness turned up or viewing an lcd screen on an angle. Looks fine at normal angles though.

    I tried to take a screenshot but it pasted only black. Draw method maybe?

  59. Anachronist says:

    1.0.011: Generation time happens in a flash, less than a second, where it used to be 3 or 4 seconds. However, it appears to be the same city – the company names are the same, but not sure about the buildings themselves.

    The depth rendering of towers and text is confused. Towers behind the text obscure the text. I had to check this with wireframe on to make sure.

    Black text for options menu and frame rate display now appears white. That’s fixed.

    Frame rate is back up to 60 fps in the normal default rendering mode (same as I was getting in the first release), where 1.0.010 seemed to be 45 fps (as far as I could tell with the black text).

    Pressing E for the first bloom mode drags it down to 20 fps, and I was getting almost 60 fps in the first version. The second bloom mode (looks like beams coming out the light sources) comes to 40 fps. The “Las Vegas colors” mode is 60 fps.

    All versions so far have shown sharp edges to the texture in the sky box, for me.

    AMD quad core 2.4 GHz, NVIDIA GeForce 9500 here.

  60. Anachronist says:

    Addendum: I just noticed wireframes aren’t appearing on the text-obscuring blinkenlight towers when everything else is wireframed. Well, sometimes the towers appear. I don’t know how to repeat the problem consistently.

  61. Ian says:

    Near instant load on the home machine. The OSD is invisible unless I start fiddling with the full screen effects. Looks like one of those is affecting the overlay.

    I susspect the three monitor problem comes from OpenGL. I’ve always found it to be a bit tempermental when it comes to spanning graphics devices. Two heads on a single card isn’t always great even when you aren’t using them for the app, Quake wars was particuarly bad on this certainly with Nvidia cards.

  62. DanK says:

    Just chiming in as another of the New Zealanders that enjoys your work – I was first drawn here by DMOTR and your DND campaign – but have definitely been spreading the word about PixelCity.

    Awesome, awesome work.

  63. Nico says:

    Running the new version loading speed went from 1 second to well under a second – instead of the circle quickly filling up I see the circle at 20ish percent, then 70ish, then full.

    And as you said it caps at 65 fps… Not a big deal, but it is nice to be able to see the difference between different modes and also to do frame rate comparisons between the different versions.

  64. Huckleberry says:

    Shamus, is it intentional that the color scheme sometimes changes when clicking on the comments? In my case, my choice color scheme is “lawful good”, but when I click on the comment section of this post (or the latest xkcd post, not the ones in between), it changes to chaotic evil (and I can’t change it back, because the post+comments page doesn’t include the color scheme menu.)
    Does anyone else have a similar problem?

    EDIT: It changed back to lawful good after I posted this comment.

  65. Patrick says:

    What is the “G” button supposed to do exactly. If I remember early versions correctly (yes I know that the early versions came out a couple of days ago, just shows you how bad my memory is) pushing “G” would basically turn the sky on or off. By sky I mean the illuminated clouds in the background that offered nice contrast for the city.

    Recently, in versions 1.0.010 and 1.0.011 (on two different computers) pushing “G” did nothing for the sky but instead turned off the most distant rows of buildings (they become black boxes).

    Is this how it is supposed to work? Was it working right before? Are my computers just crazy? Is anyone else getting this?

  66. HeadHunter says:

    Looks great and runs nicely!
    My only observation is that the streetlights seem too close together.

  67. skiff says:

    i love this idea-procedural generated content is great. BTW im from nz – WOO!

    However-“G” turns off distant buildings, and i don’t see any sky as mentioned in the video. Specs are 1.8 Ghz dual core+ 2gb ram+ Nvidia Geforce 7300 Le.

    Thanks-amazing project (oh, and the Escapist is great!)

  68. Danny says:


    Have really loved reading through your process from start to finish. I tried download 1.0.005 the other day on a ~5 year old laptop and I got the 5 min startup that you described.

    I don’t have that laptop with me now but when I try to run the screensaver now on my main desktop rig (~2 years old, XP) it just loads a whole heap of code in notepad instead of running the screensaver. Likewise when I copy it to system32 and select it through properties the screensaver doesn’t work.

    Any ideas?

  69. DarkLadyWolf says:

    I tried this just for the hell of it, as the previous version was working quite well for me (Intel P4 3.2GHz, 2 Gig RAM, NVidea GeForce 6600 with 256Mb memory).

    This one gives me a blank screen which took me a while to get away from. Then when I did get back to my desktop, the system was sluggish to the point of the mouse not responding for up to 30 seconds at a time. It recovered a bit later, but something made it unhappy.

    So I’m back to playing with the original for now :)

  70. Alan says:

    Hi, tried it, I can now get the menu up on command, and the options work, plus the menu stays up after I have changed something.

    It is running at about 1-2 FPS, and when I turn the textures off, I get about 14-16 FPS.

    Something I thought of while watching it: how about the ability to turn off the cars through the menu?

    There seems to be a lot of them, and I don’t know if they are rendered even while they are behind buildings, but to my untutored eye, I would have thought that they would take up processing power that could be freed up for something else?

    I realise that taking them away means that the cityscape as a whole won’t look so impressive, but what is left might load a little better.


  71. Eltanin says:

    I experience the same thing as others. 1.0.011 fixes the text problem but renders the same city every time (whether I force a new render, allow it to do it itself, or at different activations of the screensaver).

    This is probably a totally minor bug, but since I don’t know my arse from a hole in the ground when it comes to programming, I mention it in case it is somehow significant.

    In my eternally re-rendered city, there’s one section that seems to be missing buildings. Perhaps it’s a city park! At any rate, here’s a screenshot:


  72. Henry says:

    Dell Inspiron 6400, running Vista, and it loads in about 30 seconds. Unfortunately, the framerate is about 0.3 fps. It’s worth noting that I have no graphics card beyond the inbuilt one, and that may well be the issue.

  73. Rick says:

    A small and strange note… build 1.0.011 loads in about half a second (maybe quicker) on my year old dual core laptop at home, but takes roughly two seconds on my quad core desktop at work.

    The laptop has 256 dedicated geforce graphics (can’t remember the model off the top of my head sorry) and runs about 20-25 fps with bloom and 30+ without it. While the work desktop runs a solid 30 with bloom and 60 without it.

    It just struck me as strange how much quicker the slower older laptop loaded the screensaver. Literally quick as a flash. I’ll post my cpu details if I remember tonight.

    Thanks again for the awesome screensaver :D

  74. Rick says:

    Not sure if it’s coincidence or not, but in four different cities (screensaver ran three times, on the third I hit rebuild) I saw the same name ‘Aerospace Unlimited’ on what I’m fairly sure is the same building that cut the ‘d’ off each time.

    I’ll keep watching.

  75. Bryan says:

    To everybody seeing the same city run after run: That’s the way the code’s apparently written in this rev, though I doubt it was intentional. (So this should probably be “To everybody”, full stop, actually. :-) )

    The line that sets the random seed to the same value every time the program builds a city got un-commented before the last commit. See World.cpp, function do_reset, near its beginning: the line “RandomInit (6);” is uncommented. Comment that out again, and it’ll be random again. (I plan to leave it on for now in my testing builds, but it might be good to do another “official” build with it off.)

    (Oh, yeah: And “G” turns the fog calls on and off; that’s probably why the distant buildings disappear. I’m unsure where the sky went as well, though I never saw it in my ported version either; maybe I just happened to pull a copy too late before I got it to work. Haven’t looked into the code on that one yet…)

  76. Chaz says:

    Dang right this country is beautiful. Come for a holiday, you won’t regret it – unless you come during the 8 months of perpetual rain that we get each year. But the 4 months of glorious sunshine are just when you’re in the depths of Winter, so that should work out just fine.

  77. Sec says:

    Huh, this is strange. This version displays the “Help” menu and Frame counter in black instead of white (you can see it if some whindows scroll by). EXCEPT on the third “E”-Setting (the one with the rainbow colors) where it shows up normally. Is anyone else seeing this effect?

  78. Henry says:

    One additional observation: sometimes I see writing backwards; it looks very much like the program is rendering the far side of a building.

  79. Pat says:

    I have to second Sean’s request for an executable version of this. I have a lot of screen real estate, and I’d love to run this while working on other stuff.

  80. Unconvention says:

    I wondered why both this and the landscape project were based around creating a square of terrain.

    It seems to me a more interesting use of the procedural development scheme would be to produce a continuously changing strip.

    You have a flying camera that swings and swivels around your city, but I’d have thought a more interesting use of the technology would be to have it appear to fly more or less straight, along a never ending city, with old content being ditched as soon as the camera had flown passed, to be replaced – procedurally – by new content in the distance.

    Anyway, too late now, but perhaps an idea for the procedural forest I know you must be planning.

    Hmm… this probably wasn’t the best post to hang this comment on; sorry for that. Can’t see a delete comment option though.

  81. Phineas Rhyne says:

    The old version simply Would Not Run on my work computer (Bog standard Dimension 5150). This new version will run in the preview window, at a low number of FPS. When actually loading, it’ll hit the loading clock within 5 seconds, and hang at between 78% and 79%. That’s an improvement, but no idea what’s preventing it from getting the rest of the way.

    On the other hand, my home computer works flawlessly with this version, dual monitors and all. (Radeon x1950, XP SP3 on Dual-core Athlon XP something-or-other)

  82. Anachronist says:

    After letting 1.0.011 run for a few days, I think there’s still a memory leak. My memory usage meter has been slowly crawling up. On my 3 GB machine running Vista, it starts out just below 50% memory used, and now it’s 72% after running Free Memory II to ensure that RAM from other applications has been released.

    In the last few days, I’ve also had one crash message pertaining to Pixel City and have had to reboot once due to insufficient RAM.

    Looking forward to the next screensaver release. Unfortunately, none of my software development tools are Windows-based.

  83. DaddyHoggy says:

    Plugged the Youtube video in my blog – so hopefully more people will get sight of this fab app/screensaver.

    I’m glad I’m not the only one who has discovered 0.011 generates exactly the same city each time.

  84. kai says:

    Works at a constant 64 fps (in all modes, actually it’s a bit weird, there’s not even a 1 fps fluctuation) on a Radeon HD4850 (512 MB), 2GB RAM and Intel Core2 Duo E6750 (2.66GHz). Loads in about 2-3 secs. Also, looks awesome with wireframe, bloom and no textures, even though it’s just a lot of boxes.

  85. Ed Barton says:

    Great work!

    I have an idea about the roads, though. IMO, the problem with the street lights is that you’re drawing the lights themselves, instead of the light that they shine.
    If you replace the current ones with ground-level larger faded circles, it should look a lot more believable. A lot of modern streetlights have an opaque top, so they aren’t actually visible from above.

    The other thing I noticed was that “cars” that you’re looking at from the side don’t look very realistic, due to viewing the polygon edge-on. You might want to consider using basic point lights for the headlights, perhaps with a lit polygon on the street in “front” of the white ones, similar to what I suggested with the streetlights.

  86. zebarnabe says:

    hmm… unfortunatly, both my laptop and desktop are ‘too’ powerful… so they take a few milisecs to load and run (1.0.011)… the sky looks a bit weired on laptop (Nvidia 9600GT 512Mb) … i could try on my old desktop, but i have it at my parents home…

    Nice work! … There are some technics for generate procedural textures that involves the use of noise patern rescaled and applied on over the itself (several times)… the end result gives some ‘natural’ feeling … of course that in this case that would only be useful for sky or something nature related…

  87. George Blutz says:

    Amazing work – especially for 50 hours!

    I just wondered if you’d be interested to use OpenStreetmap road-data for the layout of the city. Right now your using squares for blocks, which may apply in some cities in the US. However in other parts of the world, cities grow in a more organic fashion. Would be an interesting project, don’t you think?

    On another sidenote: You made the remark, that you were wondering what this could be useful for in one of your youtube videos.
    Well, I don’t know if you ever bumped into FlightGear. It’s an open-source flight simulator that is fairly advanced in terms of flight dynamics but lacks some eye candy. It would be amazing to see Pixelcity integrated into it.

  88. yakiimo02 says:

    Hey, very cool work!
    I dled the screensaver and it ran in the 55-60fps range on my Core2Quad 6600, Geforce8800GT, 4gb ram machine. Window width, height were 3120×1050. Since I have a dual monitor setup, the city spanned beautifully across the 2 monitors, which was very nice. Only problem I noticed was that some of the window light textures seemed to flicker unnaturally on some buildings.
    You probably know it from your website logs, but your work was featured in Gigazine (a really popular Japanese news site.) The gigazine article!
    Great job and thanks for sharing your work!

  89. Tatsuyame says:

    Hey, beautiful program (and posts!). Running an AMD Athlon 64 X2 Dual Core Processor 3800+ 2.01GHz, Nvidia 8300 (makes me cry sometimes), with 2GB RAM, on 32 bit Vista. Max FPS I can get is when screen effects are turned off, which yields 60fps on the button. (Occasionally it will pop up to 61 :P ) However, I had an aching suspicion this is more to do with my card and not the program. Pretty much ANYTHING dealing with alpha values below max kills my card (as do particles, though that doesn’t apply here.) Maybe I’ll poke around the source a bit…though I have absolutely no idea what I’m doing. :>

  90. rtownsend says:


    I don’t know how interested you would be, but you might want to write a Blender Python script next time you do something like this. In the Wizards section of the Python extensions area of the Wiki, you can see a couple of people have made attempts at building a city generator. Blender is built on OpenGL, and is pretty platform independent, has a Game Engine built in, and is actively developed.

    I’m pretty sure people would be happy to see more City Generator options.

    You could then make a helicopter fighting game over the city. :)

    Since you know OpenGL well (obviously), you might also consider helping with the Blender application itself, if you’re in the mood.

    I’m not connected with the Blender Foundation in any way. It’s run by Ton Rosendaal. For all I know, you could already be a Blender contributor.

    Cool program you wrote. I’d run a test for you, but I’m running Linux…


  91. ender says:

    For people with Intel on-board cards: try renaming the screensaver to have .sCr extension (basically, anything that’s not lower-case .scr) – some (all?) Intel drivers disable hardware acceleration for screensavers, and doing this tricks them into not disabling it.

  92. RandomRage says:

    Looks fantastic, and has replaced the Vista glowey thing as my screensaver. Running a 32 bit AMD Athlon 3200+ (2200 mhz) with 2GB of RAM and a Radeon 2600HD AGP card, and it runs around 21 fps.
    Question: How hard is LOD to write in? If the simulation is drawing everything in the field of view at full resolution, even the buildings that are too far away to see, then that’s a huge unnecessary processing load. If the simulation could scale back the buildings in the distance (which I think is called LOD for some reason), that would be a big weight off the CPU.

  93. AdamT says:

    Love this! But I am in the camp that gets no textures on the buildings. That’s in dual-screen mode. I drop to 1 screen and it works. On a single Nvidia 8600GT.

  94. ogreb says:

    Very neat program. Will Wright would be proud, I’m sure. It runs very smoothly on my system…framerate never changed from 60FPS while I was watching, and I’m sure it would be higher were it not for vsync. I have an i7 920, GeForce 9800GTX, 6GB ram, vista home premium 64 bit. I run two displays, a widescreen and a “standard” ratio monitor. I was impressed by how well the program handled the odd setup. The scene is seamlessly spanned across the two displays even though the resolutions dont quite match up (1680×1050 and 1280×1024). I was expecting the second monitor to be blank or have a mirrored version of what was on the primary, at best!

  95. Gian says:

    Takes about 2 or 3 seconds to load, solid framerate without bloom.

    i have a Pentium 4 OC’ed to 3.55 GHz, a GeForce 6200 and 2GB of Ram.

    Pretty nice work, i loved it!

  96. Mark says:

    Fantastic series, and beautiful elaboration.

    Danny: you’ve probably got AutoCAD installed. Either rename to .exe and run “PixelCity /S”, or open Registry Editor and make sure that .scr under HKEY_CLASSES_ROOT has the value “scrfile”.

    Shamus: WM_PAINT is not guaranteed, as you’re meant to call InvalidateRect/UpdateWindow. However, a screensaver is fundamentally just an executable, and many launch themselves when they get anything other than “/C” on the command line. Following that model will help portability, and I doubt MS will stop it working any time soon.

  97. Joseps says:

    Awesome, program and readings, thanks Mark.
    Working mostly fine in multi-monitor with different resolutions.

    Something happens, at main LCD windows had a lot of bloom, but in secondary there’s no bloom effect or very little.

    And other minor issue. May be a color setup mismatch in my lcds, but windows were glowing red in one screen and blue in the other. Looks nice. Is like simultaneous traveling accross two different Pixel cities.

  98. Louis says:

    I’m running a four monitor setup, two at 1440×900 and two at 900×1440. This gives the screen saver a 1440×4680 box to render (it seems to render the areas that aren’t on any screen, since my view space isn’t a rectangle and the screen saver just gets a rectangular space to work with) and I’m getting about 30fps with bloom off, 15-18 with bloom on.

    I’m running a Intel Core 2 Duo, 3Ghz W/2gb Ram over two PCIe NVidia GeForce 8600 GTS cards, all of the monitors are connected through DVI.

    I haven’t gotten it to run from source yet as I’m running visual studio 2005 and something breaks when it “updates the project” so I’m not sure if I’d get a better frame rate without the screen saver wrapping it.

    It takes it around 15-25 seconds to start up the city.

    I would guess that people who are having trouble with multi-monitor setup might be using it across more then one graphic card that use different drivers, I’ve found that Windows get’s really finicky with some programs when you start spanning monitors onto cards with different drivers or different types of cards (mixing PCIe, PCI and AGP), usually the same brand of cards will mix will but it’s always hard to tell. I’ve stuck with matching cards in recent years after getting tired of dealing with random minor issues, it keeps windows happy.

    Anyway, wonderful project! I absolutely love it and am impressed with what you put together on such a restrictive timeline, especially with a Left4Dead addiction.

  99. Emanem says:

    Darn I’m using Linux…any chance you release an exe so I can try with wine wine?
    Has anyone done a Linux port of it?


  100. ender says:

    .scr is an exe file, just the extension is different. Wine should be able to run it directly.

  101. Blacklemon67 says:

    Flawless with wine 1.1.22. Averages 19 fps without bloom. Amazing job, dude! You win.

    (More specs:
    Ubuntu 8.04
    Nvidia Geforce 8400m Gs
    With Nvidia drivers ‘course
    Intel centrino 1.5 ghz dual core
    2 gigs of ram)

    1. betazed says:

      I can say that under Wine 1.2 RC1 in Ubuntu 10.04 with an Intel graphics chipset (945) it does not run. Doesn’t even start. Looks impressive in the videos though! Also, kudos on making it Free Software!

  102. tobbew says:

    I found the blog by your pixelcity project and just wanted to say thank you for publishing your ideas. It gave me inspiration and some advice that I plan on using when I’m creating a (virtual) sci fi city environment for a (hobby) sci fi film project.

    Best wishes,

  103. NiWe says:

    Cool, but my old laptop (4 or 5 years old, 2GHz, 512MB RAM, no clue about GPU) thinks it’s pretty heavy. I have not yet managed to shut down the bloom, and I get about 0.1 FPS :P

    But as a sequence of stills it’s still awesome!

  104. Rodrigo L. says:

    “* Some window textures flicker (it looks like two surfaces with different textures are at almost the same position and depending on rounding, the lower one shows through… difficult to describe, you probably know the effect). Happens mostly in the lowest segment of a building, next to the street (and only on one side of the corner)”
    @ Kim Sullivan

    had that problem too, plus another one where the frame rate just reads a constant 65fps no matter what i do.
    theoretically it should run much faster… im running a GTX260 and a core2 with 2.6 gz so the frame rate its showing should be up in the hundreds, i think. i mean even when i turn on bloom it doesnt lower… so i guess its an issue with the display.
    other than that, it looks absurdly fantastically great. i really liked it. the only reason its not my screensaver right now is because having screensavers set to on messes up my games. :p woo, i love this program

  105. Amazon warrior says:

    I’ve tried v. 11, it loads nice and quickly (I haven’t timed it, but I’m easily bored and it loads before I have a chance to be, so that’s good!) and looks pretty. I get fps of between 10 and 20 with bloom, and sometimes there’s an odd position disconnect between the “lights” and the bloom effect. All the other effects run much faster (about 30ish fps) and no effects runs the fastest (up to 60 fps). Have just noticed an odd thing tho – when running the “see-through effect”, I noticed that the textures were rotating around the vertical, giving the impression that the buildings are spinning. Looks kind of weird! :P I’d also noticed that the city was always the same one, and the empty space in the middle. Still, it’s really cool and pretty, so now I have a new screensaver! :D

    Specs: My beat-up 3 y.o. laptop: Pentium M 2.0GHz, 2Gb ram, Geforce Go 6600 512Mb.

  106. tourist.tam says:

    Thanks to #94 ender: It did the trick.

    Running at ~20 FPS on a Vista Business 32bits, 2Gig of DDR2, Intel GMA945 after having renamed the file as recommended. Previous to that the latest build (1.0.11) was crawling at a mere 1 FPS. Any added eye candy effect still kills the fps to ~10 FPS.

    And of course thank you for sharing such a nice project all the way. :)



  107. ArchU says:

    I downloaded a while back but it didn’t start on my work laptop. Having loaded it on my home desktop and given it a test run I think it’s terrific. Works wonderfully but the bloom effect leaves some blocky textures on parts of the buildings, probably to do with the luminance of surrounding windows.

    The sudden appearance of some cars (you mentioned it as an optimisation) seemed a bit unnatural but the flyby proceeds quickly enough that it’s no big deal. Superb effort Shamus! =)

  108. ToonLup says:

    @Byran #78
    Thank you for your post.

    But how do i put those edits into my .scr file?

  109. Brandon Wang says:

    I got it on my computer and it runs at what I estimate 1/5 frames per second; no joke. It takes around seven seconds for each frame to show, and the loading process itself snags somewhere 80-90%.

    I have a gaming system, nVidia graphics chip, all the works: what’s going on? I can’t even run a screensaver?

  110. Joshua Barkdull says:

    How about you make a game where you’re a guy with a mini gun shooting out the side of a helicopter? Maybe make it against aliens or a monster running through the city or something like that.

  111. 2tm says:

    I run a four monitor setup on XP. I previously had my monitors arranged such that they were all in line, left to right 1440à—900, 900à—1440, 1440à—900 and 900à—1440. They were aligned horizontally to that XP gave the screen saver a 1440à—4680 box to render in. It rendered fine on my intel core 2 duo clocked at 3ghz through two PCIe NVidia GeForce 8600 GTS cards. I was getting about 30fps with bloom off, 15-18 with bloom on and it seemed to be rendering all the space that was in the 1440×4680 box that wasn’t actually on any monitor (space above the top and bottom of the two 900×1440 monitors).

    I just yesterday rearranged my monitors such that I’m using two of the monitors at 1440×900, one above the other, with a 900×1440 on either side of those two. After rearranging the screen saver only displays on two of the monitors, the left 900×1440 and the top 1440×900.

    The really odd thing here is that the progress circle that appears while the city is building renders on both of the 1440×900 monitors (it centers across the available space which puts the top of the circle on the top monitor and the bottom of it on the bottom one) even though the city itself will not render on the bottom monitor.

    I changed the rotation of two monitors when I rearranged things, rather than unscrewing the monitors from their stands to keep all of the monitors at their previous orientation I simply reset their orientation to fit the stands in the NVidia control panel. I suppose something in XP must be unhappy with this but I’m not really sure why. Maybe I’ll fiddle with it tomorrow, but I thought I would mention this since I find it a little odd.

    Nothing else has changed on my computer except for the rotation of two monitors and their respective positions in the display panel of XP but suddenly two of them no longer render the city, but do display the loading progress.

    I might try to get the code running and fiddle with it, but I thought I would throw this out there in case any of the people doing ports or just playing with it had any insight into this.

  112. PaulS says:

    Quick note to say that I started a Mac port over at BitBucket. It’s a bit basic at the moment, but it runs as a normal app.

    No screensaver just yet.

  113. GuruBuckaroo says:

    I can’t comment on the new version, but I tried the 1.0 release after hearing about it on facebook. I’ve got an old P4 3ghz, 3GB memory, Windows 7 RTM, nVidia 8600GTS 256mb, dual 19″ monitors at 1440×900, and it works like a charm. With bloom, I get about 29fps, without it about 60.

    I notice the Z-fighting, and I also notice that I’m not seeing as many “cars” as the demo – don’t know if it’s a distance calculation issue given the 2880×900 screen size or not, but only see them when they’re up close. Takes about 3 seconds to generate the city, load time is unnoticeable (less than 1 second).

    One other thing I’ve noticed is that some of the building names seem to get randomly obscured, and the way the obscured section moves is counter to the way an obstruction would block it. Only noticeable when the camera is moving sideways, as opposed to forward.

    Early work or not, though, I’ve got to say this is as elegant a piece of software as I’ve come across in some time. I will definitely be following (and if possible, helping) the further progress of this tasty morsel.

  114. NeilD says:

    Does anybody have a re-compiled version with the randomization corrected as Bryan notes in #78? I’d do it myself if I could, but it’s beyond me.

  115. Miral says:

    Any chance of an update? The Google Code project seems to have stagnated with several outstanding issues. (Including the randomisation thing.)

  116. Alaric says:

    My thanks for this project, sir, it gave me a nice coder squee :) My dual-monitor system doesn’t like the bloom effect much, but c’est la vie. Looks pretty darn snazzy, and my fiancee loves it!

  117. rob says:

    any chance you could release a version wherein the user can directly control the camera – rotate track and zoom like in 3d animation software ?

  118. Jochem says:

    Hey all,

    I had the same problem a lot of you have. Slow .05 fps, 1 min + loading, etc.
    Found a way to solve it, but you cant use it as a screensaver anymore. I know a little bit about screensavers because I made one myself once.

    You’ll have to do this:
    1. Rename PixelCity.scr to PixelCity.exe
    2. Create a shortcut to the .exe ‘screensaver’ (you can also use .bat files)
    3. Go to the shortcut properties, and add behind the file path ‘-s’, without the quotes of course.
    4. Dubbleclick the shortcut (or .bat file).

    There you go. A shame you cannot use the program as a screensaver, but you can put it on while reading a book, or listening music or whatever you’re doing next to your pc.

    (background info:)
    The reason what makes some machines slow, is probably that their (also mine) drivers/hardware, handle screensavers different than the usual programs/games. I thought about this because I ran into trouble before with my program when a screensaver started, I lost all my saved textures/backgrounds.

    If you like, Shamus, you could make a new post about it to inform everyone about this method (if you receive positive comments on my post)

    Happy 2011 everyone, and enjoy PixelCity (Procedural City or what it’s real name is.. ;) ) !!

  119. Aescula says:

    Hi. Forst of all, I apologize for the year-and-a-half-late comment, I only just found this.

    It’s an epic screensaver, except for one problem… my conputer won’t rebuild the city. Rather, it won’t change the random seed. Not when I press R, not when I kill it and start it back up… It always has HealthCo right there, and Aerospace Unlimited off thataway. It’s the same cit, every time. Any ideas?

    Running Win7 x64, laptop. Runs smooth aside from above problem

  120. Dan says:

    I love it! thanks!

  121. Flemming says:


    First of all, this screensaver is great judging from the youtube video.

    However, on my Win7, 64bit, it’s really running badly. Load time (from 51% to the next step) is about 3 minutes. And when it’s finally displaying the graphics it’s about 3 minutes between each frame.
    When I want to exit the screen saver, the reaction time is about 30 seconds.

    I’m suspecting this is due to some unhandled exceptions in the code, perhaps specific to some emulated instructions on some of the newer CPU’s.

    Any possibility that you will put some effort into fixing this issue? If so, I’ll be happy to do testing for you.

    Best regards…

    1. sofawall says:

      I can manage to run it totally fine on an i5-2500k, Win7 64 bit, so it’s not just a “new processor” thing.

  122. DrTall says:

    Really cool stuff here! Thank you for all the detail in the posts about design processes, including the stuff that didn’t work. And of course for the source! Thanks!

  123. GreatWyrmGold says:

    I’m not sure if there’s a compatability problem between Pixel City and Windows 8 or if I screwed up the copy-paste, but this doesn’t seem to work on my computer.

    It’s generating cities and stuff, but the display is wonky, with inexplicable glowy lights detracting from the city and less than one frame per second.

    Don’t expect much if you’re using a newer machine. If you get more, great, but if not…

  124. Blue_Pie_Ninja says:

    @GreatWyrmGold I have Windows 8.1 and I have only seen one problem with this, occasionally on some buildings the lights/textures will move horizontally for no particular reason and looks really off-putting. I'm fairly sure this is a bug.

    Also, does your 1.0.11 or whatever build have all the revisions Shamus? I downloaded it and I am not sure if all the revisions are included.

  125. Disassembler says:

    This is so cool. I know I’m way late to the party, but I just found this and love it.
    I am inspired to go write some OpenGL code.

    I too noticed the same city was appearing each time and started
    poking around. I found this in World.cpp:
    //Re-init Random to make the same city each time. Helpful when running tests.
    RandomInit (6);

    Disassembled, it looks like this:

    0040E26C 6A 06 push 6
    0040E26E E8 AD B5 FF FF call 00409820 ; RandomInit(6);

    If you’re like me and don’t happen to have the stuff to recompile immediately
    handy but want random cities, poke 5 90s in at E26E over the top of the
    E8 AD B5 FF FF bytes using your favorite hex editor to disable the seed
    re-init and allow every city to be random again. Leave the push 6 in place
    because the caller is cleaning up the stack.

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun. Your email address will not be published. Required fields are marked*

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>

Leave a Reply

Your email address will not be published.