Skip to content

Add the 3D driving, racing, platformer and tank starters with a map - #1086

Open
4ian wants to merge 4 commits into
mainfrom
claude/awesome-knuth-vaoj1s-car-maps
Open

4ian wants to merge 4 commits into
mainfrom
claude/awesome-knuth-vaoj1s-car-maps

Conversation

@4ian

@4ian 4ian commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Adds "with a map" variants of four 3D starters, on maps made with the 3D terrain extension, modeled on the 3D GTA with a map (#1081). The original starters are unchanged.

Uses the theme support for custom objects, the terrain.* slots and the model slots for scattered models of #1082 (merged). Based on the latest main.

The starters

Starter Map
starting-3d-driving-with-a-map — "3D Driving with a map" 8192 px: a road circuit through fields and a village of houses, climbing a hill, with a shortcut over ramps.
starting-3d-car-racing-with-a-map — "3D Racing with a map" 8192 px: a race track with a start straight (grandstands, pits), a climb, hairpins and a descent. The checkpoints follow the track, and laps are counted as before.
starting-3D-platformer-with-a-map — "3D Platformer with a map" 6144 px: dirt paths winding up hills, platforms on their tops, coins along the paths, a pond (Water3D).
starting-3d-tank-with-a-map — "3D Tank with a map" 6144 px: hills, trenches, craters, ruined walls and dirt tracks. Shells explode on the terrain too.

Each one:

  • is built from the starter as it is on main (so it has the latest fixes and textures of the starter), and keeps its events and gameplay. What changed is only what the map needs: the ground box is replaced by the terrain (with the 3D physics behavior, friction 7 for the cars and the tank like the roads of the starters), the terrain is added to the groups the starter uses for its obstacles (bullet obstacles of the tank), and the racing checkpoints are placed along the track.
  • has its forests, rocks, stones, flowers and mushrooms as scattered models (Terrain3D::ScatteredModels): each object paints copies of a 3D model on the terrain, drawn with GPU instancing in a few draw calls, with its strokes in its Edits property. Trees and rocks the vehicles or the player can hit have trunk collisions (3D physics). Their Model is mapped to the nature.* model slots, so themes change them too.
  • has mountains around the playable area, and invisible walls at the limits.
  • has its shape in the Edits property of the terrain: raise/flatten/smooth/paint strokes, generated by a script running the terrain code of the extension (and its scatter code, to keep the copies away from the roads, buildings and spawn points).
  • uses ambientCG ground textures with normal maps, grass only near the start, where it is seen up close, and CC0 asset-store models credited in its README, with a new project UUID and a preview.png from a 1280×720 screenshot.
  • has the latest version of every extension it uses, from the main branch of the extensions repository (including the empty collision surface of scattered models without trunk collisions, Give scattered models without trunk collisions an empty collision surface GDevelop-extensions#2310).
  • maps its objects to theme slots (theme-slots.json): the terrain layers, the grass colors and the scattered models included.

A second commit updates the extensions of two examples already on main to their latest versions: the 3D terrain of the 3D island and of the 3D GTA with a map (filling holes with a brush, selecting scattered models by clicking them), and ThirdPersonCamera 1.9.0, Collision3D 0.2.1, SpriteMultitouchJoystick 1.9.2 and MousePointerLock 0.3.1 for the island. Their gameplay tests pass (11 for the island, 10 for the GTA).

Tests

The tests of each starter are kept (they run on the map), and tests of the map are added:

  • Driving: the car starts on the road; the car climbs the road of the hill.
  • Racing: the car starts on the track; climbs the hill; passing the 5 checkpoints in order counts a lap.
  • Platformer: the player and the coins start above the ground; the player walks up a path of a hill.
  • Tank: the tank and the targets start on the ground; the tank climbs a hill; a shell explodes on the ground.
  • All: each scattered models object has the copies placed by the generation script, standing on the ground.

The tests render at 160×90 without shadows, with the grass and the scattered models hidden (the software renderer of the tests is slow with instanced models: they still collide), and with a 60 s timeout, since the first frames compile the shaders. All 22 tests pass with node scripts/run-gameplay-tests.js (GDevelop 5.6.284).

Screenshots

Views of the maps (1280×720, scaled down):

3D Driving with a map
driving

3D Racing with a map
racing

3D Platformer with a map
platformer

3D Tank with a map
tank

With themes applied (built from GDevelopApp/GDevelop-assets#704), first view and overview:

Driving: winter, halloween Racing: city, space
Platformer: pirate, forest Tank: military, winter

Not done / to check

  • The starters are not added to the AI prompts (GDevelop-ai-prompts).
  • npm run build (database) loads every project, then stops in this sandbox when fetching the deployed themes (its axios version can't go through the proxy). The theme slots were checked with checkStarterThemeSlots, and every theme was applied to every new starter with applyThemeToStarter.
  • Performance was not measured on a phone.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

@4ian
4ian force-pushed the claude/awesome-knuth-vaoj1s branch from b8b5ef0 to 49a896c Compare October 14, 2026 09:43
@4ian
4ian force-pushed the claude/awesome-knuth-vaoj1s-car-maps branch from 273feba to f01dde5 Compare October 14, 2026 12:16
@4ian
4ian force-pushed the claude/awesome-knuth-vaoj1s branch from 49a896c to 6541de0 Compare October 14, 2026 12:17
@4ian
4ian force-pushed the claude/awesome-knuth-vaoj1s-car-maps branch from f01dde5 to 8391df6 Compare October 14, 2026 13:25
@4ian
4ian changed the base branch from claude/awesome-knuth-vaoj1s to main October 14, 2026 13:47
@4ian
4ian force-pushed the claude/awesome-knuth-vaoj1s-car-maps branch from 8391df6 to 05b6575 Compare October 14, 2026 13:48
Variants of the four 3D starters on maps made with the 3D terrain
extension, built from the starters as they are on main, with the latest
versions of their extensions. Forests, rocks and plants are scattered
models (painted copies drawn with GPU instancing). Themeable: the objects,
the terrain layers, the grass colors and the scattered models are mapped
to theme slots.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj
To the latest versions of the extensions repository: the 3D terrain
(filling holes with a brush, selecting scattered models by clicking them),
and for the island ThirdPersonCamera 1.9.0, Collision3D 0.2.1,
SpriteMultitouchJoystick 1.9.2 and MousePointerLock 0.3.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj
@4ian
4ian force-pushed the claude/awesome-knuth-vaoj1s-car-maps branch from 05b6575 to 69477c6 Compare October 14, 2026 17:06
…on main

They get the skybox of their starters in the standard cube orientation (#1069).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants