BackUpAndDown said: Nice, those are some pretty nice numbers. Just out of curiosity how long did it take to make the game?
Hard to say. The main engine - about one week. The graphics - three to four weeks. Balancing, testing, bugfixing - four to five weeks. Approximately...
Yeah, another review that was really positive! I had already discovered them and have put the best lines into the description text:
Appadvice.com: "Spooky Hoofs sports one of the coolest art styles we’ve ever seen in a running game for the iPhone." "...easily one of the best time killers around" "If you’re a fan of the genre, or of really creepy iPhone titles, Spooky Hoofs is a must-have."
TheAppShack: 9 out of 10 "Spooky Hoofs is a great endless runner with awesome graphics, and great power-ups, while the gothic vibe of the game makes it even better. This is one game that will be staying on my iPod for quite some time."
Meanwhile, it's again slowly climbing into the Top 200 in US iPhone Games. At the moment, it's on place 196, while the peak was yesterday 189.
On the Mac, it's been staying the whole weekend in the top 10 US Games, right now it's placed 8 and still 23 in US overall.
Both of these weekend rankings seem to equate around 300 sales per day (means place 200 in US iPhone Games = around 300 sales, while place 8 in US Mac Games = also around 300 sales). But that might not be too correct, as Apple also considers some more factors for their ranking system than just the sales numbers (how long stuff stays installed, usage and so on).
Over 600 a day, that is the best performing app I had so far. Only Puzzle Dozer HD once reached 800 on a single day, but that was when they had made it game of the week.
Seriously awesome game. There's nothing I love more than Halloween and retro games, and this one blends them together so perfectly. Just left a 5 star review in the AppStore and am currently trying to beat my high score of 20,000. Good luck with the sales (not that you'll need it).
Another killer app! I downloaded this from the Mac App Store the minute I found out it was live. I love it! I've been playing it everyday and don't plan on stopping any time soon.
Great work, Thomas! Can't wait to see what you come up with next.
Can I ask you a question about the engine? Do you have one scene for all levels? This is a huge scene, with all the obstacles, power-ups, enemies, and backgrounds already in the scene, something like this:
or maybe you have different scene for each level (like town, swamp, hell?)
or maybe this is standard scene (480x320), with random appearing obstacles, power-ups, enemies, and backgrounds - like in standard endless runner?
Hey, a yellow post... That's always nice, especially from you Yodapollo! :-) Thanks for enjoying my game. And of course thanks a lot to all of you guys...!
@TheMoonwalls: Well, it's a single, very large scene. The background consists of two actors that simply change their images according to the appropriate stage. And they are continuously placing themselves on the far right once they went out of the screen to the left. The ground consists of 7 blocks that do pretty much the same, always placing themselves on the right side of the camera. That way, the coach can actually travel to the right and have the real physics working (the camera is following and the ground is also keeping up with it). And once the carriage has reached somewhat around x=10000 or so, I simply set back everything (ground, coach, enemies, background, camera etc.) to x minus 9000. That way you get the feeling you are traveling endlessly. And I only have 3 enemy/bonus actors: 1 for boni, 1 flyer, 1 walker. Bosses are the only actors that are spawned once they arrive.
Well, it's a single, very large scene. The background consists of two actors that simply change their images according to the appropriate stage. And they are continuously placing themselves on the far right once they went out of the screen to the left. The ground consists of 7 blocks that do pretty much the same, always placing themselves on the right side of the camera. That way, the coach can actually travel to the right and have the real physics working (the camera is following and the ground is also keeping up with it). And once the carriage has reached somewhat around x=10000 or so, I simply set back everything (ground, coach, enemies, background, camera etc.) to x minus 9000. That way you get the feeling you are traveling endlessly.
That is pure genius. Doing it that way you can: (1) make the platforms (ground) etc... non-movable and thus can use gravity and not have to do that normal work around with acceleration; and 2) still have an endless runner (without having to use wrap or, alternatively, without having to make the platforms movable and the player static, which I hate because although the actor appears to be moving due to scrolling, the actor is stuck to one spot on the screen).
It took me a several hours to figure out exactly how to do it, but I am now re-designing the engine for a runner I was working on using that method. It works so much better and once I figured it out, it made my rules much simpler than the old way of doing it. Again, awesome idea.
One question: the only thing I can't figure out is when I do the reset of the X's, my main actor "blinks" once for about .05 seconds. Can't figure out how to stop that from happening. Is there a solution to that? If not, then I'll just make it part of the game and make it look like a power-up since the reset does not happen very often.
dotsonj23 said:One question: the only thing I can't figure out is when I do the reset of the X's, my main actor "blinks" once for about .05 seconds.
That is happening for a single frame when the reset is going on and the camera position is resetted in a different frame than the player actor. That is caused by the order of the actors executing this.
The best way is to synchronize all actors to do the reset, using a special flag, let's say game.setback = true;
The actor that sets game.setback to true must lie in the lowest layer in the lowest position. The order in which the actor codes are exectuted is from bottom to top. So when every other actor lies above that actor, they all get the signal in the same frame and set themselves back at the same time - including the camera.
gamesmold said: That is happening for a single frame when the reset is going on and the camera position is resetted in a different frame than the player actor. That is caused by the order of the actors executing this.
The best way is to synchronize all actors to do the reset, using a special flag, let's say game.setback = true;
The actor that sets game.setback to true must lie in the lowest layer in the lowest position. The order in which the actor codes are exectuted is from bottom to top. So when every other actor lies above that actor, they all get the signal in the same frame and set themselves back at the same time - including the camera.
Hope this helps! Thomas
Worked like a charm. Thank you so much. Its really generous of you to give out those secret sauce tips. You are one of the people that makes this community so great! Again, congrats on the the game. I love it and it really is the type of game that I think appeals to a wide audience as my wife and 4.5 year old love it as well (he wants a spooky hoofs stuffed animal, like his Angry Birds ones)
[FYI....For anyone else trying this, make sure the actor that controls the camera is not the same actor that triggers the game.setback=true attribute. Otherwise the camera then moves first and you get the same issue. That should have been obvious to me once Thomas explained how the order of operations work but at first I forgot that that particular actor was also controlling the camera
Also, it won't look right if you are using continuous particles (.e.g. smoke or flame) since they will won't reset as far as I can tell. So I'll just have to animate those items instead]
Comments
I can't even give away my games as fast as you're selling yours.
http://itunes.apple.com/us/app/star-jump-lite/id460983613?mt=8
Carry on!
QS
Dr. Sam Beckett never returned home...
Twitter: https://twitter.com/Quantum_Sheep
Web: https://quantumsheep.itch.io
And place 23 in US Overall.
Hope it also continues climbing on the iPhone.
It's just on the brink of the Top 200 US iPhone Games, yesterday it has already been up there.
Appadvice.com:
"Spooky Hoofs sports one of the coolest art styles we’ve ever seen in a running game for the iPhone."
"...easily one of the best time killers around"
"If you’re a fan of the genre, or of really creepy iPhone titles, Spooky Hoofs is a must-have."
TheAppShack:
9 out of 10
"Spooky Hoofs is a great endless runner with awesome graphics, and great power-ups, while the gothic vibe of the game makes it even better. This is one game that will be staying on my iPod for quite some time."
Meanwhile, it's again slowly climbing into the Top 200 in US iPhone Games. At the moment, it's on place 196, while the peak was yesterday 189.
On the Mac, it's been staying the whole weekend in the top 10 US Games, right now it's placed 8 and still 23 in US overall.
Both of these weekend rankings seem to equate around 300 sales per day (means place 200 in US iPhone Games = around 300 sales, while place 8 in US Mac Games = also around 300 sales). But that might not be too correct, as Apple also considers some more factors for their ranking system than just the sales numbers (how long stuff stays installed, usage and so on).
Over 600 a day, that is the best performing app I had so far.
Only Puzzle Dozer HD once reached 800 on a single day, but that was when they had made it game of the week.
Awesome! I specialy like the way the game starts.
Great job!
Lump Apps and My Assets
Cheers, Weswog
Cheers,
Anselm
Another killer app! I downloaded this from the Mac App Store the minute I found out it was live. I love it! I've been playing it everyday and don't plan on stopping any time soon.
Great work, Thomas! Can't wait to see what you come up with next.
--Yodapollo
Just AWESOME... Nice job!!!!
I love it, i'll left a great review in the french store.
NICE NICE NICE
Can I ask you a question about the engine?
Do you have one scene for all levels? This is a huge scene, with all the obstacles, power-ups, enemies, and backgrounds already in the scene, something like this:
or maybe you have different scene for each level (like town, swamp, hell?)
or maybe this is standard scene (480x320), with random appearing obstacles, power-ups, enemies, and backgrounds - like in standard endless runner?
Thank you!
@TheMoonwalls:
Well, it's a single, very large scene. The background consists of two actors that simply change their images according to the appropriate stage. And they are continuously placing themselves on the far right once they went out of the screen to the left.
The ground consists of 7 blocks that do pretty much the same, always placing themselves on the right side of the camera. That way, the coach can actually travel to the right and have the real physics working (the camera is following and the ground is also keeping up with it). And once the carriage has reached somewhat around x=10000 or so, I simply set back everything (ground, coach, enemies, background, camera etc.) to x minus 9000. That way you get the feeling you are traveling endlessly.
And I only have 3 enemy/bonus actors: 1 for boni, 1 flyer, 1 walker. Bosses are the only actors that are spawned once they arrive.
Cheers,
Thomas
It took me a several hours to figure out exactly how to do it, but I am now re-designing the engine for a runner I was working on using that method. It works so much better and once I figured it out, it made my rules much simpler than the old way of doing it. Again, awesome idea.
One question: the only thing I can't figure out is when I do the reset of the X's, my main actor "blinks" once for about .05 seconds. Can't figure out how to stop that from happening. Is there a solution to that? If not, then I'll just make it part of the game and make it look like a power-up since the reset does not happen very often.
The best way is to synchronize all actors to do the reset, using a special flag, let's say game.setback = true;
The actor that sets game.setback to true must lie in the lowest layer in the lowest position. The order in which the actor codes are exectuted is from bottom to top. So when every other actor lies above that actor, they all get the signal in the same frame and set themselves back at the same time - including the camera.
Hope this helps!
Thomas
http://arcadelife.wordpress.com/2011/09/10/spooky-hoofs-review-ipodiphone/
Dr. Sam Beckett never returned home...
Twitter: https://twitter.com/Quantum_Sheep
Web: https://quantumsheep.itch.io
It's great...but boooooy... that initial load time is a killer! (on my 3gs at least)
Great game though. Super playable, great look to it too. And I love the mechanics of the horses and the cart and stuff. Technically really good!
as a regular punter though.......not sure sure..
Anyways.. this is getting away from the fact that it's a great game.
So well done to all involved.
Spooky Hoofs takes 15 seconds.
I think it's more than bearable!
QS
Dr. Sam Beckett never returned home...
Twitter: https://twitter.com/Quantum_Sheep
Web: https://quantumsheep.itch.io
Jetpack takes 11
I lost my 3GS
QS
Dr. Sam Beckett never returned home...
Twitter: https://twitter.com/Quantum_Sheep
Web: https://quantumsheep.itch.io
[FYI....For anyone else trying this, make sure the actor that controls the camera is not the same actor that triggers the game.setback=true attribute. Otherwise the camera then moves first and you get the same issue. That should have been obvious to me once Thomas explained how the order of operations work but at first I forgot that that particular actor was also controlling the camera
Also, it won't look right if you are using continuous particles (.e.g. smoke or flame) since they will won't reset as far as I can tell. So I'll just have to animate those items instead]
Many thanks againThomas,
Jon