cshoot is a character-based shoot-em-up game developed with the
library. The program is Public Domain; other programmers are
encouraged to examine and reuse the code for any means.
The current version of cshoot is
Beta 4. If all goes well, 1.0 will be based on this code.
NCurses has not been ported to Windows, but Windows users can use
Currently there are a few known issues:
- The collision detection needs replacing. It is the cause of adjacent
friendlies crashing into each other (the "dumb-pilots" bug), shots
sometimes going through objects they should hit, the F-fire sometimes
looking funny, and a few other bugs that occur when two objects are
near each other. This is scheduled for fixing in 2.0
- This game chews up bandwidth and is not recommended
for anything other than internal-network or localhost use.
- In some places, loops through mvaddch should be replaced by more
efficient Ncurses functions.
- On some Linux systems, -ansi -pedantic can whine about usleep(),
random(), and other system library functions not being defined. This
is because the system's headers don't pass -ansi -pedantic.
- There has been one report that Beta 1 doesn't compile, but the
OS and dev environment were not given.
Terminal dependant issues:
- Konsole begins to skip when the game speed hits 1024*20ms/frame,
rendering cshoot unplayable in konsole at high scores.
- xmlterm exits when you press an arrow key, as it registers the input
as an escape key. You must use the hjkl keys to move.
- eterm intermittently attempts to repaint the background image,
obscuring the characters on the screen
- kterm is too dark, and it is difficult to see the characters
on the screen.
The project roadmap is for a quick 1.0 release with no critical
bugs (crashes, hangs, graphics screwups, or serious detriments to gameplay).
After that, the plan is to rebuild the collision detection system to be
saner and less buggy than what exists now. Along the way, newbieisms
will be replaced and more use will be made of NCurses's functionality.
Most of these changes will be released as .0.1 increments.
No gameplay changes are expected.
- Beta 4: Where we are.
- Beta 5: Any possible fixes needed by b4. If b4 is okay, this will be skipped.
- 1.0: Stable release. Binaries will be available for Linux, Windows, and FreeBSD. Blocked on lead programmer learning how to make packages.
- 1.1: Merge Ian Wilson's colours fork.
- 1.2: Optimize drawing.
- 2.0: Collision detection rewrite.
This program is currently being written and
(not) maintained by
a single novice with little to no experience in Ncurses
and video game programming. The input of persons with more experience
Please do not copyright any code donations to the project, as the author
would like the program to remain in the public domain. Only public domain
patches will be accepted.
Questions and comments may be sent to
Please send a bug report if you find a bug which is not mentioned either
in the source or on this page, or if the program fails to compile on your
last update 2004/06/28
If you like this sort of thing, here are some other games you may be
- Asciijump, by Grzegorz Moskal
- Ascii Attack, by Richard James
- Bombardier, by Risko Gergely
- David's Perl Games, by David Slimp
- Ladder, by Stephen Ostermiller
- MisCom, by Graham Richards
- Moon Buggy, by Jochen Voss
- Nethack and other roguelike games, by legions of ruffian hackers
- Netris, by Mark Weaver
- nInvaders, by Thomas Dettbarn et al
- Overkill, by Karel and Petr Kulhavy
- Star Lanes, by Brian "Beej" Hall