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.
38 lines
2.0 KiB
38 lines
2.0 KiB
4 years ago
|
* 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
|
||
|
- [[https://github.com/cbaggers/cepl][CEPL]] ([[http://techsnuffle.com/cepl/api.html][Documentation]]) :: Lispy way to work with OpenGL
|
||
|
- [[https://github.com/cbaggers/rtg-math][rtg-math]] ([[http://techsnuffle.com/rtg-math/rtg-math-reference.html][Documentation]]) :: Lisp-side math library
|
||
|
- [[https://github.com/cbaggers/varjo][vari and varjo]] ([[http://techsnuffle.com/varjo/vari-reference.html][language documentation]] [[http://techsnuffle.com/varjo/varjo-reference.html][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.
|
||
|
*** TODO Implement keybindings
|
||
|
|