Re: [fonc] Inspired 3D Worlds

2012-01-16 Thread Casey Ransberger
Top post. Heightmapping can go a really long way. Probably not news though:)

On Jan 16, 2012, at 8:45 AM, David Barbour dmbarb...@gmail.com wrote:

 Consider offloading some of your creativity burden onto your computer. The 
 idea is:
 
   It's easier to recognize and refine something interesting than to create it.
 
 So turn it into a search, recognition, and refinement problem, and automate 
 creation. There are various techniques, which certainly can be combined:
 
 * constraint programming
 * generative grammar programming
 * genetic programming
 * seeded fractals
 
 You might be surprised about how much of a world can be easily written with 
 code rather than mapping. A map can be simplified by marking regions up with 
 code and using libraries of procedures. Code can sometimes be simplified by 
 having it read a simple map or image.
 
 Remember, the basic role of programming is to automate that which bores you.
 
 Regards,
 
 Dave
 
 
 On Sun, Jan 15, 2012 at 4:18 PM, BGB cr88...@gmail.com wrote:
 I am generally personally stuck on the issue of how to make interesting 3D 
 worlds for a game-style project while lacking in both personal creativity and 
 either artistic skill or a team of artists to do it (creating decent-looking 
 3D worlds generally requires a fair amount of effort, and is in-fact I 
 suspect somewhat bigger than the effort required to make a passable 3D 
 model of an object in a 3D modeling app, since at least generally the model 
 is smaller and well-defined).
 
 it seems some that creativity (or what little of it exists) is stifled by it 
 requiring a large amount of effort (all at once) for the activity needed to 
 express said creativity (vs things which are either easy to do all at once, 
 or can be easily decomposed into lots of incremental activities spread over a 
 large period of time).
 
 trying to build a non-trivial scene (something which would be passable in a 
 modern 3D game) at the level of dragging around and placing/resizing/... 
 cubes and/or messing with individual polygon-faces in a mapper-tool is sort 
 of a motivation killer (one can wish for some sort of higher level way to 
 express the scene).
 
 meanwhile, writing code, despite (in the grand scale) requiring far more time 
 and effort, seems to be a lot more enjoyable (but, one can't really build a 
 world in code, as this is more the mapper-tool's domain).
 
 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Inspired 3D Worlds

2012-01-16 Thread Julian Leviston
I like minecraft's take on this.

Julian


On 17/01/2012, at 2:31 PM, BGB wrote:

 On 1/16/2012 6:47 PM, Casey Ransberger wrote:
 
 Top post. Heightmapping can go a really long way. Probably not news though:)
 
 
 I am still not certain, since a lot of this has a lot more to do with my own 
 project than with general issues in computing.
 
 
 I had messed with a few technologies already.
 
 height-maps (long ago, not much used since then, generally randomized).
 
 the issue was mostly one of being not terribly interesting, but it makes 
 sense if one wants terrain (and is fairly cheap in terms of memory use and 
 performance impact).
 
 a more advanced variety would be to combine a height-map with a tile-map, 
 where the terrain generator would also vary the texture-map to give a little 
 more interest. I have considered this as a possibility.
 
 also tried randomly generated voxel terrain (similar to Minecraft, using 
 perlin noise). issues were of being difficult to integrate well with my 
 existing technology, and being very expensive in terms of both rendering and 
 memory usage (particularly for storing intermediate meshes). one may need to 
 devote about 500MB-1GB of RAM to the problem to have a moderately sized world 
 with (with similar specifics to those in Minecraft).
 
 I suspect that, apart from making something like Minecraft, the technology is 
 a bit too expensive and limited to really be all that generally useful at 
 this point in time and on current hardware (I suspect, however, it will 
 probably be much more relevant on future HW).
 
 
 I also tried randomly generated grid-based areas (basically, stuff is built 
 from pre-made parts and randomly-chosen parts are put on a grid). I had also 
 tried combining this with maze-generation algorithms. the results were 
 functional but also nothing to get excited about. the big drawback was 
 that I couldn't really think of any way to make the results of such a grid 
 based generator particularly interesting (this is I think more so with a 
 first-person viewpoint: such a structure is far less visually interesting 
 from the inside than with a top-down or isometric view).
 
 it could work if one were sufficiently desperate, but I doubt it would be 
 able to hold interest of players for all that long absent something else of 
 redeeming value.
 
 
 the main maps in my case mostly use a Quake/Doom3/... style maps, composed 
 mostly of entities (defined in terms of collections of key/value pairs 
 representing a given object), brushes (convex polyhedra), patches (Bezier 
 Surfaces), and meshes (mostly unstructured polygonal meshes).
 
 these would generally be created manually, by placing every object and piece 
 of geometry visible in the world, but this is fairly effort-intensive, and 
 simply running head first into it tends to quickly drain my motivation 
 (resulting in me producing worlds which look like big boxes with some random 
 crap in them).
 
 sadly, random generation not on a grid of some sort is a much more complex 
 problem (nor random generation directly in terms of unstructured or 
 loosely-structured geometry).
 
 fractals exist and work well on things like rocks or trees or terrain, but I 
 haven't found a good way to apply them to general map generation problem 
 (such as generating an interesting place to run around in and battle enemies, 
 and get to the exit).
 
 the problem domain is potentially best suited to some sort of maze 
 algorithm, but in my own tests, this fairly quickly stopped being all that 
 interesting. the upper end I think for this sort of thing was likely the 
 .Hack series games (which had a lot of apparently randomly generated 
 dungeons).
 
 
 it is sad that I can't seem to pull off maps even half as interesting as 
 those (generally created by hand) in commercial games from well over a decade 
 ago. I can have a 3D engine which is technically much more advanced (or, at 
 least, runs considerably slower on much faster hardware with moderately more 
 features), but apart from reusing maps made by other people for other games, 
 I can't make it even a small amount nearly as interesting or inspiring.
 
 
 
 On Jan 16, 2012, at 8:45 AM, David Barbour dmbarb...@gmail.com wrote:
 
 Consider offloading some of your creativity burden onto your computer. The 
 idea is:
 
   It's easier to recognize and refine something interesting than to create 
 it.
 
 So turn it into a search, recognition, and refinement problem, and automate 
 creation. There are various techniques, which certainly can be combined:
 
 * constraint programming
 * generative grammar programming
 * genetic programming
 * seeded fractals
 
 You might be surprised about how much of a world can be easily written with 
 code rather than mapping. A map can be simplified by marking regions up 
 with code and using libraries of procedures. Code can sometimes be 
 simplified by having it read a simple map or image.
 
 Remember, the basic role of 

