Recent Forum Posts
From categories:
Re: permadeath not a pcg-algorithm
andrewdoullandrewdoull 1220524277|%e %b %Y, %H:%M %Z|agohover
in discussion Hidden / Per page discussions » Permadeath

I had a long think about this - you're entirely right that this is a design decision, as opposed to an algorithm in the strict sense. However, in the more general sense, that is, game design considerations, permadeath is a endemic to pcg games. I'd like to have it listed under the Code section, as I can't really figure out where else to put it that highlights its importance.

Feel free to rename it and the links leading to it.

Re: permadeath not a pcg-algorithm by andrewdoullandrewdoull, 1220524277|%e %b %Y, %H:%M %Z|agohover
permadeath not a pcg-algorithm
droiddroid 1220462772|%e %b %Y, %H:%M %Z|agohover
in discussion Hidden / Per page discussions » Permadeath

How is permadeath an algorithm? I cannot imagine a code example for this being possible, so it probably should not show up in the Code section.

permadeath not a pcg-algorithm by droiddroid, 1220462772|%e %b %Y, %H:%M %Z|agohover

I see you figured out that wikidot does image hosting (to an extent)… thanks for the code.

Re: multiplicative cascades(ish) by andrewdoullandrewdoull, 1220258623|%e %b %Y, %H:%M %Z|agohover
Featured Article
andrewdoullandrewdoull 1220154603|%e %b %Y, %H:%M %Z|agohover
in discussion PCG Wiki / General discussion » Featured Article

Hi,

I've added a featured article section on the front page, so visitors can see what we've worked on recently and which is at a level we'd like to get the whole wiki to.

At the moment, feel free to change the Featured Article if you've got sick of the existing one and the new article you want to link to is at a standard you feel should represent the wiki as a whole.

Ideally this should be:
1. Has original material providing insight into the process of procedural content generation (e.g. not just a copy or quotes of a wiki article or material elsewhere).
2. Has a code example (for PCG algorithms) or review of the PCG methods used (for PCG games or software) and/or screen shots.
3. All the links from the article are complete in the sense they are not just stubs.

Let me know if you think we need less or more to qualify as a featured article.

Regards,

Andrew Doull

Featured Article by andrewdoullandrewdoull, 1220154603|%e %b %Y, %H:%M %Z|agohover

Hi,

If you cast your eyes over the cellular automata entry, you'll see what looks like a working Conway's Game of Life up and running on the entry. This is based on my initial code for a more generic cellular automata javascript resource. I'm not going to use the word library, as I'm only just starting to learn JavaScript and it is going to be specific for displaying examples in various pages in this wiki.

The code is based on the canvas object and undoubtedly inefficient. This is based on my premis of getting working code out there is much more important than worrying about design or implementation details - I let language and compiler/intepreter designers worry about those sorts of things.

My plan is to set up independent hosting for this, as the wiki can't host .js files, and then break out the code into a couple of .js files that support overriding a generic rule set with specific cellular automata rules for entries such as fire propagation, fluid dynamics and so on.

I was wondering on your thoughts: is this a good idea? Source Forge or Google Code? Which license will best serve this in the long run? I'm leaning towards GPL v1 as its the only license I know.

Feedback about the actually code is welcome: patches are better.

As regards to the style guide: this is still evolving. I'm leaning away from having a separate Description heading and just starting with the description, and having a PCG Wiki References section which contains a module Backlinks reference so that all pages referencing this page are display. Other feedback is also welcome.

Regards,

Andrew Doull

Code Examples & Style Guide by andrewdoullandrewdoull, 1220153441|%e %b %Y, %H:%M %Z|agohover

I was looking at multiplicative cascades and thinking of a method from "the fractal geometry of nature" by BB Mandelbrot. I would like a way of generating a set of points that have a certain dimension and lacunarity, and remember something similar to this in the book. This is the closest I can come up with.

The basic idea is to divide the unit square into a grid and randomly choose squares from it, the probability for each square being determined by dimension d:

(1)
n ^ d/n ^ 2

This is done recursively for each square selected.
The only way of varying the lacunarity that I can remember is to use finer grids per step (n). If anyone has a better way of doing this, let me know.

Also, is there a good definition of lacunarity? I think it was described as proportional to the maximum circle that could fit in the gaps and that doesn't contain any points of the set (averaged across all possible seeds for generating the set).

I would attach an output image (and add it to Fractal to illustrate dimension), but I do not have a flikr account.

Python, with Python Image Library for image stuff:

import random
import math

import PIL.Image
import PIL.ImageFilter

#seed the random generator for repeatable output
seed = 42
rng = random.Random(seed)

