Open world, mobile devices and Unity Free. What could possibly go wrong?

I’ve noticed that many racing games, and in fact games in general, have taken a shift towards open world gameplay. It’s fun to explore and discover new things, and open worlds get rid of the feeling of perpetual confinement that a game with many separate maps brings on. As I’ve stated earlier, I want to make an open world racing game for mobile. Searching the Internet has led me to find that most people recommend using loadlevelasync, but that requires pro. Because of that, my idea is to use many small chunks of world (50*50 meters each), and enable/disable them as needed, all the while using tons of LOD. There at many obvious issues, such as all chunks of the world being loaded into memory at all times. So my question is simple: is there even a remote, astronomically small chance that a mobile could support this?

I think it’s a question of execution. Current mobile devices are far more powerful than computer that ran games like Daggerfall, a hugely open world. That said, most games can’t get away with that graphics style today.

I don’t think the LoadLevelAsync Pro requirement applies anymore since the Personal edition got feature bumped to match Pro, but I haven’t used it so I can’t say for certain.

2 Likes

I don’t see any reason why you couldn’t have an entire open world game in a single scene on a mobile device. The principles for mobile wouldn’t be any different than they would be for desktops. You need to make good use of your resources by dynamically loading and unloading when necessary.

By the way LoadLevelAsync does not require Pro starting with Unity 5.

1 Like

The pro and professional editors are the same, with the exception of dark skin and splash screen.

1 Like

With mobile, generally the biggest obstacle is user interface. And there are already a handful of open world games so this shouldn’t be that different.

Oh, and if you can make an avatar that can get in and out of vehicles like GTA then you’d be printing more money than the US treasury.

1 Like

Really? That’s great! Even with the chunk based system, it would probably still be beneficial to use loadlevelasync.

The main issue is that I still want to be able to include older mobiles, with the minimum being an iPhone 4 or 4s (yes, I know the two are completely different in power). While many say to develop for the new devices that exist now and will exist in the future, we still have to remember that the majority of mobiles that people use are not brand new. Developing a game that can only be run on the absolute newest technology would result in a much more limited amount of players.

I just realized that there are a handful of GTA games on mobile, so I’d say the answer is a definitive “yes.”

There’s GTA San Andreas available for mobile devices, and it’s a port. So I’d say it’s possible. If it’s recommended for a small indie is a different subject.

1 Like

Well, I don’t have much to lose… I’ll just waste a bunch I time that I would have wasted a different way if it doesn’t work anyways.

Using origin shifting and prefab pooling is good start.

“biggest obstacle is user interface” sorry you’re totally wrong. The interface is simple with Ugui. thats no longer an issue.

“Oh, and if you can make an avatar that can get in and out of vehicles like GTA then you’d be printing more money than the US treasury.” again this is easy stuff, I don’t know why you would consider that to be so hard to do.

I’m making a survival game for low end mobile and it’s working fine. You will need to build a custom LOD system that works well with your game. Generic systems on the asset store will not cut it.

Memory management again is very important. also a little tip on saving on memory. Use mesh(terrain) vector information to apply your textures, instead of splat maps. anyway I could go on for hours… but i have too much to do.

good luck

1 Like

He’s referring to the interface design rather than the implementation details for it.

3 Likes

Origin shifting seems like a good idea for a test track I made that is a literally endless highway, as the traffic stops working and other issues occur if the player travels more than 100 km from the origin. However, I doubt my map will be large enough for those issues to occur, but if it is, then origin shifting is the way to go. I am already using some pretty heavy pooling for traffic cars and other things that are reused, but I don’t quite see how this could be used in the terrain itself.

While I agree with @Ryiah that he meant design, I fully agree with you that the real challenge is memory management. It is a real limiting factor and can easily wreck a game if not dealt with properly.

On that topic, iPhone 5 has double the memory of the 4. That is actually a pretty huge difference. A 4 gives you about 200mb of memory in unity. Close or above that and the crashes come. It’s pretty easy to dance on that line. 5+ gives you much room.

And device stats put iPhone 5 and greater at over half of all idevices.
iPhone 4 and lower is around 10%, the rest is various iPads (larger division in iPads, people don’t upgrade as often).

So roughly 5 times as many users are on 5+. More importantly, most new games are targeted at 5+, and users have come to expect this. So making your game "lower quality " to attract 4 users loses on two levels, smaller audience (and one less likely to be into games), and potentially losing 5+ users who will go with a more visually impressive competing product.

Also consider that number is dropping. Unless you are shipping in the next month or so, forget the 4. By Christmas there will be new phones and that 10% will be 5%. And the graphic level will have bumped again.

3 Likes

In order to achieve the goal of getting the game to work on the (ancient) iPhone 4, I was planning to add tons of graphics options, similar to many older games. The highest graphics settings would likely be completely different from the lowest. I am targeting the 4s for personal reasons, because (very very very very) sadly that is the best apple device I own.

Simply lowering the graphical settings won’t be sufficient. You have to reduce the complexity in the world as well to make up for the reduction in memory. This will mean fewer cells in memory along with fewer actors and items in those cells.

If you want a rough comparison, try comparing Skyrim at minimum settings to Morrowind at minimum settings. The newer game was made for a console with 512MB of memory whereas the older game was stuck with 64MB.

1 Like

What @Ryiah said. There isn’t much that you affect with settings locally that will have the most effective impact. What you can do though, that will have a big impact is to assetbundles, and have platform/target specific content. For example image resolutions, models, shaders, complexity, etc.

I was going to include things like that in the quality settings. For example, some buildings and vehicles will probably look very different on older devices in order to keep compatibility.

I am definitely going to include platform specific content, specifically larger map size and better graphics on newer devices. Older devices might just have to be left out, but time will tell if that is necessary.

I am definitely not shipping anytime soon, I started this thread before the project so my progress is currently next to zero.