Procedural City, Part 1: Introduction

 By Shamus Apr 13, 2009 148 comments

Change of pace. In the last week I’ve had an idea clawing at the back of my head, and it’s clear the thing isn’t going to leave me alone until I do something with it. I don’t usually blog about my little programming projects (with the exception of the Terrain Project) because I like to imagine this site has some sort of focus, but the choice here is for me to blog about this or leave the site fallow for a week. So I’m blogging it. Perhaps you’ll find it entertaining anyway.

Motivation

There are several reasons for wanting to do this.

It's comical now, but this was a real eye-grabber in 1996.
It's comical now, but this was a real eye-grabber in 1996.

Way back in my early days of 3D development a lot of my work was focused on creating effects or finding tricks to make it look like there is more to the scene than what is really being rendered. A lot of work was being done by game companies to simply push the technology as far as it would go, but I enjoyed getting halfway there with technology and then going the rest of the way with a good facade and some lighting tricks. The techniques I used in the mid 90′s would seem laughably simplistic and trivial today, but at the time I remember getting a lot of “How did you do this?!?” type reactions to my work.

For example: I wanted to make a city, but the scene just couldn’t render things at a great enough distance to give you a “big city” feel. It just felt like a handful of big boxes next to each other in the middle of a featureless plain. So I set the city at night, scaled the buildings down so that they weren’t really much bigger than houses, and slightly pinched the tops of them so that the top of the (apparent) cube was smaller than the base. The reduced scale let me get a lot of buildings close together, the night lighting let me suggest more detail than was really present, and the skewed shape created a false impression of height. (The eye wanted to believe that these building-ish objects were cubes, and so when you looked up it made them seem taller than they were.) The scene was pretty astounding in 1996, although I doubt it would impress anyone today.

This sort of thing was an unusual blend of technical and artistic work, and I enjoyed it immensely.

l4d_buildings.jpg
In a section of the Left 4 Dead commentary (near the very end of the initial No Mercy level) one of the developers draws attention to an apartment building in the distance. He explains that it’s a very simple building with little detail, but because it’s mostly a silhouette against a detailed sky, the eye accepts it and your mind fills in details that aren’t really there. This reminded me a great deal of my old work, and got me itching to do some of that sort of thing again.

My new graphics card is ridiculously powerful. While I’m working less and less with graphics these days, on the rare occasions where that sort of work crops up it’s still focused on getting more out of widely adopted low-end technology. So I haven’t worked with much new technology. (“New” being very relative. For me, anything younger than a kindergartner is new.) This makes me some sort of cutting-edge Luddite, pushing the limits of stale technology.

CPU’s have stagnated a bit over the last few years while GPU’s have continued to accelerate. (No pun intended.) This has moved a lot of the old bottlenecks around. I think it would be good for me to get to know one of these recent GPU’s and see what it’s like to work with them.

And finally, I love procedural content, but I never get a chance to work with it.

Goals

1. The goal is to make a nighttime cityscape that is mostly made of lights and suggestions rather than real detail.

2. The city will be entirely procedurally generated. That is, the program will contain no art assets. No textures. No models. Everything must be built from scratch at startup.

3. I’m budgeting a week of nights and weekends for the project. So, probably about 30 hours of time total.

4. I’m going to use only conventional rendering. While I’d love to muck about with pixel shaders and see what the new ones can do, I haven’t messed with that sort of thing since 2006. Just getting up to speed on the subject would blow my entire time budget. (Pixel shaders are special programs that run on your graphics card instead of on your “computer” with all of your other software. They are strange, amazingly powerful, and difficult to master.)

5. I’m aiming for something that will run on a broad range of machines. This will be a little tricky, since my current machine is pretty beefy compared to the average. (I’m talking about the average windows-based PC, not the average gaming computer.) It’s much easier to develop on an old machine than to develop on a new one and try to guess where the bottlenecks will appear when run on old hardware. All of our older machines around the house have been converted to Ubuntu, and running under WINE wouldn’t make for a very useful benchmark. So this goal will be difficult to judge. The best I can do is aim for the program running at at least 100 frames per second on my PC and hope that it can still manage 25 or so on an older machine. Even this is pretty dicey, but it’s the best I can do for now.

I don’t know what I’ll do with the program beyond the goals above. Give away the source? Turn it into a screensaver? Add more features? We’ll see where the project takes me and how interesting this is to people.

Getting Started

The first step in a project like this is to make a simple program to open a window, start up OpenGL, and provide some basic camera interface so that I’ll be able to examine my work. This involves gathering up a lot of boring boilerplate code, creating the project files, and adding a bunch of not-very-interesting low-level systems. The result is not very compelling:

pixelcity_base.png

Sorry for dragging you all this way only to show you an empty window, but this is how it often goes. I’ll make sure to have something more compelling to show you next time around. This series will run all week, assuming everything goes to plan.

A Hundred!20208We've got 148 comments. But one more probably won't hurt.


1 2 3

  1. Guus says:

    Sounds very interesting. For me, your terrain project allowed me to take a look into the world of programming, in a way that wasn’t as boring as a manual or as utterly baffling as a conversation between two programmers.
    And I’m curious as to what you can do with your new card, so I’ll be following this!

  2. Elliot says:

    1. Make Procedural city
    2. Implement basic character movement + crackdown Jump
    3. Litter with agility orbs and set up high score table for collection speed.
    4. ?????????
    5. Profit

  3. Mark says:

    Good luck with this, Shamus. I find procedural content generation fascinating.

    Have you seen Introversion’s Subversion project? They’ve been getting pretty hardcore with procedural city generation, albeit along a different axis from how you’re doing it.

  4. Fergle F Fergleson says:

    This sounds extremely interesting to me. PLEASE keep up with the blogging about it.

  5. Carra says:

    Always liked the idea of procedural content. Did find the terrain project a nice read too.

    But then again, I’m a programmer :)

  6. Larryboy says:

    I’m excited to see where this goes. I write code on a daily basis (but for physics research) and have never really played with graphics or procedural stuff before. Should be really interesting and I look forward to seeing what comes of it.

  7. Chris says:

    I’m really looking forward to reading about this! Your Terrain series was what got me started reading your blog, so I’m always excited to see new programming sections/ideas.

  8. ngthagg says:

    This should be interesting. The terrain project was pre-DMoTR, with the limited commenting to match. With this project, I expect some of the comments will be as interesting as the original post.

  9. Factoid says:

    I second Mark’s link to Subversion. If you haven’t played any of Introversion’s games, you’re missing out. They’re delicious little indy titles. All available on steam or direct from the company. They show up on sale on steam from time to time, especially Darwinia.

    Uplink is not a particularly polished or technically excellent game, but it delivers a lot of OCD type of fun. There are some third party mods which really give it a boost.

    Darwinia is their second game and it is sort of a real-time strategy version of Tron, only with a completely original story, for whatever good THAT description is worth.

    Defcon is basically a playable version of Global Thermonuclear War from the movie Wargames.

    Their next game is a multiplayer version of Darwinia, which hasn’t been selling well, but I think that’s because a lot of people like me are waiting to play it on XBLA.

    Nobody really knows what subversion is yet, except that it involves a lot of procedural city generation and items in the city will be controlled via (I think) LUA scripts at the object level. They haven’t so much as hinted at what the gameplay will be like, but my guess is that it will be a simulation game where you get to be the “hacker” from the movies who hacks into building schematics and opens doors and shuts off alarms and stuff. Just a guess, though.

  10. Noggy says:

    Have you considered the procedural city generation from .theprodukkt?
    http://www.theprodukkt.com/debris/
    I think you mentioned them on this site before.

  11. Julian says:

    Next year I’m starting an Ingeniería en Informática career (eh… Informatic Engineering? I think it’s called Computer Science in the States. It’s a lot like software engineering, but it also deals with robotics, machinery and stuff like that.) so I find this very, very interesting.
    Oh, and I don’t know if you’ve posted this already, but what graphics card do you have right now?

  12. Telas says:

    I really don’t have the chops to even comment intelligently on this, but it somehow reminded me of this little (tiny) app that was my screensaver forever…

    Drivey – a sub-300KB driving simulator.

    I love tinkering; I often find out more by just poking around than by structured education.

  13. gorthol says:

    Actually, WINE might not be such a bad idea for performance testing. I hear World of Warcraft loads and runs faster under WINE than it does under Vista (though that’s not saying much).

  14. edcalaban says:

    Mark beat me to it, but check out Subversion. Especially some of the videos of it actually generating a city. So beautiful.

    Also, did you hear about Demigod and Gamestop (once again) breaking street date? Most recent stuff here.

    Edited for html fail.

  15. JMcNeely says:

    Looking forward to this series. I enjoyed your terrain series when I went through your best posts section. Any time I find a blog or article on programming that isn’t written in archaic notation I eagerly read it. With that said, I’ll sit back and enjoy reading the articles and the comments.

  16. Carra says:

    That theproduckkt demo is brilliant again! Should add a
    7. Limit the exe to 64 kb to show those boys how it’s done.

  17. Dev Null says:

    I’m sure you’ve thought of this already Shamus, but just in case…

    I’ve noticed that one of the big differences between _real_ cityscapes at night and images like the one you posted from L4D is that truly distant buildings in real life tend to show up as nothing but lights, while in games the artists never seem to be able to cope with the idea of people not being able to see the rectangles they’ve lovingly crafted. They make the night sky too light so that they’ll show up. Of course this applies fully only to the truly distant buildings, which paradoxically most games go out of their way to not show you in the first place by making the streets unnaturally twisty and convoluted (when they could be not showing them to you because its too dark, but then they’d have to render any lights….) Things in the middle distance are more fuzzy-edged, snapping into clarity in small patches where they occlude something bright or are right next to a lit window.

    Given all that, I imagine that there is a lot of room for sneaky savings of the type you mention in a city with broader vistas (long straight streets, or hills) by simply procedurally generating the lit windows and/or signs are in the distant buildings at random and only rendering them – probably as point-sources of light only – maybe leaving some special code for rendering obvious major landmarks in the same location, Eiffel-tower-like. Course that may be beyond the scope of a 30-hour project, and maybe you’d still have to plot too many polygons just to work out where the lights go? I dunno, but the idea interested me, so I thought I’d mention it.

  18. Tolmar says:

    I’ve been playing with graphics hardware a lot recently, and it’s amazing what you can convince a GPU to do.

    I recommend you look into stencil buffers. They’re simpler than shaders, everybody’s got one, and they’re horribly underestimated. I just did shadow volumes in them, for example.

    Not sure what you’d do what you’d do with them in your project, but since they’re great for rendering a scene with varying lighting and you want to use lighting effects, it seems like a good fit.

  19. wererogue says:

    I’m going to enjoy this. I *loved* the terrain series of posts :V

  20. DaveMc says:

    I’m looking forward to this series! I really enjoyed the terrain generator posts, and I imagine this will be equally interesting. But, uh, no pressure. :)

  21. LintMan says:

    Sounds like a really interesting project. I’m looking forward to this series.

  22. vdgmprgrmr says:

    Randomly generated city? Beautiful.

    And now you’re doing it again? Even more beautiful.

    I have a fetish for procedural generation, so I think this next week will be totally awesome for me.

    I have a request, though, Shamus. After you make your city generator, you should add zombies. (And a few basic weapons, and a simple health meter.)

    You see, the zombie shooter with procedural cities is the zombie game that I have wet dreams about, and now you, inspired by L4D, are making a procedural city generator.

    Please, Shamus. I will love you forever.

  23. RedClyde says:

    Actually, since I’m coursing Computer Science in college, this will be very interesting to me. And that nighttime cityscape you made in 1996 is still no small feat to me; at the level I’m at, I still wouldn’t even know where to start to get something like that (OpenGL? DirectX?).

  24. Nathon says:

    Maybe there’s something obvious that I’m missing, but why not run it natively on the Ubuntu boxes? Mesa is the open source implementation of OpenGL I used when I was tinkering with it and it works peachily on Linux.

    • Shamus says:

      Nathon: Mostly because I have 15 years of Windows developemnt experience and zero Linux experience.

      OpenGL itself is open, so that rendering code should be portable, but the window creation and interface stuff is going to be explicitly MS Windows specific.

      I really wish there was a nice set of open-source wrappers so that I could write code that would have a reasonable chance of being portable. Then I could put it out and inevitably a Smart Linux Person would be able to come along and make it go.

      • Asmageddon says:

        There is SDL, which is pretty simple to use, which gives you everything needed to make a game. And it’s cross-platform.
        Unless you for some reason use additional windows libs, that is.

        Besides: Programming on Windows? Wow, I don’t think I could do that :D

  25. Yar Kramer says:

    I second vdgmprgrmr. Why settle for procedurally-generated zombie-swarms and item-positioning in pre-made locations when you can procedurally generate the locations as well!? I mean, I honestly don’t really notice the “differences in zombie-swarms” very much, all I know is “Okay, I’m familiar with this location, and around here and here there’s going to be either a Witch or a Tank …”

    In fact, go a step further and create an entire free open-source alternative to Left 4 Dead, entirely procedurally-generated! I mean, sure, you’d need to have some pre-made set-pieces and make something more original for the special/boss infected, but for a writer like you that’ll be a non-issue! And then we’ll BRING VALVE TO THEIR KNEES! MWAHAHAHAHAHA! … *cough* Sorry.

  26. SatansBestBuddy says:

    I predict: at least 3 separate disasters, or mishaps that could be called disasters, happening before the end of the week.

    I predict: the last post will show off the pretty cool results, but not all of the ideas had will be implemented for the sake of time.

    I predict: at least 1 case of writers block, which can happen when you’re coding if only because they both use the keyboard.

    And finally, I predict that this will be a series worth keeping an eye on.

  27. Mark says:

    Made entirely of lighting, huh? Reminds me a bit of Drivey, though they’re obviously quite different.

  28. This is relevant to my interests. Curious to see where it goes from here.

  29. Mark says:

    Shamus, if you’re looking for a portable window-manipulation library that supports OpenGL, I happen to know of one: wxWidgets, which has been ported to approximately a zillion operating systems. Open source and everything. It is exactly what you described.

  30. krellen says:

    I really wish more graphic artists spent time taking advantage of the fact that our brains are far better graphical processors than anything on the market (or anything that will be on the market in our lifetimes) and employ those sorts of imagery tricks that work so well. I always love seeing something that at first, second, or even third glance looks highly detailed and realistic and coming along to realise that it’s actually a trick, and then finding out what the trick is. It’s fascinating, and allows more time to be spent on tasks that actually matter, rather than trying to recreate millennia of art design and replace the most powerful processor in the world: the human mind.

  31. Yar Kramer says:

    I think krellen makes a pretty snazzy point there. I’m pretty sure Shamus has mentioned it before — that tendency to go OMG SNAZZY GRAPHICS WITH PIXEL SHADERS AND PHONG SHADING AND ALL THAT, and then they never do anything that looks interesting to the casual (i.e. non-gamer) observer because it’s all browns and greys.

  32. I second that you are much better off writing on a portable abstraction such as wxWidgets or the superior Qt. Or even just SDL. It may be that learning them takes too much of your budgeted time, but if all you’re doing is getting some mouse coordinates and keyboard input, it will take all of 5 minutes to copy an example. The payoff is that you will have portable code you can compile and run on your Linux, Windows and Mac machines, and so can get a much wider user and test base.

  33. Kronski says:

    If you wrote a book on how to do this stuff, I would buy ten copies.

  34. Derek K. says:

    I have to say that your current rendering of martian people fleeing from a driving acid rain under a green kryptonite shield to be amazingly beautiful. I think you should just stop there – nothing can top it.

  35. Bryan says:

    Re: the windowing code being explicitly Windows-specific:

    Yeah, it was in the terrain project too. I spent a couple weeks a while back trying to port that to Linux (bare X/GLX: no toolkit, because I had decided it looked too hard to mash the Windows layer into any of them at the start :-( ). I was never actually able to get it to render anything; the entire design ended up being too Windows specific.

    It’s much harder to port something that’s already been designed to a different architecture. It’s much easier to design it to work with something like wxWidgets or gtk+ (…assuming it has a GL widget, which I think is an addon) or qt in the first place, and not have to worry about having to redesign it while also attempting to port.

    But separate from that, it would be nice to see the code as it is at each stage of the program. That should make a port easier, because if the first day’s worth of code is all that needs to be changed (just getting a window and GLX context up), it’s easy to apply day-to-day diffs to that code later.

    It’d be even nicer if my ISP wasn’t retarded, and I could get Internet access without using the flaky citywide wireless… Boo.

    Anyway, the short version: I’d like to try to port this to Linux native OpenGL. Dunno if I’ll be able to, though, but having the code at each step will help. :-)

  36. MaxEd says:

    Very interesting project! I’m also interested in generating various things procedurally, though I never actually tried doing it seriously.

    We’ll see where it ends and plunder results if possible :)

  37. Zukhramm says:

    This sounds like a very interesting project, and like everyone else I’m really looking forward to seeing more.

  38. “I really wish there was a nice set of open-source wrappers so that I could write code that would have a reasonable chance of being portable. Then I could put it out and inevitably a Smart Linux Person would be able to come along and make it go.” – Shamus

    Actually, this would be a legitimate use of wine! You can write for windows, but just test against wine. Most windows software works in wine, so if you just test against it, it should be easy to make software that will run well on linux. You could probably get lots of free testing from your readership ;) (myself included)

    Please keep up this project. I have been a huge fan of procedural since I saw the works of http://www.theprodukkt.com/ many years ago (including the 96kb first person shooter).

  39. TSED says:

    I’m very very very interested.

    I’m amused because I’ve been slowly working on a big programming project myself. The biggest time eater? Learning how to.

    Anyways, long and short, it’s a turn-based Superhero RPG, and I am 99.9% positive reading over your shoulder while you do this will give me some ideas and / or tips and tricks. Heck, just going back and rereading your terrain project last week did a bit, though I am still approximately nowhere with the project.

    Anyways, since I was planning on making residential districts procedurally generated and rather quest-empty (you can go there just because you want to) I’m curious to see how a talented and experienced programmer does it with much more complicated goals in mind.

  40. Scott W. says:

    Hey, isn’t that the Metaverse section of ActiveWorlds? You did that?

    Neat!

  41. Ian says:

    Screensaver! Though I’m trying to find a nice one for a three monitor setup now…

  42. Rattus says:

    Good idea,
    i hope this will last until the L4D SDK is out and we can expect some nice MOD for generating the next level on-the-fly.

    I enjoyed the terrain project blog very much and look forward to this one also. Being “can-code-but-does-not-have-will-to-do-so” type i enjoy reading about other people projects and dev blog/diary is great stuff.
    *THUMBS UP*

  43. Alan says:

    Well I am not a programmer, but I did enjoy reading the series on the terrain project.

    I don’t intend this to be a ‘Yay cool idea’ comment, so I will try to offer some thoughts.

    I occasionally need to employ programmers, so one of the things which interests me about this post is the way that I get to see the decision making process that goes behind making shiny things on the ‘puter work.

    I think that this blog holds one of the best people to do this kind of explanation, because there are few people who have the knowledge of how to do something this technical, and yet explaing it in a way that meakes sense to us non-technical people, and very importantly: in a way that is easy to read.

    Cheers.

    P/s Yay cool idea.

    PPS/ Irregular webcomic has set up a poll asking what the SECOND most important consideration when programming is:
    http://irregularwebcomic.net/

  44. Nathon says:

    Actually, have you considered linking against winelib? It’s just an open source implementation of the win32 API under Unix. From my understanding, you just take your source code for the windows program and compile under *nix with it. If you can’t be arsed because playing with new build processes would eat up too much of the alotted time, and you end up posting code, I’d be willing to try it.

  45. Cybron says:

    Sounds like a fun project Shamus. Good luck!

  46. JP says:

    This is going to be great! I love these sausage-making glimpses into guts of game making. More please! Do you know anything about AI? That would awesome, too!

  47. dagnabit says:

    Your Terrain Project is what brought me here in the first place, so I for one will be glad to see more programming-related content showing up now and again.

  48. [...] unlike last week, I’ve found some purpose and direction for my life again!  Inspired by a series of posts at the Twenty-Sided blog, I finally figured out a way to pick up my old programming project. I’m actually taking it in [...]

  49. Stuart says:

    I love these escapades into programming, I can only speak for myself but it would be cool to see more of this :-)

    (or even just a list of projects with a brief description of the idea- I always enjoy reading about what people are working on)

  50. Rohit says:

    Iam new to this blog,but your work seems very interesting to me…thanks for taking your time to write about this.I really enjoy your posts on the escapist magazine.

  51. [...] Pixel City – Procedurally generated city: wie baue ich mir meine eigene pixelstadt? das bringts glaube ich ganz gut auf den punkt, ohne groessere umschweife. das geschieht natuerlich auch in der virtuellen nachts, weshalb haus-, strassen und autolichter natuerlich von bedeutung sind. aber schaut euch das video an und wer gefallen daran findet kann sich auch die entsprechenden blogartikel des machers dazu durchlesen. [...]

  52. [...] Shamus Young) a realizat un program care se folosește de algoritmi procedurali pentru a genera un oraș virtual tridimensional. Pe website-ul lui este descris procesul mai detaliat, pornind de la motivație și obiective,  [...]

  53. Adrian says:

    Found your site through reddit -> youtube. Great work!

  54. chris says:

    Awesome!!
    Things to consider consider:
    1) taillights are usually less bright than headlights.
    2) Also headlights tend to ‘cast’ some light on things in their path.
    3) Cars should turn corners occasionally.
    4) street level lit up signs (like above pizza places etc ).
    5) stop lights ? ( controls cars ? )
    6) many cities have boundaries defined by water….. NYC, SF, Rio, Hong Kong. Syndey.

    Can you package this as XScreensaver thingie?

  55. [...] can read Shamus’ development diary in its entirety here, or download the Windows screensaver file here. Oh, and thanks to the dudes at @DenkiGames for [...]

  56. Simplotter says:

    I’d love to be able to program little agents with a variety of basic behaviors, then clone thousands of them and let them loose in the city.

    Anyway, well done, this was awesome!

  57. Jack says:

    Hi Shamus,

    This is very awesome, just saw the YouTube video. You ask if this stuff is any use. I know that at my university in Switzerland a start-up was recently founded in the procedural city generation scene, they are pretty successful.

    See here: http://www.procedural.com/

    Best of luck to you. Keep up the great work.
    Jack

  58. Blue City says:

    I had a dream about 3 years ago… I was walking around a city of lights and chatting with people. o___O’
    I ended up in a Virtual Church on a hill over-looking the city, your project reminded me of that dream.

    I’d love to see more details in the city, all random ofc.
    Sure makes an awsome Screen Saver too!

    Good Job!

    I always liked to visit cofmeta, it was very inspiring.

  59. [...] Procedural City, Part 1: Introduction – Procedural City, Part 2: Building Textures – Procedural City, Part 3: Generating Buildings – [...]

  60. [...] Procedural City, Part 1 The goal is to make a nighttime cityscape that is mostly made of lights (tags: 3d graphics howto 3d-textures) [...]

  61. Fred says:

    Best of luck to you man! This looks awesome! :D

  62. [...] Pixel City is a procedurally-generated city by Shamus Young. For the non-coders out there, this essentially means that based on a certain set of rules, this 3-D city is generated dynamically each time the program runs. Here, the video that shows the Young’s process will make it more clear: [...]

  63. [...] City: Computer-generated City Nathan @ flowingdataOn May – 14 – 2009 Pixel City is a procedurally-generated city by Shamus Young. For the non-coders out there, this essentially [...]

1 2 3

65 Trackbacks

  1. By New Project! « A Thousand Miles Away on April 21, 2009 at 12:35 am

    [...] unlike last week, I’ve found some purpose and direction for my life again!  Inspired by a series of posts at the Twenty-Sided blog, I finally figured out a way to pick up my old programming project. I’m actually taking it in [...]

  2. By licht^3 « murdelta on May 2, 2009 at 6:07 pm

    [...] Pixel City – Procedurally generated city: wie baue ich mir meine eigene pixelstadt? das bringts glaube ich ganz gut auf den punkt, ohne groessere umschweife. das geschieht natuerlich auch in der virtuellen nachts, weshalb haus-, strassen und autolichter natuerlich von bedeutung sind. aber schaut euch das video an und wer gefallen daran findet kann sich auch die entsprechenden blogartikel des machers dazu durchlesen. [...]

  3. By Orasul procedural | Mâţu' on May 5, 2009 at 10:05 am

    [...] Shamus Young) a realizat un program care se folosește de algoritmi procedurali pentru a genera un oraș virtual tridimensional. Pe website-ul lui este descris procesul mai detaliat, pornind de la motivație și obiective,  [...]

  4. [...] can read Shamus’ development diary in its entirety here, or download the Windows screensaver file here. Oh, and thanks to the dudes at @DenkiGames for [...]

  5. By Como desarrollar una ciudad en 3D on May 6, 2009 at 2:40 am

    [...] http://www.shamusyoung.com/twentysidedtale/?p=2940 Etiquetas de Technorati: [...]

  6. [...] Procedural City, Part 1: Introduction – Procedural City, Part 2: Building Textures – Procedural City, Part 3: Generating Buildings – [...]

  7. By links for 2009-05-06 « POPMODERNE on May 6, 2009 at 8:32 pm

    [...] Procedural City, Part 1 The goal is to make a nighttime cityscape that is mostly made of lights (tags: 3d graphics howto 3d-textures) [...]

  8. [...] Pixel City is a procedurally-generated city by Shamus Young. For the non-coders out there, this essentially means that based on a certain set of rules, this 3-D city is generated dynamically each time the program runs. Here, the video that shows the Young’s process will make it more clear: [...]

  9. [...] City: Computer-generated City Nathan @ flowingdataOn May – 14 – 2009 Pixel City is a procedurally-generated city by Shamus Young. For the non-coders out there, this essentially [...]

  10. [...] Shamus Young hat über 50 Stunden darin investiert, eine prozedural generierte, also komplett dynamisch on-the-fly zusammengestellte Stadt zu programmieren und diese schliesslich als Screensaver (leider bislang nur für Windows) an die Weltöffentlichkeit weiterzugeben – einfach nur so, zum Spass. Respekt. [...]

  11. [...] Una enorme ciudad generada dinámicamente a partir de ciertas reglas. Es fascinante. ♥ La explicación paso a paso de cómo funciona. [...]

  12. [...] been doing the rounds, I thought I should share. If you want to know how it’s done, you should turn to the developer’s enormous diary of its development. If you want to know what it does, you should look at the video beneath the cut or consider [...]

  13. By Pixel City | Design | Tech | Culture on May 15, 2009 at 6:01 pm

    [...] City is a procedurally-generated city by Shamus Young. For the non-coders out there, this essentially means that based on a certain set of rules, a 3-D [...]

  14. [...] This is a step-by-step demo of a dynamically generated “big city” by Shamus Young. It’s long but worth it. More geekily fascinating info here. [...]

  15. [...] creating a night-time cityscape … check out the video here and the in-depth explanation at shamus young’s website [...]

  16. By Process Engines « Innocent Bystanders on May 15, 2009 at 8:01 pm

    [...] For the über-geeks amongst us, the author’s description of how he developed the program starts here. [...]

  17. [...] This cool video shows how programmer Shamus Young created a procedurally-generated 3D nighttime cityscape. The program generates everything every time it runs, and doesn’t use any pre-stored textures or art assets. He gives a great step-by-step explanation of how he did the project in a series of blog posts. [...]

  18. By Procedural Content Generation: Pixel City on May 15, 2009 at 9:41 pm

    [...] Procedural City, Part 1: Introduction Procedural City, Part 2: Building Textures Procedural City, Part 3: Generating Buildings Procedural City, Part 4: City Planning Procedural City: Intermission Procedural City, Part 5: Fixes Procedural City, Part 6: Sky Procedural City, Part 7: The Street-Level Trap Procedural City, Part 8: Optimization Tests Procedural City, Part 9: Speeding Things Up Procedural City, Part 10: More Performance Procedural City, Part 11: Demonstration Video Procedural City, Part 12: Finishing Touches Procedural City, Part 13: “Release” of Program and Source Procedural City, Part 14: Feedback and Assessment page_revision: 5, last_edited: 1242437623|%e %b %Y, %H:%M %Z (%O ago) editrate (0)tagsdiscuss history files print site tools+ options edit sections append backlinks view source parent block rename delete help | terms of service | privacy | report a bug | flag as objectionable Hosted by Wikidot.com — get your free wiki now! Unless stated otherwise Content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License Click here to edit contents of this page. Click here to toggle editing of individual sections of the page (if possible). Watch headings for an “edit” link when available. Append content without editing the whole page source. Check out how this page has evolved in the past. If you want to discuss contents of this page – this is the easiest way to do it. View and manage file attachments for this page. A few useful tools to manage this Site. See pages that link to and include this page. Change the name (also URL address, possibly the category) of the page. View wiki source for this page without editing. View/set parent page (used for creating breadcrumbs and structured layout). Notify administrators if there is objectionable content in this page. Something does not work as expected? Find out what you can do. General Wikidot.com documentation and help section. Wikidot.com Terms of Service – what you can, what you should not etc. Wikidot.com Privacy Policy. _uacct = “UA-2059804-6″; urchinTracker(); _uff = false; _uacct = “UA-68540-5″; _udn=”wikidot.com”; urchinTracker(); _qoptions={ qacct:”p-edL3gsnUjJzw-” }; [...]

  19. By Pixel City « Wherewithal on May 15, 2009 at 10:09 pm

    [...] have to admit that I was riveted to the posts (here’s the first entry).  The process is fascinating, and Shamus’ writing is rather entertaining.  [...]

  20. By REYNALD DROUHIN » Pixel City / Shamus Young on May 16, 2009 at 1:19 am

    [...] Procedural City [...]

  21. [...] El resultado es bastante espectacular: en total incluye unos 1.600 edificios generados aleatoriamente y 43.000 polígonos. Está programado en OpenGL con MS DevStudio 6.0. «Construir» la ciudad requiere unos 5 segundos. Su autor, Shamus Young, dedicó al proyecto unas 50 horas en total a lo largo de poco más de una semana. En su blog explica todo el proyecto con enorme detalle: Procedural City. [...]

  22. [...] años o menos) como screensaver para Windows. Este procedimiento es creado y explicado a detalle en 10 pasos por el creador Shamus Young, al que le tomo 50 horas de [...]

  23. [...] Pixel City is a procedurally-generated city by Shamus Young. For the non-coders out there, this essentially means that based on a certain set of rules, this 3-D city is generated dynamically each time the program runs. Here, the video that shows the Young’s process will make it more clear: [...]

  24. By No title on May 16, 2009 at 1:27 pm

    [...] años o menos) como screensaver para Windows. Este procedimiento es creado y explicado a detalle en 10 pasos por el creador Shamus Young, al que le tomo 50 horas de [...]

  25. [...] d’un programme écrit par Shamus Young pour générer une ville [...]

  26. [...] bien si lo deseas, acudir a la web del autor del vídeo. ▶ Comment /* 0) { jQuery(‘#comments’).show(”, change_location()); jQuery(‘#showcomments [...]

  27. By The Night Parade » Pixel City on May 16, 2009 at 8:03 pm

    [...] software engineer named Shamus Young over at his blog. In them he described his process of creating Pixel City, which is basically a procedurally generated city scape set at [...]

  28. [...] Ciudad Procedural [...]

  29. [...] Shamus Young. [...]

  30. [...] You can read the step-by-step of how it was made at his website. [...]

  31. [...] Nouveau sur Crowded.fr ? Vous pouvez vous inscrire au flux RSS pour être toujours à la page.Shamus Young a passé 50 heures à créer un paysage de ville nocturne sans aucun détail réèl et sans [...]

  32. [...] Young’s goal was to make a nighttime cityscape that was mostly made of lights and suggestions rather than real detail. [...]

  33. [...] Procedural City, Part 1 is a detailed, first-hand guide for developing 3d worlds with procedural content. window.onload = function(){prettyPrint();}; [...]

  34. By Keine Kosten gescheut - daheads blog² on May 19, 2009 at 12:41 am

    [...] Auf Shamus Youngs Blog “Twenty Sided Tale” gibt es einen längeren, durchaus interessanten Artikel zum Thema “Gestalten einer 3D Welt” mit OpenGL.Hauptsächlich versucht er, getreu dem Zitat von Douglas Adams “Little expense had been spared to create the impression that no expense had been spared.”, eine reichhaltige 3D Welt ohne viel Inhalt zu erstellen.Der mehrteilige Artikel findet sich hier [...]

  35. [...] PixelCity is a fascinating 3D scene, dynamically created based on rules. For more information background of this project, and all his thoughts and experiments in the process, read through the very detailed explanations on Shamus Young’s blog. [...]

  36. [...] 19, 2009 · No hay comentarios Una ciudad generada digitalmente por Shamus Young… para divertirse, así como de onda.  Tranquila onda!  En su blog explica el proceso en [...]

  37. By Prozedurale Stadt « Der Mediaserver-Blog on June 22, 2009 at 5:32 am

    [...] Partikel/Echtzeit-3D Geschichte rumzuhacken, hab ich grad diesen interessanten Artikel gefunden: Procedural City.  Da hat doch tatsächlich einer eine Stadtszene geschaffen, nur per mathematischen algorythmen [...]

  38. By The Procedural City « Ireneo’s Memory on July 25, 2009 at 10:01 pm

    [...] The Procedural City July 26, 2009 at 2:01 am | In Animation, CG | Leave a Comment Tags: Animation, CG, procedurally-generated A city made entirely from procedurally-generated content (with extensive explanation here). [...]

  39. [...] His name is Shamus Young, and you can read the step-by-step guide of how he created it at his website. [...]

  40. [...] with some interesting links to further stories. Especially noteworthy is the game Subversion, the procedural city from Shamus Young of the DM of the Rings webcomic. Also Viktor Antonov, designer of City 17 is also [...]

  41. [...] Itt kezdődik a kaland. [...]

  42. By VBP » PixelCity on September 8, 2009 at 3:37 pm

    [...] stom toeval kom ik op de website van Shamus Althans, niet direct op zijn website maar op een blog van hem. Deze meneer had een idee om met zo [...]

  43. [...] a dynamically generated city. You can read the step-by-step of how it was made at my website: http://www.shamusyoung.com/twentysidedtale/?p=2940 [...]

  44. [...] an artistic flair. I’m a good example of the latter, which is why I was able to pull of the Procedural City. (With apologies for the excessive ego for the previous statement, but I really do think this is an [...]

  45. By Random Best of 2009 « Z303 on December 31, 2009 at 4:30 pm

    [...] Pixel City In a former life I did lots of procedural generation (mostly terrain and planets), so seeing this very cool project was a really blast from the past and really got me thinking about doing some computer graphics again. [...]

  46. [...] I’ve really enjoyed reading other technical works in progress, such as Shamus Young’s Procedural City series. Given that I only had a few hours here and there to work on this project, though, I was [...]

  47. By Link Dump: 030610_1735 through 030910_0135 on March 9, 2010 at 2:02 am

    [...] Procedural City, Part 1: Introduction – Twenty Sided – [...]

  48. By Daily links for 03/20/2010 | Blog | Bob Sutor on March 20, 2010 at 12:55 pm

    [...] Procedural City, Part 1: Introduction – Twenty Sided [...]

  49. [...] información en Twenty Sided ¿Quieres corregir/completar esta entrada? Envía tus comentarios a [...]

  50. [...] engine. Shamus Young, intigued by procedural generation as well as making more with less, created PixelCity, a city which the computer creates each time you start up the program. The other motivation he had [...]

  51. By Pixel City, la ciudad creada de la nada on July 20, 2010 at 5:43 am

    [...] su blog, el creador narra por más de 15 posts, cómo lo ha ido haciendo y todos los problemas (y soluciones) que ha ido experimentando. Un [...]

  52. By Worksheet #1 | Graeme Haddow on September 26, 2010 at 3:18 pm

    [...] Although building generation may be out with the scope of this project there is a very interesting example of a procedurally generated city that shows building generation, and the source code of that project would likely be a great help: http://www.shamusyoung.com/twentysidedtale/?p=2940 [...]

  53. [...] with this post, this would have been an admirable enough feat, but Shamus goes one step further and documents each step of his process, explains why he made the decisions he did and even goes over his inspiration for the project. This [...]

  54. [...] This is a demonstration of a program to generate and fly through a dynamically generated city. You can read the step-by-step of how it was made at this website: http://www.shamusyoung.com/twentysidedtale/?p=2940 [...]

  55. [...] J’ai inclus le site Web du créateur de ce logiciel, Shamus Young et aussi comment il a réalisé ce magnifique travail. Si vous avez la patience d’un programmeur vous pourrez le faire vous-même. http://www.shamusyoung.com/twentyside… [...]

  56. By Pixel City | city on April 29, 2011 at 10:14 pm

    [...] http://www.shamusyoung.com/twentysidedtale/?p=2940 [...]

  57. By Die Welt ist gar nicht so. » Linkschleuder (17) on April 30, 2011 at 10:39 am

    [...] Procedural City — 14-teilige Artikelreihe über prozedurale Synthese (Video mit Musik von Oursvince) [...]

  58. [...] en el estilo de excelente Shamus Young ciudad procedimiento serie, voy a comenzar blogs sobre planetas haciendo. A diferencia de él, sin embargo, no voy a [...]

  59. [...] time the program runs. Here, the video that shows the Young’s process will make it more clear:Pixel City is a procedurally-generated city by Shamus Young. For the non-coders out there, this essentially [...]

  60. [...] discussing his design choices, challenges and gotchas. If you are interested in reading about it, the first post is here and the final product can be downloaded as a Windows screensaver here.. Personally I found that [...]

  61. By Pixel City by Shamus Young « fang found this on September 10, 2011 at 4:47 pm

    [...] out this video of a dynamically generated city by Shamus Young. More info here. [Thanks Umlaut] Share May 16th, 2009 | Tags: 3D, Dynamic Content, Pixel | Category: Art, [...]

  62. [...] that documents building a virtual city. The city was generated programatically by Shamus Young, who details the process on his blog.You can follow our links and commentary each day through Twitter (@guardiantech, or our personal [...]

  63. By Procescape | Come On, Let's Go. on December 28, 2011 at 10:25 pm

    [...] few years ago, a guy named Shamus Young coded something really cool: a procedurally generated city. Using just a few assets (a bit of texture, some general building models, a bit of code for cars) [...]

  64. By Pixel city | Silkskinessent on April 4, 2012 at 9:28 am

    [...] Procedural City, Part 1: Introduction – Twenty SidedApr 13, 2009 … Pixel City – Procedurally generated city: wie baue ich mir meine eigene … By We Built This City On (er) Maths: PixelCity | Rock, Paper, Shotgun … [...]

  65. [...] que el título lo dice todo lo que realizó Shamus Young en su proyecto Pixel City, en el que utilizó la técnica de Procedimiento de Generación para [...]

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

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!