|
group2 0.1.0
CSE 125 Group 2
|
| src | |
| client | |
| animation | |
| AnimationLibrary.cpp | Load FBX animation clips onto a shared skeleton |
| AnimationLibrary.hpp | Catalog of ozz animation clips shared across all animated entities |
| AnimationTesterUI.cpp | ImGui panel for driving the animation state machine in development |
| AnimationTesterUI.hpp | ImGui panel for driving the animation state machine in development |
| CharacterAnimator.cpp | Per-entity animator: state machine + sampling + blending + skin matrices |
| CharacterAnimator.hpp | Per-entity animator — state machine, sampling, blending, CPU skinning |
| CharacterRig.cpp | FBX loader that builds the ozz skeleton + bind-pose mesh data |
| CharacterRig.hpp | Shared skinned-character rig: skeleton, bind-pose mesh, skin weights |
| FbxImportUtils.cpp | Implementation of Assimp ↔ ozz ↔ GLM conversion helpers |
| FbxImportUtils.hpp | Assimp ↔ ozz ↔ GLM conversion helpers shared by the rig and animation library loaders |
| SkinningBackend.cpp | CPU linear-blend-skinning implementation |
| SkinningBackend.hpp | Pluggable skinning interface — phase-1 CPU LBS; GPU backend slots in later |
| debug | |
| DebugUI.cpp | Implementation of the DebugUI overlay and all ImGui debug windows |
| DebugUI.hpp | Live ECS inspector overlay and debug windows powered by Dear ImGui |
| FrameRecorder.cpp | Implementation of FrameRecorder session management and CSV output |
| FrameRecorder.hpp | Per-frame state recorder for diagnosing camera jitter and position glitches |
| game | |
| Game.cpp | Implementation of the top-level Game class and SDL application callbacks |
| Game.hpp | Top-level client game class owning all subsystems and the main loop |
| hud | |
| debug | |
| HudDebugPanel.cpp | |
| HudDebugPanel.hpp | ImGui panel for live-tweaking HUD widget layout and parameters |
| widgets | |
| AmmoCounter.cpp | |
| AmmoCounter.hpp | Ammo clip / reserve display |
| BuyMenu.cpp | |
| BuyMenu.hpp | |
| CrosshairWidget.cpp | |
| CrosshairWidget.hpp | Dynamic crosshair with configurable gap, thickness, and dot |
| DamageAccumWidget.cpp | |
| DamageAccumWidget.hpp | Running damage total displayed below the crosshair |
| DamageIndicator.cpp | |
| DamageIndicator.hpp | |
| DamageNumberWidget.cpp | |
| DamageNumberWidget.hpp | Floating in-world damage numbers projected to screen space |
| HealthArmorBar.cpp | |
| HealthArmorBar.hpp | Health and armor bars with animated fill |
| HitMarkerWidget.cpp | |
| HitMarkerWidget.hpp | Center-screen hit confirm flare with fade + scale animation |
| KillFeed.cpp | |
| KillFeed.hpp | Sliding kill feed entries anchored top-right |
| Minimap.cpp | |
| Minimap.hpp | |
| PickupPrompt.cpp | |
| PickupPrompt.hpp | On-screen "Press F to pick up <Weapon>" hint shown when a weapon pickup is currently actionable for the local player |
| RoundTimer.cpp | |
| RoundTimer.hpp | |
| Scoreboard.cpp | |
| Scoreboard.hpp | |
| TeamStatusBar.cpp | |
| TeamStatusBar.hpp | |
| VignetteWidget.cpp | |
| VignetteWidget.hpp | Full-screen vignette overlays for damage, shield break, and death |
| Hud.cpp | Top-level HUD orchestrator |
| Hud.hpp | Top-level HUD system — owns widgets, renderer, context, tweens |
| HudContext.cpp | Immediate-mode draw API implementation |
| HudContext.hpp | Immediate-mode draw API for HUD widgets |
| HudRenderer.cpp | GPU backend implementation for the HUD system |
| HudRenderer.hpp | GPU backend for the HUD system — owns offscreen target, pipeline, and vertex buffer upload |
| HudTween.cpp | Tween pool + easing function implementations |
| HudTween.hpp | Lightweight fixed-pool tween engine for HUD animations |
| HudTypes.hpp | Shared types for the HUD system |
| HudWidget.hpp | Base struct for all HUD widgets |
| main | |
| main.cpp | Client application entry point using SDL callback-driven lifecycle |
| network | |
| Client.cpp | Implementation of the TCP client connection and message I/O |
| Client.hpp | TCP client for connecting to the game server |
| EntityInterpolation.cpp | Implementation of append + bracket-search sampling for InterpolationBuffer |
| EntityInterpolation.hpp | Append + lookup helpers for the per-entity InterpolationBuffer |
| particles | |
| effects | |
| BulletHoleDecal.cpp | Implementation of ring-buffer decal pool for bullet holes and scorch marks |
| BulletHoleDecal.hpp | Ring-buffer pool of world-space decal quads for bullet holes and scorch marks |
| ExplosionEffect.cpp | Implementation of shockwave ring and fireball explosion effect |
| ExplosionEffect.hpp | Shockwave ring and fireball explosion effect for rocket impacts |
| HitscanEffect.cpp | Implementation of hitscan energy beam with fBm path deviation |
| HitscanEffect.hpp | Hitscan energy beam effect using fBm path deviation and Bezier spines |
| ImpactEffect.cpp | Implementation of spark burst and impact flash effect |
| ImpactEffect.hpp | Spark burst and impact flash effect for projectile hits |
| RibbonTrail.cpp | Implementation of camera-facing ribbon trail builder |
| RibbonTrail.hpp | Camera-facing ribbon trail builder for slow/arcing projectiles |
| SmokeEffect.cpp | Implementation of volumetric smoke billboard particle effect |
| SmokeEffect.hpp | Volumetric smoke billboard particle manager with back-to-front sorting |
| TracerEffect.cpp | Implementation of oriented-capsule tracer effect for projectiles |
| TracerEffect.hpp | Oriented-capsule tracer management for fast-bullet projectile entities |
| sdf | |
| SdfAtlas.cpp | SDF glyph atlas baking and GPU upload implementation |
| SdfAtlas.hpp | SDF glyph atlas loader and GPU texture manager |
| SdfFont.hpp | Glyph metric types for the SDF text rendering system |
| SdfRenderer.cpp | SDF text renderer implementation for world-space and screen-space text |
| SdfRenderer.hpp | High-level SDF text renderer for world-space and screen-space text |
| GpuParticleBuffer.cpp | Implementation of GPU/transfer buffer management for particle data |
| GpuParticleBuffer.hpp | GPU storage/vertex buffer paired with a CPU transfer buffer for particle uploads |
| ParticleEvents.hpp | Event structs dispatched via entt::dispatcher for particle spawning |
| ParticlePool.hpp | Fixed-capacity particle pool with O(1) swap-remove |
| ParticleRenderer.cpp | Implementation of all particle GPU pipelines, buffer uploads, and draw calls |
| ParticleRenderer.hpp | Owns all particle GPU pipelines and per-category GPU buffers |
| ParticleSystem.cpp | Implementation of the top-level particle system orchestrator |
| ParticleSystem.hpp | Top-level particle system orchestrator owning all effect sub-systems |
| ParticleTypes.hpp | GPU-uploadable particle structs for all effect categories |
| renderer | |
| Camera.cpp | Implementation of the first-person Camera class |
| Camera.hpp | First-person camera with perspective projection and Vulkan-convention matrices |
| GlowCylinder.hpp | Procedural cylinder with emissive material for bloom beam testing |
| GlowSphere.hpp | Procedural UV sphere with emissive material for bloom testing |
| GraphicsConfig.cpp | Implementation of loadGraphicsConfig() |
| GraphicsConfig.hpp | Graphics configuration loaded from config.toml at startup |
| HybridRenderer.cpp | Implementation of the legacy/new routing renderer |
| HybridRenderer.hpp | Routing layer between the legacy renderer and the new (in-progress) renderer |
| IRenderer.hpp | Abstract renderer interface used by the hybrid dispatcher to route calls to either the legacy renderer or a (partially-implemented) new one |
| ModelLoader.cpp | Assimp model loading, embedded texture decoding, and scene-graph traversal |
| ModelLoader.hpp | Assimp-based model loading and CPU-side mesh/texture data types |
| Renderer.cpp | SDL3 GPU renderer implementation – pipelines, passes, and post-processing |
| Renderer.hpp | Work-in-progress SDL3 GPU renderer implementing the IRenderer interface |
| RendererTypes.hpp | Shared data types used across renderer implementations |
| ShaderUtils.cpp | Implementation of shared shader-loading utilities |
| ShaderUtils.hpp | Shared shader-loading utilities used by Renderer and ParticleRenderer |
| SMAAAreaTex.h | SMAA Area Texture generator |
| SMAASearchTex.h | SMAA Search Texture generator |
| renderer-new | |
| Asset.hpp | GPU asset types and global registries for the new renderer |
| AssetLoader.cpp | Implementation of AssetLoader — Assimp scene import and mesh extraction |
| AssetLoader.hpp | Assimp-based model loader for the new renderer pipeline |
| Boilerplate.cpp | Implementation of SDL3 GPU boilerplate helpers |
| Boilerplate.hpp | SDL3 GPU helper utilities: shader loading, buffer/texture creation, pipeline setup |
| Camera.cpp | Implementation of the new renderer Camera class |
| Camera.hpp | Camera class for the new renderer with combined view-projection matrix |
| NewRenderer.cpp | Implementation of the work-in-progress NewRenderer |
| NewRenderer.hpp | |
| sfx | |
| SfxEvents.hpp | SFX-specific event structs |
| SfxSystem.cpp | Client-side SFX system implementation |
| SfxSystem.hpp | Client-side sound effects system |
| SfxTypes.hpp | Sound effect identifiers, categories, and the SoundClip data type |
| systems | |
| GamepadAimAssistSystem.hpp | AAA-style controller aim assist — applied after runGamepadLook |
| InputRingBuffer.hpp | Per-tick history of stamped input snapshots, keyed by clientPredictTick |
| InputSampleSystem.hpp | Client-only input sampling for mouse look and movement keys |
| InputSendSystem.hpp | Serialises and sends the local player's InputSnapshot to the server |
| KillFeedEvent.hpp | |
| PredictionSystem.hpp | Client-side prediction: run movement+collision locally each tick |
| ReconciliationSystem.hpp | Replay client-stored inputs to recover prediction after a server snapshot apply |
| util | |
| WorkerPool.cpp | Implementation of the tiny persistent parallel-for thread pool |
| WorkerPool.hpp | Tiny persistent thread pool for parallel-for over short job ranges |
| clientbot | |
| Bot.cpp | Implementation of the headless client bot |
| Bot.hpp | Headless network-only client bot for load-testing the server |
| main.cpp | Multi-bot load-test launcher |
| ecs | |
| components | |
| AnimatedCharacter.hpp | ECS component wiring an entity to its per-entity CharacterAnimator |
| AnimSnapshot.hpp | PR-27 — per-entity animation state snapshot, decoupled from CharacterAnimator |
| BeamState.hpp | Continuous beam weapon state component |
| ClientId.hpp | Network client identifier component for multiplayer entities |
| CollisionShape.hpp | AABB collision shape component for physics entities |
| Controllable.hpp | Client side Tag component — entity is eligible to receive player input |
| DeathInfo.hpp | Component for enemy information upon death |
| Explosion.hpp | Transient explosion request component |
| Health.hpp | Player health and armor |
| Hitbox.hpp | Skeleton-driven hitbox types: body regions, capsule definitions, damage profiles, and per-entity runtime state |
| HitboxHistory.hpp | Server-side ring buffer of recent hitbox capsule snapshots per entity |
| InputSnapshot.hpp | Per-tick player input snapshot for networking and prediction |
| InterpolationBuffer.hpp | Per-entity ring of recent snapshot samples for renderer interpolation |
| LagCompTarget.hpp | Per-shooter rewind target for lag-compensated hitscan |
| LocalPlayer.hpp | Marker component identifying the locally controlled player entity |
| ParticleEmitterTag.hpp | Particle emitter tag component for environmental effects |
| Player.hpp | Player component |
| PlayerMatchStats.hpp | Component for player match-related stats |
| PlayerSimState.hpp | Server-only locomotion bookkeeping (timers, blacklists, lurch state) |
| PlayerStateEnums.hpp | Locomotion mode + wall-side enums shared by PlayerVisState and PlayerSimState |
| PlayerVisState.hpp | Visible / replicated half of the player locomotion state |
| Position.hpp | World-space position component for ECS entities |
| PreviousPosition.hpp | Previous-tick position component for render interpolation |
| Projectile.hpp | Projectile component and weapon/surface type enumerations |
| Renderable.hpp | Renderable component linking ECS entities to renderer model instances |
| RespawnPoint.hpp | Player spawn point component with cooldown state |
| RespawnTimer.hpp | Component for tracking player respawn times |
| RibbonEmitter.hpp | Ribbon trail emitter component for slow projectiles |
| TracerEmitter.hpp | Tracer streak emitter component for fast projectiles |
| Velocity.hpp | Linear velocity component for ECS entities |
| ViewmodelConfig.hpp | Per-weapon viewmodel, third-person, and recoil tuning parameters (header-only) |
| WeaponConfig.hpp | Static gameplay tuning data for each weapon type |
| WeaponSpawner.hpp | Weapon spawner information |
| WeaponState.hpp | Weapon state component for armed entities |
| physics | |
| MapLoader.cpp | Assimp-based collision extraction from map GLB files |
| MapLoader.hpp | Load collision geometry (and optionally visual data) from a map GLB file |
| Movement.cpp | Implementation of Quake-style movement physics functions |
| Movement.hpp | Pure physics math for velocity, friction, and acceleration |
| PhysicsConstants.hpp | All physics tuning constants in one place |
| Raycast.hpp | Shared hitscan raycasting against world geometry and player hitboxes |
| SweptCollision.cpp | Implementation of swept AABB and sphere collision queries |
| SweptCollision.hpp | Swept AABB and sphere collision queries against world geometry |
| TitanfallConstants.hpp | Titanfall-inspired movement constants adapted to Quake units |
| TriMeshCollision.cpp | BVH builder and swept-AABB-vs-triangle-mesh collision |
| TriMeshCollision.hpp | Triangle-mesh collision with BVH acceleration |
| VHACDImpl.cpp | Single translation unit that compiles the V-HACD implementation |
| WallDetection.cpp | Implementation of wall, climb, and ledge detection via sphere casts |
| WallDetection.hpp | Wall, climb, and ledge detection via sphere casts |
| WorldData.hpp | Shared world geometry for collision / movement / raycast systems |
| registry | |
| Registry.hpp | Shared ECS registry type alias for the game engine |
| systems | |
| CollisionSystem.cpp | Implementation of swept-AABB collision detection and response |
| CollisionSystem.hpp | Shared collision system for swept-AABB physics resolution |
| ExplosionSystem.cpp | Explosion request processing and radial damage |
| ExplosionSystem.hpp | Explosion request processing and radial damage |
| HitboxSystem.cpp | Transform skeleton joint poses into world-space hitbox capsules |
| HitboxSystem.hpp | System that transforms skeleton-driven hitbox definitions from bone-local space into world-space capsules every tick |
| LagCompensation.hpp | RAII guard for hitbox-rewind lag compensation |
| MatchSystem.cpp | Implementation of the MatchSystem that checks for match win conditions and updates match state accordingly |
| MatchSystem.hpp | Match system for handling match logic and win conditions |
| MovementSystem.cpp | Implementation of the Titanfall-inspired movement state machine |
| MovementSystem.hpp | Shared movement system implementing the Titanfall-inspired state machine |
| PlayerStatusSystem.cpp | Player status manager system |
| PlayerStatusSystem.hpp | Player status manager for things like life state and healing |
| Systems.hpp | Top-level ECS systems namespace with placeholder update function |
| WeaponSpawnerSystem.cpp | Weapon spawner manager system |
| WeaponSpawnerSystem.hpp | Weapon spawner manager system |
| WeaponSystem.cpp | Weapon state manager system |
| WeaponSystem.hpp | Weapon state manager system |
| AssetCatalog.hpp | Static asset loading and render-default metadata |
| AssetRegistry.hpp | Central registry mapping named assets to renderer model indices |
| MapConfig.hpp | Single source of truth for which map is loaded and how, shared by client and server |
| network | |
| transport | |
| FragmentReassembler.hpp | Per-connection assembly buffer for fragmented UDP packets |
| PacketHeader.hpp | Wire format for the UDP transport layer |
| UdpEndpoint.cpp | Implementation of the SDL3_net UDP datagram wrapper |
| UdpEndpoint.hpp | Thin wrapper over SDL3_net's NET_DatagramSocket |
| MatchStatus.hpp | Shared definitions for match status and state synchronization between server and clients |
| MessageStream.cpp | Implementation of the MessageStream length-prefixed framing layer |
| MessageStream.hpp | Length-prefixed message framing layer over a TCP stream socket |
| NetKillEvent.hpp | Structure of kill event broadcasted from server to clients |
| NetworkConfig.cpp | Implementation of loadNetworkConfig() |
| NetworkConfig.hpp | Network configuration loaded from config.toml at startup |
| OutboundQueue.cpp | Implementation of the per-client outbound message queue |
| OutboundQueue.hpp | Per-client outbound message queue with replace-on-stale semantics |
| PacketType.hpp | Network packet type identifiers for client-server communication |
| RegistryArchive.hpp | Lightweight binary serialization archives for ECS component snapshots |
| RegistrySerialization.cpp | Implementation of ECS registry serialization for network transport |
| RegistrySerialization.hpp | Serialize and deserialize the entt ECS registry for network replication |
| ShotDebugReport.hpp | Wire-format types for the PR-20 lag-comp shot debug visualizer |
| ShotEvent.hpp | Wire-format particle effect event broadcast from server to all clients |
| server | |
| game | |
| ServerGame.cpp | Implementation of the server-side game loop, tick logic, and player management |
| ServerGame.hpp | Top-level server game loop integrating ECS and networking |
| main | |
| main.cpp | Server application entry point |
| network | |
| Server.cpp | Implementation of the TCP game server |
| Server.hpp | TCP game server that accepts clients and dispatches incoming packets |
| perf | |
| Parallel.hpp | Thin wrapper around C++17 parallel STL |
| Profiler.cpp | Profiler runtime: scope registration, sample recording, 1 Hz aggregator thread |
| Profiler.hpp | Lightweight server-side scoped profiler |
| ShotLog.cpp | Implementation of the server-side shot-resolution log |
| ShotLog.hpp | PR-18b — server-side shot-resolution log for the netsync framework |
| systems | |
| Event.hpp | Client Event structure to be consumed by server game loop |
| EventQueue.cpp | Implementation of the EventQueue FIFO operations |
| EventQueue.hpp | Thread-safe event queue for passing network events to the game loop |
| EventType.hpp | Server-side gameplay event type identifiers |
| HitboxHistorySystem.cpp | Push the current frame's HitboxInstance into each entity's HitboxHistory ring (Phase 6 scaffolding) |
| HitboxHistorySystem.hpp | Server-only system that pushes the current HitboxInstance for every replicated entity into its HitboxHistory ring once per tick |
| InputReceiveSystem.hpp | System for deserialising incoming client input packets into events |
| MatchController.cpp | Implementation of the MatchController system that manages match flow and state |
| MatchController.hpp | Controls match flow, including starting and ending matches and managing match state |