Thursday 25 April 2013
The Three Game Challenge – Part 3 – The Family Jewels
Well this is it! I have completed the third game in my three game prototype challenge. (first game, second game)
With this one I wanted to try my hand at a very popular game genre at the moment, match-three. Because this is a rather simple style of game I thought it would be really easy and fast to make. Wrong. I spent hours without touching a keyboard trying to come up with some novel twist on the genre.
I toyed around with a gem dropping mechanic but that didn't work so well, then I thought about how someone interacts with match-three games on mobile, by dragging the icons around. So I decided to base my game play on dragging gems around until they make a match.
I originally wanted a "mindless" match-three game like Montezuma, one where you play it as fast as you can without thinking too much about the moves. As I started developing the game play for this one however it seemed to fit a puzzle like game better so that's what I ended up with.
Anyways give it a go and let me know what you think:
Play The Family Jewels
This one took a little less time at the others at 31hours over 7 days, as per the other two I recorded my time spent:
17th April
11:00 - 12:00
15:00-18:00
20th April
10:00-12:00
21st April
13:00-17:00
22nd April
11:00-13:00
14:00-16:00
20:00-21:00
23rd April
11:00-16:00
24th April
11:00-16:00
18:00-21:00
25th April
11:00-12:00
Well that's the end of my challenge! Im surprised I managed to do it. A little over a week per game seems like hardly any time at all but having that time restriction really is good as it helps to limit your scope, preventing the game from ballooning out into something that could otherwise have taken months and still not have been any fun to play.
As for the tools I used. I used Richard Lord's excellent Ash Game Framework to develop them all alongside Starling with Feathers on top of Flash for the rendering. For rapidly prototyping games they have been excellent. Now im more familiar with Ash I may write a post or two about how to go about structuring certain parts of a game in an enitity-component like manner.
But for the next week or so I need to finish my packing before my mammoth trip to Central and South America.
Labels:
Actionscript,
AIR,
ash,
Flash,
Game,
gem,
match three,
Mobile,
Personal Projects,
Programming,
starling,
The Family Jewels
Subscribe to:
Post Comments (Atom)
[...] [...]
ReplyDeleteI like the 1 game a week setting :) Great work!
ReplyDeleteI would be interested in reading about your findings regarding the Ash framework. I already took a look at your gamestate handling in Ectoplasm, as I have been playing around with the JS port for ash (ashjs) just to learn it. But coming from Flash/Starling development as well, it's fairly interesting for my next projects, as it seems to be suitable for prototypes if the concepts have been understood Took me some time though :D
nice stacking on z-axis idea, but level 9 and 10 are problematic to see the ldifference of hight and sometimes gems move sometimes dont
ReplyDeleteNice game :)
ReplyDeleteI came across a bug while moving gems and thought I'd report it. So here's the stack trace:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at jewels.components::ForestMinigameMode/getLine()[E:\Dropbox\Projects\Personal\Live\TheFamilyJewels\Jewels-core\src\jewels\components\ForestMinigameMode.as:49]
at jewels.components::ForestMinigameMode/getLines()[E:\Dropbox\Projects\Personal\Live\TheFamilyJewels\Jewels-core\src\jewels\components\ForestMinigameMode.as:79]
at jewels.systems::ForestMinigameManager/checkForMatches()[E:\Dropbox\Projects\Personal\Live\TheFamilyJewels\Jewels-core\src\jewels\systems\ForestMinigameManager.as:82]
at jewels.systems::ForestMinigameManager/onUpdate()[E:\Dropbox\Projects\Personal\Live\TheFamilyJewels\Jewels-core\src\jewels\systems\ForestMinigameManager.as:57]
at ash.tools::ListIteratingSystem/update()[E:\Dropbox\Projects\Libraries\Ash\src\ash\tools\ListIteratingSystem.as:80]
at ash.core::Engine/update()[E:\Dropbox\Projects\Libraries\Ash\src\ash\core\Engine.as:279]
at ash.signals::Signal1/dispatch()[E:\Dropbox\Projects\Libraries\Ash\src\ash\signals\Signal1.as:25]
at ash.integration.starling::StarlingFrameTickProvider/advanceTime()[E:\Dropbox\Projects\Libraries\Ash\src\ash\integration\starling\StarlingFrameTickProvider.as:50]
at starling.animation::Juggler/advanceTime()[E:\Dropbox\Projects\Libraries\Starling-Framework\starling\src\starling\animation\Juggler.as:214]
at starling.core::Starling/advanceTime()[E:\Dropbox\Projects\Libraries\Starling-Framework\starling\src\starling\core\Starling.as:379]
at starling.core::Starling/nextFrame()[E:\Dropbox\Projects\Libraries\Starling-Framework\starling\src\starling\core\Starling.as:367]
at starling.core::Starling/onEnterFrame()[E:\Dropbox\Projects\Libraries\Starling-Framework\starling\src\starling\core\Starling.as:552]