Hope you all are doing well on this calm October evening. Here at Whitepot, we’re all doing well and all getting in the spooky mood for Halloween at the end of this month. This month’s blog we’ve got a Halloween themed topic and something much scarier to discuss… getting a game to alphaaaaa D:
Let’s get stuck in.
Spooky Gaming Moments
We all have a moment in a movie that scared us silly but what about our spooky gaming moments? This month I posed the question to the team to share their most memorable scary moments from video games.
One that always sticks in my mind was in STALKER: Call of Pripyat. There’s a mission where you have to hunt down a chimera (one of the most powerful mutants in the game) and they only come out at night. In the game, the night I had chosen just so happened to be a very stormy night, so it was darker than usual – visibility was poor and the creepiness was punctuated by flashes of lightning. Luckily for me (or so I thought), a group of other stalkers were passing through the area and I knew they would help me out once it attacked. I get into position, ready for it to try and pounce, when suddenly one of my new friends is pulled into the darkness. Flashes of lightning briefly reveal its position, as me and my AI buddies try to shoot at where it might be. We’re slowly being whittled down – chimera’s are fast, they try to get behind you to attack, and no one was really equipped with the weapons to deal with it.
Eventually, I decided a tactical retreat is in order – perhaps I could get a few good shots in while it rips my impromptu squad apart. But that chimera had different plans, and as I sprint away, I turn around one last time to see a flash of lightning illuminating the chimera mid-way through leaping right at me. I have no time to react – I go down, reload my save, and decide to try on a brighter night.
One time I played Amnesia on Adam’s computer for about two minutes and I threw the headset off and jumped out of the chair the first time the screen went even vaguely shaky. That’s the most ‘actual’ scary moment I could think of, because apart from that it’s just me being literally afraid of Endermen, or jumping a mile every time a Phantom comes at me when I least expect it at night in Minecraft.
-Spooky Queen Victoriaween
Shelob’s Lair from the Return of the King’s game adaption was one of the most unpleasant gaming experiences of my youth. I don’t find spiders themselves that scary but I am uncomfortable with things being abnormally larger than they should be. That’s why I find myself so frightening. I found this level so unpleasant for two reasons:
1: The level was really hard. The unrelenting threat of spider swarms, my torch extinguishing, the bad camera, the orcs, and the spider babies was a lot for my heart to take at age 12.
2: Shelob is MASSIVE. She towered over poor aul Samwise and would just jab at him with her huge legs, if you defend yourself she’d scuttle around with great speed before retreating to the high ground. Her little spider babies would then come out and attack you but the camera would frame itself to show her in the background, watching you, ready to pounce.
Although I really like spooky things, I am an absolute wimp when it comes to jump scares so my favourite scary moment (aka the moment that got me good) would be the Medusa from “Grabbed by the Ghoulies.” It’s introduced as an enemy by a screaming jump scare, and then you have to dodge her sight for every encounter as if she sees you she’ll scare you again and make you input a button sequence quickly to avoid almost dying. Kid-me definitely found a cushion to hide behind and someone else to pass the controller to every time she turned up.
I’m not someone who gets scared easily, so I found it hard to pick a spooky moment. The vaults in Fallout were my initial choice, however I do remember something that spooked me right in the walking sim Dear Esther. Going into the game I assumed it was just an ‘arty’ exploration game with some hard to follow poetry, and I was happy with that, I love those kinds of games. So there I was, exploring the island – listening to some poetry. I was about an hour into the game, looking at some nice hills when all of a sudden I noticed a dark figure on top of them – watching me. I initially assumed it was a bush or something, but the closer I got to it the further it would retreat, until it eventually faded altogether. I really liked this because I wasn’t expecting anything like this going in and it genuinely gave me that really unnerving fear of being watched by some creepy figure. Sadly the ghosts in the game don’t do anything more than just watch you from a distance, it would’ve been really cool if they did more with it.
What are some of your Spooky Gaming Moments?
Share them with us on our discord or @Whitepot on twitter 😀
Releasing an Alpha Build – Part 1: Google Play Store
There will be a point in every game developer’s life where they are ready to launch a game – well, hopefully. The ‘launch stage’ of most games (and software) broadly goes like this:
- Beta (Or Early Access)
- Patches, improvements, etc.
In this two-part special (because one post just wasn’t enough), I’m going to briefly go over getting an Alpha build of your mobile game out of Unity and into testers hands through an online store, without needing to send .apks directly to anyone, or ever having to explain what ‘sideloading’ is.
This month, I’m going to focus on the detailed steps for submitting to the Google Play Store, and next month will cover the steps for submission to the Apple App Store.
Now, hopefully this isn’t the first time you’re letting anyone see your game – at Alpha stage, you will have completed pre-production, design, and prototyping. You’re past the stage of ‘MVP’ (minimum viable product) or ‘vertical slice’ (a real polished snippet of gameplay), and have validated your idea long before rolling it out to real players on a platform!
There are a few things you need to be aware of before embarking on this adventure:
- Developer licenses & Enrollment
- Signing & Certificates
- Who is gonna test it?
Developer Licenses & Enrollment
To submit your mobile game to the most well known platforms (Apple, Google), you need to buy a developer licence. Although I can understand the quality control reasons for having this fee, it’s quite the barrier to entry to budding indie devs who are unaware of it.
For Apple, that value is a recurring $99 every year, and for Android, it’s a $25 one off fee.
Note: If you’re a business (rather than an individual) signing up for an Apple Developer License, be sure to know what your D-U-N-S number is – you might even already have one without knowing it. It’s an ID for businesses handled by an organisation called Dun and Bradstreet.
- Apple Developer Program Enrollment: https://developer.apple.com/programs/enroll/
- Apple has their own guide here.
- Google Play Developer License signup: https://play.google.com/apps/publish/signup/
- A good step-by-step guide can be found here.
Signing & Certificates
So, you’ve signed up on the development portal. Great! How will the store you’re uploading to know that you’re uploading your own app? And that the app actually does what the store is expecting it to do?
You “sign” the app before submitting it. “Signing” means you build or export your game with an extra little digital “stamp” that confirms to Apple/Google that this is a legit, bonafide upload directly from you. Google and Apple handle this in slightly different ways, but through both developer portals you can download or set up the required keystores and certificates (the digital “stamps”) to sign your app as, well, your app.
There are also tools like Fastlane and Unity Cloud Build that you can use to automate the signing and build processes, but that’s beyond the scope of this high level overview 😉 But it’s good to be aware that these tools exist – you’ll quickly learn that nothing is a greater pain in the ass than signing and preparing builds.
Who will test the alpha build?
You’ll need the e-mail addresses your testers use for their Google Play Store/Apple App Store accounts in order for them to have access to your app. Having a process in place for capturing and storing this data (and removing, if requested) helps you stay GDPR-compliant.
Specifically for Google Play, you can also set up a pre-registration listing for interested fans to register their interest: https://developer.android.com/distribute/best-practices/launch/pre-registration
Google Play Store Alpha Setup
Before you do any building, you’ll need to choose a unique bundle ID for your app – these are often in the format ‘com.DeveloperName.AppName’, known as reverse domain name notation. (Why? Java.) You can use the same unique ID on both platforms. You’ll make sure your app exists, with this unique ID, on the development portal you’ve signed up to.
Create the app on the Google Play Console
- Make a new app on the Google Play Console with that unique ID (choose the new layout for browsing the portal if you can, it’ll be mandatory from November 2020 onwards). On your dashboard, your newly minted app will show as a ‘Draft’ for now – because we haven’t done anything with it yet. Click the app name here to get stuck in.
- From this app-specific dashboard, you can see exactly what you need to do to get started in a handy checklist:
- You’ll need to upload some required images to complete the store listing, but thankfully there are placeholder generators you can use for temporary images:
- App icon – 512 px x 512 px – http://via.placeholder.com/512
- Feature Graphic – 1024 px x 500 px – https://via.placeholder.com/1024×500
- Phone & Tablet Screenshots – Valid dimensions are between 320 px and 3,840 px, so you can reuse your temporary feature graphic for these.
- Once you’ve completed the setup checklist, you’ll see the release checklist – time to add some testers!
- In the ‘Select Testers’ step, add your testers from your GDPR-compliantly-captured e-mail list – again, be sure you have their permission to use their e-mail address for this purpose!
- With your testers added, now it’s time to get ready to roll out our release – click the ‘Create a new release’ step in the checklist. This will start you off on the ‘Internal Testing’ track. From there, your app progresses to closed testing, then open testing, etc.
- On the release page, you’ll see an info panel at the top about App Signing. Opt-in to Google handling your app signing, and then click ‘Manage Preferences’ (or navigate to https://play.google.com/console/developers/app/keymanagement) to get your signing details.
- In your App Signing preferences, click the Download Certificate button which is inconveniently difficult to notice. This downloads a .der file you’re going to use to build the app with that ‘digital stamp’ I mentioned earlier.
Before moving on to the ‘Creating a Release’ part of the checklist, let’s get a build going in Unity with our signing details.
Building In Unity
Google has a full launch checklist of the steps you should go through when uploading your app, but I’ll go through some of the Unity specifics here in a bit more detail.
In the Unity Player Settings, for Android, under Other Settings, you’ll need to enter some info under Identification and Configuration. You can check out Unity’s page on Android Player Settings to find where everything is.
Enter your app package name as it is on the developer portal. The version should only change at major milestones (e.g. moving from alpha to beta). The bundle version number must be different for each build upload, or else the developer portal will not accept your build, e.g.:
- First build: Version 0.1 – Bundle Version Code 1 – “First Rollout”
- Second build: Version 0.1 – Bundle Version Code 2 – “Minor Bug Fixes”
There are ways you can increment the bundle version automatically, or generate it from a Git commit hash for example, but we’ll just settle for ‘1’ for now. For the Google Play Store, new apps must target Android 10 (API level 29), or else you’ll see the following rejection message when uploading your build:
“Your app currently targets API level XYZ and must target at least API level 29 to ensure it is built on the latest APIs optimized for security and performance. Change your app’s target API level to at least 29.”
Sidenote: A fun problem I discovered whilst making this blogpost is that there is a known issue updating the Android SDK directly to API level 29 in Unity – here’s a workaround!
You can still support older Android devices by setting a lower minimum SDK level.
Under configuration, set the scripting backend to IL2CPP, the API Compatibility Level to .NET 4.x, and under Target Architectures have both ARMv7 and ARM64 ticked. This ensures that Google will not reject the Android App Bundle you’re going to upload for not having maximum compatibility. You may have noticed there are lots of gotchas that will get the app rejected.
In the same window, under Publishing Settings, you will see Keystore options. A keystore holds the ‘digital stamps’ you’re using to sign your application. If you don’t set up a keystore, your application will be signed with a debug key. Again, the Google Play Store will reject your build in this case:
“You uploaded an APK or Android App Bundle that was signed in debug mode.”
We need to create our own keystore and add the .der certificate we downloaded to it. Click “Keystore manager…” to create a new keystore, and click ‘Add Key’ when done.
Here comes the most opaque and not-immediately-obvious part. To add that downloaded .der cert to the keystore, we need to use something called keytool. Keytool comes ready installed with the Android dev tools, so you should be able to use it right off the bat – but if not, make sure %JAVA_HOME% is set up correctly in your PATH (how to do that on Windows, Mac).
In the folder your keystore is located, open the command line or terminal (instructions for Windows, Mac), and enter the following command:
keytool.exe -importcert -file <path/to/certfile> -keystore <path/to/keystorefile>
Here’s how that looks on Windows:
With that done, make sure you select the correct keystore in the publishing settings – now it’s time to build!
In Unity’s build settings, make sure you’ve selected the correct output platform (Android), included the correct scenes, and ticked Build App Bundle. Hit Build, and when complete, the produced signed .aab file is what we’re going to upload to the Play Store.
Creating the release
Back in the Google Play Console, drag in the .aab file Unity has just produced. If everything is as expected, the app bundle will now be listed as part of this release, and after adding a name and some patch notes, we can save and start-roll out!
When you upload an app for the first time with a particular version number (e.g. 0.1), it’ll take some time to be manually approved. Any subsequent builds to that version number (with a new bundle number) will be approved automatically.
And there you have it – your first deployed game! You’ll see “full rollout” and a big green tick. Congratulations!
Tune in in November for the Apple App Store and iOS alpha publishing guide 🙂 Interested in joining our Stargazing Alpha? Sign up here!
In case you missed it!
We share some cool Stargazing related content on the @StargazingWp twitter page. At the start of the month, we shared a timelapse video of yours truly drawing a Zombie sticker. Check it out below 😀
Here’s what we’ve been reading, watching, listening to and playing the past month.
Adam Wightside: “This month I haven’t really been watching much other than Bake Off, but the youtube algorithm has brought me down an interesting maths tunnel. Highlights include this video on infinite patterns that never repeat (https://www.youtube.com/watch?v=48sCx-wBs34) and this one on a guy playing sudoku – seriously one of the most captivating videos I’ve ever seen (https://www.youtube.com/watch?v=yKf9aUIxdb4). In terms of game’s, I’ve been jumping around a load of stuff including Among Us, various things in Tabletop Simulator, Carrion, Dawn of War 2 co-op and I finally finished Hollow Knight. Gamepass has a “Shocktober” listing so I’m going to play through some of the games on that to keep my spook levels up this month.”
Spooky Queen Victoriaween: “I’ve written enough in the blog this week so I’ll keep this short and sweet. I watched Hamilton last month and that still eclipses most of the media I have been consuming in the past few weeks.”
Matt McSpooky: This month I’ve been continuing my rewatch of Rebels and I just finished season 2, that finale is still great. Knowing where everything ends up just makes it all the more heartbreaking. I watched the entirety of the Thick of It over a week and it’s really good, it does feel like it should’ve ended a season earlier tho, the writing isn’t as good in the final season without Iannucci’s involvement. Been listening to Metronomy, Fleet Foxes, and Phoebe Bridger. This month I’ve been playing Star Wars Squadrons (Fun), Inertial Drift (Buy), and Resident Evil 7, which was fun for the hour that I played but I don’t see me finishing it. As well as all that I’ve been learning how to some new 3D modelling techniques and helping my partner with their new fiction podcast which you should check out at www.monstrousagonies.co.uk/
Amy Screaman: “This month I’ve been playing a bit of Crash 4, which is a really charming next installment for the series. I’ve been enjoying the challenge of it as I’m not that great but having fun regardless, and the game is super pretty to boot, so if you’re a Crash fan I’d highly recommend. I’ve been listening to some spooky music as well to get into the season like the Ghostbusters theme (a classic), and Put a Spell on You from Hocus Pocus to get excited about watching the film soon for Hallowe’en. Always route for the Sanderson Sisters, they have the best tunes.”
Robbie Spookinny: “For Music, Joji finally released his second album Nectar this past month, which is really worth a listen. My TV/Film recommendations for this month are The Haunting of Bly Manor on Netflix (not as good as the first season but will give you your spooky Halloween fix). If you have Disney+ I’d check out the Zenamation series and finally I’d recommend Boss Baby which is half price for Amazon prime members.”
This month we bring you a playlist of spooky tunes to get you in the Halloween spirit.
Have a great month and a spooky Halloweeeeen,