Friday, June 26, 2015

Does developing a game for Roku stink?

My RPG/action/adventure game needs a name!

But more importantly it needs a lot of work, hopefully only about six months worth, but we'll see.

My name is Ben, and I'm 39 years old. That's OLD to be taking up game programming for the first time, I think, but I'm enjoying it. Whenever I write a function and set up some variables and stuff that all works together how I want, I feel so smart! It's like, "Yes, I am a computer God!" The rest of the time I'm more like "What am I doing here?" But hey, where there's a will (and some reasonable intelligence or potential ability), there's a way, right? So I push forward and work on the next section of what I want to do with the game, and eventually get rewarded with another little breakthrough moment and all the positive rush of genius feelings that comes with it.

By day I sell solar panels. To some that probably sounds really boring, and to others that may sound pretty cool. For me, it's alright, but it's temporary, as my long term career is to be a financial advisor. I have my various securities licenses and background education in that industry, and selling solar panels allows me to sit down with people in their homes and talk about an expensive investment with regards to payback time, return-on-investment percentages, cost/savings analysis, etc., so it's a bit similar to my field.

But doing game development is way out in left field, relatively speaking. It's extremely different from my job or career. Maybe I like to think of myself as some sort of Renaissance Man, multi-faceted and awesome. Or maybe I just can't focus on one thing very long. Whatever the case, the fact remains that I have to majorly shift gears when I work on my game, and I find that it takes a good 20-30 minutes to "get into" it each time before I'm up to speed.

Developing for the Roku stinks! Here's why:

1. Most of the "controllers" (remote controls) only allow one button to be pressed at a time, so it's impossible, for instance, to run and jump at the same time! You can't even have diagonal movement because that would mean two direction buttons at the same time. Forget trying to make a serious platformer. A fighting game with combos? HA HA! A scrolling shooter? Nope. (Although the game "Retaliate" tries hard and manages to pull off a minor version of it.) It's a pretty severe limitation, and it generally leads to all Roku games being simple casual fare.

2. Many Roku models only allow a single sound effect to be played at a time. You heard it, one. If a second sound plays, the first is cut off. Clever programming can set up a priority system, so that if a second sound is low priority it simply is not played, to avoid cutting off the more important first sound that's not done playing yet. The newest models allow two sound effects to overlap, which is a big improvement, but it is (apparently) somewhat buggy and not always reliable. And it's still only two at a time, no more.

3. Save games are limited to 16k available space in the Roku "registry", usually meant for basic playback info for video channels. That's TINY for an RPG. The information stored can only be in the form of an array of keys and "strings" (words). I haven't even begun to address it, and while I have a few ideas how I'm going to approach it, I believe this is going to be my biggest hurdle.

4. You must have a physical Roku and screen/TV to do anything. There are no emulators or software environments that allow for more flexible development such as just taking a laptop to grandma's house. Although I have managed to finagle together a crazy setup using a composite video capture dongle (USB) and more cables than is right and proper. And you'll probably want a few Roku models to test on, as they have different specs and speeds as well.

5. BrightScript is unique, unknown, and little documented. All my experience and specific language learning while doing this project won't transfer much to any other platform. Getting help is not easy, as the Roku developer forums are sparsely populated (a few posts a day, sometimes none, with a dozen or less active people, and most of them doing video stuff), and no one else on the whole galactic internet has ever heard of BrightScript. There are like 3 YouTube tutorials, and maybe half a dozen written ones online, that have anything to do with Roku developing. Basically every other game programming environment has 100 or 1000 times the support and help available. And porting to other platforms in the future (if I decide I want to) will almost mean starting over from scratch.

6. Roku channels have a small size limit (50mb). I don't think any current channel is anywhere near that big, but then again there are a couple thousand of them, so maybe one or two is by now. Roku units usually have only 256mb of memory to store channels (if there isn't room for a new channel, the Roku unloads the oldest channels until there is room, so it's never a real problem). While 50mb is already small for an RPG, I should probably try to stay far below that to not make too big of a splash and take up 1/5 of everyone's total system space, causing too much unloading of other channels for heavy users.

All of these limitations and problems are why I chose the platform, as explained in my last blog post. So while they are all a pain to deal with, I honestly see them as helping my cause overall, which is to make a game that will actually get some attention just by existing!

That's enough for now. Next time more about the game itself.

Ben

PS - The picture at the top is a dormant healing pool.



No comments:

Post a Comment