summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO125
1 files changed, 0 insertions, 125 deletions
diff --git a/TODO b/TODO
deleted file mode 100644
index 4a69cee..0000000
--- a/TODO
+++ /dev/null
@@ -1,125 +0,0 @@
-# -*- 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.
-
- - [X] Keyboard
- - [X] Mouse
- - [X] Window (active, resize, quit)
- - [ ] Joystick
-
-** DONE Sprites
- Encapsulates an image and all of its transformations: position,
- rotation, scale, color, etc.
-
- - [X] Add support for texture regions
- - [X] Add support for animations
- - [X] Use a sprite batch when drawing if one is currently bound
-
-** 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.
-
- - [X] Add basic batching for non-scaled, non-rotated sprites
- - [X] Add transformation logic for scaling and rotating
- - [X] Add support for colors
- - [ ] Add support for different blending modes
-
-** DONE Tilesets
- Break an image up into many small pieces. Useful for creating maps.
-
-** DONE Animations
- Create a data type to represent an animated sequence of textures
- and/or texture regions.
-
-** TODO Tile maps
- - [ ] Create a generic tilemap module
- - [ ] 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.
-
-** DONE Scripting
- Provide a way for users to easily script 2D games using coroutines
- and a scheduler.
-
-** 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
-
- - [X] Vectors
- - [ ] Matrices
-
-** TODO Fonts
- - [ ] Fixed width bitmap font rendering
- - [ ] Truetype font rendering via freetype
-
-** TODO Sound
- Provide helpful wrappers around SDL sound 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.
-
-** TODO Asset Management
- Provide a generic system for loading assets (images, sounds, fonts,
- etc.) and storing them in a cache. Explore using weak keys so that
- assets are removed from the cache when they are no longer
- referenced.
-
-** TODO Actions
- Provide a library of coroutines that perform commonly used
- time-based actions such as linear interpolation. It would be nice
- to have a way to make these easily composable as well.
-
- - [ ] Linear interpolation (lerp)
- - [ ] Move to/move by
-
-
-** TODO Combos
- Provide an Emacs-like way of defining key combinations to that
- multi-button input is easy for users.
-
- - [ ] Basic sequences (press A then B)
- - [ ] Simultaneous key presses (press A and B at the same time)
- - [ ] Timeouts (combos fail if you don't enter them quick enough)
-
-** TODO 0.1 Release
- An official 0.1 alpha release with basic, minimal functionality
- will provide a good place for people other than me to try out
- guile-2d and perhaps even start to hack on it.
-
- - [ ] Finish sprite batches
- - [ ] Basic font rendering
-
- I don't know of any freetype bindings for Guile, so maybe basic
- fixed-width bitmap font support will be all that is possible for
- now.
-
- - [ ] Resolve issues with FIGL
-
- Can't have a broken dependency.
-
- - [ ] Texinfo documentation
- - [X] Autotools build files