Dev Blog #2 - Lost Abroad Café
Last week we released Devlog #2 for Lost Abroad Café, showcasing some login and gameplay updates to our language learning game. In this blog we’ll go more in depth on some of our decisions, as well as how the experience has been for me as a developer.
First, check out the video here!
In this blog, we’ll be going over:
Going Mobile
Gameplay Update - Management Phase
App Store Publishing
Going Mobile
Community comments and responses to our survey overwhelmingly selected mobile as the most desired platform for Lost Abroad Café, so we’re going to give the people what they want!
In development, this presented some significant work to configure from the previous WebGL version, but it was necessary regardless. The first piece is authentication — the frontend game has to make calls to the backend to get data about what equipment the user has and what customers should be ordering, but the backend needs to verify that the call is coming from the right person. In WebGL, both the backend and frontend are essentially in the same place, and that verification is very easy. However, by splitting them (whether it’s for mobile or some other platform), there needs to be an extra layer of security added in.
Thankfully, app authentication is a pretty well solved problem, and we were able to implement a combination of Django Rest Framework (aka DRF, the go-to for building APIs in Python/Django), django-allauth (which is also great for adding social authentication later, such as “Login with Google/Apple/Github/wherever”), and django-rest-auth (an additional package for making it easy to authenticate using DRF. It’s being deprecated though so we’ll be switching to dj-rest-auth, which will continue to be maintained).
The other major consideration for an API was FastAPI, a newer and faster Python-based API framework. While new, fast, and simple is always great, for this project we really value the admin site that Django provides. With no development time used, we have a backend that a non-technical person can log in to and create content for the game. That’s huge!
Gameplay Update - Management Phase
The biggest update to the game is the Management Phase. Just from looks, it’s so exciting to have gone from this:
to this:
Players can now choose which equipment to purchase, and with that expand their menu. The old tutorials were replaced with the question mark icons, which allow players to practice making an item using the same tutorial-flow of being prompted where to click/drag. This is just the beginning — we plan to introduce tons more equipment to buy in order to help expand user’s vocabulary, include some detailed “inspect word”-type mechanics to learn more explicitly, and begin adding in things like achievements and leaderboards.
App Store Publishing
Publishing on both Google Play and Appls iOS was a real headache, but Google Play Open Test was successfully published, and the iOS Testflight is in review now.
I’ll start with Google Play. This was much easier to get started on: I just needed a Google account and could pretty easily set up my app page, create a Unity build, and upload it. I had to fight with some errors but was able to find answers to them, and there were some pretty lengthy questions I needed to answer before being able to release my app. Then the review started, and I waited…and waited…and waited…and then my app got rejected because I had misrepresented what data was collected by the app. It turns out Unity’s builds require the “Apps on Device” policy declaration. Once noting that, it was another few days before the build was approved and we were able to launch the Google Play Open Test here.
For iOS, there was a lot more setup required. I had to input information on my business and request a DUNS number from Dun & Bradstreet just to get an Apple Developer account. After that, it is not as simple as simply building from Unity (as was done in Google Play). Instead, I had to go through a pretty complicated setup in the Apple Developer website, the App Store Connect website, and Xcode. Thankfully I found this instructional video which laid out all the steps. The Testflight build was approved in about 2 days, and can be found here.
That’s all for now! In our next update, we’ll be ready to add some more language content and continue improving the UI.