Simple UIImage Caching in Swift

Standard

This is a snippet of code that will cache images downloaded from an online source, and provide them when needed. I still have some work to do on it, but right now it works pretty fine.

I’m using a dictionary to keep track of the images, with their Base64 encoded urls as keys.

Example usage goes like:

PS: Also, that UIImage().loadAsync is an UIImage Extension method I have lying around πŸ™‚

SuperStems is out for iOS

Standard

SuperStems is finally released on the AppStore for iOS! After 14 long days waiting for approval, it finally passed and it up for grabs for free! There are already over 400 downloads and counting, and players are rocking the leaderboard!

I’ve setup a new website for SkyBelow, my new gaming studio.

Edit: I’ve been updating SuperStems since Unity5 was released, and all I can say is that it runs smoother and better looking with the new IL2CPP – converts C# to Cpp to increase performance -, which is awesome! So far I’m testing it on my device, but you should get the update in a couple of weeks. Just enough time to send the new build and get it approved again by Apple.

Super Stems Post Mortem

work-environment-superstems
Standard

B4L4pozCYAAHAwj Super Stems, originally called Stems, started on a gamejam weekend, Ludum Dare 31. The theme was “Entire Game on One Screen”, which many people complained about, me included, since a lot of people were expecting the snowman theme to be chosen. Aside from that, once the theme was announced, I started to make Stems.

So what is Super Stems? Super Stems is a board domination strategy game. You have tiles and board slots. Each tile has three sides, a number attached, and adjacent sides on the board will battle. Upon battle, the higher number will win, and the losing tile will be captured. This is a simple concept that I stripped down from another game I’m planning, which has this basic gameplay with more gameplay mechanics, inventory and multiplayer in it. B4M3HkVCAAAjR2a But since I had only 48 hours to make it happen, I stripped it down to this. A few hours in, I had the tiles and placeholder models and ready to be used in Unity.

I don’t usually take much time in planning during gamejams, I usually go all in with a minimum planning and knowing what I must do and sort and solve problems as they arrive. But since Indies vs Pew Die Pie gamejam went really bad because from the lack of planning, this time around, I took some time to plan ahead and think of what I wanted to make.

B4NwB0yCYAA60AN

So with my plan written down and my idea right fixed in my head, I started developing the game until I had basic gameplay done. If you asked me by then, how much more time would I take me to finish a minimum viable product, I would’ve said a week, maybe less, but oh boy was I wrong. First things first, the gamejam atitude of coding this and that without taking much care, because time is of the essence, is bad. I don’t use magic numbers, nor hardcode anything. I usually take care in writing beautiful and maintainable code. So for that end, I was good. On the other hand, I manually placed the grid and linked neighbors, one by one. Since the original grid had only 9 pieces, it was fast and did the job. Finding after a few days that some of those links were broken/switched, was bad tho.. Mistake #1.

B4S5hSqCYAEo2QU

But nonetheless, everything was in place, I had the grid, the basic Turn-by-Turn gameplay, basic animation, tile capturing, teams, score. I was just missing an opponent.. better yet.. an Intelligent Opponent. Making the Artificial Intelligence was hard. It was hard because of mistake n# 1, not having a generic grid, in which I could make the calculations required to make it easier for me. Having a properly made grid system, I could have made methods to make my life so much easier, but nooo.. I might have written the battle, capture, AI play code at least 5 times! And by this I mean, really starting from scratch. Taking pen and paper, putting it all in a new perspective. And every time I did it, something good came out of it. Every time it god better. Obviously by now, the 48h period had long gone. I was more like two weeks after the deadline, mainly because I was working on it part time, after work, 3 or 4 hours a day, and you can only do so much.

B7bShESIEAEFEi6

But still after those AI changes, it wasn’t working properly yet. I wanted to make it smarter. After another brainstorming session with pen and paper, I finally tweaked the algorithm to make it the way I wanted to. You can now have decent battles with it. It will lose, but also win. So far, from online gameplay and local testing, my analytics say that the AI wins above 60% of the times, so I’m ok with that. During that time, while I was trying to get the AI right, I kept changing the UI, textures and models. The images speak for themselves.

