I would like to ask the games developers on the Arduboy community an open question about how you feel about ports of your open-source games to another open-source console.
The reason for my question is this:
I have been approached by several people with regards to my upcoming game console Pokitto.
My original plan was to just port all the open-source games (they’re open source right?) as monochrome to run on the Pokitto. FYI Pokitto is a color console, but I feel adding colors is messing with the original design of the authors. If they are interested, they can add colors themselves.
The point is this: the people I have been talking to are game makers of these communities, have told me in no uncertain words that I should politely ask how the community feels about this. This question is because they feel that I should bring it up. I have asked the same question on Gamebuino forums.
So: if you suddenly see your open-source game appearing on an another console with FULL CREDITS and SOURCE on a new platform, will you be annoyed or pleased? How would you like us to handle this question in a way that will make you happy?
The reason why I am making this an open question (and not posting private messages) is because I don’t want anyone to feel they were not part of the conversation.
Thanks, comments more than welcome
Jonne @Pokittocom on Twitter
Trying to launch 27th (yes, in 5 days) but I have gotten so good feedback from people, that I am thinking I might have to try to squueze that stuff in before the launch (a.k.a. coding like crazy at the moment) 2x packs will be available, 10x packs for classroom probably
Pocket chip is a linux computer. Pokitto is based on an NXP LPC11u68. It’s a Cortex-M0+. The point is that it is the most widely used chip core in smart gadgets (ie. robot vacuum cleaners etc.).
I recently went to a Google Nest device training, building BLE Mesh and Thread devices and I totally aced it even though I had far less Comp Sci training than the other guys. The reason is that Thread devices are, surprise, surprise, NXP LPC Cortex-M0+, same as Pokitto.
If you’re interested in Linux programming, then go for Pi or CHIP. if you want to know what kind of realtime chips make smart gadgets and automotive controls tick, then Pokitto is the route.
I’m not exactly sure how the rest of TEAM a.r.g. feels, but I think we were generally coming to the consensus that as long as full credit was included that we were okay with it. What do you think, @JO3RI ?
Edit: Also, looks like a cool device. I subscribed to updates, I’ll probably order one when the kickstarter goes live. Haven’t regretted backing the Arduboy yet!
You should first check each sketch to see if there is a license provided (usually in the source code itself, or a file beginning with LICENSE).
You should at least follow the terms of the license. Following the license is sufficient, since the author(s) put it there for this purpose. However, it would also be nice to attempt to contact the author(s) as a courtesy, to let them know what you’re doing. Some may even wish to help out with the effort.
Yes. I agree. I will contact people directly also, and that was suggested to me as well. The reason for speaking out publicly like this is just to let everyone know whats going on (instead of creating a secret society)
I might be interested in contributing if there was some way to get a unit early. I’ve contributed quite a bit to Arduboy2 and was the maintainer of the original Arduboy library for a while. I know far more about AVR than the M0 I’m quite interested in learning.
In that case I have may have been going over your code with a fine comb. Lots of optimization tricks on the Arduboy2 library, was a pain to get working on Pokitto
Pokitto is actually an mbed device (not Arduino) but it has a “google translate” kind of layer, that fakes AVR calls and lets me run Arduino source code on an mbed. The same layer allows me to compile the same code to run games as an SDL target on a PC and/or even make it into asmJS using Emscripten.
More and more we’re optimizing for the low-level hardware - I wouldnt’ suggest anything take the internals of AB2 and use it as a foundation… if you wanted to build a compatibility layer you’d just match the API - not try and port the code, at least that’s my 0.02.
Yeah, I know it’s quite different… but Arduino supports ARM now, does it not? That’s one of my fears with the M0 actually - that’s it’s just too crazy powerful that all the optimization and things I find fun about AVR won’t matter at all anymore. That should make a game super easy to port though really as all you have to do is match the API.
I wrote a Gamebuino wrapper (and someone else wrote a more comprehensive one) for Arduboy and it was trivial because their library is actually so slow - so just match the API, setup a frameloop, and then boom almost any Gamebuino game would “just work”.
No, that is exactly the reason I started to do the Pokitto. The ARM Cortex processors are a BLAST to program. They are really, really interesting chips, and I want to get people more interested in them. I left Arduino about 4-5 years ago, and never looked back. The problem (in my point of view) was that all the existing ARM dev kits are geared towards engineers, and nothing really different for hobbyists. Hence, Pokitto was born.
What do you mean by “Arduino” source code and faking AVR calls? Once you had a similar API wouldn’t it just be “source code”? I’m also confused because I know they have a toolchain for Arduino - so I would presume that would have most of the built in Arduino stuff - no?
Could be I’m just getting hung up on the word “layer”.
I admit I am cutting corners. What I mean is that mirroring Arduino functionality on top of an mbed CMSIS core is more than replicating the Arduino API. You need to replicate the Arduino API and you need to replicate underlying AVR lib hardware routines, for example how timers and interrupts work. That requires quite extensive understanding of both AVR and ARM Cortex architectures.
But lets keep this on topic about games and proper conduct towards authors when porting the games and apps. We can get into these other things later.
If I didn’t want other people using my code, I wouldn’t release it. So you’re cool.
Dreamer, don’t worry about the M0 being so fast you don’t need to optimize it. I normally work on the M4, and even those beasts need some have tweaking.
And I do that as a hobby. Remote control gear, to be exact. I build sensor platforms and pilot systems for remotely piloted models (I’d say “drones”, but my favorite is a 1m sailboat that most people wouldn’t think of as a drone) as well as custom firmware for the the controllers. ST micro has done a number of ARM platforms with arduino headers which I think of as hobbyists platforms. I mean, what engineer would willingly use a board that won’t fit on a breadboard? And these days, there seem to be a lot of ARM boards that can be programmed with the Arduino IDE - Teensy, Maple, and some of the Feather boards as well as the stuff from Arduino proper. What more does it need to be a hobbyist board?