![]() The fix was straightforward enough, just keep the best result for every event, and remove the rest from the array. We eventually worked out that there was a fixed array of results that was being appended to after every race and these players had simply ran out of space. Fixing Broken Save GamesĪ few months after release, some players reported bugs where the game would crash after completing a race. So we managed to find a more efficient fix by changing the 3D mesh of the car instead, flipping the texture coordinates over to flip the logo. So having every player download it was going to be a lot of data. The most straightforward way to fix the issue would be to fix the texture that is drawn onto the car, but that was a large file, almost 1mb if I recall correctly. This was the first big success of the asset replacement system, as we were able to seamlessly fix the logo, by downloading a new asset when our players first launched the game, well before they even had a chance to see the car for the first time. ![]() But note that the logo is actually correct here! Here is the car in question, with a blue arrow pointing to the badge that was flipped. The blue and white checker pattern was flipped, so we would not be able to get approval from BMW to release the game. Just as we were about to publicly release the game, in fact after the final submission had been made to the App Store, we found out that the BMW badge on one of the cars in game was the wrong way around. This simple change now allowed us to do a lot, by being able to substitute any asset or assets in the game, by simply serving new ones from the server. The game itself also had a change, so that when a file is loaded, it would check the asset download folder to see if the file exists there, otherwise it will load the asset that shipped with the game. I could now just edit the files, and refresh them quickly on the device.Įventually to save the bandwidth of downloading every file every time, this was improved so that the device would be able to report what files it has, and the server can send back any updates needed. This chopped a lot of steps from the process and saved a lot of time. So in an attempt to save time and restore my sanity, I developed a system to automatically refresh these files if the change, when launching the game or multitasking. During development of this feature, the edit and test loop was quite painful, we would have to edit the HTML, rebuild the game in XCode, redeploy the whole game to the device and launch it before we could see our changes. Since the servers are no longer online, the leaderboards are now lost to the ages.Īll the assets for this UI (HTML, JavaScript, images) are shipped with the game and loaded off disk to reduce load times. ![]() Special thanks to Touch Arcade for this screenshot. And allowing for extra functionality to be added per game if needed, for example, Real Racing, Spy Mouse and Flight Control Rocket implemented their own leaderboards using this tech. This allowed us to create a reusable interface for core functionality (account management, save game backup and restore) that can be themed to each game simply. We also supported making server requests from this embedded JavaScript, they went through the same system as normal game requests so had no real limit on what could be done there. It would have been difficult to insert ourselves into the input and rendering pipeline, while also supporting other languages so it was a lot easier just to pop up a web browser and do everything there. ![]() We also intended (and did!) use this UI across other games, so it is built as HTML and JavaScript instead of C++ and OpenGL like the games. Starting with Real Racing 2 we were looking to add a special GUI for managing the players account and save games. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |