Part 6 : Palm Grove Software
This is the paper initially intended to be written as a post mortem of my first little game on iOS and Android devices. I ended up somehow writing the whole series before getting to that point. I figured it was necessary to shed some light on the whole journey in order to better understand the decisions I made : all born out of sheer necessity. ( or a part of me is still fighting hard to force me not call it a post mortem )
After Ubisoft, I slept a lot and played some Xbox. I didn't mention it before but it was the first purchase I made in years. I didn't play much the year I was working, mainly because I was too tired when getting home late. I attributed it to stress back then since I was not sure I would make it to final contract. I think now it was mainly because I got older all of a sudden, and mainstream games didn't click for me anymore as they used to. I loved some though : the mass effect 1&2, Dead space 1, Banjo (even if that physics part didn't feel as good to me as the N64 old school platforming..), Darksiders 1 and Batman 1 to cite the ones that I dived into.. I wasn't sure at all about the next step to take, sent some resumes abroad again, from level design to programming, localization and tester jobs that I could find. Even had some phone interviews but nothing worked out. I lacked experience and/or work visas somewhere each time. My buddy from France sent me a copy of a book he purchased when I told him I was fooling around a little with XNA. From the excellent James Silva. Also an xbox live points card to purchase some games. And I was like a kid again, getting inspired tons by the Indie scene as I learned more and more about it ( late to so many parties, I know... ). Purchased Braid, castle crashers and the dishwasher. I don't know why I didn't finish any of them to this day. Mostly family pressure back then urging me to find another job, in anything. I was 30. I still went into XNA dev, managed to have a little ship moving around in a 3D scene sent by another buddy in France, 3D artist, who was into eventually making something together. Heck I even managed to fool around with basic shaders and have a normal map working somehow in a two pass shader..More of basic modifications on pre existing code in tutorials than anything but still, was a little proud, even without having any clue about making that classic mistake again : dreaming of big things in 3D... I got nowhere, more job interviews without success, little brother got a wii by then so I dived into just playing : mario galaxy(s), DK returns, Zelda..Nintendo games I do eat like insane, felt good since the gamecube years on the wind waker/twilight princess and Metroid prime trilogy... After that I decided to give a try to mobile dev : Android was all over the place. I got back to Java and started to get comfortable with it. It was around the first months of 2011 that I started looking up local jobs in mobile dev. And got one. The technical test was to make a tic tac toe AI be defensive in an hour. Clearly undoable in that amount of time, I didn't swallow my failure so I spent that day when I got back home from 3pm to 3am the night after doing a complete version of the tic tac toe demo in the Android SDK handling all cases of a super agressive defending AI and sent it back to the recruiter. They called me back the next week.
Small team of two iOS devs, the boss, and me to handle Android. After a month assigned on prototyping a Symfony social website ( managed to make something work with the 2.0 version rolling out back then but still not a fan of databases..), the Android project was greenlit and went all in to port the app they were making for iOS to Android. I did the heavy lifting (ORM-lite database, UI, logic...) for 3 months before things started to go south again one morning : my code was of poor quality, not organized..all in all, accused of being a liar on my level when I passed a technical test. They were 3 making the iOS version. I did my best to make it happen on my own without training or supervision until the last minute.
So I quit almost swearing to myself I wouldn't work as a salary man anymore.
And played the heck out of the Uncharted series : little brother got a PS3. God of war 3 also..Naughty Dog, Santa Monica studios, Japan studio..by God those teams... More Xbox live points cards from France : Limbo, insanely twisted shadow planet, Spellunky..Indie it was then. No clue where to begin, but the newly gained confidence from handling a project almost on my own helped. My old computer died on me and purchased a prehistoric one for 80 euros at least to have the net. Last paycheck went into buying a Nexus S device. The machine was enough to do a translation to Arabic gig that came along, paid 160 euros where agreed on 200...
I don't know how on earth I could still believe in anything by that point, but started to go through the situation as objective as I could : I had no skills graphics wise. No capital. No machine. And probably the worst programmer on earth.
I went through some of the games on Google play store, angry birds and rovio were the success models all over Google tutorial videos for Admob monetization.
I was pretty amazed by the examples of free games that were profitable. I couldn't wrap my head around it at first, believing one can make a living out of his passion only by selling a finished product. Apparently on Mobile it wasn't the case.
And since I couldn't draw even a stickman, and saw that there was not much apps about Arabic and/or really basic, I figured why not make a game about learning the language to kickstart the company and hopefully finance the first game project production in better conditions ?
I took a month to recharge batteries by the sea at uncle's place. Turned sour since everyone was thinking I was crazy. To decide at my age to start from scratch, alone, if not suicidal.
Maybe it was needed to give me that final push, taking on the challenge against all odds to prove what I was worth. And frankly it was the only motivation at that point and after taking all kinds of shit from everyone for more than 20 years. I wanted to see for myself if I could do it. Simple as that.
The first good news was a friend of the family hearing I was decided to start my own business and in need of a machine managed to find me a second hand 2010 macbook, and more importantly willing to be patient until I could make enough to pay him back ( 600 euros ). At last ! A decent machine in years ! Intel processor, so dual boot with win7/mac os x so I can dev for both mac and pc related stuff on top of mobile.
I contacted an old colleague from Ubisoft to see if he was interested in handling the graphics part, knowing I could not pay, and that the project could go nowhere on financal side, but the cut was there if he was willing to take the risk. He said yes. When I started, the day of my 31st birthday, I couldn't reach him. Started some code ( player profile to have more than a 'save' slot on a single device, dropped since ) for a couple days, until I decided to downgrade the project from a game to a simple app when I couldn't reach him at all.
The first hat of the many skills I'de have to learn was acquired then : producer mind. Cut all the noise, go to the heart of the constraints, make it happen as the one and only objective. The designer one slowly started to emerge too. I decided on the final content : alphabet letters, multimedia sections for writing, reading and listening. If I could maybe add vocabulary packages and advanced lessons with that thing called in-app purchase. Free versions with ads. Paid ones without.
The other main challenge I imposed to myself ( with a biz consideration though ) is to go full native programming, to showcase to potential clients that the company could manage the full cycle of production in all platforms. Decided also for the company name after hesitating between putting the app out there under my own name or under a commercial entity, then settled for the latter mostly to prevent any issue that could arise from not being taken seriously by mobile publishers. Also more reassuring to local companies in case I had freelance gigs. By end december 2011 Palm Grove Software was officially born, and the app was shaping up : main menu with creative commons assets for calligraphy letters. Hand drawn letters with animations made on the fly with the Gimp, and reused the openGL code from Android tutorials to plug the drawing on the board feature. Also heard back from the artist buddy, going through rough times himself, who kindly helped with buttons and some backgrounds to make the app feel a bit more lively. Each feature took me ages, producing the audio assets recorded on my shitty incorporated mac microphone, filtered a little with Audacity, stitching all of it together with a pretty slow machine when it gets to the insane amount of memory needed for Android simulators ( only 2Gb on my machine ) when I started testing for other resolutions to make sure devices fragmentation was handled properly. That and the main challenge I ran into for the SDK back then : Arabic scripture was not handled properly yet for devices under Android 2.2. I didn't see that one coming, and luckily found this awesome library open source from the RAD Egyptian programmer Essam. Needless to say he saved the day. The only remaining part was the reading section and vocabulary. And his work made it possible to have properly attached words on all devices. I didn't want to lose any potential user. So the app was compatible from Android 1.6 and above. Big and small layouts for phones and tablets and released to the world in April 2012. Only a free version since I learned that Morocco was still not eligible to submit paid apps on Google Play Store. It was the first time in decades I jumped out of my bed not feeling depressed, eager to get to work, even after short nights. Amazed even by the clarity I had rushing back from 2001 wondering how could I even feel otherwise all those years... I did some promotion of the poor mostly on facebook, friends sharing it around, a page for the app and a website. It started to gather some steam. The first panick there though was a week later I wanted to add Spanish text, but forgot the password chosen for the signing certificate..Glad I did that mistake with barely 100 downloads or so ( in fact 2 years later I would make the same but brute forced my way out of it since I remembered fragments of it luckily..) I was happy when I received my first check from Google some 3 months later once revenues first passed the 100 USD threshold. In the meantime I started work on the iOS version. Whole new territory for me as I never worked with Obj-C and the set of technology from Apple. Fatigue was there, especially that I was realizing day by day that revenues were far from guaranteed. But kept pushing myself. Still not the best code around and bad factoring ( architecturing stuff was still not my strong suit, dived head first and learned again everything on the go ) but it was working on the simulator quicker than expected. The other obstacle on the road was first when I wanted to pay for the year dev membership. Electronic payment cards were not working from Morocco for some reason. It almost drove me mad trying even to sync calls with US west coast to do the operation, I wasn't sure if it was because of the security on the bank side or something else. After doing some digging for information with my banker and others, it turned out that the electronic payment from here was not available for every company abroad... Hopefully my other uncle in Canada could pay the 100 bucks for me to open shop on the appstore after faxing company papers. I did my best to keep working on overcoming technical challenges while still under pressure occasionally from parents. Results were not impressive finances wise ( I almost took another paid job with another mobile team..ended up not doing it, I really couldn't work for anyone anymore ), but managed to convince them to just let me work on my thing, success is not overnight, I know they worry but I was really torn apart between the fact that I owed to myself a go at it as long as I had fight in me, and the fact that I was not helping my family as the eldest. The app was rejected at first submission..I panicked especially that I did not have a device yet. Got a second hand 3GS for the 32 birthday and found the bug : autorotation issue I didn't test on emulator. Fixed it then resubmitted and it went well this time. I added some content in vocabulary and exercises on both devices, plus additional localization thanks to the help of friends and my father for Spanish : German, Russian, Swedish. I had a hard time at first also with negative reviews about the thing, but the good ones gave hope the days when mental health ( and health altogether frankly ) was not doing good. Revenue went a little up to be an average of 100 USD every couple of months. I was still not making a living, barely paying cigarettes. Accountant fees and address rent for the company bills were still not paid. A local client opportunity luckily showed up thanks to a friend, it made enough to pay the computer at least and a part of the rest. The company was still alive thanks to my father. With time and seeing the first concrete results helped make him understand that I was doing my best to get somewhere. Despite the moments when they had enough of my crazy dream and snapping on me being super stressful, I can't thank them enough for baring with me ( Forcing my dad to watch Indie Game the movie really made him understand the hardships somehow..He liked Phil Fish for some reason )
It was end 2012, winter again, and I was still nowhere as far as games were concerned. I couldn't wait any longer. So I decided to stop all work on Iqra' by then to get into the real territory I went Indie to get into in the first place. I grew super impatient especially when I watched Indie game the movie, played Fez and the binding of Isaac kindly gifted by a friend on Steam. More than ever eager to follow all my heroes footsteps. Behind on every imaginable level : time, energy, resources, skills, health, you name it. I still kept focused only on that tiny flame inside. Thanks to all the Indies who inspired me out there, I remembered that drive burried under 20 years of obstacles of all kinds.
Part 7 : Hang There !
Finally ! I gathered enough bits and pieces of experience to hope kickstart the first videogame. Where to begin ? I always wanted to get to that unique point among all : I have the opportunity to make a game now, what to make ? On a technical side : I need an engine. Free if possible. Doing 2D. the art side was and still the most crippling to me. Then Game design started to show how hard it was. I had everything to learn so I started litteraly eat all I could get my hands on on the GDC vault free sections. Most notably this lecture, this one and tons of others all over the place. This channel and this one. I wasn't sure about what I was making yet, but I wanted to fool around with music if I could. Also simulations. I was doing it super wrong and it became hell quite quickly, but kept at it. I had to go through all those stages of fuzziness to realize what made videogames so hard to make. I was some days researching tech (went from openframeworks to emo-framework to settle finally for cocos2d-x), others trying to find if I could do some art myself ( every attempt at that just got me at that zero confidence straight away..) but luckily I stumbled upon that article from the one and only Derek Yu back then and did my best to keep focusing on finding the design first. I dropped the music aspect (was way out of scope and skills) to focus on the simulation only, plenty to go around as is. And still got depressed again by the sheer difficulty of the field. The first natural reaction to avoid getting stuck some more was to decide to work on something completely different, so I prototyped a little platformer based around a grappling hook. It didn't go far since by the end of that week spent on writing my first pixel perfect collision mini engine based on that tutorial, that extreme fear on wasting time on somethig I didn't really wanted to work on kept kicking in. Plus I wasn't a fan of a virtual controller scheme. I didn't realize it back then but despite those 5 first months being hellish, I had a fully working free pipeline : Cocos2d-x, publishing to both Android and iOS, Tiled to handle maps and a running character handling collisions with native code ( tried box2D but didn't like the rigid aspect of it ). The main concern was the fast pace of versions rolling out, deprecating old code quite quickly as the framework was constantly evolving. ( also super slow on my machine to build )
Unity3d went free for mobile around that time and decided to switch to it, especially that it was handling 2D too. It was already summer 2013 and I started to panick when I saw the IGF deadline for next december. I contacted again some old Ubisoft colleagues to see if anyone was interested. Everyone had different priorities. So I decided to make even simple graphics myself. Managed to do some. Ugly as hell. But confidence was slowly getting back. A prototype was being built. Nothing much code wise, I was again concerning myself with how it looked before having any clue on how it would play yet. I still needed some kind of progress. And was learning Unity3d without realising it. Pace was also slow since I took a break and stayed at Marrakesh with grandparents for a while and remove wisdom teeth making my life harder for way many years. By December 2013 I had a mini demo of a character in a room moving animated, dynamically lit with normal maps, not much of a game yet but glad I reached at least that step. During that year I also decided to put Iqra' on Amazon and Opera for Android version. Even made a blackberry version over a week end that did go nowhere. ( Eclipse and their simulator running on top of a virtual machine, nope, thanks, laptop choking )
January 2014, I was not even realising a year passed by without any considerable progress made. So I reconsidered plans again. The producer hat had to be worn more tightly. Make something. Anything. Just make a first game and release it. Make it the simplest possible. So I went back to that grappling hook idea now that I had a 2D physics engine fully integrated within one tight software solution. I guess I got a little better at prototyping also since I went after the core mechanic straight away this time around : the hinge joint object clicked somehow when I was going through tutorials of the engine. I made a chain with several parts attached, and once I figured out the subtleties of the 2D physics objects being kinetic or not, colliders and related stuff I had a functional swinging chain mechanic that could attach or detach from other objects on mouse clicks. I don't remember exactly when the idea of removing the ground completely kicked in ( maybe almost a year ago when I wanted a solution to avoid that virtual controller problem altogether by not having to control the character left/right and only swing around...) but I was pretty happy again at that stage. I was at long last onto making something playable. I started looking for some free art to build a more visually appealing prototype, and still wanted to make a bigger game around that core idea. A dungeon seemed appropriate to marry with a metroidvania concept. I settled for those tiles. By end April I had a fully playable section with some rooms, imported from Tiled maps, a camera that needed way more work and what I believed was a decent tiny concept to expand upon. I couldn't believe even the motivation despite being beyond all measures of low on stamina. Kept pushing the limits, especially when I felt that hellish doubt coming back full force when I started to evaluate the time it would take to make it into a fully fleshed game. Each time parents asked about release date, they panicked when I said maybe some more months..Flappy bird success made me realize that even a runner could make it in the Mobile free space so I went changing design again. To my demise ( I am not a fan of runners ), I got rid of everything except that swinging mechanic and a forced scrolling camera ( was initially intended for special levels only in the dungeon ). Some more time went into finding the right sounds. Most of it consumed by fine tuning the physics ( tried a version with animation frames instead of letting the physics engine handle it with rigidbodies, another one with motor force on joints.. ), Unity plugins for facebook, social ( leaderboards ) and ads. Also some code for save/load and mini combo system that I ended up commenting out for future updates since I reached an insane limit mentally and serialization was still not working on iOS.
And released my first baby game also to the world.
That year I started using Twitter on a regular basis. I never got into it until I realized its awesomness to reach out to personal heroes. I am super thankfull to the ones that ended up following me and/or interacting back, it helped a lot to keep some faith during the process. Rami Ismail, Renaud Bédard, Ben Ruiz, Casey Muratori ( warning me that the game would live or die by how it feels when I reached out by email sending the proto..), Disasterpeace, Superbrothers to cite a few.. I sent a tweet the release day to almost every dev I followed, some kindly retweeted and/or mentioned it. If nothing else that in itself was for me a major victory to feel even for a bit part of the club somehow. Not sure at all what I made was even decent. I just tried to fine tune to the best hoping it was a good balance. The game was rejected the first time because of the UI being too small on tablets. The new Unity version was bringing a new UI system so I went with porting to Android and resting a little that month while gathering as much feedback as I could from friends and family. ( Ramadan month, wiiU was at home, played Mario 3D World and Mario Kart 8 mostly, when I think I even saw my game on that magical gamepad played with stylus.. submitted dev form to Nintendo but guess what ? Morocco is not eligible yet again.. broke my heart ) What amazed me though was that my father who never played a single game was pretty good at it..players not so much. Too hard came back again and again.. Android version took a little more time than anticipated, Unity plugin for google play games broke the build process of the project, so I had to branch the project out between devices. Downloads were climbing slowly for the game (13th position in arcade category for new releases on the store..I guess that was really not bad at all... ) By end August, I forgot that old issue of payment cards not working from here, figuring it went well since I had the mail from Apple. It was not the confirmation of the payment though. So my apps went off the store. I am still mad at myself for my sheer stupidity ( and empty pockets ) to this day. A week later luckily a good friend from the USA also dev could help on that front. Reopened the account but downloads didn't recover at all. On Android it didn't gather any steam neither. I was pretty down but didn't give up. Pushed with last energy fumes from september to november adding more content and challenge, making indeed a dungeon out of it with a procedural challenge. New sections for a silhouetted section ( donkey kong returns levels had quite the impact on me ), blocks falling from the ceiling ( + shaking ), 1up, blocks up/down, special section with a longer chain and bullets randomly fired, and randomizing those challenges together. Achievements, save/load that drove me almost insane with serialization not working between C# and iOS. I also paid the high price of my lack of code factoring/good architecture, some features ate way more energy than needed to plug them with the existing code base. But got there eventually, new UI system made it easier and prettier than the old default one of the engine. But ended up wasting time also between versions : to have Unity3d 4.6.1 new UI benefit, still in beta back then, I risked breaking the whole physics fine tuning after the beta 18. Luckily I reverted back to that version to have the best compromise. ( I wanted to actually add a link to the first proto here but since then the web player went through so many changes it became unplayable..) and added an interactive tutorial section hoping players would get it better. Also the everyplay technology freshly added to the Unity3d family to record play sessions. Worked handsomely with iOS, Android is still a mess on fragmentation of devices and drivers.. I was pretty proud with the end result, included all changes I could think of to make it more accessible and interesting. And removed the old verion on the store to hopefully benefit from that new release spot after such a false start ( I was anxious about that then I saw 2048+ there as new release so..seemed as fair fight given the circumstances.. Heck I even reactivated it right now, gathering data made me realize that it was indeed a good start, and since I can't help but love science and experimentation :p )
Then attacked the real Marketing, reaching out to every media outlet out there covering free mobile games thanks to the awesome Promoter tool and added a proper presskit() to both my sites. Exhaustion was at all red status, but was satisfied to look back on the whole journey and all the things I learned along the way. I did my best. Even had a very nice press mention on Indie Game Mag. A bad one from 148apps. Other press releases in news sections. And that was it. Downloads didn't pick up any heat except the first couple of days thanks to the super kind retweets from Tom Happ ( Axiom Verge mastermind ) and the one and only Harvey Smith. I tried to not let any of it take a toll on me but what can I say ? Still not sure what to make of all of this. Spent December mostly sleeping and trying one last thing : capitalize somehow on my Arabic app audience (by now, on Android : 12k+ current installs ) and wanted to port it to Unity anyways since the UI system was doable all from the editor plus iOS8 users since then had issues. And played the one game I was dying to play for years now : Dark Souls. ( FROM SOFTWARE are my new heroes. Period. )
2015 : new year, already, 10 months or so on one tiny game. Apple greenlit the new version of Iqra' (warning about 64 bits architecture not included though.. ), but nothing moved for Hang There since. Iqra' users seem happy though, it gathered more steam on iOS, didn't want to release with it on Android until the remaining issues in current Unity version making it crash are resolved, but risked it anyway. Last couple of days I am losing users on that front too. And frankly I don't even wanna think about any of it currently.
Played some Steam games thanks to Family Sharing ( hotline miami, the swapper, luftrausers, deadlight.. last year ) : the fall and waking mars recently along with mercenary kings. All I can do right now is just play. Took finally the time to write about all of it, and can't wait to get back to my initial game.
I am not sure if one should call it a total failure. A game nobody plays is a sad game indeed. The 3GS device died on me again so I couldn't even check if there were new highscores. My main objective was to go through the whole process before everything else, and on that front it is a definitive success. I made so many mistakes on so many levels that the learning from the battlefield was tremendous. I am really happy with the fact that I'de rather have made all those mistakes on that first little game than on the project I really want to give all to. Not that I didn't to this one but still, I am convinced I would have gone simply crazy with all the complexity involved without the experience I gained with Hang There. Even a game that simple took a real toll on me. So a definitive success on that front.
That said, Palm Grove Software is now 3 years old, in debt, and most importantly health is not doing good : hands, back, teeth, neck, legs...you name it. So I need to fix that first somehow. Maybe the biggest mistake among all : sprinting after a marathon. All I know is that it took all kinds of sacrifices for me to get there : I don't have any financial capital, so it took time, social life ( or any life of any kind for that matter ) and health ( Plus family support, goes without saying )
I still didn't decide yet on the next move. Not sure at all I will remain in the Mobile space. Especially given my background and the whole experience gathered from the journey so far...( so many versions of google sdks since, same for Unity3d when I chose it for its relative stability initially..played with some mediation too, iAD still not available in all countries, Iqra' is mainly used in Asia/Pacific, every mail being from app paid promotion mid businesses, the state of the Mobile ecosystem.. yes, I am still proud of the fact that I don't do in-app purchase, turned even opportunities down from teams going after the 'freemium' model...) But I know I loved watching again this highly interesting video about the math behind sims-like A.I.s this week. Can't wait to tackle real code. Maybe even going all the way in and gather that missing knowledge on graphics programming, Handmade Hero is super inspiring :) ( unless Unity3d do the job at least for prototyping, got pretty used to it by now and hopefully stuff is more stable on the PC front..) I also did a little interview with a passionate gamer from Mexico who had very kind words towards the game that you can find here.
And since everybody loves some data, here is 3 years worth of sweat blood and tears stats.
Thank you for your time if you had the patience going through all of it. English being my third language I really have a hard time expressing things shortly ( besides I didn't want to miss out on anythi