A simple ncurses roguelike - with zombies

Timothy Rice 78261466b9 Add gitignore. 9 tahun lalu
.gitignore 78261466b9 Add gitignore. 9 tahun lalu
Character.c 9594ad7793 Fleshed out the README a bit. 12 tahun lalu
Character.h 297ec61019 Cleaned up a bit. 12 tahun lalu
Creature.c 4b029b716e Tidy up. 12 tahun lalu
Creature.h 4b029b716e Tidy up. 12 tahun lalu
Curses.c 4b029b716e Tidy up. 12 tahun lalu
Curses.h 06a63422bf Overlapping buildings done; but gaps at intersecting boundaries. 12 tahun lalu
Doxyfile 018eb6be19 Implemented saving/loading maps as part of saving & loading games. 12 tahun lalu
Game.c 4b029b716e Tidy up. 12 tahun lalu
Game.h 4b029b716e Tidy up. 12 tahun lalu
Makefile eefefb5869 We were including save.tab.h in the list of files to compile. 12 tahun lalu
Map.c c1e5dd97b6 Tidy up. 12 tahun lalu
Map.h f7c7b1870d Fixed bugs in map loading code and improved rendering of overlapping buildings. Also some general code clean up. 12 tahun lalu
Maths.c 4b029b716e Tidy up. 12 tahun lalu
Maths.h 4b029b716e Tidy up. 12 tahun lalu
Menu.c 297ec61019 Cleaned up a bit. 12 tahun lalu
Menu.h f2f49ae442 First commit, stable. 12 tahun lalu
README 4b029b716e Tidy up. 12 tahun lalu
main.c 297ec61019 Cleaned up a bit. 12 tahun lalu
main.h 297ec61019 Cleaned up a bit. 12 tahun lalu
save.h f2f49ae442 First commit, stable. 12 tahun lalu
save.l 018eb6be19 Implemented saving/loading maps as part of saving & loading games. 12 tahun lalu
save.y f7c7b1870d Fixed bugs in map loading code and improved rendering of overlapping buildings. Also some general code clean up. 12 tahun lalu

README

ZOMBIES

A zombie game at least partly inspired by the roguelike genre, with key bindings inspired by vim:

- h: Move left

- j: Move down

- k: Move up

- l: Move left

- q: Quit

- w: Save

- i: Inventory (not implemented yet).

Use SHIFT_{h,j,k,l} to sprint. Sprinting will exhaust your character until they've had time to rest.


Objective:

Make your way from the top-left of the map to the bottom right without getting eaten.


Installation:

Run make to compile, then put the binary in your path or run it directly.

The source includes a Doxyfile. Run,

make docs

Then check out docs/html/index.html in your browser. You'll be able to find a bunch of cool dependency graphs which show the structure of the code.


To do, with more important tasks near the top and low priorities at the bottom:

- Put usable items on the map and let characters carry them in an inventory.

- A status bar to show health and fatigue levels.

- More realistic lighting. It's currently possible to see around corners.

- Players should be infected by bites, but this needs to be done in a way that doesn't unbalance the game.

- More sophisticated maps, eg scrollable to permit maps larger than console size. (Maybe not doable with simple ncurses?) Also, it would be good to be able to enter buildings and use the ncurses panel library or the like to go to different floors.

- Some kind of plot and/or difficulty progression.

- More complicated character abilities and attributes. Characters should be able to learn skills and become fitter with time.


Will not do:

- Different kinds of zombies.

- Different kinds of player characters.

- Player character alignment.

- Mutations, psionics, supernatural forces, cybernetic implants, alien technology, genetic engineering, or any other weird stuff that distracts from the difficulties of surviving a zombie apocalypse.