Mo McRoberts
Music • Broadcasting • Technology
Ding
- Simple scene loader
Composite (group) objects
Primitive transforms & translation
- Group transforms & translations
- Includes/reuse of composite obects (via
xlink:href
and xml:id
)
- SDL-based scene viewer
- Fixed camera & viewport/FOV scale
- Cross-platform skeleton (generate Xcode and VS projects)
- Simple colour shading of primitives
- Shaded/wireframe toggle
- Keyboard/mouse camera movement
- Model loading
- Texture loading
- Add a skybox/skydome
- Configurable cameras (first- vs third-person vs overhead, for example) and a camera cycle key
- Cameras can be fixed or track - a tracking camera is transformed or translated whenever an object which is tracking it does based upon scene-defined adjustments
- Scene inheritance: load all of the objects from a base scene, then extend it with additional objects
- Physics and collisions
- Bullet
- Wrap the camera in a physics capsule so the 'player' can collide
- Animated models
- Optional raycasting mode
- May operate independently of camera if there are sufficient input sources (e.g., if a gyroscope and touchscreen are available, the gyro could be used to alter camera, and a touch to trigger raycasting)
- Trigger a visual effect when collisions or raycast occur
- Audio (play a sound when a collision occurs)
- Add a "goal" objects which can be collided-with to end the scene
- Add an optional countdown timer
- Add optional score-keeping
- Move object behaviours (keep score, play sound, add visual effect, etc.) into Lua
- Ability to load assets, including scene XML, Lua and textures from packages (ZIP files)
- Fork into Ding! from Scene Viewer
- Remove hotkeys for shaded/wireframe, camera flythrough, etc.
- Add global states
- Add progression (a goal or timer expiry leads to another scene)
- Add scene music
- Add high-scores
- Split into Arcade (timed) and Peaceful (untimed, but objects may only be collided with a certain number of times) modes
- Add health to Arcade mode and health-influencing (damaging and enhancing) objects
- Add damaging NPC objects which pathfind and have their own health