I finally made some time to brainstorm a bunch of ideas for the game for the collaboration. It follows fairly closely to Angband. This list is really meant as a starting place. If people want to see it go different directions, I am all for the input. RB expressed interest in working the Map Generation. If people are more for scripted gameplay, I would be fine with that as well. Scripting a lot of content is tough and time consuming, just like creating a quality random map generator. They both have pros and cons.
I think this is a lot more detail upfront with design decisions than other Game Jams we have done. So, it if isn't appreciated, we could just delete the post and be a little more free form…
End Result Goal. See the bright white area that is visible to player and the darker gray that is explored but out of current view.
Map Drawing
- Add floors and walls to map.
- Generate static map for testing.
- Create a Map Render Class
- Create an interface for a MapDesigner.
- Initially use a placeholder class that delivers the static test map.
- Replace with an actual random map generator.
- Trigger drawing a new map when a stair case is used.
- Maybe press (<) to go up and (>) to go down. Doesn't really need to be separate chars though if the staircases are not both up and down.
- Add light source to player's location.
- Walls/floors within light source are brighter (maybe white)
- Walls/floors outside light source are dimmer (maybe gray)
- Add ability to add basic items in dungeon.
- Money/Gems/Gold ($)
- Food (f maybe?)
- Light Source (~)
- …
- Add camera to map so map can be bigger than the screen size.
- Add discovery to map. Characters outside of light source are unknown until they are explored.
- Limit discovery so player does not see through walls.
- Create an algorithm that determines what is not line of sight.
- Add limited knowledge of items. Show items where last seen on map regardless of if they have been destroyed, picked up, etc when they are out of active view of the player.
Map Generation
- Separate map into rooms that are reached by corridors.
- Consider possibly autogenerating corridors that vary in width. Perhaps 1, 2, or 3 tiles wide.
- Add Up Stairs (<) and Down Stairs (>) to map.
- Add doors to map.
- Make a percent chance door will exist at end of corridor or where 2 corridors meet.
- Add special scripted rooms to map.
- Save scripted rooms to file for future use.
- Use either a text editor or design a custom editor for scripted rooms.
- Add hidden doors to map.
- Add (S)earch command. (Maybe set to find hidden 50% of the time until an attribute is added to character that affects search ability.)
- Add hidden traps. Reveal through search command
- Add a property where they only go off X% of the time when walked on undiscovered.
- Add (D)isarm command. Percent chance disarming fails. If Fails percent chance character sets off trap.
- Make map generator deposit items semi-randomly.
Inventory System
- Add inventory screen to game.
- Consider making inventory sit next to the map, so not a separate menu that appears. This makes sense on current monitors for desktop style play. An inventory screen that comes up would make more sense on a phone or maybe smaller tablet.
- Make a placeholder for item weight.
- Allow items that are the same to stack.
- Add (G)et command to pickup items.
- Add (D)rop command to drop items.
- Add (W)ear / (W)eld command so player can don items from inventory.
- Perhaps just start with welding a light source and maybe a weapon or something.
- Add (T)ake off command so player can remove items.
- Add screen to show what items are equipped to the player.
Character Stats
- Add current health and max health to character. Maybe start with 100 for testing.
- Make player regain health. Maybe 1 every other turn to start???
- Add (R)est command for not using turns while not moving.
- Make resting regain health faster. maybe one every turn while resting???
- Make player get hungry over time.
- Add a satiation stat to player. Maybe max 1000, lose 1 every turn.
- Allow player to die if it reaches 0.
- Add (E)at command. Increase satiation stat as eaten.
I think this list will see us through the Game Jam without being completed. If not, we could start adding in monsters, Pathfinding for monsters, experience, increasing danger and item value in dungeon, …