You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lunarium_OLD/docs/Tasks.todo

142 lines
4.7 KiB
Plaintext

Build System:
✔ Add a build option to do a build without the editor @done (9/17/2021, 7:25:08 PM)
☐ Modify .sh scripts to recognize the noeditor flag
Core:
☐ Add log settings to the state file
✔ Add run modes (Editor, Game, Test) to state file @done (9/15/2021, 7:27:03 PM)
✔ Add run mode interface class @done (9/15/2021, 8:22:35 PM)
☐ Read the window size and position on shutdown and write these to the state file
Graphics:
✔ Decide on a font/text rendering system @done (9/7/2021, 1:39:53 PM)
✔ Add FreeType to the project @done (9/7/2021, 2:23:13 PM)
✔ Add a new class for font loading/management and text rendering @done (9/7/2021, 3:57:08 PM)
✔ Make the text renderer smarter about breaking up words on multiple lines @low @done (9/8/2021, 2:23:03 PM)
✔ Implement the Image creation methods @done (9/9/2021, 2:50:20 PM)
✔ Implement Render to Texture @done (9/15/2021, 7:00:33 PM)
✔ Adjust the font loading code to use the binary file buffer instead of ifstream @done (9/17/2021, 6:11:06 PM)
GUI:
✔ Dear ImGui class with basic initialization @done (9/10/2021, 1:42:19 PM)
✔ Debug log window @done (9/10/2021, 4:44:48 PM)
✔ Add key to show debug log window @done (9/13/2021, 6:47:44 PM)
☐ Add checkboxes to disable log categories and levels
☐ Add LUA Console window
Input:
✔ Port over the Element2D input system and adjust it to use glfw @done (9/8/2021, 8:20:07 PM)
✔ Add the InputManager to the core @done (9/9/2021, 2:57:06 PM)
Audio:
Scripting:
Script Managment class:
☐ Manage LUA states
☐ Initialize new scripts
Interface Class:
☐ Provide Methods that give access to the C++ code
Utils:
☐ Make Logger fully static (no need to ever GetInstance)
☐ Need to add a static initialize method
Game:
☐ Implement Run Mode interface class
☐ Load game project data
☐ Manage list of scenes
☐ Manage global scripts
☐ Handle Events from the core
Scene:
☐ Manage scene scripts
☐ Manage game objects in scene
Manage list of Regions:
☐ Track which regions should be loaded
Region:
☐ List of renderable images for each layer
Game Object:
☐ List of components
Components:
☐ Transform
☐ Image
☐ Animation Controller
☐ Collider
☐ Script
Animations:
☐ Animated Sprite class
Editor:
✔ Come up with project directory structure @done (9/17/2021, 6:46:44 PM)
✔ Implement Run Mode interface class @done (10/25/2021, 6:54:36 PM)
☐ Reference raw asset files in a "content" folder
☐ Platform independant file browsing
☐ Scan script files to make sure they don't overwrite globals
Raw Asset Importers:
- Need classes to load raw resource files for the editor
☐ Raw Resource loader interface class
☐ Raw Image loader class
☐ Raw Sound loader class
☐ Raw font file loader class
GUI Panels:
Project Overview (Tree view):
Game Viewport:
Scene View:
Tile Map Editor:
☐ Tile map canvas
☐ Tile map pallete
☐ Hideable grid
☐ Stamp creater
Asset Viewer:
Properties:
Assets:
Types:
- Classes that represent each resource Types
✔ Image class @done (9/16/2021, 2:46:34 PM)
☐ Font class
☐ Sound class
☐ Script class
Loaders:
- Need class (or classes?) to load resources from the packed format that the pipeline generates
Come up with binary file formats for each type:
☐ .xml (This will probably be multiple different formats depending on what the .xml file is describing)
☐ Image
☐ Script
☐ Audio
Asset Pipeline:
☐ Read through the contents folder and generate asset files in a custom format (useable by the engine)
Tester:
- A special class that is used to unit-test features of the engine
✔ Implement Run Mode interface class @done (10/25/2021, 7:37:00 PM)
☐ Needs a timer to keep track of how long a test has run
☐ Main Tick method should use the timer to determine when to switch to the next test
☐ Add function for testing render to Texture
☐ Add function for testing input
☐ Add function for testing text rendering
☐ Add function for testing shape drawing
☐ Add function for testing image drawing