UPDATE: Happy Thanksgiving and I’m happy to report that the good folks at Nokia have extended their deadline for the free Nokia phone challenge to December 7th. This is great news. Thanks to Lance and the Nokia team for extending this. I’m waiting to see if my app got approved. One of my buddies submitted his and it got rejected for having an icon with transparency and his was submitted well before making the original November 30th deadline. Getting an app launched without rejection on the first try with any app store can be challenging as you learn all of the particular rules of each. I know my blog below reflects disappoint at missing out on the challenge. I did get approved last minute to submit with some glimmer of hope, but now with this extension participants should be sure to qualify.
In short this is a summary of my process going through the DVLUP two week challenge and my attempt to port my game Zen Hopper to Windows Phone 8 using Construct 2.
The DVLUP Game Challenge
So last weekend was a really nice event that Nokia/Microsoft threw to help show folks cool things about Phone 8 and they had a nice challenge to get folks to launch a game by Nov 30th to win a free Windows Phone 8 phone. I forget which model it is. not their premium products like the 920 and better.. but that’s ok you really wouldn’t want a top of the line phone for development anyway, better to have an average device.
Well a little over a week later and 5 days till the challenge is over. Of course one of the catches is the app has to be live on the store by the end of the two week challenge so you’re down 4-5 days right off the start so two weeks is a bit misleading at face value, but they were upfront about the approval time being part of your 14 days. Its just an unfortunate reality of the contest. I believe in hindsight they really should have adjusted the deadline to each developer based on when they were approved rather than having a fixed time for everyone. I may have been an edge case, but it’s funny to think that someone who’s already in Microsoft’s ecosystem would have more trouble getting approved than someone applying from scratch.
Unfortunately because my account got caught up in red tape and because my account isn’t approved I cannot submit my app to qualify for the challenge so boo on the system for shooting down the opportunity to get another phone for testing. It turns out that Microsoft recently merged all windows app accounts and phone 8 accounts into a single developer account.. this held up my ability to apply for the DVLUP account correctly.. so because of this delay, I was unable to apply promptly to get approved. Today is the last day to safely get approved, of course if any contestants get rejected for whatever reason, they would miss out on getting a phone as well. I hope those folks don’t run into any trouble.
To Publish Or Not To Publish
I’m unlikely to publish the game unless I know I will get the phone frankly because while the game does work, it’s so stripped down due to the actual time constraints to complete the challenge, now I’d be obligated to make the game of a higher quality title because I’m no longer bound by the constraints of the contest that drove this port to be created and frankly I just don’t see the return on my investment coming from any mobile platform at this time.
Porting Zen Hopper with Construct 2
Anywho.. in spite of that cluster of bureaucratic nonsense.. I’m happy to share my overall positive experience learning more about Construct 2.
So yea I got a lot of headway and momentum going from the first real time I spent on the game. The evening of the DVLUP event was a nice 3-4 hour block of time with reps there to help folks with their projects. I got a lot of great input and advice that helped me not only get some good game logic working right, but even was able to publish an early version of Zen Hopper to my Lumia 920. This left me feeling very good about spending a couple days on polishing things up and having it ready well in advance.
Getting the core game mechanics of Zen Hopper over to C2 was pretty straight forward. As with anything, it tends to be much of the non-game stuff that can become more tedious and time consuming. Originally my plan was to make Zen Hopper with just one of the two original game modes. I was going to nix the level stage version and focus on the endurance mode.
Construct 2 development went well. I feel great about using it for more games in the future, although I certainly don’t claim to know all of the different behaviors, I was left with a good feeling that the basics of how to control events and trigger things. The other behaviors unexplored would likely build on these core things I found to work really well.
Thanks so much to the guys over at Microsoft who are working hard and diligently to help get developers games to their platform. It’s the good work of guys like that, that make me want to give Windows 8 and Windows Phone 8 our products. Jim O’Neil helped me through more than a couple of “gotcha” moments with Construct 2. Mostly just user (me) errors and noobish understanding of Construct 2. I feel a lot more confident working with it and like it even more than the last time I really worked with it. I’m hoping to continue to use it for Web games and possibly other situations.
Saving a high score was something that I spent awhile on. More time than most perhaps, but I struggled with it getting it to work on the browser, but eventually after good persistent effort I did get it to work flawlessly on Chrome. However sadly when I went to port it over it worked as long as i didn’t reset the phone, in which the score data was lost, so after a good day spent on this, I had to abandon saving a high score for Windows Phone 8 because it wasn’t working. it should work using the standard C2 WebStorage since the C2 games are played through the IE10 browser.
Performance proved to be another challenge being that with everything going on, each tap on the screen caused a very noticeable pause in the games performance. A kind of choking effect with each touch. Even having nothing but footprints occur still caused the jerk. I might do another pass nixing the footsteps and just change the log colors. I’m still experimenting with this. To be fair, GameSalad had it’s moments with this as well although not as bad. I think it’s just tougher on higher level engines to register touches on fast moving objects. HTML5 is likely the culprit here and its interaction with IE10.
I was forced for the sake of making the game as jerk-less as possible, stripped out the original lotus health bar system for a simple count down with no “crit” taps and make the game more or less a simple endurance game which makes the game so simplistic that there just isn’t much left to the game, all for the sake of performance improvement. I did get some improvement with each element stripped out, but have yet to get what i would deem as seamless taps on the moving logs.
When I realized that I was going to have to adjust some of the wordage of the various popups and such, I opted to use more custom fonts. C2 does a better job of this than GameSalad did, but unfortunately fonts still have their hangups and tricks with C2 so due to the limited time I had I opted to just use a standard font. This is far less appearing, but it was functional. Only having a week to do all of this, made font research / testing impossible. So while the web version worked nicely with special fonts like Andy, the Windows Phone 8 IE10 doesn’t have that font so it defaulted to something less stylish.
The porting to Windows Phone 8 was less than stellar. Things didn’t go as well as I’d like. I think at the root of this trouble was the Windows Phone 8 plugin which appears to have some bugs in it. The Windows Phone 8 has a requirement to support the back button to do more than just exit out of the app. So with a little help I was able to easily get the core pause system to work properly and that was great. Thanks to the developer who made this plugin.
However, then audio came out of left field though. For some reason though most of my iterations, I swear i was able to get audio to work as you would expect without any special effort. Music would play while taps occurred and so on, but then suddenly the app began to be monophonic. Music would play and then the next sound triggered would cancel out the music. Fortunately the Windows Phone 8 3rd party app that is also used for the pause function has some audio functions you can call to play wavs instead of the standard m4a audio files that C2 normally produces. However when I went to use these it caused the app to lock up. Further testing of the sample app also crashed when audio was applied which convinced me that the issue wasn’t me.
I went to hit the forums / tutorial pages at www.scrira.com but it’s been giving me a 503 service not available error all day today, but I’m sure its just some hiccup their working out. So for the sake of time the game now has no music and is a single audio channel which is ok most of the time, but when you start to hear rapid events like numerous misses or what have you, the next sound cuts out the prior sound creating a poor audio experience.
Microsoft and Nokia have some great support and are doing everything in their power to encourage developers to embrace what their platform. I find this very compelling and certainly appreciate this support. It absolutely makes me want to give Windows Phone 8 and the Windows 8 app store a fair shake.
The Construct 2 tools do make getting something to Windows Phone 8 (and Windows 8 App Store) possible for game designers like myself who do not have serious coding chops. However, it seems from the last week I’ve spent working on it, things seem a bit spotty right now for rapid / easy deployment of robust games to Windows Phone 8 through Construct 2 specifically from my experience.
I’m still disappointed to not be getting the phone, have some “buyers remorse” after spending a more than a week away from my other projects to work on this, but in the end, I learned a lot about Construct 2 and so the time spent was educational. I think there will be some good opportunities to use Construct 2 for web development for casual web games that don’t rely on porting to mobile devices and I’m sure that if a client needed something to be moved to mobile, I could with a little more time figure out how to get the WebStorage to work. I just didn’t have the time for this project to figure it out.
I’m sure that the bumps I hit along the way in development are transient and not a permanent reflection of what the long term experience of Windows Phone development. I hope that Nokia/Microsoft continue to give these kind of tutorial / educational events for game development to help us all become better developers in general and continue to help us make great products for their platforms.