Re: [fonc] Inspired 3D Worlds

2012-01-16 Thread Julian Leviston
The original topic was about getting the computer to create 3d worlds. That was 
what I was referring to when I said I like minecraft's taken on it. They use a 
seed to generate the world.

Julian

On 17/01/2012, at 3:26 PM, BGB wrote:

 On 1/16/2012 8:36 PM, Julian Leviston wrote:
 
 I like minecraft's take on this.
 
 Julian
 
 
 in which particular way?...
 
 
 well, Minecraft is a fairly interesting game, and allows a lot of room for 
 people building stuff, ...
 
 the downside is:
 how well does the technology work for considerably different gameplay styles? 
 (not based on mining and building)
 what about world voxel density?
 ...
 
 for example, making voxels 1/2 the size would lead (very likely) to an 8x 
 memory-requirement increase, and 1/4 (250cm) could require 64x the memory.
 
 a similarly sized world-space with a 1.5 inch (~ 3.75cm) voxel size would 
 require around 18963x as much memory.
 
 
 some people have tried fundamentally different ways of dealing with voxels 
 (namely Sparse Voxel Octtrees and ray-casting), but these in turn have 
 different tradeoffs (on current HW there are significant problems regarding 
 resolution and performance). I suspect it may be a few years before this 
 strategy really becomes practical.
 
 a big issue though is that it probably still wont make creating of compelling 
 worlds all that much easier (so, probably a lot more random-generation and 
 similar, with its inherent pros and cons).
 
 I guess it may ultimately be a bit of a wait and see thing.
 
 
 
 
 On 17/01/2012, at 2:31 PM, BGB wrote:
 
 On 1/16/2012 6:47 PM, Casey Ransberger wrote:
 
 Top post. Heightmapping can go a really long way. Probably not news 
 though:)
 
 
 I am still not certain, since a lot of this has a lot more to do with my 
 own project than with general issues in computing.
 
 
 I had messed with a few technologies already.
 
 height-maps (long ago, not much used since then, generally randomized).
 
 the issue was mostly one of being not terribly interesting, but it makes 
 sense if one wants terrain (and is fairly cheap in terms of memory use 
 and performance impact).
 
 a more advanced variety would be to combine a height-map with a tile-map, 
 where the terrain generator would also vary the texture-map to give a 
 little more interest. I have considered this as a possibility.
 
 also tried randomly generated voxel terrain (similar to Minecraft, using 
 perlin noise). issues were of being difficult to integrate well with my 
 existing technology, and being very expensive in terms of both rendering 
 and memory usage (particularly for storing intermediate meshes). one may 
 need to devote about 500MB-1GB of RAM to the problem to have a moderately 
 sized world with (with similar specifics to those in Minecraft).
 
 I suspect that, apart from making something like Minecraft, the technology 
 is a bit too expensive and limited to really be all that generally useful 
 at this point in time and on current hardware (I suspect, however, it will 
 probably be much more relevant on future HW).
 
 
 I also tried randomly generated grid-based areas (basically, stuff is built 
 from pre-made parts and randomly-chosen parts are put on a grid). I had 
 also tried combining this with maze-generation algorithms. the results were 
 functional but also nothing to get excited about. the big drawback was 
 that I couldn't really think of any way to make the results of such a grid 
 based generator particularly interesting (this is I think more so with a 
 first-person viewpoint: such a structure is far less visually interesting 
 from the inside than with a top-down or isometric view).
 
 it could work if one were sufficiently desperate, but I doubt it would be 
 able to hold interest of players for all that long absent something else 
 of redeeming value.
 
 
 the main maps in my case mostly use a Quake/Doom3/... style maps, 
 composed mostly of entities (defined in terms of collections of key/value 
 pairs representing a given object), brushes (convex polyhedra), patches 
 (Bezier Surfaces), and meshes (mostly unstructured polygonal meshes).
 
 these would generally be created manually, by placing every object and 
 piece of geometry visible in the world, but this is fairly 
 effort-intensive, and simply running head first into it tends to quickly 
 drain my motivation (resulting in me producing worlds which look like big 
 boxes with some random crap in them).
 
 sadly, random generation not on a grid of some sort is a much more complex 
 problem (nor random generation directly in terms of unstructured or 
 loosely-structured geometry).
 
 fractals exist and work well on things like rocks or trees or terrain, but 
 I haven't found a good way to apply them to general map generation 
 problem (such as generating an interesting place to run around in and 
 battle enemies, and get to the exit).
 
 the problem domain is potentially best suited to some sort of maze 
 algorithm, but in my own 

