๐ Devlog #5: Velocity Puck's Title Screen, Menus, Camera Magic & More!
Welcome back, air hockey heroes! In Devlog #5, weโre leveling up Velocity Puck with new UI systems, cleaner navigation, and a dynamic camera experience that makes each match feel cinematic. Hereโs everything new, under the hood and in-game.
๐ฌ 1. New Title Screen & Game Start Flow
We added a proper Title Screen (#titleScreen) thatโs the first thing players see. It's minimal and clean, displaying the game logo with a glowing effect and a Start Game button. Clicking this launches the Main Menu, giving players control over how they want to jump into the game.

๐ง How it works:
-
HTML: The title screen is a full-screen overlay:
html <div id="titleScreen">...</div>
-
JavaScript: Clicking
#startButtonhides the title and shows the main menu:
js
document.getElementById('startButton').addEventListener('click', function() {
document.getElementById('titleScreen').style.display = 'none';
document.getElementById('mainMenuScreen').style.display = 'flex';
});
๐๏ธ 2. Main Menu + Single Player & Options

Once players leave the title screen, they land on the Main Menu (#mainMenuScreen). This menu has the following choices:
-
Single Player: Starts the match.
-
Multiplayer: Placeholder for future update.
-
Options: Opens the new side-panel UI for customization.
-
Credits: Opens a credits overlay.
Everything is styled with large buttons (.menu-button-large) for easy navigation.
html <button class="menu-button-large" data-screen="singlePlayer">Single Player</button>
๐ง Code Logic:
Clicking a menu item triggers its behavior:
js
case 'singlePlayer':
document.getElementById('mainMenuScreen').style.display = 'none';
gameStarted = true;
animate(); // Launches the game loop
break;
๐จ 3. Options & Color Menu Overhaul
We reorganized the menu structure so that all visual settings live under Options โ Colors. Options originally was called Settings and was renamed. This includes:
-
Paddle Colors
-
Field Colors
-
Theme Toggle


๐งฑ New Hierarchy:
mathematica
Options
โโโ Colors
โโโ Paddle Colors
โโโ Field Colors
โโโ Toggle Theme
๐ ๏ธ How it works:
-
Buttons like
#settingsMenuItemand#colorsMenuItemexpand nested panels with options. -
Each color option updates the scene using functions like
updatePaddleColor()andupdateFieldColor():
js
function updatePaddleColor(color) {
playerPaddleMaterial.color.setStyle(color);
playerPaddle.material = playerPaddleMaterial.clone();
}
This setup allows cleaner UI control and prepares us for more customization layers.
๐ฅ๏ธ 4. Main Menu Screen + Exit Confirmation Modal

To complete the game loop experience, we added:
-
A Main Menu screen (
#mainMenuScreen) with navigation options -
A modal popup (
#exitConfirmation) asking:"Are you sure you want to quit?" This shows when Exit is clicked from the side panel, and offers Yes and No buttons.
๐ก Exit Flow:
js
function exitToMainMenu() {
gameStarted = false;
document.getElementById('mainMenuScreen').style.display = 'flex';
...
}
This makes quitting intentional and avoids accidental exits mid-match.
๐ฅ 5. Dynamic Camera: Fluid, Responsive, Cinematic
One of the most exciting changes is our dynamic camera system. Instead of a fixed top-down view, the camera now follows the puck to enhance immersion.

๐ฏ Key Logic in animate():
js const targetCameraPosition = new THREE.Vector3(); targetCameraPosition.x = puck.position.x * 0.3; targetCameraPosition.y = 50; targetCameraPosition.z = THREE.MathUtils.clamp(60 + puck.position.z * 0.3, 45, 75); // Smooth interpolation camera.position.lerp(targetCameraPosition, 0.05); camera.lookAt(new THREE.Vector3(puck.position.x * 0.2, 0, 0));
๐ธ Explanation:
-
Horizontal tracking: Follows the puck's
xaxis, dampened to avoid jitter. -
Z-position: Adjusts depth based on puckโs position to keep the action centered.
-
Camera lookAt: Keeps focus near the puck but with room to see opponents.
This system creates a smoother, more immersive feel while still supporting gameplay clarity.
โ Summary of New Features:
-
โ Title screen with glow animation
-
โ Full main menu system
-
โ Organized options under collapsible panels
-
โ Exit confirmation modal
-
โ Dynamic puck-following camera
-
โ Continued robot animation and character system support
๐ก Ideas for What's Next?
Coming in future devlogs:
-
Multiplayer support (split-screen or online)
-
Sound effects and background music
-
Save/load settings and profiles
-
Tournament mode with progression
Thanks again for following along with Velocity Puck! We hope these updates make the game feel smoother, more complete, and fun to navigate. ๐ฎ
Let us know what feature you want next!
— Jordon McClain
Steel Cyclone Studios ๐ฅ
Velocity Puck
Air Hockey Arcade Reimagined
| Status | In development |
| Author | SteelCycloneStudios |
| Genre | Sports |
| Tags | 3D, air-hockey, Casual, hockey, mobile, one-button, Physics, Singleplayer, Touch-Friendly |
More posts
- ๐ Devlog #10: Velocity Puck's Major Frame-Rate Performance Bug Fix (Animation...1 day ago
- ๐ Devlog #9: Velocity Puck โ Fixing the โPuck Gets Stuck in the Cornerโ...1 day ago
- ๐Devlog #8: Velocity Puck โ Multilingual Menus, Music, and More! ๐ถ๐Jul 04, 2025
- ๐ฎ Devlog #7: Velocity Puck's 3D Character Selection, Fixed UI Arrows & Intera...Jun 20, 2025
- ๐ Devlog #6: Velocity Puck Character Select, SFX, Haptics, and a Glowing Titl...Jun 19, 2025
- ๐ฎ Devlog #4: Velocity Puck's Robot Paddle, Character Selection, and Animation...Jun 13, 2025
- ๐ง Devlog #3 โ The Jump to 3D, Smarter Pucks, and a Brighter ArenaMay 30, 2025
- ๐ Devlog #2 โ Bringing Order to Chaos: Building the Velocity Puck Menu Syst...May 17, 2025
- Devlog #1 โ How Velocity Puck Started (From 2D Beginnings)May 16, 2025
Leave a comment
Log in with itch.io to leave a comment.