37 comments

[ 2.6 ms ] story [ 48.4 ms ] thread
I love that people are pushing into 3D even with the limited specs.
Fun fact: 160x160 is still a higher resolution than you get with 4-player splitscreen on the N64 (which would be 160x120).
Yes for a normal N64 game making normal tradeoffs, but at low scene detail the console can do 640x480, so 4 players could each get 320x240.
Yes, it was technically possible, but how many games actually ran at that resolution?
That's not my point at all. That's why I said not for a normal game! I just wanted to point out that if you're willing to go anywhere near this low-detail then an N64 can trivially beat the resolution. It's not stuck that low.

As far as normal games, plenty went over 320x240, mostly using medium resolutions rather than the max.

It has full floating-point support and practically ”unlimited” cpu power, so 3D at 160p60fps is super feasible.
I'm greatly enjoying https://wasm4.org/play/nyancat

(although it pauses if I switch to another tab or minimize it :( )

To the creator of this tool: please consider starting games muted and having a mute toggle button. Yes these are games but it's still surprising to have music playing as soon as the tab opens. I had to scrambled to close the tab.
The D pad overlaid on mobile doesn’t seem to handle touch ending events. Once I press once that key is shown as activated forever and it appears as if the game sees it as such as well.
Try pressing the center part and shifting your thumb around while holding it. (I tried it on an Atom tablet and the context menu popped up if I pressed the "leaf" parts or the buttons for too long.)
Here's the languages used as examples in the tutorial:

- AssemblyScript

- C / C++

- D

- Go

- Nim

- Odin

- Rust

- Zig

Are languages like Java/C#/Python right out because they can't output webassembly?

The listed languages all compile to machine code. The languages you listed are all dynamic languages that run in a VM and have massive overhead.
I don't understand why the default seems to be using arrow keys for movement, instead of WASD. A gamepad has the movement controls on the left hand, either d-pad or stick, and for PC games, using WASD for movement is standard. Using arrow keys swaps the hands, and thus makes it less intuitive to anyone with gaming experience. It's the equivalent of forcing anyone who comes to your website to switch which hand they use for their mouse.

At the very least, just support arrow keys AND WASD.

I grew up playing Nintendo. Later I moved to PC and arrow keys. It was never a problem for me. But using WASD as arrow keys never worked for me. It is not intuitive for me.
Are you by chance left handed? I can see that WASD would be awkward to use for anyone who keeps the mouse on the left side of their keyboard instead of on the right side of the keyboard.

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.

As a lefty who moves the mouse to the left side of keyboard, WADS is no more awkward than any other keyboard combination for left or right headed people. Just, you know, shift your keyboard a little bit more towards the right for comfortable spacing lol.
It's more important to use the correct API in the first place. For example, inside a browser KeyboardEvent.code is based on the location of the key. No layout-based rebinding should be needed.

(Rebinding is still nice in general, of course.)

> No layout-based rebinding should be needed.

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.

Is that allowed by the keyboard specifications? If you break the mapping on purpose I have some sympathy but not nearly as much as "oh no this only works on qwerty".
I'm the same way. I get where the OP is coming from, logically WASD mimicking a d-pad does make sense. But in reality arrow keys are easier to use. Human brains are weird. I'm right handed btw.
Anything retro, pre-mouse era, was with the arrow keys, because it made sense. At least for player 1. (Besides, WASD is pretty bad for AZERTY keyboards which is a lot of players.) Some player 2 layouts had a mix of letters, but were usually pretty thoughtful of AZERTY.

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-...

I don’t really think of 36 as young, no.

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.

> Anything retro, pre-mouse era, was with the arrow keys, because it made sense. At least for player 1.

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.

I remember a lot of programmed games using IJKL or IJKM at the time as an alternative to arrow keys. WASD felt really weird the first time I tried it.
The traditional controls on the Apple ][ in the 1980s was IJKM because the early models didn't have up and down arrow keys (they were introduced in the //e)
Default German keyboard layout is QWERTZ (Z and Y swapped). Too many web indie games use Z and/or X for some kind of action, which sucks for us Germans, because those aren't next to each other.
In french it's AZERTY: A/Q and W/Z swapped.
I'm enjoying this, it's awesome.
Interesting mix of constraints for a console. A full framebuffer but only 4 colors on the same screen. Small cartridges and lots of RAM. And it appears to have unlimited CPU power?
And support for keyboard, mouse, and four controllers.
Well keyboard support is a given for a conceit like this.

Mouse input is uncommon for an old console, I'll give you that, but four controllers is very usual.

Mapped to joystick buttons or full keyboard? PICO-8 just maps up, down, left, right and btn1/btn2.
Very cool. Nintendo GBC era graphics fidelity and smooth animations playable instantly in browser. It's amazing how performant it is. "Wormhole" is the basis for a great "Pilotwings" flight trainer ;)
For those curious about this, pico-8, liko-12 and tic-80 (amongst others) are fantastic little ecosystems to play in. Highly recommended.