-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
enhancementNew feature or requestNew feature or request
Description
It's about time for a rewrite. (in C11)
My work on 3DStris started out as a way to better learn C++ (as I'm sure many can tell). As a result, 3DStris has become an OOP mess with many Java-isms present, despite mixing many C libraries with C++ code.
Some code criticisms:
- The
Stringclass is a C++ wrapper around a C99 library, when I should've probably just written my own library from scratch.- We also have both a
StringViewandStringclass, because ourStringclass can only own ansdsstring
- We also have both a
- The GUI (Screen) system was a placeholder waiting for a future replacement, but I never got around to replacing it, as mentioned in GUI rewrite #54.
- Memory allocation is a mess, and strings are constantly allocated on the heap, just to be freed next frame.
- Crazy amount of dependencies, many of which are quite unnecessary.
- CMake sucks.
Changes
- Cross-platform support (only Win32 and 3DS at first)
- The main use for the Win32 port will be easier debugging. Debugging on a real 3DS (and especially Citra) is a pain, so I'd like an easier and faster way to debug game logic.
- Other ports will follow, but mostly as a "side-effect" of engine work
- Handmade immediate mode GUI
- Custom save and config format
- Memory arenas replacing heap whenever possible
- Might be a pain on the 3DS
- As little external dependencies as possible, besides metaprogramming libraries like Metadesk
When it comes to code style changes, I'm not too sure. Naming conventions will most definitely change.
This issue will likely receive many edits while I work on other projects, and may not perfectly reflect the final rewrite.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request