]> git.gir.st - VIper.git/blob - README.md
README: update TODOs
[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 - A VTE based terminal (like GNOME Terminal and a whole bunch of others)
8 - Google Noto's Color Emoji Font (Fedora: `google-noto-emoji-color-fonts.noarch`)
9
10 ## Keybindings
11
12 hjkl or cursor keys move the snake.
13 r to restart, p to pause, q to quit.
14
15 ## TODO
16
17 - DONE base game: fixed field size, fixed speed
18 - DONE food (unicode)
19 - DONE put 'sprites' into `schemes.h`
20 - DONE snake elongates
21 - DONE unicode chars
22 - DONE input buffer (so fast 180° turns get executed)
23 - DONE only redraw changing parts of the screen
24 - PoC: input out of whack when stopping (^Z) and resuming
25 - timer, score, increasing speed
26 - keybindings for restart, pause, redraw
27 - on dying: show end screen, allow restarting
28 - bonus/special items: slower snake, shorter snake, etc.
29 - decaying points? (more points the faster you get the food)
30 - wall-wrap-around mode?
31 - fix all `grep -n TODO viiper.c`
32
33 ## Notes
34
35 ### terminal compat
36
37 to display emojis, we need a terminal that can handle a color emoji font (no
38 shit, sherlock). mlterm, xterm and urxvt didn't work in my tests (mlterm might
39 work if compiled correctly, the other two use bitmap fonts and i don't think
40 there are any w/ emoji support). konsole will have to be tested in the future.
41 i intend to put bonus items in the game that will only be visible for a short
42 time. when they get near the end of their life, SGI-5 (blink) will make them
43 blink. this is supported in gnome-term 3.28 (vte 0.52) which is supplied with
44 fedora 28. [bug report](https://bugzilla.gnome.org/show_bug.cgi?id=579964)
45
46
47 ### strange behaviour of SIGALRM
48
49 I'm using SIGALRM to advance the snake's position. during some refactoring I
50 noticed that when the signal handler returns, a STX (ASCII 0x02) byte gets
51 pushed onto stdin.
Imprint / Impressum