blob: 7aeaa7a4fa27cfd13a6241d96caaa3ceed4a9375 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# 2023 Lisp Game Jam Entry
## "Game"
Yeah I don't have a good name yet. I'm just playing around and trying to get characters on the screen right now.
## Dependencies
- chicken scheme (`csi`) with eggs:
- r7rs
- matchable
- stty
- my ansi library, [yolk][]
[yolk]: https://git.acdw.net/yolk
## Running
Run `./game.scm` in this directory.
## License
Uh.. GPL I guess. See COPYING for details.
## Development log
### 2023-05-29
- I've changed the basic logic from just throwing characters on the screen wherever to a vector-based approach. I thought there was a multiple-dimensional vector egg or something, but I apparently was mistaken. So I'm doing the ol' multiply-by-one-thing-and-add-another approach.
- Implementing collision detection was slightly easier than I thought it might
be.
- Figuring out the vector bounds math was tricky... lots of "off-by-one" errors. I suppose I've hit both of the main errors of computer science with this game, then.
- I encapsulated things in their own records (so far, `world`, `thing`, and `me` ... and `world` and `me` are parameterized) to keep stuff together. I think this'll work... I hope!
### .. before
I started out by writing [yolk][], which has a bunch of procedures returning strings for terminal escapes. NIH and all :)
Originally I had a big loop to just draw all the border stuff at once, then the character where I wanted it. The character would erase itself and redraw as it moved, which worked fine ... for one object.
I was walking around when I realized I'd need to redo things.
|