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.
163 lines
8.5 KiB
Plaintext
163 lines
8.5 KiB
Plaintext
|
|
Build System:
|
|
☐ Modify build script to output fail or success messages based on build result
|
|
✔ Complete for batch script @done(22-05-09 18:57)
|
|
☐ Complete for shell script
|
|
✔ 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 @done (1/25/2022, 3:59:23 PM)
|
|
|
|
Core:
|
|
✔ Wrap NFD in an API in the platform module @low @done(22-05-31 15:44)
|
|
Wrapper added to utils - not platform
|
|
☐ Add custom (64 bit?) UUID generator (based on Chreno's UUIDs)
|
|
✔ Add Terminal subsystem to allow for printing colored text in a cross-platform way @done(22-05-16 18:05)
|
|
✔ Create a LogListener that uses the colored text (replace the current stdout listener) @done(22-05-16 18:23)
|
|
✔ Replace XML with JSON (https://github.com/nlohmann/json) @high @done(22-05-19 15:35)
|
|
✔ Move internal libs back into the core and refactor @high @done(22-05-17 14:27)
|
|
✔ Utils @done(22-05-13 17:29)
|
|
✔ assets @done(22-05-17 14:27)
|
|
✔ gui @done(22-05-17 14:27)
|
|
✔ Replace the File Browser (imgui) class with the NFD library (https://github.com/btzy/nativefiledialog-extended) @high @done(22-05-23 16:00)
|
|
☐ Add log settings to the state file
|
|
✔ Refactor log system to use separate log level methods instead of passing log level @done(22-05-12 16:46)
|
|
✔ Add log level options to config script @done(22-05-12 16:46)
|
|
✔ 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 @done (2/8/2022, 4:39:37 PM)
|
|
|
|
Graphics:
|
|
☐ Move the openGL reference out of the Image class (OpenGL ID) and make the ID more generic
|
|
☐ Add layer to interface API for setting the Images ID in a generic way
|
|
☐ Implement batch rendering
|
|
✔ 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)
|
|
✔ Find a way to add rotation to shapes and images @done (10/29/2021, 7:35:14 PM)
|
|
✔ Add a DrawPolygon method that takes vertices and draws arbirary shapes @done (10/29/2021, 6:24:14 PM)
|
|
☐ Allow DrawPolygon to add a texture to the polygon @low
|
|
✔ Refactor the drawing code to allow for rotation with cleaner code @high @done (10/29/2021, 8:36:24 PM)
|
|
✔ Test rotation of images @done (11/1/2021, 2:11:13 PM)
|
|
✔ Fix line rotation @low @done (2/8/2022, 4:39:25 PM)
|
|
✔ Add Roboto-Regular.ttf as an internal font @high @done (11/3/2021, 8:35:51 PM)
|
|
✔ Allow an image size to be passed in for rendering to an image @high @done (2/3/2022, 4:07:33 PM)
|
|
|
|
Scripting:
|
|
☐ Switch to Wren instead of LUA (https://github.com/wren-lang/wren) @high
|
|
☐ Remove SOL
|
|
|
|
Script Managment class:
|
|
✘ Manage LUA states @cancelled(22-05-13 17:31)
|
|
☐ Initialize new scripts
|
|
☐ Run given script with given state
|
|
☐ Add any generated errors to the Script object
|
|
|
|
Interface Class (Core API):
|
|
☐ Provide Methods that give access to the C++ code
|
|
|
|
ECS:
|
|
☐ Research EnTT for the ECS (https://github.com/skypjack/entt/)
|
|
☐ Research using ECS with a quadtree (regions may essentially be a quadtree)
|
|
☐ Use 1 Entt registry with a component that stores the region ID (Index?)
|
|
|
|
Enitity:
|
|
☐ Single UUID
|
|
☐ Functionality for adding/working with components (through EnTT)
|
|
|
|
Components:
|
|
☐ Transform
|
|
☐ SpriteRenderer
|
|
☐ Animation Controller
|
|
☐ Script
|
|
☐ Audio Listener
|
|
Physics:
|
|
☐ Rigid Body (Box2D)
|
|
☐ Box Collider (Box2D)
|
|
|
|
World (Lunariums version of a "Scene"):
|
|
☐ Track/manage loaded regions
|
|
☐ Render loaded Regions
|
|
|
|
Region:
|
|
☐ List of renderable images for each layer
|
|
☐ List of game objects (by reference) in this Region
|
|
☐ Implement image grid within regions
|
|
[Regions could potentially be split into multiple images (an internal grid).
|
|
To support larger region sizes without needing single images that are like 1048576x1048576 or some nonsense.]
|
|
|
|
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 @done (10/26/2021, 4:43:41 PM)
|
|
☐ Improve the interfaces for the Lua Editor and Console (partial transparancy for one thing) @high
|
|
FileBrowser:
|
|
✔ Allow opening of listed directories @done (11/8/2021, 3:16:26 PM)
|
|
✔ Add indication that an item is directory @done (11/8/2021, 6:19:20 PM)
|
|
✔ Sort items by type (Directories should come first) @done (11/8/2021, 6:26:01 PM)
|
|
✔ Allow the user to type in a filename @done (11/9/2021, 3:26:16 PM)
|
|
✔ Add a "New Directory" button @done (11/8/2021, 7:15:51 PM)
|
|
✔ Selected files should show up in the text box @done(22-04-18 13:33)
|
|
|
|
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)
|
|
|
|
Physics:
|
|
✔ Research Box2D as a possible physics library @done (10/27/2021, 7:40:44 PM)
|
|
✔ Add Box2D to the project as an external library @done (10/27/2021, 7:40:46 PM)
|
|
✔ Add a scene to the tester to test Box2D usage @done (10/28/2021, 2:42:45 PM)
|
|
☐ Come up with a way to wrap Box2D into an API
|
|
|
|
Audio:
|
|
☐ Research the usage of OpenAL
|
|
☐ Add OpenAL to the project
|
|
☐ Design Audio API
|
|
|
|
|
|
|
|
Utils:
|
|
✔ Make Logger fully static (no need to ever GetInstance) @done (10/26/2021, 4:43:55 PM)
|
|
✔ Need to add a static initialize method @done (10/26/2021, 4:43:57 PM)
|
|
☐ Add a templated return value to the OK variant of OpRes @low
|
|
|
|
|
|
Assets:
|
|
✔ Internal Asset Manager @high @done (1/25/2022, 3:58:20 PM)
|
|
☐ Document Index.Dat and the AssetIndex class
|
|
☐ Move the GenerateFont method from internal_font.h into data_manager.h
|
|
|
|
Types:
|
|
- Classes that represent each resource Types
|
|
✔ Image class @done (9/16/2021, 2:46:34 PM)
|
|
✔ Decouple Image class from OGLRenderer @high @done (10/27/2021, 7:41:50 PM)
|
|
☐ Font class
|
|
☐ Sound class
|
|
✔ Script class @done (1/25/2022, 3:58:28 PM)
|
|
|
|
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)
|
|
|
|
Testbed:
|
|
- 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 @cancelled (10/26/2021, 4:36:45 PM)
|
|
✘ Main Tick method should use the timer to determine when to switch to the next test @cancelled (10/26/2021, 4:36:16 PM)
|
|
✔ Add function for testing render to Texture @done (10/26/2021, 4:35:52 PM)
|
|
✔ Add function for testing input @done (10/26/2021, 4:36:05 PM)
|
|
✔ Add function for testing text rendering @done (10/26/2021, 4:35:54 PM)
|
|
✔ Add function for testing shape drawing @done (10/26/2021, 4:35:58 PM)
|
|
✔ Add function for testing image drawing @done (10/26/2021, 4:36:00 PM)
|
|
|