GAMES = { { TITLE = "Scene1", SCRIPT = "testScripts/scenetest.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Stage 1 of the 3D scene: a translucent layer over the disc.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Scene2", SCRIPT = "testScripts/scene2.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Stage 2: primitives, materials, lights.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Scene3", SCRIPT = "testScripts/scene3.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Stage 3: glTF models.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Scene4", SCRIPT = "testScripts/scene4.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Stage 4: node animation.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Scene5", SCRIPT = "testScripts/scene5.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Stage 5: skinning.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Scene6", SCRIPT = "testScripts/scene6.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Stage 6: video materials, unproject, antialiasing.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Scene7", SCRIPT = "testScripts/scene7.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Stage 6b: shadows.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Cabinet", SCRIPT = "testScripts/scene8.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "An arcade cabinet built from primitives, the disc on its screen.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Physics", SCRIPT = "testScripts/scene9.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "A crate stack, a ball and a kinematic paddle on Jolt Physics.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Physics2", SCRIPT = "testScripts/scene10.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "A trigger volume, collision callbacks and a raycast pick.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Physics3", SCRIPT = "testScripts/scene11.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "A hull rolling down a ramp, a mesh torus, a hinged door, a pendulum, a slider.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Physics2D", SCRIPT = "testScripts/scene12.singe", DESCRIPTION = "2D physics drawn with sprites, no 3D or GPU needed.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Morphs", SCRIPT = "testScripts/scene13.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Morph targets: the AnimatedMorphCube, animated and scripted.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Dragon", SCRIPT = "testScripts/scene14.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "The solid tangram dragon model (assets/DragonModel.glb) turning under a sun with shadows.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Logo", SCRIPT = "testScripts/scene15.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "The Singe logotype as solid letters (assets/SingeText.glb) turning under a sun with shadows.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "DragonOnLogo", SCRIPT = "testScripts/scene16.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "The dragon perched on the Singe logotype, turning together under a sun with shadows.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Particles2D", SCRIPT = "testScripts/scene17.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "2D particles: fireworks, a smoke trail and sparks off a physics ball; runs with no GPU.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Particles3D", SCRIPT = "testScripts/scene18.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "3D particles: a torch flame and smoke on a post, a fountain, dust in the air.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Player", SCRIPT = "testScripts/scene19.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Character controller: the Fox walks stairs and a ramp, jumps, shoves a crate and stops at a steep slope.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Platformer", SCRIPT = "testScripts/scene20.singe", DESCRIPTION = "Character controller in 2D: a sprite platformer with a gap, a step, a wall and a ledge; no GPU needed.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "BulbInRoom", SCRIPT = "testScripts/scene21.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Point-light shadows inside geometry: a bulb under a shade and a bulb in a cage, in a closed room with pillars, seen inside and out.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Car", SCRIPT = "testScripts/scene22.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Vehicles: a car from primitives on a scripted route over a ramp, braking, turning and reversing.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "TankAndBike", SCRIPT = "testScripts/scene23.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Vehicles: a six-wheeled tank that pivots on the spot and a motorcycle that leans through a turn.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Water", SCRIPT = "testScripts/scene24.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Water: a pool and a river with a current; floating, sinking and drifting bodies, the Fox swimming, a raft under power.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Ragdolls", SCRIPT = "testScripts/scene25.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Ragdolls: a running Fox crumples against a wall, another falls down stairs limp, a third lies under motor strength.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "SoftBodies", SCRIPT = "testScripts/scene26.singe", VIDEO = "Singe/menuBackground.mkv", DESCRIPTION = "Soft bodies: a flag on a pole, a sheet catching a crate, a swinging rope and a balloon under pressure.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Sponza", SCRIPT = "testScripts/scene27.singe", DESCRIPTION = "The Khronos Sponza atrium under a sun with shadows, on a camera walk.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Materials", SCRIPT = "testScripts/scene28.singe", DESCRIPTION = "Roughness and metallic rows of spheres under the linear pipeline, with exposure and tone curves.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Blending", SCRIPT = "testScripts/scene29.singe", DESCRIPTION = "Animation crossfades, a masked layer, and a ragdoll easing back into its animation.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Sky and fog", SCRIPT = "testScripts/scene30.singe", DESCRIPTION = "The dragon and logo under an equirectangular sky that lights the scene, with fog.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Dragon field", SCRIPT = "testScripts/scene31.singe", DESCRIPTION = "Four hundred dragons batched into a few instanced draw calls and culled to the view.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Bloom and views", SCRIPT = "testScripts/scene32.singe", DESCRIPTION = "A monitor showing a security camera, a rear-view mirror, and a glowing lamp.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Navigation", SCRIPT = "testScripts/scene33.singe", DESCRIPTION = "A navigation mesh baked from Sponza, a path along the nave, Foxes wandering it.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Terrain", SCRIPT = "testScripts/scene34.singe", DESCRIPTION = "Rolling hills from a heightmap with a height field body, a tiled texture and crates tumbling down.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, { TITLE = "Physics Debug", SCRIPT = "testScripts/scene35.singe", DESCRIPTION = "Bodies, joints, contacts and velocities drawn as lines by physicsSetDebug, a ray cast by lineDraw and the navigation mesh by navDraw.", YEAR = 2026, GENRE = "Test", PLATFORM = "Singe", DEVELOPER = "Test", PUBLISHER = "Test", }, }