Vortelli’s Pizza Delivery - A 3D open-world driving game

You can play Vortelli’s Pizza Delivery on Poki!

Intro

Vortelli’s Pizza Delivery is a 3D open-world driving game. It launched on Poki on September 20, 2023, and so far has been played over 8 million times, 6 million of which were in the first 30 days. Players from 227 countries and territories have collectively spent around 1.2 million hours in-game. During development, I had no idea the game would reach so many people. Its performance has exceeded our wildest expectations and it has made us very optimistic about the future of web games.

Background

I’ve been developing 3D web games for a little over two years now. My first game, Vortelli’s Pizza, was released on Poki in mid-2022. Its launch was a crazy story which you can read here. Since then, it has been played over 40 million times. Following its success, I’ve been joined part-time by my partner, Kelsey. She is a talented UX designer and 3D artist, and together we’ve been supporting Vortelli’s Pizza with content and UI updates.

When reading feedback left by the Vortelli’s Pizza players, we noticed many of them wanted to explore the city beyond the limits of the pizza restaurant. When I was a kid, I loved playing open world driving games like Grand Theft Auto and I remember how exciting it was to explore the seemingly endless game world. We thought it would be an interesting challenge to see if we could bring a similar game to the web browser for the Vortelli’s Pizza fans.

Building the Game World

The foundation for this entire project is the PlayCanvas Vehicle Physics demo project. If you’re thinking about building a driving game in PlayCanvas, this is the perfect place to start. It’s a very simple project, but it has excellent performance and it’ll run on nearly any device and browser.

The first step was to replace the default terrain with something that resembled a city. I quickly threw together a little road network, consisting of a few blocks with some low-poly buildings. Here’s my early proof of concept — but something about it just didn’t feel right.

Eventually, I realized the map scale was wrong. When working with a 3D world, it’s critically important to scale all the game objects correctly in relation to each other, or it can disrupt the player’s immersion. Because we were designing a game that needed to feel like a real-world place, we had to make the 3D model proportions resemble their real-world counterparts as closely as possible.

To get accurate data to build from, I used Google Maps’ measure distance tool. Inspired by GTA: Vice City, I looked up satellite pictures of Miami, Florida, and started measuring sidewalks, parking lots, road lanes, and intersections.

Even though we weren’t setting out to create a perfect, one-to-one scale replica of Miami, these measurements gave us real-world benchmarks that we could use to make sure our game felt authentic.

With these new dimensions to guide our scale, the game started to feel more realistic. With that in place, I worked on expanding the road network and adding more neighborhoods for players to explore.

The map was starting to take shape, but the driving gameplay still didn’t feel right — it just felt boring . At first I wasn’t sure why, but after studying the maps from Grand Theft Auto , I noticed their map was designed to have mostly curved roads. Check out the map of GTA: Vice City :

The road network is a spaghetti-like formation of windy roads; there’s hardly any grid-like sections. I spent hours and hours driving around that city and never noticed it, but as a game dev I now appreciate how much thought must have been put into the design. A road network like this requires constant steering and navigational input from the player, which makes for a more engaging experience than the basic grid system we started with.

From a 3D modeling standpoint, straight roads require minimal effort to slap together — it’s literally a single plane. Curved roads, on the other hand, require a lot more work. Since we wanted a big city map to explore with a lot of road networks, this was a process I wanted to optimize as much as possible. After trawling through half of YouTube looking for a solution, I learned about using Bevel Objects along curves in Blender. This allowed us to simply draw a line and Blender would automatically create a road with our predefined geometry — way easier than extruding each curve manually.

road-making-tool

Performance Optimization

One of the most important things (maybe the most important thing) when developing web games is to keep the initial download size as small as possible. Players want to get into the game immediately and they aren’t going to wait 30+ seconds for the game to finish downloading. This is especially important when you consider many players have slow or unstable internet connections. (For example, Venezuela has an average download speed of 3.9Mbps. That player isn’t going to wait for a 50MB game to load.) We watched a recent talk by Kasper Mol from Poki and he mentioned that if your game is under 5MB, you’re doing an amazing job, so we set ourselves a hard upper limit of 5MB.

We learned early on that a map of this size would mean a hefty initial download. Most modern devices would be fine, but low-end smartphones would struggle. Our solution was to split the map up into chunks — islands that are connected to neighboring islands via bridges.

I set up Trigger Volumes that the player’s car passes through as they’re crossing bridges. When entering a trigger volume, the map chunk ahead of the player is loaded and the previous one is unloaded. On some devices, this will drop a couple of frames, but it doesn’t significantly impact gameplay.

map-chunk-load-gif

Splitting the map into chunks also allows us to separate the 3D model files into different downloadable asset files in PlayCanvas. We can then limit the initial download to only include assets needed for the starting region. The files needed for all the other regions aren’t downloaded until the player unlocks them. This keeps the initial download as small as possible, and speeds up loading time. In the end, we managed to get the initial download size to just 58 requests at 2.14MB, coming in far below our goal of 5MB.

If you’re looking for a quick way to reduce the size of your model files, Draco Mesh compression allowed us to shrink our download size by nearly 70%. It’s supported by PlayCanvas out of the box and you can install it with one click, making it ridiculously easy to shrink the overall project size.

Gameplay Design

My initial idea was to copy the game loop from GTA: Vice City’s pizza delivery mini game. It’s a very simple 10-stage minigame where players deliver pizzas to customers within the time limit. Stage one starts with one customer and the game adds one additional customer after each stage. It’s a simple and fun game, but I couldn’t help but feel that it lacked replayability.

I wanted to create a game that put more control into the player’s hands. Oddly enough, my inspiration came from the Truck Simulator games. Say what you will about the Truck Simulators, they’ve sold tens of millions of copies, their games are adored by their fanbase, and their simple game loop is extremely versatile and battle-tested. Players can drive around and explore the world on their own. At any given time, they can choose a job from a list that they feel like doing, giving an element of autonomy and control. Adding a similar game loop to our game was very simple: we generate a list of jobs, display them in a table, and let the user pick one. After deciding on this direction, our game really started to feel like an open-world driving game that gives the players much more freedom.

During the development process we were frequently sending builds to the Poki team to play. They gave a lot of suggestions, almost all of which were added to the game. One of the best suggestions was to have the game award coins for driving skills — players can earn coins by driving fast, completing jumps, using boosts, and drifting (in addition to delivering pizzas, of course). As soon as I added this feature, I immediately felt like the driving experience was more fun and rewarding. The goal wasn’t just reaching the customer; it was the jumps, boosts, and drifts along the way.

Player Onboarding

Personally, when learning new games, I’m very impatient and I’ll find myself skimming the text in tutorials — sometimes not even reading the text at all. I prefer it when games show me how to play as I’m playing it without making me read what feels like an instruction booklet. Web game players often only have a few spare minutes during a school or work day, so they don’t want to be forced to study a complex tutorial as soon as they pick up a new game.

With these limitations in mind, I came up with a series of simple steps that walk players through their first three delivery jobs while guiding them through the process of leveling up skills and unlocking new cars and map regions. It has been mostly successful in getting players up to speed without putting too many constraints on their gameplay. There’s still a number of players who just want to drive around on their own terms and never end up completing the tutorial.

Launch

On September 20, 2023, Vortelli’s Pizza Delivery was released on Poki. For the first few days, I was glued to the Poki Dashboard eagerly watching the stats and awaiting the latest player feedback. The numbers were very encouraging. Conversion to play, session times, and monetization all exceeded our expectations! Every time we checked the dashboard there were more and more people playing.
1BsX1UzS806wIU-hMssvgFNJJgY5-7sFeaWyrT8AM

Just 10 days into launch, the game had already crossed 2 million gameplays and by day 30, it had crossed 6 million.

Pain Points

Despite the strong early numbers, players were encountering problems. Many players were struggling with the time limits placed on jobs. For some, the game wasn’t giving them enough time to complete jobs, causing them to fail the job over and over. For other players, they felt the game gave them too much time and it wasn’t challenging enough. To cater to both, we’ve since added a mix of both timed and untimed deliveries to the jobs list. The timed jobs pay better, but the untimed ones are less stressful. This solution lets players choose their own playstyle, giving them more freedom.

Another issue reported by many players was how difficult it was to navigate the map. All the effort we put into those lovely curved and complex roads actually disoriented and confused many players. We had hoped the HUD minimap would provide enough directional information for players to find their way, however, a large chunk of our audience was unfamiliar with how GTA-style minimaps work. We’ve since added an arrow that pops up in front of the player’s car which points at the position of the closest delivery.

The most complex issue we faced took weeks to solve. For a small percentage of players, the game didn’t load correctly. They would see the game HUD against a blue background with no map, vehicles, or buildings. I’ve done a much more extensive writeup on the PlayCanvas forums if you’re interested in reading more about this. Here is a screenshot of what the game looked like to players experiencing this issue:

The Poki and PlayCanvas teams were very supportive and we slowly worked through some potential solutions. Eventually another Poki game developer, Cem Demir from OnRush Studio, suggested I disable real-time shadows, and this appears to have finally fixed it. Frustratingly, despite extensive testing, I was never able to recreate this bug locally and never identified the root cause. In a future update, we’re going to re-add real-time shadows as an optional graphics setting.

Despite these pain points, most of the players really enjoy the game and we’ve received lots of encouraging feedback.

The Future

After an extremely promising and exciting launch, we feel that Vortelli’s Pizza Delivery has a bright future ahead of it. In the near term, we’re working on fixing bugs and adding more content. We only have a small number of cars right now and many players have already reached the end-game and are looking for more. Eventually, we’d also like to add a car customization paintshop. Players work really hard to unlock new cars, so we want to give them the freedom to modify them to their liking.

Looking towards the longer term, we want to add more businesses to the Vortelli’s world. The pizza restaurant and the delivery games are just the beginning. A lot of players love that the Vortelli’s Pizza restaurant is an actual building you can visit while you’re driving around the city. We want to keep going with this trend and maintain the continuity. As we release more Vortelli’s businesses, they’ll be added to the map. We also want to make it easier for players to move between Vortelli’s games. Our dream is to have an entire game world of different businesses, attractions, and experiences for players to enjoy.

If you’re a fan of Vortelli’s or you’re interested in our work, please feel free to reach out. I’ll try to answer as many development questions as I can here on the PlayCanvas forums. You can also find me on Twitter: https://twitter.com/devortel and on the Vortelli’s Pizza Discord: Vortelli's

10 Likes

Amazing work @Devortel :clap: :fire:

1 Like

Great write up! Thanks for sharing, and great game!

1 Like

Thank you so much @Mark_Lundin @mvaligursky!

1 Like

interesting read!

1 Like

Fantastic work and a great write up! Thank you!

1 Like

Great experience description, has inspired me!
Thanks

2 Likes

Glad to hear it!

1 Like

congratulation!

1 Like