Microsoft Tilecode
microsoft.github.io
microsoft.github.io
It has a color screen and has quite a few tricks up its sleeve. I think I remember it even runs Wifi-Scanners and whatnot (ESP32). Here's some more background info: https://wiki.odroid.com/odroid_go/go_assembling
Just thought that could be an interesting platform to try this on.
For cheap, I'd suggest the Pocket Go, [1] but for my favourite I love the RG350P, [2] which is a little more expensive but has a community with a lot of homebrew behind it and it can run pretty much anything from PS1 downwards. There is also the RK2020 [3] with a little more oomph than the RG350P, the RK2020 is a pretty brazen Odroid-Go Advance clone, so if Odroid has the Go Advance in stock, get that instead, but they rarely do.
If you find these just a touch too expensive, they can be found on Banggood for small to hefty discounts. I got my RG350 (not RG350P, the RG350P is a minor improvement over the RG350 but at around the same price) for $60 on Banggood. Also, expect 1-2 month shipping on these consoles, but in my opinion it's so worth it.
[1] https://retromimi.com/collections/handhelds/products/pocketg... [2] https://retromimi.com/collections/handhelds/products/rg350p [3] https://retromimi.com/collections/handhelds/products/rk2020
There's a lot of OpenDingux devices- they have MIPS CPUs, so they don't run the same variety of software as the ARM-based ones. There's still a bunch of homebrew for OpenDingux, but it's not exactly organized, compared to Android and Linux devices. It involves hunting down poorly-documented executables, etc. Here's one list of software available:
https://github.com/retrogamehandheld/OpenDingux
There are two Pico-8 emulators that run on those things, tac08 and retro8. They both work on many games, but it's a bit hit-and-miss.
https://0xcafed00d.itch.io/tac08-rg350 / https://github.com/Jakz/retro8
However, it is apparently possible to get the official Raspberry Pi version of pico-8 running on the Odroid Go Advance, which is an ARM CPU running Linux, just like the RPi.
https://forum.odroid.com/viewtopic.php?f=193&t=37256&start=8...
Additionally to that, I dug up a version of TIC-80 ( https://tic80.com/ ), an open-source PICO-like environment, compiled for the OpenDingux which will run on the RG350:
https://github.com/retrogamehandheld/OpenDingux/raw/master/E...
For the same money you can get a powkiddy or something simillar, running linux and with support for GBA, (S)NES, etc.
https://www.youtube.com/watch?v=dNrpVhP8fDc
All the usual suspects (ebay, aliexpress,...) have it.
also firmware: https://github.com/TriForceX/MiyooCFW
The Go has good battery life, instant-on, and has a certain DIY spirit. I don't know if it's possible to run MakeCode programs directly on the Odroid Go but it would probably be doable for someone with more knowledge of these things.
Our beta backer tier have been godlike in their ability to make the STM32 do things I'd never thought we'd see... much less see before it's even launched. I mean it already has a Doom port.
I think, compared to the off-the-shelf Emu handhelds on which I cut my teeth (as far back as GP2X and Dingoo A320 days) it's underpowered and overpriced but you're dead on the money that they have a different charm and set of challenges.
MakeCode compiles down to native instructions, IIRC, so it should run on pretty much anything capable of running a screen that meets their - relatively forgiving - specs - https://arcade.makecode.com/hardware/adding
Edit: GP2X not GP32X!
The most difficult part, during the assembly process, was connecting the "ribbon" from the main board to the screen. Be careful as it is way too easy to lock the ribbon than to unlock it from the socket.
Not all games are working, but I managed to run both Mario and Wario (GBC) on it. Some games are not working, some you can play but the save feature is not working. The battery life is impressive, comparing to my smartphone.
> If a tile predicate has a non-empty Include set that
> contains only sprite kinds then the associated tile must
> contain a sprite if that predicate evaluates to true on a
> state. We call such a sprite a sprite witness, as it
> witnesses the truth of the predicate. Sprite witnesses are
> TileCode’s form of variable binding.
I can't figure out who this manual is written for. TileCode and the example games appear to target programming beginners and even children, but the lingo here is unlikely to be comprehensible to anyone but CS majors. And it's not like they're describing a complex idea here, it's just the language they use to describe it seems almost willfully arcane.There's this quote from a famous (in strictly relative terms) judge on the German Supreme Court: A good lawyer or judge will, according to him, "think like a philosopher and talk like a peasant!".
Of the three other possibilities, two are still fine. But trying too hard is a mortal sin.
In fact, your own quote speaks to this: when you're thinking like a philosopher, it's easy to also speak like a philosopher; what takes effort is to speak like a peasant (and we've all had similar experiences with technical jargon in our own field, and having to translate that to a layperson). You can certainly accuse them of not having tried hard to translate it to simpler language, but it's an unwarranted accusation to say they're "trying very hard to sound smart" when they're using language that is similar to their own thought processes, and hence is probably easier to write in.
Reminds me of a scene in "I, Robot" (the movie):
Del Spooner: So, Dr. Calvin, what exactly do you do around here?
Dr. Susan Calvin: My general fields are advanced robotics and psychiatry. Although, I specialize in hardware-to-wetware interfaces in an effort to advance U.S.R.'s robotic anthropomorphization program.
Del Spooner: So, what exactly do you do around here?
Dr. Susan Calvin: I make the robots seem more human.
Del Spooner: Now wasn't that easier to say?
Dr. Susan Calvin: Not really. No.
It's technical, and sometimes technical writing isn't written perfectly. That doesn't mean it's due to willful obtusity, or trying to sound smart.
[1] https://www.puzzlescript.net/
[2] https://www.microsoft.com/en-us/research/uploads/prod/2020/0...
https://en.wikipedia.org/wiki/Arduboy
And I guess I'll share this here because I don't know when else I'd ever be able to talk about it.
A few years ago I created a portable game console that consisted of two buttons (left and right) and a row of 9 LEDs (and an on off switch). It was powered by an Arduino Teensy and Lipo battery, letting it run for a pretty decent amount of time.
The idea is given the ultra minimal hardware, what's the craziest games you can make with it?
I made a 3d """ray tracer"" that would show your surroundings and walls using just the leds (flatland style). Left and right turned, and pushing both walked forward.
I also made a dungeon crawler with each LED being a specific indicator for the state of the world (I wanted to make overlays to help with ideas like this)
The best one imo was an ebook reader. I only simulated it due to code size constraints, but I made each LED blink out morse code for each letter in a book, and used left and right to scroll through it. I loaded Neuromancer in and it worked fine. Pretty ridiculous but one of the more interesting projects I've done! I should really look for that device....
The messing about I did was just having a flamingo running around eating algae and avoiding spawning lions, called Flamingo Panic. If you're curious, it's up here: https://bacable.github.io/flamingo-panic/
I remember another MS project (which I just had to look up). It was called MakeCode https://www.microsoft.com/en-us/makecode and I remember it because they had a nice Minecraft integration. Well... it still exists: https://minecraft.makecode.com/
So to go on a bit of a rant: there's Scratch, MakeCode, Tilecode now, on top of "fantasy consoles" and dozens of very easy-to-use game engines (like, really, lots of them, in the browser, native... way below the Unity and Godot stepping stones). You know what's sad? Somehow I feel like we can't solve this barrier to entry for casual coding. On the one hand, a teacher or parent wanting to teach their kid(s) is overwhelmed with choice. On the other hand there's the attention economy basically saying: "don't bother."
Later on in the academic career, you have lecturers either having to overwhelm students (especially non-CS students) with all the best practices at once (you need this IDE, and GIT, and tests...) or having to resort to something which looks like it's made for kids and "won't make it in the real world" (speaking from experience here).
It's a pity that computing got so complicated. This is a hard problem to solve. Nonetheless, I applaud any efforts made towards this.
I disagree. For me it's much simpler now:
- Use python :)
I learned using a variety of languages from calculator assembly to C++ to GUI game scripting languages. Each had its quirks and C/C++ boilerplate definitely created friction. I was always really easy to write complicated algorithms and math but doing anything practical alluded me.
Now with python you're one library away from doing anything really interesting. There's almost zero boilerplate. 'import pygame' and with a bit of googling and basic knowledge you're off to making a pretty cool game! (learning physics, algorithms and more along the way)
I've done experiments with this almost twenty years ago, and it's surprising how much can be done with simple rules.
However, it can also be difficult to debug when you have a large amount of rules.
I end up developing a tile map editor[1], giving the user the ability to develop their own maps. I end up liking this tile editor so much that I spent more time adding isometric features to it. Both because I love isometric maps and it seems to please people playing the game.
So, as in right now, I have a tile map editor (in a usable state) and a 2D engine that is not near close to be used, and I don't know what to do with neither of them.
Anyways, isometric maps would hugely improve the looks of these 2D games. I would consider adding this options to your platform as well.
“ Our work is motivated by the popularity of retro video games…“
I think having an easy way to share your game should be a priority. Clearly the web can be used to emulate and share almost anything now, so some kind of exporting system and web player would be ideal.
Dreams on PS4 has a complex sharing backend and the PS4 also let's you share directly to social media. https://indreams.me/
Current hardware list:
As a child, I remember getting hooked to Super Mario in < 5min after I saw my friends play it. I'm telling ya, these pretentious "researchers" really don't know how us "normies" think.
This is a multi-cart. Move over a game slot number and press A to load it. The buttons at the top allow you to edit the map, sprites, code, and play the game in the slot.
Slot 1 has a player movement example. Slot 2 and 3 are empty. Slot 4 is Snake. Slot 5 is Boulder Dash. etc.