Sunday, June 15, 2014

Google Play Developer Console

There were some things regarding how exactly the Developer Console submitting process that confused me. I'll try to describe my experiences here. Hopefully people can see this and not have to wonder what some stuff does, or how to do some things, like I did.

--------------------------------
- Google Play Game Services -
--------------------------------
GPGS is treated like an actual game. They really call it a game which I find confusing because to me it's, well, a service. So when they ask stuff like "Publish the Game?" when I save some stuff in GPGS, I get nervous that I'm publishing the same game twice or something.



Once you create your GPGS "game" you have to link it up to one or more actual games that you've made, including cross-platform which is pretty cool.

One of the slightly annoying things about making a GPGS for your game is that you need to create 5 achievements and a leaderboard, or else you can't publish it. Even if you aren't going to use those two, you still need them. Fine, whatever bro.

-----------------
- Alpha Testing -
-----------------
You upload your APK to either Alpha, Beta, or Production. If you upload to Alpha, you still have to publish a store listing, but it's not publicly viewable. You can't even search for it. Only people in your alpha testers group who have opted in for testing can visit the store listing and download the game.

Another thing I've never found out is when I'm uploading to Alpha, I have to keep incrementing the version number. What if I uploaded an APK to Production with the same version number as the Alpha APK? (This is automatic if you move your Alpha APK to Production) What if I uploaded an APK to Production with version 1 even though the Alpha APK is like version 100?

EDIT:
When you move an Alpha APK to Production, the store listing becomes public immediately, even though the Production APK isn't ready. Just watch out. For the first few hours, clicking on the install button will cause a "can't find item" error.
I have no idea what's the problem.

EDIT2:
I just uploaded a new APK straight to Production and it worked. If you know what's good for you, never move Alpha APKs to Production. Just upload a fresh copy to Production.

------------------------
- GPGS Development -
------------------------
You're going to need to download the GPGS libraries in the Android SDK Manager. Then you have to go to the Google sample apps and grab BaseGameUtils. Link up both of those to your Android project and you're set.

If you're getting tons of errors, in BaseGameUtils, it's probably outdated. I had a whole issue with this where I had the latest GPGS but the BaseGameUtils samples weren't updated yet, and I'd get hundreds of errors everywhere.

As for using the GPGS API in LibGDX, the most common method seems to be to have your LibGDX game in your core project communicate with the Android launcher in the Android project via some interface. Very awesome tutorial on how to do that here. Warning though, it's a little bit outdated. GPGS has changed their API quite a bit, but it shouldn't be too hard to figure out.

When in doubt, press Ctrl + Space. Yeah that just brings up the little Eclipse helper box thingy.

~*~*~*~*~*~*~*~*~*~*~*~

Anyway, those were just some of the few things I was unsure about. Hopefully other Android developers using the Google Play Store find this helpful.

Leaderboards and Achievements

Looky looky at what I have here.

Video

That's right. Leaderboards and Achievements. Also, I found out you can actually record your Android 4.4 (KitKat) screen using ADB. No root required. Kind of a bummer to people not using 4.4.

Anyway, I had to jump through a bunch of hoops just to get these working. Linking libraries, getting OAuth2 or something, achievement IDs, leaderboard IDs, Google Play Game Services API, alpha testing.

So far, the achievements aren't being unlocked. I wonder if it's because I didn't download the Plop apk from the Play Store, or if the leaderboards and stuff don't work on alpha release? I don't know. But I just submitted the (hopefully finished) game to alpha production. I really wish there won't be any more problems.

EDIT:
Ohhhh myyyy goooooooooooooooood. The achievements aren't being unlocked because I don't have the code for it! For some reason, my brain decided to blank out when writing the method for achievement unlocks. Here it is:

public void unlockAchievement(String achievementId) {
       
}

Yeah it's empty. I need to take a break. It's a good time to take a break anyway. It takes like 5 hours for Google Play store listing to update every time you upload a new apk.

Totally super amazing video of me getting the Lightning Reflex achievement

Friday, June 13, 2014

Plop

It's finished. Get it here:
Plop on Google Play

Working on my second Android game, Plop. I can't seem to stay away from puzzle games so I had to make one myself.

It's pretty much a 2D version of the Rubik's Cube, except with porings.
Shoutout to Ragnarok Online yo. Snipers4lyf.

The gameplay is simple. You can pick regular mode, which is timed, or casual mode. Then you pick a difficulty. Higher difficulty includes more colors and a more random solution.
You are to try to match the plop grid with the solution grid by:
1) moving rows left and right
2) moving columns up and down
The game has 4 levels, with increasing grid size from 3x3 to 6x6. The point of the game is to try to finish all 4 levels in the smallest amount of moves you can.

I did take some screenshots of the progress, so you can kind of see the steps I took to make the game look nice.

I've posted before that you shouldn't really worry about graphics until you have a solid foundation for your gameplay and you're happy with it. So I suggested using placeholder graphics.


Once you have something to work with, you can try making more detailed graphics for your game, as well as a basic layout for how you want your HUD to look.



Then just keep tweaking until you get something you're satisfied with.


I'm not gonna lie. This game is pretty hard, especially for people not inclined to puzzle games. Here's a small video of me playing on hard difficulty.

Video

EDIT:
Complete fail in the video. In the 3x3, I could have just moved the bottom row to the right to solve it and save me two moves. I have no idea what I was doing there with that fancy swivel.
Every move counts. One of the achievements I'm planning on adding is to finish hard mode in under 180 moves. Also global leaderboards. Hopefully I can get that to work.