Night Hunt is a freeware timing based, pseudo-Commodore 64 game, in which you hunt vampires. It's released for mobile devices and also for Windows. I will talk about the technical details of how the game works, some tips might be very useful if you make a timing based and/or retro game. And my guesses about why it was financially unsuccessful.
This game has been inspired Jeroen ‘Goerp’ Gildemacher’s Commodore 64 game, Helsing's Hunt. I discovered Helsing's Hunt at a Ludum Dare, I wanted to make a mobile version of it since the time I've seen it. I took permission from Goerp for Night Hunt.
For a 4-hour game jam, I made Night Hunt's first version. It had a few bugs in it, but was playable. After seeing the game is enjoyable, I decided to polish it and make a commercial game.
Commodore 64 graphics on Unity
Some people argue that Unity isn't suitable for pixel art. I disagree. We made sprite sizes small as if the whole screen size was 320x200. For example, protagonist's size is 47x53 pixels. Sprites' filter mode is set to Point, so that it would not look blurry, but sharp. Voila! Pixel art on high resolution.
The first (4hour jam, not mobile) version of the game had sprites those I drew. They were terrible. As Aslan Game Studio, we want to release game with high visual quality. So I hired a freelancer pixel artist, name is Emmanuel Ortega. He made an awesome work.
For dynamic text, I used a Turkish-localized Pet Me 128 font. FontForge is used to add Turkish characters.
For static texts, I used a gothic font (Minion Pro) in PSD's with low pixel size. Filtered as point, of course, so it would look sharp and pixelated in game screen. I couldn't use this gothic modern font as a dynamic text, because Unity would draw this font as high quality in modern hi-res screens. Not pixelated. At least, as far as I know it does this so, feel free to comment if you know how to make it dynamic and pixelated.
Programming of timing-based game in Unity
In the first version of game, I had problems with timing.
You know that the ground is actually two identical pieces that replaces their positions. If one piece is at too left side of the screen, it changes its position to right, so we make an infinitely moving ground.
The problem was, the grounds always had a gap between them. I knew I was doing nothing mathematically, I was ordering the left ground to move just at the right side of the other ground. It took me a while to figure out why there was a gap: Each ground had been moving with their own Update functions (I had an Update function in NH_Ground script that makes the movement). When I put a print(name + Time.deltaTime); in ground script's Update, I found out that each ground printed different delta times. That was why there was a gap, the grounds were moving with different time steps. So I made the movement in GameManager class, calling
float time = Time.deltaTime;
So they were moving with the same delta time at each game step. Problem was solved.
I had another timing problem: Sometimes when we reached a vampire and hit the stab button, we still died. Because game-end condition and finger-press conditions were in different scripts (thus, different updates). The problem was even more obvious in Android, with low FPS the game was so unfair. So I made everything getting checked at GameManager's update. Then I didn't come across any other timing problem.
Another problem was when to strike the thunder light. At first, the thunder was random. But it is very unfair, sometimes a vampire never gets visible. So I changed the system: When a vampire is initialized, game calculates the time that the vampire reaches us. It picks a random time (but not too late, so we make some clamping on time) that the thunder strikes. So we guarantee that a vampire is always seen, no matter how fast the game is.
Unfortunately, game didn't get downloaded much. I couldn't earn the money to buy a cup of coffee I drink everyday. I've got some thoughts about the reasons:
Game was fun, but it was a short time that the player gets bored. Because there was no additional content. I heard that mobile platforms (Google Play, iTunes, Windows Store) look at your retention when they show your game to players. If your game is easy to uninstall, it's hard to be seen at search lists.
No media coverage
Honestly, Night Hunt isn't the most qualified game that Aslan Game Studio develops. We have bigger titles like Clown House 2 and Pawn of the Dead. I'd like to contact the game press only for my big titles, I don't want to lose their interest by spamming every game I make. Because of this, and because my friends from press didn't find the game worthy to make news, Night Hunt didn't find its place on gaming press. Clown House 1 was on news, it was quite good for downloads, so I can say that press coverage is quite important.