A trip down memory lane: My first commercial Android game

Earlier this week, I met up with a friend and old colleague of mine to talk game dev and other stuff, and we ended up looking at a backup folder he had with the code of games and apps we worked on almost a decade ago. For some reason, he happened to have the source code of Tito Pececito, the very first Unity-powered Android game I ever made, and so I saw this as the perfect opportunity to discuss the game’s development, as a sorts of a belated postmortem.

Background

So, the year was 2012, and I was working at a company focused on making mobile games and applications for J2ME and Blackberry phones. However, the Android market had been growing by leaps and bounds at the time, and the company finally decided to develop a game for the platform.

The original plan our bosses had was to remake an old game of theirs that was basically a sprite swap of Space Invaders. However, we knew that such a project wasn’t going to cut it, and somehow managed to convince the higher-ups to give us some creative freedom for the adaptation. A fellow artist, programmer and I then worked around the clock to come up with and implement whichever changes we could to the base game.

Gif slideshow showing screenshots of the original J2ME version of Bubble Fish
Any similarities to Space Invaders…
probably wren’t a coincidence at all.

From the ground up

Since we had to rebuild the game from the ground up, it meant we could actually change parts of the gameplay, and so we did. On top of giving each enemy type distinctive attack patterns, we also decided to give the titular bubble fish an ability that was pretty on-theme: blowing bubbles of different sizes.

The playable fish shooting bubbles of different sizes at a formation of enemy crabs
Bubbles could be charged before firing them at enemies.
Larger bubbles dealt more damage, but moved more slowly.

Our artist quickly managed to take the miniature pixelated enemies and model them in 3D, with a fellow programmer learning enough Blender to make simple animations for each of them. Meanwhile, I had to deal with a huge bottleneck: the game was having awful framerate issues when deployed to Android devices due to the number of animated enemies that were on-screen at any given time. That was a part of the old Space Invaders experience that we definitely didn’t want to emulate!

Unity back then had a much smaller community than it does nowadays, so finding a solution to the problem was pretty hard. I finally did come across a way to animate a single skinned mesh renderer, bake its vertex data, and then have all on-screen enemies merely reference that data. With that, the game was back to being playable, yay!

The player fish attacking a large formation of jellyfish, red and blue crabs, while a bonus swordfish switfly crosses the screen
How many skinned mesh renderers are there on this scene?
Answer: only three! (fish, crab and swordfish, since jellyfish only had their scale animated)

Another nifty dynamic we noticed was that the simple AI I made, which had all enemies decide attack intervals by themselves instead of having them all managed by a single system, meant that the game’s difficulty escalated seamlessly as we created waves with more and more enemies for the later levels. This could result in danmaku-style patterns randomly showing up every now and then, but we felt it added enough difficulty without being overly punishing, so we ended up leaving it as-is.

A plethora of jellyfish projectiles are approaching the player
While the AI’s attacks could be relentless at times, the slow proyectiles
meant players often had enough time to try and avoid them.

Pushing the envelope

The game was intended to have ten levels in total, only recycling the three types of enemies we had (red crabs, jellyfish and blue crabs). However, that really didn’t feel like it was enough for us, and since we were pretty ahead of schedule, we went ahead and planned for something new and exciting: a final boss!

Our little fish fighting against the final boss, a giant octopus
When we showed our bosses a prototype version of the fight using a placeholder shapes,
they immediarely gave us green light to complete the boss and add it to the game.

The giant octopus was the single entity in the game with multiple attacks: It could swing its front tentacles, shoot projectiles at the player’s current position, and also had a spread attack that covered the center of the screen. Back then, we didn’t even have Unity’s current animator controller system, so the AI and its animations had to be managed from scripts alone, which was pretty confusing and resulted in a couple bugs popping up along the way. Still, we were really happy with the end result, as the giant octopus made for a fun and satisfying fight.

GUI hell

Finally, I’d like to address the elephant in the room: the game GUI. Back in Unity 3.5, there was no scalable UI or sprite renderers, so all UI elements had to be drawn on the viewport using pixel values.

Unity 3.5's old UI components, which were really hard to work with
Having fun yet?

This meant that adapting UI elements across multiple display resolutions had to be done by hand, and we simply weren’t up to the task back then.

