Programmer Ramblings – Spawning and Runtime Performance on Maneater

Conclusions

This was an interesting project to end up working on. It had been years since I worked on a fully single player project, as I’d generally been moving around to help out with studios doing Unreal Engine multiplayer titles. This was also the first time I’ve helped tackle an open world game. While there’s plenty of literature out there for more traditional open world titles, there’s really not much about ones involving sharks. I combined some of the more interesting things I read in the genre with a lot of testing and a little bit of guessing and ended up with some systems that I was overall pretty happy with.

Getting this thing running at 30 FPS on the Switch was definitely a struggle at times, and a lot of that fell right into the spawning systems. The hardware is good for a handheld but it’s just so thread limited, which kind of put a clamp on how crafty I could get. This ultimately ended up being a benefit, as I tended to gravitate towards simplicity over small gains. Rather than debugging edge cases in complicated code, I just spent time working on better implementations of other systems, and the rest of the launch platforms kinda just joined the ride.

I don’t know that I ended up getting everything totally right, but for the most part it feels at least on the right track. The system is pretty flexible, runs pretty fast, is pretty simple, and doesn’t place impractical limits on design. It keeps the gameplay space refreshed pretty well, while also being tuned to encourage the player to keep moving. I don’t know that the patterns necessarily fit all open world games, but one that takes place underwater? I think I’ve got it in a good place.