Easy tasks:
- Challenge yourself by cloning projects reading their README and compiling/running them [1]
- Port projects to other platforms (e.g. Windows-only game examples to Linux/Mac/FreeBSD) [2]
Codebases I've studied [3]:
sdl/graphic widgets: openttd, aseprite, nanogui(-sdl)
runtime / abstraction: v8, node, protobuf, skia
templates / language integration: pybind11, boost-python
wrapping C: libsdl2pp (SDL2 wrapper)
small: tmux-mem-cpu-load, uMario_Jakowski
huge: blender
Architecture / theory: https://aosabook.org/en/wesnoth.html, https://aosabook.org/en/audacity.html, https://aosabook.org/en/cmake.html, https://www.aosabook.org/en/llvm.html
Books: Scott Meyers C++ books
[1] It's C, but to push myself to grok build systems I tried to port tmux's autotools build system to CMake: https://github.com/tony/tmux/compare/master...tony:cmake
[2] https://github.com/jakowskidev/uMario_Jakowski/pull/1
[3] https://github.com/tony/.dot-config/blob/5c59f46/.vcspull.ya...
But I would hardly call the build system the main blocker unless the software module under development is near trivial in complexity.
Easy tasks:
- Challenge yourself by cloning projects reading their README and compiling/running them [1]
- Port projects to other platforms (e.g. Windows-only game examples to Linux/Mac/FreeBSD) [2]
Codebases I've studied [3]:
sdl/graphic widgets: openttd, aseprite, nanogui(-sdl)
runtime / abstraction: v8, node, protobuf, skia
templates / language integration: pybind11, boost-python
wrapping C: libsdl2pp (SDL2 wrapper)
small: tmux-mem-cpu-load, uMario_Jakowski
huge: blender
Architecture / theory: https://aosabook.org/en/wesnoth.html, https://aosabook.org/en/audacity.html, https://aosabook.org/en/cmake.html, https://www.aosabook.org/en/llvm.html
Books: Scott Meyers C++ books
[1] It's C, but to push myself to grok build systems I tried to port tmux's autotools build system to CMake: https://github.com/tony/tmux/compare/master...tony:cmake
[2] https://github.com/jakowskidev/uMario_Jakowski/pull/1
[3] https://github.com/tony/.dot-config/blob/5c59f46/.vcspull.ya...