Repository navigation
Conversation
Contributor
4ian
force-pushed
the
claude/awesome-knuth-vaoj1s
branch
from
October 14, 2026 09:43
b8b5ef0 to
49a896c
Compare
4ian
force-pushed
the
claude/awesome-knuth-vaoj1s-first-person-maps
branch
from
October 14, 2026 12:16
850a2f1 to
edac405
Compare
4ian
force-pushed
the
claude/awesome-knuth-vaoj1s
branch
from
October 14, 2026 12:17
49a896c to
6541de0
Compare
4ian
force-pushed
the
claude/awesome-knuth-vaoj1s-first-person-maps
branch
from
October 14, 2026 13:25
edac405 to
6130e91
Compare
4ian
force-pushed
the
claude/awesome-knuth-vaoj1s-first-person-maps
branch
from
October 14, 2026 13:48
6130e91 to
afd1210
Compare
Contributor
Author
|
No code fix applies. Re-running the workflow from CircleCI should clear it. I can't re-run CircleCI jobs from here, and I won't push an empty commit to retrigger it. I'm keeping this PR watched until it's green. Generated by Claude Code |
Variants of the four first-person 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. The monsters of the horror starters walk with navmesh pathfinding, around the trunks (trunk collisions of the scattered models), the cabin, the crypts and the graves, instead of a grid with invisible obstacles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj
4ian
force-pushed
the
claude/awesome-knuth-vaoj1s-first-person-maps
branch
from
October 14, 2026 17:06
afd1210 to
9e554ed
Compare
…vaoj1s-first-person-maps
They get the skybox of their starters in the standard cube orientation (#1069). In the FPS horror, a shot monster is lowered as it falls over: it rotates around its center, and lay above the ground. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj
…a map Built from the 3D FPS game with enemies (#1076), whose enemies walk with navmesh pathfinding, on the same map: a canyon with cover on uneven ground and a ramp up to a plateau, with six enemies. The navmesh is built from the terrain (5 px cells, slopes over 40 degrees are not walkable), the rocks and the cacti (scattered models with trunk collisions) and the cover (obstacles only). The random destinations of the patrol are put on the terrain; the ground box of the starter, where they are picked, is kept hidden under the terrain. The terrain and the cover hide the player from the enemies and stop the bullets. Tests: the tests of the starter (moving, shooting, killing an enemy), and on the map, the player and the enemies start on the ground, a patrolling enemy walks toward the player on the ground, an enemy that sees the player catches them, an enemy goes up the ramp to catch the player on the plateau, and the player walks up the ramp. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj
4ian
force-pushed
the
claude/awesome-knuth-vaoj1s-first-person-maps
branch
from
October 19, 2026 13:17
2413453 to
2ff5306
Compare
…gain In the FPS with enemies and the FPS horror with a map, a walking enemy or monster is moved by the navmesh: its physics body (dynamic, as in the starters) is deactivated, and it is activated when it is shot, to take the impulse at the impact of the starters. A shot enemy or monster is thrown back and tumbles again, instead of falling over. Touching the player, which was a collision of the physics bodies, is checked with the distance between them. The test of a shot monster falling over is replaced by a test of a shot enemy or monster thrown back and tumbling. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj
The previous change deactivated the physics body of a walking enemy, so that the player could walk into it, and touching the player was checked with a distance. The body now stays: while the navmesh moves it, it has no gravity, doesn't collide with the static objects (mask 1: the ground, the walls), which the navmesh keeps it on and away from, and is 100 times heavier, so that the player bumps into it without pushing it. Touching the player is the collision of the physics bodies again, as in the starter. When it is shot, it gets its density, the gravity and the collisions back (deactivating and activating the behavior creates the body again with them), and takes the impulse at the impact. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds "with a map" variants of four first-person starters, on maps made with the 3D terrain extension, modeled on the 3D GTA with a map. The original starters are unchanged.
The FPS variant is built from the 3D FPS game with enemies of #1076 (with its enemies walking with navmesh pathfinding, done there). It is a project of its own: this PR doesn't need #1076 to be merged first.
Uses the theme support for custom objects, the
terrain.*slots and the model slots for scattered models of #1082 (merged). Based on the latestmain(the skyboxes in the standard cube orientation of #1069 included). Same approach as #1086.The starters
starting-first-person-farming-with-a-map— "3D First Person Farming with a map"starting-first-person-horror-with-a-map— "3D First-Person Horror Game with a map"starting-first-person-shooter-horror-with-a-map— "3D FPS Horror game with Gun with a map"starting-first-person-shooter-enemies-with-a-map— "3D FPS with enemies with a map"Each variant is built from the starter as it is on
main. What changed in the events is only what the map needs:RaycastSurfaceof the farming starter, the obstacles the monsters see through, what bullets hit), so seeds are placed and bullets hit on the terrain;NavMeshPathfinding), instead of the grid pathfinding of the starters with an invisible obstacle at each tree. The terrain, the trunks of the scattered trees, rocks, logs and stumps (their trunk collisions give a surface to the navmesh), the cabin, the crypts, the walls and the graves have the navmesh obstacle behavior: the navmesh follows the forest if it is painted again. The monsters keep their state machine, and the chase also follows the navmesh (the path to the player is updated twice per second) instead of pushing the monster with forces. Their 3D physics body is kinematic in the horror starter (moved by the navmesh, it still collides with the player). In the FPS horror, a shot monster is still thrown back by the impulse at the impact of the starter: while the navmesh moves it, its physics body (dynamic, as in the starter) has no gravity, doesn't collide with the static objects (the terrain, the trees, the graves) and is 100 times heavier, so the player bumps into it; when it is shot, it gets its density, the gravity and these collisions back, and takes the impulse. The horror starters keep theirGroundbox, hidden under the terrain, because the patrol picks random points inside it;PutOnGroundaction of the terrain);Terrain.GroundZ); the ground box of the starter, where they are picked, is kept hidden under the terrain. The terrain and the cover hide the player from the enemies and stop the bullets. As in the starter, a shot enemy is thrown back by the impulse at the impact, and the player bumps into the walking enemies (same physics body as the FPS horror monsters).Each variant has its forests, bushes, rocks and plants as scattered models (
Terrain3D::ScatteredModels, GPU instancing, theirModelmapped to thenature.*model slots), mountains around the playable area and invisible walls at the limits, its shape in theEditsproperty of the terrain (generated by a script running the terrain and scatter code of the extension), ambientCG ground textures with normal maps, grass only where it is seen up close, CC0 asset-store models credited in its README, a new project UUID, apreview.pngfrom a 1280×720 screenshot, the latest version of every extension it uses (including GDevelopApp/GDevelop-extensions#2310), and its objects mapped to theme slots.Tests
The tests of the starters are kept, and tests of the map are added:
The tests render at 160×90 without shadows, with the grass and the scattered models hidden, and with a 60 s timeout. For the tests of the starters, which act at the center of the screen, the 2D layers (mobile controls, UI, crosshair) are zoomed out to show what they show at 1280×720. All 27 tests pass with
node scripts/run-gameplay-tests.js(GDevelop 5.6.284).Screenshots
Views of the maps (1280×720, scaled down):
3D First Person Farming with a map

3D First-Person Horror Game with a map

3D FPS Horror game with Gun with a map

3D FPS with enemies with a map

With themes applied (built from GDevelopApp/GDevelop-assets#704), first view and overview:
The horror maps are dark, as in the starters (fog, flashlight).
Not done / to check
GDevelop-ai-prompts).npm run build(database) stops in this sandbox when fetching the deployed themes (proxy). The theme slots were checked withcheckStarterThemeSlots, and every theme was applied to every new starter withapplyThemeToStarter.🤖 Generated with Claude Code
https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj