]> git.gir.st - VIper.git/blob - README.md
readme: small blurb about dependencies, todo item->done
[VIper.git] / README.md
1 # VIIper - a Snake Clone for Unicode-compatible Terminals
2
3 TODO: find a better name
4
5 ## Dependencies
6
7 You'll need either a terminal emulator with good Unicode (Emoji) support and a
8 compatible font, or an actual DEC VT220 to fully enjoy the graphics of this
9 game. This is what I'd recommend:
10
11 - A VTE based terminal (like GNOME Terminal and a whole bunch of others)
12 - Google Noto's Color Emoji Font (Fedora: `google-noto-emoji-color-fonts.noarch`)
13
14 ## Keybindings
15
16 `h`, `j`, `k`, `l` or cursor keys move the snake.
17 `r` to restart, `p` to pause, `q` to quit.
18
19 ## TODO
20
21 - DONE base game: fixed field size, fixed speed
22 - DONE food (unicode)
23 - DONE put 'sprites' into `schemes.h`
24 - DONE snake elongates
25 - DONE unicode chars
26 - DONE input buffer (so fast 180° turns get executed)
27 - DONE only redraw changing parts of the screen
28 - DONE input out of whack when stopping (^Z) and resuming
29 - DONE keybindings for restart, pause, redraw
30 - DONE on dying: show end screen, allow restarting
31 - DONE score, increasing speed, ~~timer~~
32 - DONE bonus/special items: slower snake, shorter snake, etc.
33 - decaying points? (more points the faster you get the food)
34 - wall-wrap-around mode?
35 - fix all `grep -n TODO viiper.c`
36
37 ## Notes
38
39 ### terminal compat
40
41 to display emojis, we need a terminal that can handle a color emoji font (no
42 shit, sherlock). mlterm, xterm and urxvt didn't work in my tests (mlterm might
43 work if compiled correctly, the other two use bitmap fonts and i don't think
44 there are any w/ emoji support).
45 i intend to put bonus items in the game that will only be visible for a short
46 time. when they get near the end of their life, SGI-5 (blink) will make them
47 blink. this is supported in gnome-term 3.28 (vte 0.52) which is supplied with
48 fedora 28. [bug report](https://bugzilla.gnome.org/show_bug.cgi?id=579964)
49 for KDE's konsole you'll need [this
50 fontconfig](https://gist.github.com/IgnoredAmbience/7c99b6cf9a8b73c9312a71d1209d9bbb)
51 and follow the steps inside.
52
53
54 ### strange behaviour of SIGALRM
55
56 I'm using SIGALRM to advance the snake's position. during some refactoring I
57 noticed that when the signal handler returns, a STX (ASCII 0x02) byte gets
58 pushed onto stdin.
Imprint / Impressum