Thursday, February 27, 2014

4 Boring Lessons About Working on the Bleeding Edge (LoomSDK)

The game is being developed on a bleeding-edge game engine called LoomSDK. There are a lot of common sense reasons why you shouldn't do this on a real world project but let's just say my "I'm hipster" card trumps all that.
So hipster!


1. Manage expectations


One of LoomSDK's main selling point is its rapid deploy/live reload workflow. Connect all your device on one machine, change your code and it is automatically rebuilt to all of them.

This works for the most part -- if you are prototyping art, asset changes magically appear in realtime. But if you are changing code, everything has to be recompiled and reloaded. Sure, it's automated but still takes time and leads to an app restart. This is understandably a hard problem to solve; hardware and networking constraints make realtime editing impossible.

So no, you can't type 'hero.speed = 10' in the middle of the game and instantly see hero move faster. You have to wait for it to compile and restart. (Maybe I can put level editing stuff like this on a txt file and bind it. Not sure, I have yet to try it.)

2. There will be bugs


Loom is a work in progress and it's being constantly updated. Working on the bleeding-edge means you get to encounter weird bugs that are easily solved by updating.

I had a memory leak bug where the profiler keeps telling me that I am making too many vectors. Which is weird because Party Animals is a board game.

"The garbage collector is not doing its job, what do I do?"
"loom sdk use latest --firehose"
*wait for download to finish*
*recompile*
*live happily ever after*

"On the shoulder of giants, bitches!"

Not every bug is solvable by updating though. Sometimes you get to be the lucky guy to discover it.

3. File bug reports


Rule: everyone working on an actively evolving piece of software should be prepared to file bug reports.

I recently reported a minor bug that I'm sure was an easy fix for the developers. It felt good. Like being a good neighbor. It's like telling your neighbor about the faulty wiring you saw in their house.

BTW, feature requests aren't bug reports. Loom, the SDK, is open source so you can fork and add whatever you want. That is, if you are capable of doing it yourself. If not, then tough luck, the core developers will file that in their todo list and move on finishing features in the current roadmap.

4. Some things just won't work


I have spent a day's worth of meticulously doing every possible combination of steps to get Party Animals distributable on Testflight. Revoke certificates. Delete/create provisions. Create a fresh project.
I even tried HockeyApp! :(



This is excruciating because none of this involves actual programming. Just an awful amount of time waiting for the upload/download to finish and reading boring Apple documentations in between.

I almost tried exporting to Xcode until I realize I might need to downgrade to 4.3 for this to work.

I asked for help in the forums, but they said their still working on the issue. Not being able to use Testflight is a major inconvenience and I hope they resolve this soon enough.

For now, I'm considering the tradeoff between porting Party Animals to a different engine or sticking to Loom and just wait for the patch.

Or maybe I should try the Xcode export again, on 4.3 this time.

 

Party Animals Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger