Build retro games using WebAssembly for a fantasy console
wasm4.org
wasm4.org
Mouse input is uncommon for an old console, I'll give you that, but four controllers is very usual.
At the very least, just support arrow keys AND WASD.
Also, speaking of WASD. Anyone implementing WASD controls in a game, please make sure you make the keys rebindable and not hardcoded to WASD. I use the Dvorak layout so in the position that a QWERTY user has their hands when playing with WASD controls I have different keys, and therefore when I’m in game I make use of keyboard input configurations offered by the game in order to set up keys that work with the layout I use :)
And even though there may just be a handful of people that use Dvorak… :p there are still quite a few different keyboard layouts that are quite widespread.
Fortunately most games on Steam offer the ability to define your own keys. And even some browser based games do as well.
(Rebinding is still nice in general, of course.)
Not always the case ಠ‿ಠ
I am using a programmable keyboard that does the layout in the keyboard firmware, and therefore you can’t actually tell the physical position of the keys I am using from the key code.
Once the mouse came out and gaming started to become 3D "looking around", e.g. Quake, WASD appeared along side the mouse used to look around. So I take it you're a pretty young gamer :-)
WASD only makes sense if you're holding a mouse on the other side of the keyboard. Otherwise, the OG is arrow keys, and even numpad keys, some mechanical keyboard still give the homage by having arrows on 8462 keys of the numpad on the right side. Many games in fact even supported diagonal movements on the other digits.
Ref. https://cdn.thefpsreview.com/wp-content/uploads/2020/04/ibm-...
Yes, some old games used arrow keys for movement, and I hated that, too, since I started on the NES. Same deal for arcades as well; the stick has been on the left for decades now.
Good point about AZERTY, though at least with some engines you can just map to the physical locations that corresponds to WASD for QWERTY, so different keyboards should mostly be a non-issue.
As well as using arrow keys for directional movement, which just makes sense as you were already using them in other applications that way, it left the letter keys for named actions (attack, defend, ..., which I remember some games using) and/or the left hand free for using shift/ctrl/alt for movement modifiers (which I find a less convenient arrangement on the other side of keyboards I've used).
Once mouse controls became common for aiming it made sense to move because WASD is close enough to the common modifier keys that the left can do all the work there.
> WASD only makes sense if you're holding a mouse on the other side of the keyboard.
I know lefties who were perfectly happy to use WASD+modifiers+other with their right hand and keep their mouse/similar on the left. They would often remap jump (frequently assigned to the space bar by default) to something else (maybe \ on a UK keyboard as that is near the thumb, or V to stretch the pinky less if their thumb is going to be occupied using shift or ctrl as a movement modifier (or fire if they didn't use a mouse button for that)). It was less convenient for them if a game didn't allow key remapping.
(although it pauses if I switch to another tab or minimize it :( )
As far as normal games, plenty went over 320x240, mostly using medium resolutions rather than the max.
- AssemblyScript
- C / C++
- D
- Go
- Nim
- Odin
- Rust
- Zig
Are languages like Java/C#/Python right out because they can't output webassembly?
https://leaningtech.com/cheerpj/
https://docs.microsoft.com/en-us/aspnet/core/blazor/host-and...
They just happen not to be cool.
Links to Github: https://github.com/yowl/csharp-wasm4
It would be slightly extravagant experience, but C# is technically possible.