Or how I learned to stop worrying and love...something.
An engine I'm writing in C++. Makes use of other repos of mine: 3dbasics and CppUtils. The CppUtils repo is added as a submodule.
git clone --recursive https://github.com/Benjins/CppUtils.git
Or run the following after a clone:
git submodule update --init --recursive
Ubuntu: pthread, X11, and OpenGL development packages
Windows: Uhhh...OpenGL32.lib? Windows dependencies confuse me.
OS X: Ha ha, there's no Mac version. yet.
Windows: Run build.bat runtime
to build the runtime exe, or build.bat editor
to build the editor.
Linux: Run ./build.sh runtime
to build the runtime exe, or ./build.sh editor
to build the editor.
TODO:
(aka a bunch of ideas I really wish I could do. And I just might)
- Editor
- Immediate-mode Gui
- Object selection
- Component editing
- Saving/loading
- better pan/orbit control
- separate editors for different things:
- prefab editor
- material editor
- particle editor
- Physics
- basic Rigidbody simulation
- Sphere-sphere collisions
- Sphere-box collisons
- Mesh colliders/GJK/Minkowski stuff?
- Gui
- Have non-imm buttons
- sliders (either imm or not, I just want some)
- non-imm checkboxes
- non-imm labels
- non-imm string picker lists
- non-imm frames/rects
- non-imm scrollable rects
- Graphics
- better shading model, specular, etc.
- cube maps, sky boxes, static reflections
- armature, animations
- particle systems
- lighting system w/ point lights, multiple lights, etc.
- Animation
- Animation states, split track by time
- Animation targets serialize
- animation blending
- IK stuff
- Networking
- basic matchmaking server backend, just for testing?
- Reliable and streaming packets, ACK's
- Resolve id's between host/client
- Player entity sync?
- Packet design, spawning/destroying entities?
- Smooth out network information
- interactions between networked entities
- ownership?
- better packet design, pack bits better
- test more than two players, join-in-progress
- Metagen
- Collect coroutines into discrimnated union
- Gui button actions, collect into enum and discriminated union
- Script integration
- yield/wait for seconds command
- Hotloading
- Use metaGen system to generate script files
- MetaGen
- Parse attributse
- Parse enums
- Parse functions/methods
- Custom serialize/editor methods?
- Or, knowledge of disciminated unions and enums
- enums in editor
- Misc
- Break out application entry point and platform entry point
- Make XML unicode aware
- Some kind of ref-counted unicode strings, like String/SubString
- console menu with console commands
- Substrings from Substrings