Skip to content

v0.6.1

Choose a tag to compare

@Dr20Ervin Dr20Ervin released this 20 May 16:08
· 23 commits to master since this release

Release v0.6.1-alpha: VRAM-Cached Textures, Custom Constructors & Core State Mapping

Welcome to the second alpha milestone of Pong Reloaded! Building on our previous OOP architectural foundation for the UTCN - ETTI Helios initiative, this version addresses critical components of our roadmap. We have migrated from basic procedural geometric primitives to a modern, VRAM-cached asset pipeline and expanded our runtime pipeline configuration.

🛠️ What's New in v0.6.1-alpha

1. VRAM-Cached Asset Pipelines (Issue #3)

  • Direct GPU Texture Mapping: Completely replaced plain mathematical shape rasterization with proper hardware-accelerated asset textures using Raylib’s 2D texture pipeline.
  • Component Texturing: * The Ball class dynamically switches from integer-casted raw circles to rendering basic_ball_5.png.
  • The Paddle and CpuPaddle classes now load and map dedicated .png graphical variations (basic_paddle.png, basic_paddle_2.png).
  • The playing field environment utilizes explicit assets (basic_space.png for court segments, walls.png for border structures, and line.png for center court strip rendering).

2. OOP Enhancements & Parameterized Constructors

  • Resource-Linked Lifecycles: Introduced custom, overloaded object constructors managing both geometric data and path strings seamlessly at structural instantiation.
  • RAII-Compliant Deallocation: Explicitly declared custom class destructors across physical game objects (Paddle, Ball) to cleanly unmap hardware context blocks via UnloadTexture() once execution loops terminate.

3. Gameplay State Machines & Core Menu Cascades

  • Dynamic Menu Triggers: Wired the internal GameState state machine directly to option metrics generated by user input blocks. Selecting singleplayer paths cleanly routes through the new DifficultySelect routine before loading the runtime space.
  • Real-Time Context Adjustments: Modified the configuration stack to update baseline metrics dynamically. Setting difficulty states alters the processing steps of the CpuPaddle tracking module, binding variable tracking tolerances (CPU_SPEED_EASY, CPU_SPEED_NORMAL, CPU_SPEED_HARD) based on execution data.

📋 Active Development Roadmap (v0.7 – v1.0)

With asset pipelines stabilized, development shifts toward input systems and UI refinement:

  • Issue #1: Local Multiplayer Input Decoupling — Re-architecting input processing lines inside game.cpp to map distinct keys (e.g., W/S vs. default Arrow controls), completely decoupling player boundaries from the internal AI execution loops.
  • Issue #2: Audio Integration — Bootstrapping Raylib's native hardware multimedia hooks (InitAudioDevice) to mix and dispatch immediate audio responses on collision flags and goal limits.
  • Issue #4: UI Menu Multi-Tier Expansion — Extending the settings cascade layout to manipulate audio configurations and mid-game engine variables on the fly.