Hey all, it's been a while since I've posted in one of these C3 things.
So some of you might be reading the title of this thread and are thinking: SMW in a web browser? What does that even mean?? Is this some new-fangled fancy shmancy emulator? Has Jimmy lost his mind yet again??
While I can assure you that yes, I have lost my mind again, it's not quite as crazy as you might be thinking.
About a month ago, I decided to try my hand at writing a game using HTML5+JavaScript, and I thought it'd be a fun idea to program an SMW-like engine using these resources. I just finished up putting together a small demo of what I've completed so far before taking a look at the SMWC discord this morning. I saw the C3 announcement and thought: Aha! Here is the perfect excuse to showcase what I've been working on for the past month!.... So here we are now lol
Anyway, without further ado:
https://ninji.dev/smwgame
(Recommend Google Chrome for this.. Firefox performance is dreadful on 2/3 devices I've tested)
There's not much yet... right now it's just Mario in an empty room. BUT this is using purely vanilla JavaScript; no frameworks, no pre-made engine. Everything you see here has been built from the ground up over the course of a few weeks.
Here is a list of everything that's been implemented so far:
- Mario's movements (walking, running, sprinting, etc.)
- Jumping/floor collision
- Resizable display canvas
- Configurable controller input (keyboard + gamepad support)
I spent some time carefully observing how Mario moves in the original SMW, tried to replicate it in JavaScript, and tweaked it until it felt *right*. It's not 100% accurate of course, but rewriting the source ASM code in JS line-for-line is not something I find productive...
Eventually I plan to add enemies, powerups, implement tile & entity collisions, add in an Overworld map, title screen... the whole shebang.
I'm not yet entirely sure what I plan to do with this...
Perhaps I'll release an HTML5 SMW engine that others can build game with.
Perhaps I'll revive one of my old Mario hacks and recreate it using this. :)
Who knows. For now though, I just wanted to show a small demo of what I've got so far.
Anyway that's it. Feedback and suggestions are of course appreciated! Let me know of any bugs toobut I will not be happy about it
EDIT: Here is a short summary of the usability on each of the browsers:
- Chrome: Works perfectly
- Firefox: Works (Laggy on some devices)
- Opera GX: Works
- Brave: Works (Gamepads untested)
- Microsoft Edge: Works perfectly
- Chromium: Didn't load canvas for me, but perhaps it's one of the extensions I'm using.. more testing required.
- Chrome for Android: Works, but gamepad support is wonky (also slow)
So some of you might be reading the title of this thread and are thinking: SMW in a web browser? What does that even mean?? Is this some new-fangled fancy shmancy emulator? Has Jimmy lost his mind yet again??
While I can assure you that yes, I have lost my mind again, it's not quite as crazy as you might be thinking.
About a month ago, I decided to try my hand at writing a game using HTML5+JavaScript, and I thought it'd be a fun idea to program an SMW-like engine using these resources. I just finished up putting together a small demo of what I've completed so far before taking a look at the SMWC discord this morning. I saw the C3 announcement and thought: Aha! Here is the perfect excuse to showcase what I've been working on for the past month!.... So here we are now lol
Anyway, without further ado:
https://ninji.dev/smwgame
(Recommend Google Chrome for this.. Firefox performance is dreadful on 2/3 devices I've tested)
There's not much yet... right now it's just Mario in an empty room. BUT this is using purely vanilla JavaScript; no frameworks, no pre-made engine. Everything you see here has been built from the ground up over the course of a few weeks.
Here is a list of everything that's been implemented so far:
- Mario's movements (walking, running, sprinting, etc.)
- Jumping/floor collision
- Resizable display canvas
- Configurable controller input (keyboard + gamepad support)
I spent some time carefully observing how Mario moves in the original SMW, tried to replicate it in JavaScript, and tweaked it until it felt *right*. It's not 100% accurate of course, but rewriting the source ASM code in JS line-for-line is not something I find productive...
Eventually I plan to add enemies, powerups, implement tile & entity collisions, add in an Overworld map, title screen... the whole shebang.
I'm not yet entirely sure what I plan to do with this...
Perhaps I'll release an HTML5 SMW engine that others can build game with.
Perhaps I'll revive one of my old Mario hacks and recreate it using this. :)
Who knows. For now though, I just wanted to show a small demo of what I've got so far.
Anyway that's it. Feedback and suggestions are of course appreciated! Let me know of any bugs too
EDIT: Here is a short summary of the usability on each of the browsers:
- Chrome: Works perfectly
- Firefox: Works (Laggy on some devices)
- Opera GX: Works
- Brave: Works (Gamepads untested)
- Microsoft Edge: Works perfectly
- Chromium: Didn't load canvas for me, but perhaps it's one of the extensions I'm using.. more testing required.
- Chrome for Android: Works, but gamepad support is wonky (also slow)