Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (429)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (468)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Spawning objects on infinite 2D terrain using a seed.  (Read 381 times)
0 Members and 1 Guest are viewing this topic.
Offline Emmsii

Junior Newbie





« Posted 2014-01-24 14:39:37 »

I've been experimenting with infinite 2d (top down) terrain generation using perlin noise. Here's what I have so far:

  • Each world has a unique seed generated by random.nextLong().
  • Terrain is generated, saved and loaded in 16x16 chunk files.
  • The perlin noise returns a number between 0-0255, I use this to generate a heightmap.
  • Using the heightmap values I set a tile id, if its below 64 its water, above 64 its grass, about 150 its snow; for example.

This is pretty basic so I want to start adding objects like trees, bushes, rocks and basic structures. I don't want to spawn objects by random chance because if I use the same seed again the terrain will be the same but the objects will be in different places.

I'm struggling with placing objects in the world using a seed, so they will always be in the same place if I use the seed again. Any ideas?
Online Roquen
« Reply #1 - Posted 2014-01-24 14:44:13 »

Feature point generation.  Using either a random or quasi-random number.

http://www.java-gaming.org/topics/uniform-feature-points/28000/view.html
Offline trollwarrior1
« Reply #2 - Posted 2014-01-24 22:51:18 »

My suggestion would be to make another seed from that seed specified for object generation, meaning that the "object" seed would always be the same for the same terrain seed. You could also do this for water / beaches for example. First generate "hard" terrain (dirt, rocks, grass), then make a seed out of that seed and make a wet terrain (sand, water), and then make another seed from base seed to spawn trees and stuff.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Emmsii

Junior Newbie





« Reply #3 - Posted 2014-01-24 23:59:36 »

My suggestion would be to make another seed from that seed specified for object generation, meaning that the "object" seed would always be the same for the same terrain seed. You could also do this for water / beaches for example. First generate "hard" terrain (dirt, rocks, grass), then make a seed out of that seed and make a wet terrain (sand, water), and then make another seed from base seed to spawn trees and stuff.

That sounds like a good idea. My question is, how to use that seed to determine where objects (trees, bushes, structures, etc) are placed in the world?
Online Roquen
« Reply #4 - Posted 2014-01-25 08:24:11 »

trollwarrior1: that doesn't even make sense.
Offline trollwarrior1
« Reply #5 - Posted 2014-01-25 08:28:01 »

trollwarrior1: that doesn't even make sense.

What do you mean it doesn't make sense? You make a terrain. Then you make trees. How doesn't this make sense? You can't really make everything in 1 go.
Online Roquen
« Reply #6 - Posted 2014-01-25 09:52:51 »

No offense intended but you obviously have no experience with procedural techniques.  "make another seed from that seed" doesn't have any meaning.  If you force a meaning on it then it's "a does nothing, goes nowhere" operation.  I laid out the most basic way to procedurally place things in space on the feature point page.
Pages: [1]
  ignore  |  Print  
 
 

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

theagentd (6 views)
2014-04-24 23:00:44

xsi3rr4x (83 views)
2014-04-15 18:08:23

BurntPizza (75 views)
2014-04-15 03:46:01

UprightPath (86 views)
2014-04-14 17:39:50

UprightPath (69 views)
2014-04-14 17:35:47

Porlus (86 views)
2014-04-14 15:48:38

tom_mai78101 (109 views)
2014-04-10 04:04:31

BurntPizza (169 views)
2014-04-08 23:06:04

tom_mai78101 (265 views)
2014-04-05 13:34:39

trollwarrior1 (217 views)
2014-04-04 12:06:45
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!