Re: [fonc] Inspired 3D Worlds

2012-01-16 Thread Neu Xue
There are commercial big boxes with some random crap in them game worlds now 
and
have been since the 8-bit era.
The games that stood out by immersing us despite the limitations of technology 
were usually
the ones which were lovingly crafted.


 From: BGB cr88...@gmail.com
To: Fundamentals of New Computing fonc@vpri.org 
Sent: Tuesday, 17 January 2012, 3:31
Subject: Re: [fonc] Inspired 3D Worlds
8
these would generally be created manually, by placing every object
 and piece of geometry visible in the world, but this is fairly
 effort-intensive, and simply running head first into it tends to
 quickly drain my motivation (resulting in me producing worlds which
 look like big boxes with some random crap in them).
8

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Inspired 3D Worlds

2012-01-16 Thread David Barbour
You seem to be ignoring the search, recognition, and refinement aspects.
You need some way to tell the computer what is interesting so you can
refine those portions (reducing variation, tweaking constraints or
parameters or other code, selecting `preferred` samples on a grid as a
human fitness function for genetic algorithms, etc.) while continuing to
search on the other aspects. Think of this as a collaborative effort
between computer and human, where you're reducing the burden of
hand-crafting the world but not taking yourself out of the picture
entirely.

The wonderful, interesting vistas created by POV-Ray are not created by
randomly seeding a world, but are also not created by hand-crafting the
maps. Why should you expect different for creating deep, inspired 3D worlds?

Regards,

Dave

On Mon, Jan 16, 2012 at 7:31 PM, BGB cr88...@gmail.com wrote:

 the problem domain is potentially best suited to some sort of maze
 algorithm, but in my own tests, this fairly quickly stopped being all that
 interesting. the upper end I think for this sort of thing was likely the
 .Hack series games (which had a lot of apparently randomly generated
 dungeons).


 it is sad that I can't seem to pull off maps even half as interesting as
 those (generally created by hand) in commercial games from well over a
 decade ago. I can have a 3D engine which is technically much more advanced
 (or, at least, runs considerably slower on much faster hardware with
 moderately more features), but apart from reusing maps made by other people
 for other games, I can't make it even a small amount nearly as
 interesting or inspiring.


  On Jan 16, 2012, at 8:45 AM, David Barbour dmbarb...@gmail.com wrote:

   Consider offloading some of your creativity burden onto your computer.
 The idea is:

It's easier to recognize and refine something interesting than to
 create it.

  So turn it into a search, recognition, and refinement problem, and
 automate creation. There are various techniques, which certainly can be
 combined:

  * constraint programming
 * generative grammar programming
  * genetic programming
  * seeded fractals

  You might be surprised about how much of a world can be easily written
 with code rather than mapping. A map can be simplified by marking regions
 up with code and using libraries of procedures. Code can sometimes be
 simplified by having it read a simple map or image.

  Remember, the basic role of programming is to automate that which bores
 you.

  Regards,

  Dave


 On Sun, Jan 15, 2012 at 4:18 PM, BGB cr88...@gmail.com wrote:

 I am generally personally stuck on the issue of how to make interesting
 3D worlds for a game-style project while lacking in both personal
 creativity and either artistic skill or a team of artists to do it
 (creating decent-looking 3D worlds generally requires a fair amount of
 effort, and is in-fact I suspect somewhat bigger than the effort required
 to make a passable 3D model of an object in a 3D modeling app, since at
 least generally the model is smaller and well-defined).

 it seems some that creativity (or what little of it exists) is stifled by
 it requiring a large amount of effort (all at once) for the activity needed
 to express said creativity (vs things which are either easy to do all at
 once, or can be easily decomposed into lots of incremental activities
 spread over a large period of time).

 trying to build a non-trivial scene (something which would be passable
 in a modern 3D game) at the level of dragging around and
 placing/resizing/... cubes and/or messing with individual polygon-faces in
 a mapper-tool is sort of a motivation killer (one can wish for some sort of
 higher level way to express the scene).

 meanwhile, writing code, despite (in the grand scale) requiring far more
 time and effort, seems to be a lot more enjoyable (but, one can't really
 build a world in code, as this is more the mapper-tool's domain).


___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc



 ___
 fonc mailing listfonc@vpri.orghttp://vpri.org/mailman/listinfo/fonc



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Inspired 3D Worlds

2012-01-16 Thread BGB

On 1/16/2012 10:26 PM, Neu Xue wrote:

There are commercial big boxes with some random crap in them game worlds now 
and
have been since the 8-bit era.
The games that stood out by immersing us despite the limitations of technology 
were usually
the ones which were lovingly crafted.


very possibly.
time and effort makes a good product

quick and dirty makes a poor product, despite the availability of more 
advanced technologies.


like, many old games did fairly well even with few pixels to work with, 
and even a fairly high-resolution texture can still look terrible. say, 
a 512x512 canvas doesn't mean some quick-and-dirty passes with an 
airbrush and paint-can tool and throwing some emboss at it will look good.


with some time and practice though, it gets a little easier to start 
making artwork that looks more passable.



otherwise:
I was left idly imagining the possibility of using a good old scripting 
language (probably BGBScript in my case) to assist in building worlds. 
say, higher level API commands can be added to the mapper, so I can 
issue commands like build a room here with these textures and 
dimensions or generate some terrain over there as API calls or similar.


loops or functions could also generate things like stairs and similar, ...

then, it can partly be a process of writing scripts, invoking them in 
the mapper, and optionally saving out the results if it looks about like 
what was being hoping for (maybe followed by some amount of manual fine 
tuning...).


similarly, the commands would probably be usable from the console as 
well (as-is, BGBScript code can already be entered interactively at the 
console), in addition to the existing GUI-based mapping interface.


probably the underlying world structure would remain being built out of 
entities, convex polyhedrons (brushes), Bezier patches, and polygon 
meshes. (unlike some other ideas, this wouldn't drastically change how 
my engine works, or even require redesigning/recreating my tools...).



sorry if all this is a bother to anyone, being solidly not really about 
programming per-se...





From: BGBcr88...@gmail.com
To: Fundamentals of New Computingfonc@vpri.org
Sent: Tuesday, 17 January 2012, 3:31
Subject: Re: [fonc] Inspired 3D Worlds

8

these would generally be created manually, by placing every object
and piece of geometry visible in the world, but this is fairly
effort-intensive, and simply running head first into it tends to
quickly drain my motivation (resulting in me producing worlds which
look like big boxes with some random crap in them).

8

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc



___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc