todo.txt 4.59 KB
Newer Older
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109

TODO(will) features
 - Big Projects
 	- Massive refactoring
 	- Programmable ini replacement
 	- Memory dumps, logging
 	- Reflection/introspection metaprogramming system
		- Header generation	(complete)
			- Extracts structs, typedefs, procedure prototypes
			- For compatability with declare-once, we've gotta wrap 
				all struct definitions with a define (#define REFLECTED)
		- Introspection/reflection data
		- Serialization function generation
 		- Can save versioned type layouts, then do its best to load from/to 
 	- Modding with packages
 		- requires a lot of sorting per package id.
 - Graphics
	 - Texture atlas stitching
		- able to combine pow2 squares into one big atlas
	 - Release as lightweight spriting library
 - Physics
 	- Sort bodies in place? Should compare w/ sorting pointers
 	- Static and dynamic friction
 	- Multithreading/SIMD body processing?
 	- More sophisticated spacial partitioning?
 		- Hierarchical grids, quadtrees, k-d trees
 		- Current grid system works, but rather inflexible and memory-hungry
 - UI
 	- Needs to be reworked
 - Play
 	- Event/triggers system
		- Keep track of things that need to happen between frames
 	- Entity inspector
 	- Another art pass
 - Figure out how to minimize sorting/improve algorithm
 	- Might have to use bulit in qsort?
 

TODO(will) Refactoring
 - rituals_animations.cpp
 	- To store animations in the registry?
 	- Have a way to pre-build animaition dictionaries
 	- Animated_Sprite isn't a sprite.
 - rituals_entity_events.cpp
 	- Possibly a more sophisticated sorting method for entities? 
 	- Better typing support for entity userdata
 - rituals_game.cpp
 	- Use generated structs/procedures for Game_States
 - rituals_game_info.cpp & rituals_game_registry.cpp
 	- No meaningful distinction right now between these files?
 	- Supposedly the "types" of things go in info and the registry system 
 		belongs in registry, but due to C's declaration syntax, you can't mix them.
 	- All the game's definitions end up in registry when they should be in info
 - rituals_gui.cpp
 	- Gui components need reworking.
 - rituals_inventory.cpp
 	- This... just isn't done, and the project isn't quite ready for it.
 - rituals_main.cpp
 	- Needs Main_Menu stuff taken out, possibly want to clean up includes/defines too.
 - rituals_math.cpp
 	- Remove unused stuff
 	- Complete operator overloading for the whole type matrix
 - rituals_memory.cpp
 	- Need more allocator types
 	- Free-list/Bucket Array?
 	- Pool allocator?
 	- I implement a lot of these inline, but it'd be nice to pull some out
 	- Maybe macro generators?
 - rituals_particles.cpp
 	- Need to rework styles system, more types of effects? 
 	- Possibly needs to be included in the regsitry?
 	- Real-time particle editor?
 - rituals_play_state.cpp
 	- Should be combined into a rituals_gamestates.cpp w/ generated code
 - rituals_random.cpp is good!
 - rituals_renderer.cpp is pretty good
 	- The "fancier" forms of rendering in the game rely on Sprite/render_add to work
 	- I'd like to standardize in-game objects vs. raw renderer Sprites
 	- A lot of the 3D stuff has been hardcoded (entity, particle, animation_frame)
 		but it's all very similar and could largely be combined.
 - rituals_serialization.cpp
 	- Is totally broken; doesn't respect the current state of World, World_Area, Entity, etc
 - rituals_simulation.cpp
 	- Is a bit of a mess overall
 	- Sim_Body is a pain to work with
 		- using shape.center for position sucks
 		- Shouldn't really have a entity pointer, right?
 		- I'm sure there's a slightly better way to hook up with Entity/other things?
 	- Question: sort array of pointers v. sort raw structs for sweep and prune?
 		- Ties into larger questions about cache coherency
 	- Need to investigate multithreading/taskpool implementation for update
 		- Also consider way to do some things in SIMD
 	- Overall, the static grid works well; maybe want grid for dynamic objects too?
 		- This is maybe where we look at quadtrees?
 - rituals_sort_macros.cpp
 	- Maybe want to do speed testing vs. built in sort methods?
  rituals_tilemap.cpp
 - Tilemap rendering needs tweaking; some tiles need more than a simple sprite
 - Maybe we need better representation of tiles w/ height?
  rituals_world.cpp & rituals_world_area.cpp
 - Another mixed-up situation: world_area_update relies on world, so it ends up in world.cpp, 
 rather than closer to struct World_Area
 - Forward declarations and all the world_area_<handle_event> procedures clutter World.cpp
 - Entity/in-game object rendering needs to be reworked/standardized

TODO(will) bugs???
  - All of serialization is broken
  - Current animation implementation is not serializable