def expand(image,
    dimension,
    n_per_level=2):
    '''expand the image by n_per_level, adding detail
    '''

    p_per_pixel = (n_per_level ** dimension)/(n_per_level ** 2)

    #note: using a filter when scaling (such as BILINEAR or BICUBIC) removes
    #       artifacts along division edges, if care is taken the output is seamless and tileable.
    #       for the sake of brevity, these are removed.

    #scale the image
    output = image.resize(
        (image.size[0]*n_per_level,
        image.size[1]*n_per_level))

    #add detail
    pixels = output.load()
    for i in range(output.size[0]):
        for j in range(output.size[1]):
            #black are the points of the set
            value = 1 - pixels[i,j] / 255.
            p = p_per_pixel * value
            if rng.random() < p:
                pixels[i,j] = 0
            else:
                pixels[i,j] = 255.
    return output

#start with one black pixel, greyscale image
image = PIL.Image.new('L',(1,1))

dimension = 1.5

#expand the image 'till it's big enough
while image.size[0] < 1024:
    image = expand(image, dimension)

image.show()
image.save('fractal%d_%d.png' % (dimension*100,seed))
multiplicative cascades(ish) by droiddroid, 1217877122|%e %b %Y, %H:%M %Z|agohover
Re: Introduce yourself here.
FlinkFlink 1216069817|%e %b %Y, %H:%M %Z|agohover
in discussion PCG Wiki / General discussion » Introduce yourself here.

Hi!
My name is Henrik and i work as a game programmer for a small independent studio here in Sweden. Graduated this spring from School Of Future Entertainment as a game programmer. I really find the PCG interesting and think it's a way to evolve the current state of games, giving it more depth and variety. Interesed in every thing from level generation to procedural generated textures and also to find new ways to use PCG. Hope i can contribute something to this site and also learn new stuff!

Henrik

Re: Introduce yourself here. by FlinkFlink, 1216069817|%e %b %Y, %H:%M %Z|agohover
Re: Introduce yourself here.
murgsmurgs 1215532031|%e %b %Y, %H:%M %Z|agohover
in discussion PCG Wiki / General discussion » Introduce yourself here.

Hello,

I'm a Bioinformatic (computational biology) student from Germany finishing my fourth semester this month.
In the holidays I'm intending to try and program a 3D level-generator for Tremulus.
(But I'll first start with a ASCII one)
On the way I'll try and fill up the Maze and random dungeon bits of this wiki.

Mark

Re: Introduce yourself here. by murgsmurgs, 1215532031|%e %b %Y, %H:%M %Z|agohover

Hi,

Here's the top 100 wiki articles in order, from Google Analytics. I can't see a way of exporting the full numbers, but use this as an indication of what needs fleshing out first.

category-pcg-games
category-pcg-algorithms
major-pcg-games
list-of-pcg-games
articles
category-pcg-software
the-death-of-the-level-designer
pcg-games:elite
what-pcg-is
roguelikes
start
forum:start
pcg-games:borderlands
pcg-algorithm:blum-blum-shub
system:recent-changes
system:list-all-pages
pcg-games:rogue
pcg-games:spore
pcg-links
pcg-algorithm:artificial-life
pcg-games:x-com:ufo-defense
pcg-games:dwarf-fortress
pcg-games:stalker
pcg-games:angband
forum/c-42075/general-discussion
pcg-games:noctis
pcg-games:civilization-iv
pcg-games:subversion
pcg-algorithm:maze
pcg-games:the-elder-scrolls-iv:oblivion
admin:manage
pcg-algorithm:perlin-noise
pcg-algorithm:cellular-automata
tig-source-procedural-content-generation-competition
pcg-algorithm:megatexture
pcg-algorithm:voronoi-diagram
template:pcg-game
pcg-games:diablo-ii
pcg-games:nethack
pcg-software:dryad
category-events
pcg-games:minesweeper
system:join
category:roguelikes
pcg-algorithm:markov-chain
pcg-games:dark-cloud
pcg-games:diablo
pcg-games:left4dead
pcg-games:tribal-trouble
pcg-games:unangband
system:members
pcg-algorithm:heightmap
pcg-games:conway-s-game-of-life
forum:recent-posts
pcg-algorithm:genetic-algorithm
pcg-games:darwinia
pcg-software:world-machine
forum/t-58901/welcome-all
pcg-algorithm:l-system
pcg-algorithm:mersenne-twister
pcg-algorithm:fractal
pcg-algorithm:reaction-diffusion-system
pcg-game-box
pcg-games:infinity-the-quest-for-earth
pcg-games:moria
pcg-games:text-elite
pcg-software:grome-editor
pcg-software:nems-mega-3d-terrain-generator
ascii-dreams
pcg-games:civilisation-iv
pcg-games:hack
pcg-software:processing
pcg-software:speedtree
template:game
pcg-software:landcraft
pcg-wiki
pcg-software:neverie
pcg-software:terragen-2
pcg-algorithm:hash-function
pcg-algorithm:natural-language-processing
pcg-games:dark-chronicle
pcg-games:exile
pcg-games:star-control-2
forum/t-58902/specific-wiki-issues
pcg-games:hellgate:london
category:pcg-games
event:tig-source-procedural-content-generation-competition
pcg-games:frontier:elite-2
pcg-games:infinity:the-quest-for-earth
pcg-software:landscape-studio
pcg-software:megaterrain
pcg-software:terraineer
7drls
how-to-edit-pages
pcg-algorithm:random-seed
pcg-taxonomy:dynamic-world-generation
pcg-taxonomy:procedural-generation
five-years-away
pcg-games:diablo-ii:lord-of-destruction

Most popular articles so far by andrewdoullandrewdoull, 1211205808|%e %b %Y, %H:%M %Z|agohover
Re: Specific wiki issues
andrewdoullandrewdoull 1211179533|%e %b %Y, %H:%M %Z|agohover
in discussion PCG Wiki / General discussion » Specific wiki issues

And here's my ongoing issues with the wiki syntax thread.

Andrew

Re: Specific wiki issues by andrewdoullandrewdoull, 1211179533|%e %b %Y, %H:%M %Z|agohover

Hi,

For those of you who've joined so far, let me know how the application process was. I suspect the bar needs to be lowered to allow anonymous edits (with a captcha and IP recorded, and some kind of IP ban list).

Andrew

The membership application process by andrewdoullandrewdoull, 1211179139|%e %b %Y, %H:%M %Z|agohover
Introduce yourself here.
andrewdoullandrewdoull 1211179003|%e %b %Y, %H:%M %Z|agohover
in discussion PCG Wiki / General discussion » Introduce yourself here.

Hi,

Feel free to introduct yourself here.

I'm a IT manager from New Zealand who spent the last 5 and a half years working in the United Kingdom. I've just emigrated to Sydney, Australia with my wife, and spend my free time at the moment developing Unangband and blogging. I also write as the Amateur for GameSetWatch - although I haven't written an article for Simon in a while and I should really do one soon.

Andrew

Introduce yourself here. by andrewdoullandrewdoull, 1211179003|%e %b %Y, %H:%M %Z|agohover
Re: Specific wiki issues
andrewdoullandrewdoull 1211091736|%e %b %Y, %H:%M %Z|agohover
in discussion PCG Wiki / General discussion » Specific wiki issues

I've had an excellent response from the wikidot community about some initial queries I raised, as well as pointer in the direction of the new wikidot live templates. Apparently, this hasn't been tested very thoroughly, so I may wait a little before implementing.

The details are here.

Re: Specific wiki issues by andrewdoullandrewdoull, 1211091736|%e %b %Y, %H:%M %Z|agohover
Specific wiki issues
andrewdoullandrewdoull 1210492244|%e %b %Y, %H:%M %Z|agohover
in discussion PCG Wiki / General discussion » Specific wiki issues

Hi,

I briefly canvased Wikipedia about which site to use for free wiki hosting and then settled on wikidot as having the least commercial bias. I have a strong preference for MediaWiki, as its the industry standard, but the markup is similar enough for wikidot for it to be easy to add content.

I've not mastered categories or templates by any means, and want to have at least two templates: one for people and one for games.

There's extensive entries to be added, obviously, probably by first providing an external link to wikipedia.

My wiki design so far has been borrowed from RogueBasin, but I'm open to suggestions as a relative wiki neophyte.

As for the decision to use free hosting? In a household of laptops, the free hoster is king. or if you prefer, In the country of bandwidth caps, the free hoster is king.

Regards,

Andrew Doull

Specific wiki issues by andrewdoullandrewdoull, 1210492244|%e %b %Y, %H:%M %Z|agohover
Welcome all
andrewdoullandrewdoull 1210491993|%e %b %Y, %H:%M %Z|agohover
in discussion PCG Wiki / General discussion » Welcome all

Hi everyone and welcome to the wiki,

I've written extensively about procedural content generation, and while everyone talks about it in isolation, it never really seemed like there was a central site for discussion PCG, in the same way that there is a site for e.g. AI game development.

I've speculated previously about running Ascii Dreams forums, but a blog never felt like the appropriate venue for two way dialog as there is a strong author bias. Whereas a wiki is more content neutral and open.

I hope you find this site a useful resource, and feel strongly enough about PCG to contribute and build an active community.

Regards,

Andrew Doull

Welcome all by andrewdoullandrewdoull, 1210491993|%e %b %Y, %H:%M %Z|agohover
Unless stated otherwise Content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License