Armed with two weeks of Java learning and one week of Android, three brave Professional Software Development students decided to make Android games and try putting them on Google Play.
We had one week to produce something that reflected and consolidated our knowledge of Java and Android, and the three of us chose to make a game. There were many options for projects, but we picked games as we were drawn to the challenge of coding game logic. We were really excited to attempt to produce something that was good enough to put on the Play Store – and show our friends!
Could you tell us a little more about each of your projects?
Jaime: Coding Bootcamp Student Simulator is all about balance. A game where a student takes 16 weeks through the scary world of studying software development. Every day the player will need to take a decision that will affect them in unexpected ways, leading them to failing the course or finding a proper job.
Ewa: For this project I built a puzzle game called GhostSweeper – I based the game logic on the classic Minesweeper but invented my own custom theme, so instead of searching for bombs on a minefield the player’s goal is to trap ghosts hiding on the board.
Marta: I made Stabagotchi, an idle tapping digital pet. You can tap on him to give him love, and look after him by feeding him to keep his health up. I also added a little twist at level 5…
Where did you get your inspiration for your project from?
E: I knew I wanted to create a fun app that my friends and family could enjoy (while giving me valuable user feedback), but also one that would allow me to revise topics we’d covered in class and explore a variety of user interactions with a mobile device, for example short and long clicks or rotating the screen.
A Minesweeper-like game ticked all those boxes, plus it presented me with some interesting logical challenges, such as how best to calculate the number of ghosts in direct vicinity of a field on the board in order to display it as a hint to the player.
J: My inspirations were very clear. I wanted a challenging game that could be played with just one finger and based on our life as CodeClan students. Then, it was after playing Unicorn Startup Simulator (developed here in Scotland) when I discovered what I wanted to do.
Decisions games are really easy to understand for any audience, can fit on any screen and just deciding the events was fun enough to encourage me to think of more and more surrealistic cards for the app.
You had one week to complete the project. How did you find it?
M: It was definitely challenging to have only one week as it was easy to get carried away with features. I had a really clear picture of what the game would be if it were a “proper game” so I had to reign myself in with a clear basic specification.
My extensions were really modular so that once I had the finished product, adding each extension would add one complete feature but not depend on anything else. I used trello to stay organised which really helped.
J: Like Marta, I was afraid that I would get carried away by all the things I wanted to add, something I suffered during my previous project. So this time, I decided to plan my project very seriously. I spent the whole first day just diagramming what I should do. After that, it was really easy to fly over the development just following my diagram.
What was your favourite feature of the app?
E: I’m really happy that I managed to introduce difficulty levels to GhostSweeper. It was the last extension I had time to build, however it was much needed, as initially I made the game almost impossible to win for anyone but the most experienced players!
M: My favourite feature was the first extension that I implemented, which made the game actually playable – time. Each second, Taco’s health points goes down by one and this prompts the user to feed him and sets the game in motion.
I researched how to use time in Java/Android and I found that I would have to use multi-threading, which was intimidating at first but it actually all came together in about 30 minutes of coding! I also of course enjoyed implementing the plot twist at level 5, even though I didn’t have much time to do so.
What was the biggest challenge you faced during development?
E: I spent a long time working on a single function which uncovers a larger part of the board if a player taps on a field which isn’t directly next to a ghost. I knew that what I needed was recursion, which is a process in which a function calls itself – I first came across it during the pre-course work, however the sheer idea seemed completely mind-boggling to me at the time.
The moment when I finally got it to work was incredibly fulfilling, and it more than made up for the hours of work!
J: Impostor Syndrome. Definitely. There was a moment during the week where I thought that the whole idea of my project was worthless. I found it simple in mechanics, even when the logic behind was complex, and I thought I wasted several days following an idea that I should have dropped the first day.
It was very hard and all I needed was a proper rest and a chat with someone. It’s really easy to turn inwards upon oneself on these project weeks. Our goal is one week ahead, there are no classes and everyone’s working on their projects, so you just forget that you’re surrounded by people experiencing the same feelings.
How did you find the process of putting the apps on Play Store?
M: It was much easier than I expected. I managed to get a debug version of the app to put as a release on github, which triggered us to think about making a signed APK and potentially put it on the Play Store. Our instructor Pawel took the initiative to create a CodeClan account on the Play Store.
J: The key point of releasing the apps came after installing Ewa’s and Marta’s games on my phone. It increased my wish of seeing my own app there, for real, even more so after finding myself playing with them at home. Luckily, Google Play has a really good tutorial on how to publish and create signed app files, so it was a matter of half an hour to deploy the app.
E: I felt super chuffed when the three of us became “published” Android developers. One thing I found slightly disappointing was that the icon with a cute ghost which I chose for my app wasn’t displaying on newer phones. Luckily it didn’t take me long to research the solution, and after uploading a version of my app with a new adaptive icon to Play Store, I was excited to find that the game automatically updated on the phones of people who had previously downloaded it!
What one tip would you give to any CodeClanners who are about to do their project?
E: Don’t spend all the time working on your own. Talk to others, especially if you’re stuck on something. Even if their projects are very different to yours, they might have come across the bug you’re trying to fix, or could help you brainstorm a solution to a problem you’ve been stuck on for hours.
Sometimes all you need is just a five-minute chat to have that eureka moment. And who knows, maybe you’ll also help them with something in the process?
J: At this point on the course everybody has experienced Object-Oriented Principles, and I think this is the most important part on a project this size.
Keeping things simple, using single responsibility on the methods you write and, what helped me a lot, commenting and cleaning your code are your main tools. This will allow you to move really quickly through your code when you have over 20 files.
M: I would recommend that you set yourself a really well-defined specification that has the minimum coding you’ll need to do to get it working, even if it doesn’t have an interface. This means that you will have a well-tested code base, which will make the coding of the interface easier.
Read more CodeClan project blogs
- Kate’s project diary: an Android food tracking app
- Claire’s Ruby project: a cycle ride logging application