B9Hq3-fIgAA0Kj-

Right now the game is ready to be published. Its maybe not as polished as I would like it to be, but I have to release it, get feedback, and then I’ll see what I’ll do with it. I’m already thinking of other games I want to make. This is my second ‘board’ game. This one has a new gameplay type, which is good, since I always try to make new gameplay on each game. So I’ll be releasing the game in the upcoming weeks, hopefully this will get some players. At least more than my previous one.

Simple Achievement System in C#

Standard

Achievements are becoming more and more usual in games. They provide the player a sense of accomplishment and progress by rewarding them with badges that proves their skill and experience. Some achievements are simple and other require a combination of particular actions to unlock. In this article I show you how to make a simple Achievement System using C# and will demonstrate it using Unity3D, but this should be easy enough for you to port it to whatever language you’re more familiar with for your games.

Continue reading

Measure Method Time Performance

Standard

Quick snippet to let you check the time used by any method you have.

This will write to the console the time spent on the method.

Just remember to use System.Diagnostics.
More info on Stopwatch.

That’s it. Enjoy.

Final Flapasy on Android

Standard

Hey!

So this couple of weeks, I’ve been mostly working on my Thesis, or at least should have been. But the urge of making games has lead me off track. I’ve participated in two gamejams: #candyjam , to protest against King.com and #flappyjam , to support Flappy Bird’s creator.

#candyjam wasn’t that great for me, I was able to make something, but its no fun really, and the artwork wasn’t made by me.

On the other end, #flappyjam was really nice to make. I’ve made all assets and ended up making a clone of flappy bird under a week. My theme of choice was Final Fantasy, hence the name Final Flapasy, so I’ve made a chocobo for the player and some cactuars as the enemies. I hope you like it.

You can play the game for free either at itch.io or gamejolt.com , and you can play it on your Android phone or tablet for free, obviously. Just follow the link to download it for android .

The game is still buggy, and it has no catchy tune, but I’ll keep updating it if enough persons like it and play it. πŸ™‚

If you like the game, please share it with your friends and family πŸ™‚

Now back to the “serious” work. πŸ™‚
Cheers.

Memtiles Kids and Updates

Standard

So, I’m about to release Memtiles kids for Free. Why? Well, because no one is buying the game really. So I’m going to try another approach. I’m going to insert ads, one or two, and I’ll see whether that ends up creating revenue.

The objective here is to make some money in order to fund other games. I have some games in mind already and as soon as I get some time from my Msc Thesis, and occasional game jam participations ( #flappyjam, #candyjam ), I’ll work on two new titles I have been prototyping and playing with.

One will be of the same style of Memtiles Kids, but with a new twist and for a broader audience. The other is completely different, and hopefully challenging.

Postmortem: Memtiles Kids

Standard

bScreen4
So I’ve released Memtiles Kids on Google Play and sales have been like… zero!.. Well, not zero but, 6, but only because friends and family bought the game. The thing is, advertising. Its not easy to NOT be featured in the front page, not even in launch day!.. Seriously.. wtf?

Anyway, I’m “Waiting for Review” on the iTunes Store, and hopefully that route will give me more sales. Either way, I’ll release a free version of Memtiles Kids with the first theme unlocked, on both stores and link back to the paid version when the demo completes. Hopefully I’ll have more downloads on that one, leading to an increase in sales.

I think the way to go now is to make the games free, to maximize downloads, and have in-app purchases to generate income. Noted! I’ll know that for the next game.

Talking next game, what do I have in mind? Memtiles! Different levels, different gameplay, powerups, more fun, In-App Purchases!! and it will be free! Depending on the In-App purchases, maybe with Ads.. Don’t know yet..

After Memtiles, I’m thinking of some other games, but that’s secret. πŸ™‚