30 September 2013
App of the Week: Mosaika
Joe Kauffman, the founder of Fire Maple Games, has built an incredible brand around his point-and-click adventure games. His puzzle games have propelled him to the top of the charts since the early days of the App Store, with his two major releases, The Secret of Grisly Manor and The Lost City, receiving over 10 million downloads.
Many point-and-click adventure fans have been awaiting Joe’s next release, Mosaika, and as of last Friday, the game went live on Google Play and the Amazon Appstore, with the iOS version coming very soon.
Mosaika transports you into a mesmerizing world of magic. When an evil sorceress puts a spell on the village of Mosaika to banish the inhabitants, the villagers need your puzzle-solving skills to break free. As you travel through Mosaika and explore mystical rooms, you’ll uncover clues to jot down in your virtual journal. These entries are vital to help you solve tricky puzzles along the way.
Beyond the truly immersive gameplay that kept me hooked for hours, Mosaika’s stunning graphics and original music are second to none.
If you’re a fan of point-and-click adventure games, head over to Google Play or the Amazon Appstore and download Mosaika, already a fan favorite!
Lerg
Posted at 16:52h, 30 SeptemberCongratulations on the new game!
Just out of curiosity, how many locations are there and maybe you can show us the process of creation?
Joe Kauffman
Posted at 19:48h, 30 SeptemberHi Lerg!
We try to keep the number of locations to around 40 or so. I think Mosaika only has 3 or so fewer screens than our previous game, The Lost City – but with more items to find, codes to break and puzzle to solve. Basically, less wandering around and more things to figure out!
Each location has multiple closeups, puzzles, etc. so it starts adding up quickly. There are around 1000 images in my image folder!
My partner Pat and I completely design the game ahead of time on paper, post-it notes, and a large whiteboard with dry erase markers. This takes us around a month or so. Constantly moving around objects and puzzles until it feels right. Every time you change something it affects many other things, so it is a pretty big juggling act to try and get everything nailed down.
The last 3 games use similar mechanics so I do my best to create a reusable engine. This rarely works out though! The mobile landscape shifts so rapidly underneath us that we constantly have to roll with the punches. Adding support for retina devices, an ever-growing multitude of screen sizes and processor specs. Plus the fact that I am always trying to improve the UI. So great portions of the engine need to be rebuilt each time.
Once the game is completely hammered down, only then do I start on the art creation. Pat is a great photographer and shoots thousands of source photos that I then use to create the final images. The images use a combination of photo techniques and matte painting techniques to make everything feel cohesive.
It’s necessary to build the art for the screens in a somewhat backwards order, since you can see the next screen(s) from the one that you are currently on.
I pretty much create the art and programming at the same time, since I will usually have to tweak one or the other to get the effect I’m looking for.
Then, after a year and a half, the game’s done! 😉
Hope this helps!
Joe
Everson Siqueira
Posted at 01:42h, 01 OctoberHi Joe, I really appreciate the glimpse of your development process you just posted.
Do you mind telling something about the usage of level editors? (you certainly have lots of hotspots for each scene) and something about data-structure… do you use sqlite? How do you persist things?
Also, in graphic adventures – mostly if you acquire/exchange objects – there is the possibility the player end up in corner-case states in which the game reaches a dead end… how is this handled by you guys?
(the final question is very programmer centric: any thought on unit-testing or automated testing on game development with Corona?)
I don’t know if you will have time for this, ha ha. But thank you! The games look terrific!
Joe Kauffman
Posted at 09:04h, 01 OctoberHi Everson!
I wasn’t able to utilize any level editors for this game. Mainly because of how my scaling algorithms work.
I design these games with the worst case scenario in mind. In this case, the iPhone 3GS, iPhone4/S and iPhone 5C.
Every critical thing in the game needs to fit into a 960×640 space (I scale it down by 50% for the 3GS). That means that all doors, paths, objects, puzzle elements, UI – everything needs to be in there.
However, my background images need to be larger to fill up the screen on different aspect ratios since nobody is accepting letter-boxed (or column-boxed) apps any more.
On larger devices, the graphics need to scale up to fit the screen. However, the tricky part is that I need to do the scaling based on the interior 960×640 space. I need that top left corner of the critical 960×640 space to always be on screen, never cut off.
Because of that, my true (0,0) coordinate is not actually the top-left corner of the background image, since that is usually in a bleed area. Actually no device shows the entire background image!
The HUD elements – the satchel, all of the buttons, the inventory, the popup text, etc. need to dynamic so they never go off screen either. Those elements don’t scale at all. There are 3 different versions of the graphics depending on the device. The simply slide around to their appropriate positions when the game is launched.
So the background images and all of the gameplay elements scale up or down to fit the device, whereas the HUD is dynamically placed on top of everything and does not scale. Because of all these shenanigans, I am unable to use level editors because I never know where anything is! 0,0 ~= 0,0! 😉
The game data is simply a long table that gets saved out to a .txt file all the time. It simply looks something like this:
gameData[102] = false — has unlocked the hot air balloon
gameData[103] = false — has repaired the fountain
etc.
etc.
This can be a little unwieldy of course, but it’s simple and saves me the headache of coming up with unique variable names all the time, like hasUnlockedHotAirBalloon or hasFedAcornsToSquirrel.
I’m sure there are better ways, but I have never used a database in my life! I went to art school, cut me some slack! 😉
I know it drives Walter crazy that my games are successful – but that I never utilize the full power of Corona!
Corona can do so many amazing, powerful things and I am basically just using a bunch if/else statements 😉
As far as dead ends and corner-cases, that is what gets hammered out in the initial planning. Everything gets completely locked down. That’s not allowed to happen!
As far as Unit Testing, I am not even sure what it is! I’ve heard people talk about it though 😉
I think that is the greatest strength of Corona. That people like me can create anything I can possibly dream up – with no formal programming foundation at all. I can only imagine what somebody with some serious programming chops could create!
Hope this helps!
Joe
Benny Samuelsson
Posted at 12:03h, 03 OctoberThanks for taking the time to answer questions this way!
As I’m making a similar game myself I’m wondering, are you using the storyboard API or is the scenes themselves made in a simpler approach as well? It doesn’t have to be advanced to play well 🙂
I’m still creating an engine to try to top “the lost city”. looking forward to try mosaika. The lost city was very inspirational as to what you can do with corona and the power simplicity in games on the mobile market can have today. I know it was a lot of work but it plays pretty simply and people love it 🙂
Joe Kauffman
Posted at 12:29h, 04 OctoberHi Benny!
Thanks for the kind words!
I am using a version of the Director class from a few years ago that I’ve heavily modified. I haven’t used it yet, but I’m sure Storyboard is the correct way to go nowadays.
As I’m sure you’re now aware, even the simplest things get complicated pretty quickly!
Looking forward to your game! Bring it on! 😉
Joe
Jen Looper
Posted at 04:58h, 01 OctoberUtterly lovely, Joe, I look forward to playing! Can’t wait for the iOs release. Bravo!
best,
Jen
Joe Kauffman
Posted at 09:04h, 01 OctoberThank you Jen! I also cannot wait! 😉
helios narcissus (@heliosnarcissus)
Posted at 19:09h, 01 OctoberGawd, your story is amazing and inspirational mr Joe! >:DDD
this is indeed the age of picture-marketing and you, sir, are leveraging that power to its bounds! >:DD
RichieLoco
Posted at 02:06h, 02 OctoberCongratulations on yet another successful game Joe! 🙂 Thanks a lot for the insight into your development process as well 🙂
Rich
Joe Kauffman
Posted at 18:39h, 11 OctoberHey everyone! Just a quick update to say that Mosaika is now live on iTunes!
https://itunes.apple.com/us/app/mosaika/id515840296?mt=8
Virginio
Posted at 09:59h, 25 NovemberHi.
I’m making a game app with storyboard api.
I’d like to reproduce the effect that is present on Mosaika when you click on some object, like fountain etc…There is a zoom of the object and then the entire fade screen. How can I do this?
Thanks