The only phone our bosses had set as a target for the game was the Motorola Milestone, which had a much larger screen resolution (480×854) than any other Android phones we were using at the time. The results of making our GUI target such a high resolution when Unity didn’t have any tools for scaling UI elements were… well, simply catastrophic:

Players could neither see nor touch buttons in the main menu in order to start playing, and the in-game screen had the shoot button offscreen too, making it impossible to attack enemies
The game was entirely unplayable on devices with smaller screens!

Conclusion

Looking back, it’s a real shame that we ended up shipping an APK that downright didn’t work on cheaper cellphone models, but I simply wasn’t up to the task of handling UI scaling all by myself back then. These kinds of things really make me glad that we no longer have to deal with all those complications nowadays, mostly thanks to the community’s continued efforts to make up for Unity’s shortcomings.

Now, seven years after the game’s released, neither the APK nor the company that created it exist outside of archive or mirror sites anymore. Even in spite of it still being a Space Invaders clone, having lousy code and some questionable design choices, it was really neat to come across the source files after all these years, like a time capsule of sorts. It might not have ammounted to anything in the end, but the passion the three of us poured into the game is something I definitely will never forget.

This article has 2,758 comments

  1. гидра онион зеркала Reply

    Взять гиперссылку на гидру и спокойно покупать возможно на нашем проекте. В глобальной сети интернет зачастую можно натолкнуться на жуликов и утерять собственные личные деньги. По этой причине для Вашей защищенности мы спроектировали данный портал на каком Вы всегда сможете иметь доступ к магазину торговой площадки гидра сайт анонимных покупок. Для совершения покупок на трейдерской платформе гидра наш вэб-портал ежедневно посещает масса пользователей, для получения действующей работоспособной ссылки, надо надавить на кнопочку открыть и безопасно покупать, а если Вы в первый раз вошли на ресурс перед приобретением изделия надо пройти регистрацию в системе и пополнить баланс. Ваша собственная безопасность наша важнейшая задача, которую мы с достоинством выполняем.

  2. 拉屎 Reply

    After I initially commented I appear to have clicked on the
    -Notify me when new comments are added- checkbox and now every time a comment is added
    I get 4 emails with the exact same comment. There has to be an easy method you can remove me from that
    service? Many thanks!

  3. гидра зеркало Reply

    гидра сайт анонимных покупок доступна в тор Браузер, тор браузер это открытое и независимое ПО для реализации 2-го поколения луковой маршрутизации. Это сегодня система прокси-серверов в последовательности связанных друг с другом в продолжительную цепочку интернет соединений, которая даёт возможность устанавливать анонимное не оставляющее следов сетевое соединение. Рассматривается как анонимная сеть виртуальных туннелей (VPN), предоставляющая трафик информации в зашифрованном виде. Популярность получил как инструмент для “свободного” online-серфинга, в частности просмотра блокированных ресурсов таких как Гидра и похожих интернет-ресурсов из нелегального онлайна (Darknet). Применяя тор браузер Вы будете анонимными только лишь до того времени пока не будете сохранять свои индивидуальные данные, не надо забывать о собственной безопасности, по этой причине мы рекомендуем Вам не сохранять пароли на вход и иную информацию, применяя которую злодеи сумеют Вам навредить, очищайте кэш, куки и стирайте историю посещений.

  4. AdultFrinendFinder Reply

    Excellent article. Keep posting such kind of info on your page.
    Im really impressed by it.
    Hi there, You’ve done an incredible job. I’ll certainly digg
    it and for my part suggest to my friends. I’m confident they will be
    benefited from this site.

  5. гидра зеркало Reply

    Большинство людей сегодня применяют онлайн не только для получения информации, сколько для приобретения разнообразных товаров, какие просто-напросто наводнили его. Тут кроме того можно найти не разрешенные к продаже и незаконные группы. Но не в рядовом поисковом сервисе типа Яндекса, а в отдельно взятой зоне, общеизвестной как Даркнет. Площадкой этой сети и является ссылка на гидру в тор, web-сайт какой мы и разберем в деталях далее. Поэтому, в случае, если вам тематика закупки нелегальных товаров злободневна, то для вас этот материал станет нужен.

  6. hydra ссылка Reply

    hydra зеркало довольно объёмистый, в целом, это одна из наиболее популярных платформ в странах СНГ. Потому, если для вас нужны какие-либо не разрешенные категории товаров, тогда вы наверняка подберете их тут.И большое количество прочих изделий, которые имеют отношение к этим общим группам. К тому же, Гидра и ресурс площадки постоянно развиваются, online магазинов становится все больше и больше, ассортимент товаров подрастает, потому, если здесь чего-то не было прежде, может обнаружиться сейчас.

  7. Pauldek Reply

    [url=https://levitram.com/]vardenafil order[/url] [url=https://synthroidrem.com/]synthroid 112 mg[/url] [url=https://cialisstrong.com/]how to buy cialis online without prescription[/url] [url=https://creamtretinoin.com/]how much is retin a cream in mexico[/url] [url=https://prednisoneotc.com/]prednisone 10mg[/url]

  8. тор гидра Reply

    hydraruzxpnew4af.onion это трейдерская площадка различных товаров определенной направленности. Ресурс действует с 2015 г. и сегодня динамично раскручивается. Ключевая валюта – криптовалюта Bitcoin. Дополнительно для покупки этой денежной единицы на ресурсе действуют штатные обменники. Купить либо обменять Биткоин сможете с помощью раздела “Баланс” в кабинете пользователя. Hydra предлагает два метода приобретения изделий: первый – это клад (закладки, тайник, прикоп, магнит); второй – транспортировка по всей России (почта, транспортные фирмы, курьерские службы). Огромнейшее число проверенных магазинов он-лайн успешно выполняют свои реализации на протяжении нескольких лет. На сайте есть система отзывов, с помощью которой Вы сможете удостовериться в добросовестности торговца. Площадка торговли Гидра приспособлена под любые девайсы. В связи с блокировкой гиперссылки Hydra систематично производятся ревизии рабочих зеркал для обхода блокирования. Вслед за новейшими зеркалами возникают и “фейки” торговой платформы Гидра. Почти всегда фейк аналогичен официальному ресурсу hydra, однако войти в личный кабинет не выйдет, т.к. это фейк и его задача накопление логинов и паролей. Постоянно проверяйте ссылка на гидру по какой Вы заходите, а надежнее применяйте действующие гиперссылки на гидру представленные на страничках этого вебсайта и Ваши сведения не угодят в руки жуликов.

  9. https://alobacsi.com/ Reply

    Hey there! I could have sworn I’ve been to this blog before but after browsing through
    some of the post I realized it’s new to me. Nonetheless, I’m
    definitely happy I found it and I’ll be bookmarking and checking back often!

  10. white label bank Reply

    After I initially commented I seem to have clicked the -Notify me when new comments are
    added- checkbox and now every time a comment is added I get four emails with the same comment.

    Perhaps there is a means you are able to remove me from that service?
    Thanks!

  11. гидра сайт анонимных покупок Reply

    Очень много граждан теперь используют online не только для получения данных, сколь для покупок разных изделий, какие просто заполонили его. И здесь кроме того можно найти не разрешенные к реализации и противозаконные группы. Однако не в рядовом поисковике по типу Яндекса, а в отдельной доменной зоне, знаменитой как Даркнет. Площадкой данной сети и будет hydraruzxpnew4af.onion, web-сайт какой мы и обсудим более подробно далее. Поэтому, если вам тема закупки незаконных товаров насущна, тогда вам материал окажется полезен.

  12. setapp Reply

    Link exchange is nothing else however it is just placing
    the other person’s webpage link on your page at suitable place and other person will also do similar in favor of you.

  13. рабочая гидра Reply

    Взять ссылку на гидру и спокойно покупать можно на нашем сайте. В интернете зачастую можно наткнуться на мошенников и потерять свои личные денежные средства. По этой причине для Вашей защиты мы подготовили этот сетевой портал где Вы неизменно сможете получить вход к онлайн-магазину трейдерской платформы hydra ссылка. Для совершения закупок на трейдерской платформе гидра наш вэб-портал ежедневно посещает огромное количество клиентов, для получения актуальной работоспособной ссылки, надо надавить на кнопку раскрыть и безопасно совершить покупку, а если Вы впервые зашли на портал перед покупкой изделия требуется пройти регистрацию и дополнить баланс. Ваша собственная безопасность наша главная задача, которую мы с гордостью осуществляем.

Leave a Comment

Your email address will not be published. Required fields are marked *