Inspiration
I have always been passionate about creating a game that is fun, engaging, and accessible for everyone, regardless of their device or location. That’s why I came up with the idea of Just Drive, a game that features a dynamic Tournament Mode, where you can create your own tournaments and invite players from all over the world to join. You can also join existing tournaments and compete for the top spot on the leaderboard. The more you race, the more coins you earn, which you can use to unlock new cars. After the game is over, players can switch to spectator mode, allowing them to watch the live streaming of the remaining players’ scores in the tournament. I think this feature adds a lot of value and interaction to the game and makes it more fun and exciting.
What it does
Just Drive is an endless car racing game that challenges you to swerve from incoming cars, dodge obstacles, and collect coins. You can play the game in two modes: Single Mode and Tournament Mode. In Single Mode, you can play the game alone and try to beat your own high score. In Tournament Mode, you can create or join a tournament and race against other players in real-time. You can also unlock new cars with the coins you earn from racing.
How we built it
The game was built with TypeScript, Three.js, and Ably.js. TypeScript is a superset of JavaScript that adds static types and other features to the language. Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics. I used Three.js to build the scene, import the 3D assets used in the game, move the objects, and detect collisions with the obstacles and the coins. Ably.js is a powerful platform that easily powers any real-time experience in your application via a simple API that handles everything real-time. I used Ably.js to implement the Tournament Mode, to stream the live scores to the subscribed players, and to enable the spectator mode
Challenges I ran into
Some of the challenges I faced while building the game are:
- Modeling the low-polygon buildings and asphalt road used in the game. I had to use Blender, a free and open-source 3D creation suite, to create and export them for the game.
- Implementing the Tournament Mode and designing how it should work. I had to think of a way to create and join tournaments, to synchronize the scores and the timer among the players, and to handle the cases when players game is over. I also wanted to add some visual effects to the game, such as showing a confetti animation if the player won the tournament or displaying their rank if they didn’t.
- Optimizing the game performance and compatibility for various devices, ensuring smooth and responsive gameplay. I had to test the game on different browsers and devices, and adjust the graphics quality and the frame rate accordingly.
- Setting the position and the scale of the 3D assets in the game scene. This requires a lot of trial and error and fine-tuning to make sure the assets look realistic and proportional in the game.
- Power Supply: Operating in an area with unreliable electricity posed a unique challenge. Building the game on my laptop battery makes the battery run out very fast because it is a GPU-intensive task, and the GPU drains the battery faster than the normal usage
Accomplishments that I am proud of
Some of the accomplishments that I am proud of are:
The social aspect of creating and joining tournaments. I think this feature makes the game more interactive and competitive, and allows players to connect with each other from different parts of the world. I think this feature adds a lot of excitement and suspense to the game.
The use of Ably.js to power the real-time features of the game. Ably.js made it really easy and simple for me to implement the Tournament Mode, the live scores, and the spectator mode.
What I learned
Building Just Drive provided valuable learning experiences, particularly in working with real-time platforms. I gained insights into building real-time applications, even though I have no prior experience in this area. Ably's user-friendly SDK simplified the process.
What's next for Just Drive
The journey for Just Drive doesn't end here. There are exciting future enhancements in the pipeline:
- Audio Integration: Adding sound effects to enhance the gaming experience.
- Loading Status Indicator: Implementing loading status indicators for smoother transitions.
- Asset Optimization: Further optimizing in-game assets to improve loading speeds.
- Social Interaction: Enabling player-to-player chat to foster a sense of community.
- Additional Obstacles: Adding more challenges to make the in-game city come alive.
- Physics Engine: Incorporating a physics engine to make the racing experience more realistic.
- App Deployment: Exploring the possibility of deploying the game on the Play Store and potentially on the Apple Store.
With these planned improvements, Just Drive aims to become an even more thrilling and social racing game, appealing to a global audience and delivering exciting experiences for all players.

Log in or sign up for Devpost to join the conversation.