Early Access “Cold War Gone Hot” tank simulation game.
Short for “Gunner, use High Explosive Anti Tank round on enemy Personnel Carrier!” (yes, its nerdy)
Gunsight crosshairs are integrated with the ballistics system, elements are procedurally placed to ensure projectiles always hit their mark as we tweak our ammunition over the course of development. Supports both “old-fashoned” light-blocking reticles, & holographic/reflex reticles. All reticles were meticulously recreated from their real-world counterparts, using written & photographic reference (often difficult to find).
Approximation of Infrared light, used to identify heat sources such as vehicles & infantry. Vehicle engines, gun barrels, & tracks are heat sources that can change temperature independently. In addition, the sun’s position is used to determine the ambient environment temperature. Surface details are obtained using a semi-physically-based light model: surface brightness, roughness, & metalness are used to estimate heat emittance, determining how bright or dark it appears in thermal imagers. This achieves decently realistic results without needing much manual labor.
2D map rendering is harder than you'd think. GHPC has terrains over 8x8km in size & players need a zoomable map.
A static image needs to be very high resolution, it takes a lot of space, & even still it doesn't support a lot of zooming.
A mesh based map allows infinite zoom, but may be difficult to generate or require level of detail for performance.
Signed Distance Fields compromise & allow low resolution textures to encode vector graphics that can be infinitely zoomed. They enable easy styling of borders & anti aliasing cheaper than traditional triangle MSAA. The SDFs are procedurally generated based on the forest, road, & building masks that we already use for vegetation generation & terrain materials. There's a lot of room for optimization, but there was no need given how fast it was already running (<1ms).
Realtime sky simulation, based on a simplified solar system model. Takes into account the map’s global coordinates. Includes seasonal sun elevation, moon phases, & earthshine. The moon is also simulated as a light source & its brightness is affected by phase.
Developed the first iteration of the driver AI, allowing vehicles to navigate to a destination while avoiding obstacles.
Developed the first iteration of the AI vision occlusion. A mesh is used to determine how obscured a target is. PhysX raycasts are very efficient for static meshes, so this actually turned out to be very performant. Houdini procedurally generates a mesh using the forest masks that we use for procedural vegetation placement. The masks are vectorized, extruded, & the triangle count is reduced to reasonable amounts (<10,000 tris).