

Procedural Content Generation in Games - ingve
http://pcgbook.com/

======
Jach
My favorite example is the FPS .kkrieger
([https://www.youtube.com/watch?v=2NBG-
sKFaB0](https://www.youtube.com/watch?v=2NBG-sKFaB0)) which is entirely
contained in a 96 KB EXE. Recently I learned the source for that (and other
projects) was released a couple years ago, even if in a pretty messy state:
[https://github.com/blog/1103-ten-years-of-farbrausch-
product...](https://github.com/blog/1103-ten-years-of-farbrausch-productions-
on-github)

Skimming around I found this snippet at the end of chapter six. Are the
authors even aware of .kkrieger?

 _As we can see, all existing work on generating graphical game has targeted
games in the style of classic arcade games and home console games from the
early 80’s, or simple arcade games. There is still considerable work to be
done here, and nobody has yet constructed a system that could generate novel
graphical games of high quality, comparable to the novel high-quality board
games produced by Cameron Browne’s Ludi system. However, there is also
considerable opportunities in devel- oping game description languages that can
effectively and economically describe other types of games, and game
generators that take into account the specific game design affordances and
challenges that come with such games. For example, what would it take to
generate playable, interesting and original FPS games?_

~~~
ijk
Codewise, the most horrifying/amusing bit of .kkrieger is probably the insane
metaprogramming to save 230 bytes of space:

[http://fgiesen.wordpress.com/2012/04/08/metaprogramming-
for-...](http://fgiesen.wordpress.com/2012/04/08/metaprogramming-for-madmen/)

------
fogleman
Excited to see a chapter on L-systems. I just discovered these recently and
was amazed at the beautiful results from simple grammars.

For anyone else interested, there's a free PDF book all about the subject.
It's "The Algorithmic Beauty of Plants"

[http://algorithmicbotany.org/papers/abop/abop.pdf](http://algorithmicbotany.org/papers/abop/abop.pdf)

~~~
slavik81
Here's a cached version of the first chapter, as the site appears to be down:

[http://webcache.googleusercontent.com/search?q=cache:I4Ikw4K...](http://webcache.googleusercontent.com/search?q=cache:I4Ikw4KK6lwJ:algorithmicbotany.org/papers/abop/abop-
ch1.pdf)

~~~
walterbell
Archive.org has the full book:

[https://web.archive.org/web/20131022191108/http://algorithmi...](https://web.archive.org/web/20131022191108/http://algorithmicbotany.org/papers/abop/abop.pdf)

------
mdf
Every once in a while, I've been reading the articles in this interesting
blog[1] that covers various topics on procedural world generation. I've found
that some of the articles (like, for example, this one[2] covering the
creation of vegetation using space colonization instead of L-systems) are very
educating.

[1] [http://procworld.blogspot.com/](http://procworld.blogspot.com/)

[2] [http://procworld.blogspot.com/2011/02/space-
colonization.htm...](http://procworld.blogspot.com/2011/02/space-
colonization.html)

------
mmcconnell1618
The old PC game Star Flight used a procedural system to generate planets on
the fly because there wasn't enough storage space on disks:

[http://en.wikipedia.org/wiki/Starflight](http://en.wikipedia.org/wiki/Starflight)

~~~
maglevfield
Elite is a better example.

[https://en.wikipedia.org/wiki/Elite_(video_game)](https://en.wikipedia.org/wiki/Elite_\(video_game\))

[https://en.wikipedia.org/wiki/Frontier:_Elite_II](https://en.wikipedia.org/wiki/Frontier:_Elite_II)

[https://en.wikipedia.org/wiki/Frontier:_First_Encounters](https://en.wikipedia.org/wiki/Frontier:_First_Encounters)

[https://en.wikipedia.org/wiki/Elite:_Dangerous](https://en.wikipedia.org/wiki/Elite:_Dangerous)

~~~
epsylon
The Elder Scrolls : Daggerfall is another notorious early user of procedural
generation to generate an incredibly large open world.

------
falcor84
I couldn't find a single pdf version of the book, and I failed to find the
copyright to know whether I'm allowed to upload such a version myself. In any
case, the following two lines are what I used to unite the files using bash
and the pdfunite utility (available as the poppler-utils package in ubuntu)
for my own personal use.

    
    
        for i in {1..12}; do wget `printf "http://pcgbook.com/wp-content/uploads/chapter%02d.pdf" $i`; done
        pdfunite chapter*.pdf ProceduralContentGenerationInGames.pdf

~~~
packetslave
or on OSX:

    
    
        for i in {1..12}; do wget `printf "http://pcgbook.com/wp-content/uploads/chapter%02d.pdf" $i`; done
        "/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o ProceduralContentGenerationInGames.pdf chapter*.pdf

------
LathropWells
How Hackable is it? ¹ FOSS ² Limited Access to API ³ Closed/DRM Only god, the
developers and xkcd can know how it works.

The Division (Ubisoft) WazHack (Some very enjoyable and challenging gameplay)
CubeWorld The Dead Linger Elite ³ X3 Reunion/Terran Conflict ² (a few sectors)
nice script interface. Starlight Inception (Proprietary) FUEL 2009 (team
Asobo) Looks great. Dead Rising 3 (zombies appear "unique" ) Limit Theory.

Also: (Hackable is anyones guess.) [http://www.pcgamer.com/tag/procedurally-
generated/](http://www.pcgamer.com/tag/procedurally-generated/) Sir, you are
being hunted. GUN_MONKEYS Nowhere Chasm Dustforce Race the Sun A Valley
Without Sun

DLC and MODS Neverwinter Nights: Hordes of the Underdark. (DRM killed it. no
longer playable) Legend of Grimrock. ² (Excellent Scripting.)

Engines (Nearly every modern engine is well represented.) Irrlicht3D ¹ (FOSS,
Source, API and documentation are super.) Unreal ² Excellent Editor and
Scripting. Unity ² Excellent Editor and Scripting. Affordable Minetest ¹
(FOSS, Irrlicht3D -> LUA script API) Minecraft ¹ (Source code available for
early releases.)

From Giantbomb.com for release in 2014-15.
[http://www.giantbomb.com/procedural-
generation/3015-328/game...](http://www.giantbomb.com/procedural-
generation/3015-328/games/) Daylight (Unreal Engine) similar to Amnesia:The
Dark Descent Invisible, Inc. StarCrawlers Darkest Dungeon Sunless Sea Mountain
Outpost Save Yourselves Fancy Skulls Mew-Genics Unreleased ( The teaser is a
great. Put the coffee away before watching this.)
[http://www.youtube.com/watch?v=KXCp8xS0YzI](http://www.youtube.com/watch?v=KXCp8xS0YzI)

Unfinished Infinity MMOG No Mans Sky The compilation of GCC. (Not funny?
Please, accept my apology..)

~~~
LathropWells
Eek! - I'll do better next time, sry.

~~~
epi16
What were you trying to do? I don't understand your original post at all.

------
carlsborg
Can anyone point to some good/well known mobile games that use procedural
content generation?

I can think of AoE and Worms on the PC, and i enjoyed both of these
tremendously.

~~~
catshirt
did AoE really use procedural generation? it could have been due to the
immaturity of the genre, but i think you'd be hard pressed to procedurally
generate balanced RTS maps. seems more forgivable for something like Worms,
but still kind of dangerous.

~~~
ijk
Age of Empires on the PC did indeed have random map generation. Age of Kings
also included the scripting language that let modders create their own scripts
to generate new types of procedural maps. The cells from the random generation
were also repurposed as part of the pathing.

Most of the default scripts ensured balance by having a set of identical
resources by each player's start. An example of the scripting language,
placing a gold resource near the player start:

    
    
      create_object GOLD 
      { 
         number_of_objects 7 
         group_placement_radius 3 
         set_tight_grouping 
         set_gaia_object_only 
         set_place_for_every_player 
         min_distance_to_players 8 
         max_distance_to_players 14 
         min_distance_group_placement 4 
      }

~~~
catshirt
if you can play different races or have different terrain abilities, symmetry
is not the only balance issue

------
ttctciyf
There's a bunch of articles and info related to procedural content at
[http://pcg.wikidot.com](http://pcg.wikidot.com) which might be of interest to
people reading the linked book. I haven't read enough of either to comment on
their overlap or relative merits.

