Monday, May 6, 2019
Ongoing game world stuff.
One day till internet..forgot about phone data tethering so using that now.
Been thinking about how the world will work in the ongoing game. Before a lot of the randomized rogue-lite stuff is added, I think it's important to have a world that is dynamic and changes in interesting ways to begin with.
Initially I figured it would boil down to things like
-There are orcs
-There are bug enemies
-There are trees
-Orcs cut down trees
-Bugs lay eggs in trees, so attack orcs.
Because the game will not be a huge single screen, it will more likely be more akin to a boardgame with spaces. Each entity is like a piece that moves each turn (every time you sleep). So for example when the day begins, if orcs and bugs are on the same space, highlighting the space would show that they are fighting. Upon entering the space yourself, the game would read what pieces are in the space (be they resources, or enemies), place them in the screen based on what they're doing, and then the player's actions dictate the outcome of that action.
So for example if a space with orcs says "cutting down a tree", if the player does nothing, the next day this action will complete. If there's another entity that conflicts with this, it may not. Basically, every "piece" would be more like a group, and they would have very specific roles.
Then I started thinking about individual interactions. For example, lets say there's a large monster you can't beat. If you take away 25% HP, what happens? Does it just come back the next day? Instead, I think it would be better if the game keeps track. Monster is hungry > seeks out food. Monster is low HP > avoids other entities. This would make it a bit easier to have dynamic interactions that don't rely on a very specific rock-paper-scissors setup. For example, orcs may have a higher chance of being drawn to trees, but how much can vary. This would make dynamic interactions easier because behavior would still be possible to learn, yet the chaos caused by individual variance would prevent a status quo from going on forever. 5 Orcs may go to the same tree tile, but 1 of them may prefer lakes, so it goes a different way.
The other advantage is that the player could drive interactions between entities. Entities could be made passive by giving them items and befriending them, befriended entities could fight or befriend each other (or fuc). Whether the player fights everything or tries to befriend everything, the movement and introduction of new entities should throw a wrench into any plan. In the background entities will always be killing each other, moving, etc, and the player cant be everywhere at once.
Keeping track of stats should be fairly easy, since every time an entity is created it would be assigned a number (which other entities use to refer to it). An entity's stats would then just be lists; for example love would be a list of 6 values if there are 6 entities.
Where the index is the entity number, and the value is the value of the stat. An interaction would go something like:
entity 0 see's entity 1 (decide on action)
entity 1 is fighting (entity 6)
love stat 1 is (5) love stat 6 is (2)
attack (entity 1)
There would be a lot more calculating to do when deciding what an entity does in a turn (since every entity has to do stuff), however because everything would only happen when you sleep, it could be done without worrying about the game being slowed down to a crawl.
Anyhow, enough babbling for now.
Posted by Kyrieru at 2:48 AM