summaryrefslogtreecommitdiff
path: root/TODO
blob: 997151f2bf037169777e812aee785bf8e7e86504 (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# -*- org -*-

* Things To Do

** DONE Game loop
   Provide a game loop structure that responds to input events,
   updates the game state, renders the scene. Use a fixed update
   timestep and cap the maximum FPS.

** TODO Input
   Provide hooks to respond to keyboard, mouse, and joystick events.
   Wrap SDL keycode, mouse button, etc. constants in our own
   enumeration.

** DONE Sprites
   Encapsulates an image and all of its transformations: position,
   rotation, scale, color, etc.

** TODO Sprite batches
   Efficiently render a large number of sprites. Only change OpenGL
   context when necessary. For example, don't change texture when
   rendering several sprites in a row that use the same one.

** TODO Tilesets
   Break an image up into many small pieces. Useful for creating maps.

   (make-tileset image tile-width tile-height padding margin)

** TODO Tileset animations
   Given a tileset, an animated sequence of frames can be created.

   (make-animation tileset frame-duration frames)

** TODO Tile maps
   Create a loader for Tiled .tmx map files.

** TODO Scene graph
   A tree structure that is traversed when rendering a game scene.
   The graph is composed of groups and nodes. Transformations are
   accumulated as the tree is walked.

** TODO Scripting
   Provide a way for users to easily script 2D games using coroutines
   (green threads)

** TODO Vectors and matrices
   Vectors and matrices are needed constantly for games. Provide an
   easy-to-use module that provides procedures for common
   vector/matrix math operations

** TODO Fonts
   Use Freetype to provide font rendering procedures.

** TODO A* pathfinding
   A* is a commonly used pathfinding algorithm for games. Pathfinding
   is such a common task that it would be nice to provide users with
   a generic implementation.

** TODO Bounding box collision detection
   Most games need simple bounding box collision detection. Provide an
   efficient implementation that uses quad trees.

** TODO Particle systems
   Provide a highly configurible particle simulation system.