-
Notifications
You must be signed in to change notification settings - Fork 28
Notes, Ideas, Other Stuff
##Ideas
###Other Game Concepts
Construction
Everyone likes building stuff: wood can make houses or something.
Maybe have multiple floors? Still thinking about this.
Random Items
Wouldn't it be awesome if weapons/items were completely randomized with their own stats?
That way, you never know what the best item is and it's fun to find better ones.
Stone Mining
Stone could be a random entity that spawns randomly throughout the world.
If mined, you can do stuff with it: make tools, walls, etc...
Cutting down trees
Trees should be cuttable to collect wood. wood helps make houses, tools, etc...
Wild Animals/Monsters
Hunt animals for food. Hunt Monsters for experience.
Animals/Monsters spawn differently at different lon, lats and climates.
Fishing would also be cool.
Farming
How about adding another way to get food: planting and growing crops.
Going to the center of the world
It would be cool to explore the depths of the earth.
This is the dungeon crawler part of the game. Caves will need to be randomly
made as well as treasure placement. Travel along the surface should be slower than
travel underground.
Vehicles
Might need a faster way to travel.
Technology
Whoever makes this game Turing complete with some game mechanic is a badass.
World Generation Thoughts and Ideas
Edges of regions could have a small chance to hold special
entities that continue on to regions adjacent to the current region.
If this were to happen, regions need a way to ensure
edges from other regions match up as if they were a continuous region.
This may end up being too hard to do, but here's the idea:
let 1, 2, 3, and 4 be different seeds. Imagine a 5x5 tile region. Generate the edges using
the first numbers of the seeds from top to bottom, left to right
like this:
| 1 | 1 | 1 | 1 | 1 |
| 2 | 3 | |||
| 2 | 3 | |||
| 2 | 3 | |||
| 4 | 4 | 4 | 4 | 4 |
Most obvious use case for edge entities is to track entrance and exit
places of a certain terrain into another region (like a grass or sand edge).
Another idea for an edge entity is a river entrance or exit. Edge entities should always spawn in pairs. One point marks the entrance into another region and the other point marks the return from that region. Perhaps group edge entities as they are spawned so that it's possible for a top row entity to pair with a different edge entity.
After edge entities are finished, proceed to use the current main seed to
generate the middle of the region. For each tile in the middle, check to see
if a certain entity exists there (things like trees, stone, bushes, grass, whatever).
This can be done by getting one random number and checking to see if it is
between 2 thresholds. For example: let chance of tree spawn = 50, chance of rock
spawn = 30, chance of bush spawn = 40 and chance of grass spawn = 100. These objects and their chance numbers are
added as a tuple to a list like so:
(tree, 50), (rock, 80), (bush, 120), (grass, 220)
where the number is the total chance added so far. After adding
all objects and their chance thresholds to the list, we know what range to pick
a random number from and the thresholds corresponding to each entity. Keep in
mind that for each object added with a chance number, the chances of every other
entity is changed. Here is an example with a tree and a rock having a chance number of 10
and a bush having a chance number of 5
50% tree and %50 rock = (tree, 10), (rock, 20)
40% tree, 40% rock, 20% bush = (tree, 10), (rock, 20), (bush, 25)
To spawn a tree, the random number must be between [0 - 10)
To spawn a rock, the random number must be between [10 - 20)
To spawn a tree, the random number must be between [20 - 25)
Note that the threshold is exclusive: If the random number is 10 then in
the above example, a rock is spawned.
To handle tiles that spawn in blobs (patches of grass or sand and lakes) try this:
- Choose a start location at random.
- Choose a random direction (up, down, left, or right) and move the generator 1 unit in that random direction.
- Convert the tile under the generator to join the blob.
- Repeat steps 2-3 X number of times to reach a desired blob size.
Generated Regions Should Be Saved!!!
I'm not sure how to do this yet but once a region is generated,
it should be stored in a file or database. A live 2d array of the current
region can be kept to save changes as they happen when the player cuts down
a tree or something.