You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mil
809335c869
|
4 years ago | |
---|---|---|
.gitignore | 4 years ago | |
README.org | 4 years ago | |
break.asd | 4 years ago | |
break.lisp | 4 years ago | |
objects.lisp | 4 years ago | |
package.lisp | 4 years ago | |
render.lisp | 4 years ago | |
scene.lisp | 4 years ago | |
utils.lisp | 4 years ago |
README.org
Break
Breakout clone with some future plans.
building, running
- install quicklisp
- place the repository in a directory listed in
quicklisp:*local-project-directories*
- start emacs and slime. SBCL is the only CL implementation tested.
- run
(ql:quickload :break)
and switch to the:break
package. - run
(cepl:repl)
to start CEPL - create a pad and assign it to
*pad*
(run-loop)
starts the game loop and(stop-loop)
stops it. Consider not recompiling the functions while the loop is running because you'll lose access to the closure.
lisp libraries used and where to find them
- CEPL (Documentation)
- Lispy way to work with OpenGL
- rtg-math (Documentation)
- Lisp-side math library
- vari and varjo (language documentation compiler documentation)
- Shader language and its compiler
things to do
Note: DONE doesn't mean the subheading's content is irrelevant.
DONE Decouple coordinate system from rendering resolutionn
The playable are has is 320 x 240 in size. The size is defined in a global variable, and parts of the code that need it read it. Entity positions and sizes are not adjusted if the size changes, but otherwise it can be adjusted at runtime.
TODO Remove global variables
State relevant to any given scene should be possible to keep in an object representing the scene itself. All update methods should take the context as an argument, rather than accessing global variables defined after the methods.
TODO Add a menu system and a scene loader
A menu is a kind of scene.
Scenes should probably be on a stack so that you can push/pop them to arbitrary depths.