I have seen elsewhere on the forums that people say it is not possible to capture a button press while another button is being held down. Is this true, and if so will we be getting a firmware update to fix it? My game is a scrolling shooter and it’s not really reasonable to expect people to not be able to shoot while moving. The full version is available on Android but I thought I’d make a basic free version for Roku just for fun. I went in to it expecting I could grab info from the accelerometer in the remote like Angry Birds does and now I am finding out I can’t even use the d-pad and the A/B buttons at the same time .
I see others posting abou the NDK, I am guessing that is the only way to do it, but it is not available to the public. It is actually very sad because I though Roku would be a device that could bring casual gaming to the TV without the need for a console.
Count this as 50% question and 50% request. Is it in any way possible to grab a key press while another button is pressed? And if not, this is sorely needed!
It’s true, only one button press at a time, no way around it. So it makes real gaming completely impossible, and makes the sideways remote with A and B buttons just a big joke as even NES style games can’t be played. But some sorts of games can work, more slow paced stuff for one thing. But a scrolling shooter is definitely out, as you can’t even move around properly since rocking the “d-pad” across diagonal won’t register the second direction press - you have to distinctly let go of “left” before pressing “up” for it to work.
It’s slightly annoying that you have to use marmalade to access the lower level features of the Roku. Mainly because I already created my game using Gamemaker Studio which is a paid product for cross platform game development. And now I am required to get another paid product if I want a game on Roku.
That being said it looks like they have an offer for developers right now to possibly get marmalade plus for free for 6 months. And I must say some of the features of marmalade are very compelling. I originally used Gamemaker because it was easy, but it is also somewhat restrictive in what you can do.
I hope sometime Roku either opens up the NDK, gets the Roku compiler in the free version of marmalade, or improves brightscripts capabilities.
It could make Roku your one stop platform for everything you need on your TV except of course for high end gaming.
I’m totally with you, but for the sake of argument, aren’t we giving up too easily?
Super Mario Bros on NES required up to 3 button presses, that I can account for. Direction to run + A to run faster + B to jump.
Now I’m not saying we’re going to change the world, but aren’t gamers good at adapting? Who’s to say, that if our game(s) looked promising ppl wouldn’t “learn” to let go of the D-pab direction, then time the jump? In this context, hitting the D-pad repeated could increase the character’s velocity.
As for the Konami Code / Street Fighter chain of button presses = special command, couldn’t a “Level 0” or training screen be created to teach the player how to play the game?
Is this ideal? NO! Is it doable? I think it is. Is it worth it? That depends.
As for porting an already working game to use different controls… when you can get Marmalade for 6 months?
“Komag” wrote:
It’s true, only one button press at a time, no way around it. So it makes real gaming completely impossible, and makes the sideways remote with A and B buttons just a big joke as even NES style games can’t be played. But some sorts of games can work, more slow paced stuff for one thing. But a scrolling shooter is definitely out, as you can’t even move around properly since rocking the “d-pad” across diagonal won’t register the second direction press - you have to distinctly let go of “left” before pressing “up” for it to work.
I think someone already made pac-man - so that’s about it.
Why do you need marmalade when you could use Unity?
The limitation seems to be remote-related, so it won’t matter if one uses SDK, NDK, MDK, UDK et ceter-ay.
IR remotes seem to be out but for BT and WiFi Direct remotes - since they are upgradable - potentially a new firmware may be released. That’s assuming the board wiring actually allows 2nd press to be detected (and does not cause ghosting of a 3rd).
I don’t want to buy Galaga just to try it, but can’t you move and fire at the same time in that game? From what I saw you can, but I don’t know if that supports the bluetooth remote that comes shipped with Roku 3. Or they could be using the accelerometor (Which is actually my prefered method anyway, as that is what I use on Android). I’m just talking out loud to get a grasp on if it is truly the remote or if a firmware upgrade to the Roku device could fix it.
Dev42, I am with you. I have been considering ways to make my game playable with only tapping buttons and not holding them, although it wouldn’t hardly be a scrolling shooter anymore and would move in to some sort of other genre. Regardless it could still be fun.
“Romans_I_XVI” wrote:
I’m just talking out loud to get a grasp on if it is truly the remote or if a firmware upgrade to the Roku device could fix it.
I don’t know for certain, but I feel fairly confident saying that it’s not the remote. It’s much more likely that they just haven’t exposed multiple keypresses to the BrightScript layer (yet?).
“Romans_I_XVI” wrote:
I have been considering ways to make my game playable with only tapping buttons and not holding them, although it wouldn’t hardly be a scrolling shooter anymore and would move in to some sort of other genre. Regardless it could still be fun.
…
I wanted to make the Roku version much simpler and completely free. But alas, the roadblocks are in place.
That’s over-stating it.
I remember the days of Ye Olde Apple ][ and it’s controls were even more limited: keyboard buffer could hold only 1 key (the last de-pressed) and there was no key-up event - only down - so they did not know when a key was released! Plus there was no guarantee it will hear any key X while another Y is pressed down - it depended on which X and Y were. And yet, there were lots of playable games for that. One work-around was to made another key stop the movement - say Left/Right move the ship but tapping on Up or Down (while otherwise unused) will stop horizontal movement.
Here you have the luxury of getting key-up events (most of them - but experiment as i suggested above). Since there might be hardware limitation, consider designing controls for single-hand, one-thumb operation - that way they’d have to release one button before pressing another. Say Up shoots, Left/Right slides, Down stops, OK shields?
Btw, Roku 3 does not use BT - it’s WIFi Direct. And there is a problem with Marmalade - the resulting app will only work on Roku 3, MHL stick and Roku 2 XS. And we have no idea how many of those are out there. But no RokuTV, no Roku1, no Roku2 nor the legacy players.
Thanks for the encouragement and ideas, despite the limitations. Maybe when I get a test build going I will post it and you guys can see how playable or not playable it is.
That idea for one thumb controls is brilliant. Forcing the user to release a button in order to press another. They won’t even notice you can’t press 2 at once thanks
Are there even any Roku games that you can play holding the remote sideways and using the A and B buttons? I have a Roku 2 XS (bluetooth remote), and I’d tried a lot of the free games and haven’t found one yet. I’m thinking I’ll offer it as a menu option for my game, so people with a remote with A and B buttons can finally use it sideways!
“Komag” wrote:
Are there even any Roku games that you can play holding the remote sideways and using the A and B buttons? I have a Roku 2 XS (bluetooth remote), and I’d tried a lot of the free games and haven’t found one yet. I’m thinking I’ll offer it as a menu option for my game, so people with a remote with A and B buttons can finally use it sideways!
Try the recently released “Tetris”, it only works side-wise. Which is not great, since i am used to move and throw the tetrominos with the right hand, yet it commands to use the left
Tried Tetris. You are able to hold down a directional button and press A at the same time. This at least confirms the remote is plenty capable of receiving input while a button is pressed down. This is with a Roku 3 btw. So I guess we just need a bright script update. Or at least some other way to access these functions besides paying for marmalade.
I can’t see Tetris on my game channels list on the Roku. I have a Roku 2 XS. I assume it’s simply not compatible, perhaps remote issue. So I wonder what models and what remotes allow simultaneous button presses, as that is important for game development consideration. If we develop using multiple button presses and only release to a limited set of Roku models, that might cut off a large percentage of possible sales/exposure - how much???
EDIT - I see in the online store that Tetris is available for Roku 3 and Roku Streaming Stick. But the stick remote doesn’t have A and B, so I assume if you play Tetris on it you use the remote vertically.
So far I’m just developing for 1 button press at a time. It’s still going to be a scrolling shooter, but it ill just not be as fast paced as the real game. Left = move left; Right = move right; Up = fire; Down = shield. It’s coming along fairly nice. It wil make it so even a Roku 1 could play it, instead of limiting the audience so much.
“EnTerr” wrote:
See viewtopic.php?f=34&t=67758&p=432541#p432492 for the experiments i did and then can try out with a WiFi Direct remote.
The limitation seems to be remote-related, so it won’t matter if one uses SDK, NDK, MDK, UDK et ceter-ay.
Based on recent experience, my view is “evolving” from “it’s a remote limitation” (above) to what TheEndless said (below).
“TheEndless” wrote:
I don’t know for certain, but I feel fairly confident saying that it’s not the remote. It’s much more likely that they just haven’t exposed multiple keypresses to the BrightScript layer (yet?).
I got a chance to test bluetooth remote with Marmalade SDK and multiple simultaneous button presses worked beautifully there. That was the BT remote of the 30xx/31xx models, unclear how WiFi-D one fares. WiFi-D remotes also have the “rocker” type of D-pad, you’d think designed with multi-button (like diagonal press) in mind. So there seems to be possibility of bringing multi-press to BRS but i won’t consider the likelihood of that high, it does not sound like a compelling “business case” for the Co.
I guess my thinking was because brightscript is supposed to be compatible with all current gen devices. When we have remotes (like the IR one for Roku 1) that possibly are incapable of accepting multi press, they probably wouldn’t add the support to brightscript. Where as marmalade is already limited to devices that are designed to work with these newer features. Just my thoughts on the subject.
Based on recent experience, my view is “evolving” from “it’s a remote limitation” (above) to what TheEndless said (below).
simple proof in Brighscript for this.
If you have a roku 3, throw together a channel that shows button press codes passed through the roUniversalControlEvent
something like:
event = wait(1, port)
if (type(event) = "roUniversalControlEvent") then print event.GetInt()
works nice enough, shows button presses and releases.
Now, press and hold “volume up” on the roku 3 remote.
you get a “thunk” sound, and the code (24) will display in console.
release the volume up button
you get a thunk sound and the key up code (124) will display in console.
now, press and hold the ok button on your remote.
you get the code for ok (6)
all very nice.
while you are still holding the OK button down, press the volume up button on the remote.
you will not get any key codes in the console, but you still get the “thunk” sound of the volume button being pressed. The remote is sending the key, the roku is receiving the key, but brightscript simply does not register it.