Inspiration

Raven Storm was inspired by the fast-paced, pick-up-and-play multiplayer experience of classic arena shooters such as Mini Militia, but with a modern 3D experience.

We wanted to create a game where players could jump directly into intense multiplayer battles, move freely through dynamic environments, use jetpacks and grenades, switch between weapons, communicate through voice chat, and compete against other players in real time.

The idea was to combine the simplicity and excitement of classic mobile shooters with modern 3D graphics, physics, multiplayer networking, and cross-platform gameplay.

At the same time, we wanted to prove that a feature-rich 3D multiplayer game doesn't have to be a massive download. Raven Storm is approximately 60 MB, making it lightweight while still providing a complete multiplayer gaming experience.

Raven Storm App Size nearly 60MB

What it does

Raven Storm is a third-person online multiplayer arena shooter supporting Web, iOS, and Android.

Players can: 1.Battle against other players in real-time multiplayer matches. 2.Fight through procedurally generated maze arenas. 3.Use a jetpack for vertical movement and tactical escapes. 4.Switch between a handgun and Vector Gun. 5.Throw grenades using ballistic trajectories. 6.Collect health, ammunition, fuel, and grenade pickups. 7.Climb a 45-unit-high central watchtower to collect special Raven Eggs and powerful health packs. 8.Choose different character skins. 9.Communicate with teammates using real-time WebRTC voice chat. 10.Play using keyboard/mouse on desktop or touch controls on mobile. 11.Track career kills, deaths, matches, and collectible progress. 12.Join or create rooms with up to 10 players. 13.Compete in matches with respawning, kill feeds, scores, and match results. 14.The game also uses server-authoritative validation for important multiplayer actions such as damage and pickups, helping keep gameplay synchronized between players. 15.Match types with including AI mode

How we built it

Raven Storm was built as a full-stack real-time multiplayer game.

Frontend

The game uses React with a 3D rendering stack based around WebGL. The frontend contains the arena, player controller, weapons, grenades, pickups, character models, animations, HUD, mobile controls, matchmaking UI, and voice-chat functionality.

State is organized using Zustand stores for:

Game state Socket/network state Audio state

Performance-critical game-loop values use refs to avoid unnecessary React updates.

Multiplayer networking

Socket.io provides real-time multiplayer communication.

Player movement is transmitted at approximately 20Hz, while remote players use interpolation to make movement appear smooth despite network updates occurring at discrete intervals.

The server also performs authoritative validation of damage events.

3D gameplay

The arenas are procedurally generated as mazes. Maze walls use instanced rendering to reduce rendering overhead, while separate physics colliders handle player movement and collision detection.

The game also includes physics-based movement, jetpack mechanics, projectile/grenade trajectories, raycast shooting, pickups, and character animations.

Backend and persistence

Firebase Authentication provides Google OAuth and guest authentication, while Node js and sqlite stores persistent career statistics such as kills, deaths, and matches. Redis is primarily used as a high-performance, in-memory data structure store to implement caching, session management, rate limiting.

Voice communication

WebRTC provides real-time voice communication, including echo cancellation, noise suppression, automatic gain control, speaking detection, and per-player mute controls.

Cross-platform

The web version supports desktop and mobile browsers, while Capacitor is used for iOS and Android packaging. Mobile gameplay includes touch joysticks, touch aiming, firing, grenades, jetpack controls, and a responsive HUD.

Challenges we ran into

Building a real-time multiplayer 3D game introduced several technical challenges.

Real-time synchronization

Players need to see each other moving smoothly while network updates are being transmitted continuously. We addressed this through throttled movement packets and interpolation of remote player positions.

Performance

A 3D multiplayer game can quickly become expensive to render. We optimized the game using instanced maze rendering, memoized geometries/materials, refs for frequently accessed values, throttled React state updates, and optimized camera/scene access.

Physics and combat

Jetpacks, grenades, collision detection, raycasting, pickups, and player movement all need to work together without producing inconsistent gameplay.

We also implemented server-side validation for important combat and pickup events to reduce the possibility of clients independently creating invalid game states.

Desktop and mobile controls

Supporting keyboard/mouse and touchscreen gameplay required two different control experiences while maintaining the same core gameplay.

Mobile controls therefore use virtual joysticks and touch actions, while desktop players use keyboard and mouse controls.

AI mode

Integrated AI mode with ground specific targeting. still improving fight using jetpacks.

Debugging and optimization

During development, we identified several performance and maintainability problems, including unnecessary callback recreation, state updates occurring every frame, timeout cleanup issues, unnecessary mobile detection calculations, and production debug logging.

These were fixed through refs, throttling, cleanup, and moving calculations out of the render loop.

Accomplishments that we're proud of

We're especially proud that Raven Storm grew beyond a simple prototype into a complete multiplayer game experience.

Some highlights include:

🌍 Real-time multiplayer gameplay 🎮 3D procedural maze arenas 🚀 Fully integrated jetpack mechanics 🔫 Multiple weapons with different fire rates and damage 💣 Physics-based grenade system ❤️ Health, ammo, fuel, and grenade pickups 🗼 Interactive 45-unit central watchtower 🥚 Persistent Raven Egg collectibles 🎙️ Real-time WebRTC voice chat 👤 Multiple character skins and animations 📱 Desktop and mobile controls 🏅 Match results and persistent career statistics ⚡ Performance optimizations for the real-time 3D game loop 🔐 Server-authoritative combat and pickup validation

The combination of real-time networking, physics, 3D rendering, voice communication, persistence, and cross-platform controls was one of the biggest achievements of the project.

What we learned

Raven Storm taught us that building a multiplayer game is much more than rendering a 3D environment.

We learned how important it is to carefully separate:

Rendering → Game State → Physics → Networking → Server Authority

We also learned that performance needs to be considered from the beginning. Updating React state every frame or recreating callbacks unnecessarily can quickly become expensive in a real-time 3D application.

Networking also changed the way we think about game architecture. Client-side responsiveness is important for gameplay, but important actions need server validation to maintain a consistent multiplayer experience.

Finally, supporting both desktop and mobile showed us that cross-platform gameplay requires designing controls around the platform instead of simply shrinking the desktop interface.

What's next for Raven Storm

Raven Storm is designed to continue growing beyond the current multiplayer arena experience.

Our next priorities are:

🏆 Competitive ranked matchmaking 🥇 Leaderboards and deeper player progression 🗺️ More procedurally generated arenas and environments 🔫 Additional weapons and equipment 🎭 More character skins and customization 🎯 Additional game modes 👥 Team-based gameplay improvements 📊 Expanded player statistics and achievements 🎙️ Further improvements to multiplayer voice communication 📱 Continued optimization for mobile devices 🌐 Improved scalability for larger numbers of concurrent players

Our long-term goal is to turn Raven Storm into a polished cross-platform multiplayer arena shooter with a strong competitive community and continuously evolving gameplay.

Proven Features

1. 🎮 Low-Size Game

Enjoy a full 3D gaming experience with a lightweight download size, designed to save storage space.

2.⚡ OTA Updates

Get game improvements, fixes, and new content through fast Over-The-Air updates without waiting for a full app update.

3.🕹️ Custom Controls

Customize your controls and play the way you prefer with a flexible control system.

4.🎨 Quality Modes

Choose the graphics quality that fits your device and balance visual quality with performance.

5.🌍 3D Gameplay

Experience immersive 3D gameplay with dynamic environments, action, and smooth movement.

Built With

Share this project:

Updates

Submission history