This repo contains the source code for a Seven Day Rogue Like entry called "The Forest." This is a quick attempt at a roguelike in a short time (not sure if it will be fun or not).
-
Add map generation. (Reused)
-
Add ncurses-based viewport. (Reused)
-
Add player input, ability to move around.
-
Add a game-loop with time.
-
Update the UI to permit map.
-
Update the UI to permit messages.
-
Add a CES (Component Entity System) framework for entities in the world (not player).
-
Add combat system, how attack works, defense, etc.
-
Add a health system (animals increase health, level increases health max, etc.).
-
XP System, XP to next level is 110% of previous level.
-
Update the UI to permit stats.
-
Add Animals (health NPCs) into the world (random movement, vary speed).
-
Add Protectors, with pathfinding to attack the player.
-
Add the secret door to escape.
-
Add a function for distance to player.
-
Two types of enemies in the environment. Animals, that can restore health and Protectors that carry artifacts (harder to kill).
-
Add A* pathfinding.
-
Add a sling. The sling shoots for 8 spaces (can be extended with sling bonus items).
-
Add sling bonus system (90% range, 10% shot bonus).
-
Need to detect player death and end game.
-
Need to create an end-screen when the player dies or wins.
-
Add an end-game sequence where protectors appear around the exit requiring the player to kill them before escaping. (Stretch)
-
Add a dynamic legend which emits a description for the items on the screen. (Stretch)
-
Add towers that emit enemies (near the exit). Towers can be destroyed. (Stretch)
-
Add ncurses color. (Stretch)
-
Add a final score (calculated based upon time, things killed, strength of weapon, level, etc.). (Stretch)
-
In the stats section, show the direction of the closest animal and protector. (Stretch)
-
Add support for mouse click detection (for projectiles). (Stretch)
-
Think about weapons and effects. Need to indicate a weapon in status, text-effect when used, damage differences (area), weapon types. (Stretch)
The only dependency is ncurses.
The source includes a standard Makefile, so make should suffice. Your terminal window should be large enough to fit the game window, so expand it.
make
./7drl
┌───────────────────────────────────────────────────────────────────────────────────────┐
│ ^^ ^^^^^| The Forest │
│ ^^^^ ^^ ^^^^ ^^^^^^^^^^ ^^^| │
│ ^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^ | Player Stats │
│ ^^ ^^^^ ^^^^^^^^^^^ ^^^^^^^ | Level: 1 │
│ ^^ ^^^^ ^^^^^^^^^^^ ^^^^^^^ | XP: 0 │
│ ^^ ^^^^^^^^^^^^^^ ^^^^^^^ | XPtoNextLvl: 20 │
│ ^^ ^^^^^ ^^^^^^ ^^^^^^^ | │
│ ^^^^^^ ^^^^^ ^^ ^^^^^ | Health: 20 │
│ ^^^^^^ ^^^^^ ^^ ^^^^^^^ | Sling Range: 8 │
│ ^^^^^^ ^^^^^^^ | Shots Avail: 1 │
│ ^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ | │
│ ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ | Artifacts: 0 │
│^^^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^ | │
│^^^^ ^^^^^^ ^^^^^^^^^^ ^| │
│^^^^ ^^^^^^ ^^^^^ ^| │
│ ^^ @ ^^^^^ ^| │
│ ^^^^^ ^| │
│ ^^^^^^^ | │
│ ^^^^^^ | │
│ ^^^^^^^ ^^ ^^^^ ^^^ | │
│ ^^^^^^^ ^^ ^^^^^^^^^^ | │
│ ^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^^ | │
│^^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^ | │
│^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ | │
│^^^^ ^^^^^^ ^^ ^^^^^^ ^^^^^^ ^^^^^^| │
│ ^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^| │
│ ^^^^^^^ ^^^^^^^^ | │
│ ^^^^^^ ^^ ^^^^^ ^^^^^^ | │
│ ^^^^^^ ^^ ^^^^^ ^^^ ^^^^^^ | │
│^ ^^^^^^ ^^^^ ^^^ ^^^^^^ ^^^^ | Time 339 │
│^ ^^ ^^^^ ^^ ^^^ ^^^^^^^^^^^^ | Location 183,421 │
│---------------------------------------------------------------------------------------│
│ │
│Welcome to The Forest. │
│ You're trapped in the forest, but you can escape with enough artifacts. │
│ Artifacts are carried by Protectors, which must be killed to attain them. │
│ Once you have 10 artifacts, find the door in the South to escape. │
│ Move with wasd. │
└───────────────────────────────────────────────────────────────────────────────────────┘