How omardev29/raylib_multiplatform works
raylib_multiplatform is an experimental C++20 game framework layered on raylib. A game entry point starts the application and initial scene; each frame updates and draws the scene stack, with queued scene changes applied after drawing, then shutdown unwinds scenes and closes resources. The README also presents input, UI, objects and behaviors, assets, tilemaps, audio, saves, randomness, math, and ads as framework capabilities. Paths and edges for those less-sampled subsystems reflect the tree and documented interfaces; their internal wiring is not inferred.
Main entry points: main_menu.cpp Main menu scene · app.cpp App runner · assets.cpp Asset access · scene.cpp Scene stack
Components 21
App lifecycle
- Game entry
src/main.cpp - App runner
src/rmp/app.cpp
Gameplay runtime
- Scene stack
src/rmp/scene.cpp - Main menu scene
src/scenes/main_menu.cpp - Input
src/rmp/input.cpp - Objects
src/rmp/object.cpp - Behaviors
src/rmp/behavior.cpp - Animation
src/rmp/animation.cpp - Collision
src/rmp/collision.cpp - Camera
src/rmp/camera.cpp
Presentation
- UI toolkit
src/rmp/ui/controls.cpp - UI rendering
src/rmp/ui/render.cpp
Game services
- Asset access
src/rmp/assets.cpp - Resource loading
src/rmp/resource.cpp - Tilemaps
src/rmp/tilemap.cpp - Audio
src/rmp/audio.cpp - Save data
src/rmp/save.cpp - Randomness
src/rmp/random.cpp - Ads
src/rmp/ads.cpp
Other components
- raylib runtime
thirdparty/raylib/src/raylib.h - Game developer
Connections 26
- Game developer → Game entry: starts game
- Game entry → App runner: starts runner
- App runner → Scene stack: starts and frames
- Scene stack → Main menu scene: enters scene
- App runner → Asset access: initializes
- App runner → UI rendering: ends UI frame
- App runner → Scene stack: applies queued changes
- Main menu scene → Input: reads controls
- Main menu scene → UI toolkit: builds interface
- UI toolkit → UI rendering: renders layout
- Main menu scene → Scene stack: requests transitions
- Main menu scene → Objects: uses objects
- Main menu scene → Behaviors: uses behaviors
- Main menu scene → Animation: uses animation
- Main menu scene → Collision: uses collision
- Main menu scene → Camera: uses camera
- Main menu scene → Asset access: loads assets
- Asset access → Resource loading: loads resources
- Main menu scene → Tilemaps: uses tilemaps
- Main menu scene → Audio: plays audio
- Main menu scene → Save data: stores progress
- Main menu scene → Randomness: requests random values
- Main menu scene → Ads: requests ads
- App runner → raylib runtime: manages window
- UI rendering → raylib runtime: draws UI
- Asset access → raylib runtime: uses graphics resources