[HN Gopher] Show HN: Mini Metroidvania in 13KB of JavaScript
___________________________________________________________________
Show HN: Mini Metroidvania in 13KB of JavaScript
As part of the annual JS13K games challenge, I've put together a
pretty large (but small-in-code) Metroidvania game that fits in
just 13KB of compressed Javascript. The source is available here:
https://github.com/arikwex/infernal-sigil NOTE: the current head
of the main branch is at 13.6KB due to quality of life patches. The
legit 13KB version is tagged in github. Useful hacks: - Using
Roadroller (https://github.com/lifthrasiir/roadroller) for
compression - Compressing the map data as grayscale PNG paired with
some code generation. - Using procedural animation for all
characters. - Replacing string enum with numeric enums for
compression. - Built a small game engine for object lifecycle and
rendering. - Single function to generate unique procedural songs
for different regions.
Author : arikgalactic
Score : 95 points
Date : 2022-09-13 18:25 UTC (4 hours ago)
(HTM) web link (arineonshark.itch.io)
(TXT) w3m dump (arineonshark.itch.io)
| daneel_w wrote:
| Great work on such a small footprint, but there's nothing
| Metroidvania about it. It's just a regular "jump 'n' run"
| platformer.
| rogerclark wrote:
| After playing it for 2 minutes there are clearly two kinds of
| obstacles that could only be surmounted by some kind of
| enhancement. And there's a Metroid-style grid map you can bring
| up.
|
| There's nothing useful about this kind of negative comment.
| daneel_w wrote:
| No negative intention. It's just an observation.
| janmarsal wrote:
| If the maker wants to advertise his little game as a
| metroidvania and the first impression is that it seems like a
| simple platformer then the metroidvanianess isn't obvious
| enough and there's room for improvement. If you've made the
| game yourself you can become blind to little things like this
| and it's very useful that someone points it out.
|
| "Negative comment" my ass. It literally starts with the words
| "great work". That's a clearly a supportive comment.
| Bigpet wrote:
| The metroidvania inspirations are pretty clear, it's a large
| map that you unlock gradually by finding abilities on the map.
| Including some back-tracking.
|
| What do you think is missing for it to be called a
| metroidvania?
| daneel_w wrote:
| The graphics and scenery. It's 13 kilobytes of JavaScript
| with no bitmapped graphics in it, I know, but if we settle
| for (as an example) your two very broad strokes of running
| back and forth and unlocking new areas then hundreds of old
| NES and SNES games have suddenly become Metroidvania, despite
| nobody ever branding them as Metroidvania.
|
| I don't mean to come off as a retro-gaming connoisseur, but
| there's a certain _feel and atmosphere_ to the Metroidvania
| branding - it 's more than a sub-genre - and it shouldn't be
| taken lightly.
| kemayo wrote:
| I'd say that, particularly in modern genre terms,
| "Metroidvania" refers to a game involving gathering
| abilities that unlock new areas, with either mandatory or
| optional-for-bonuses backtracking to previously blocked
| paths. (This is distinct from just flipping switches or
| finding keys -- you have to find things that change your
| character's moveset, and the new capabilities are what let
| you pass through.)
|
| Non-linearity and ability-acquisition are the only
| essential elements. There's _often_ platforming, a certain
| isolation-vibe, and a large single map, but those aren 't
| mandatory to get the label.
| Bigpet wrote:
| Hm. I don't know if I'd consider atmosphere part of the
| genre. But it's missing boss fights which are a pretty core
| part of the genre I think.
|
| Which other NES or SNES games take place on one continuous
| map that you backtrack with new abilities to find a way to
| progress?
|
| Edit: that you wouldn't consider a metroidvania, I mean.
| daneel_w wrote:
| Zelda, Metal Gear, Wizardry, Faxanadu, Rygar, Ys,
| Mother/Earth Bound. The list goes on and on. The element
| of revisiting previous stages/locations to unlock
| portions you couldn't access earlier on was a basic
| ingredient of old adventure games.
| hombre_fatal wrote:
| Well, not so fast.
|
| https://es.wikipedia.org/wiki/Rygar -- genre:
| metroidvania
|
| https://en.wikipedia.org/wiki/Faxanadu -- wiki categories
| include metroidvania. style: "like castlevania".
|
| The thing you're also missing is that a
| {castle,metroid}vania is a 2D side-scroller, so Zelda,
| Metal Gear, and friends are not.
|
| This kind of "umm actually" stuff is boring.
| yesimahuman wrote:
| Very smooth animations. Impressive work. Are we about to see a
| bunch of serious web/JS games coming (with Vampire Survivors
| paving the way?)
| hypertexthero wrote:
| Lovely work, especially the feeling of the controls and smooth
| movement! And I like how the main character looks like a fox!
| jbverschoor wrote:
| That was fun :) spent 38minutes.. 571 bones left, 8 dead
|
| Too many buttons IMO for a keyboard
| nonethewiser wrote:
| I found j,k,l and n very comfortable (layout 2). I don't really
| play video games either.
| nonethewiser wrote:
| Is this something that web assembly could actually do well?
| mirkodrummer wrote:
| Damn it doesn't even use WebGL context, just plain canvas 2d
| drawing api, congrats to the dev, great job
| johnfn wrote:
| If it's really 13kb, how can there be a loading screen?!?
| Checkmate!
|
| In seriousness though, this is awesome! I love little
| metroidvanias. :) And the interactions, like the jump and swipe,
| feel remarkably satisfying. Great stuff.
| nonethewiser wrote:
| But seriously, why is that?
| jordemort wrote:
| I'd like more of this, it was very entertaining. The controls are
| great.
|
| Tip: You can use the regular attack to slow your descent when
| falling.
| nonethewiser wrote:
| and to move horizontally a bit too
| [deleted]
| j_leboulanger wrote:
| Not working on Safari
| arikgalactic wrote:
| Only tested in Chrome + Edge + Firefox. I'll look in to Safari
| and report back!
| kemayo wrote:
| It semi-works. It launches, loads, says something about
| wingspan and double jump, then immediately teleports you to a
| location where you're stuck.
|
| It's all very jumbled: https://imgur.com/a/1PNTW7E
| hombre_fatal wrote:
| Yeah, here's the place I got "teleported" to:
| https://i.imgur.com/rI5rPiX.png
| nextaccountic wrote:
| The character controls and animation feel satisfying
| lioeters wrote:
| So smooth! Easy to get started, and fun to play. I'll enjoy
| taking the time to explore the game world. The code is so
| readable too, I'm learning from reading it.
| lxe wrote:
| Hight quality stuff, especially the animations.
| aidenn0 wrote:
| As a comparison, a zstd compressed copy of the US Metroid ROM
| comes out at 59781 bytes. Castlevania comes out at 71237 bytes.
| peanut_worm wrote:
| JS is an interpreted language that isn't really a fair
| comparison
| beagle3 wrote:
| It actually is a fine comparison. At ~140 chars on a browser,
| JS can do this: https://www.dwitter.net/d/26107 . That's not
| idiomatic JavaScript, but then, people had to work hard for
| the old roms as well.
|
| (I recommend browsing through the
| https://www.dwitter.net/top/year top section to get more
| example of "demos that fit in a twit".
| peanut_worm wrote:
| So since you can abuse eval() in a wacky way, that means JS
| should be compared to compiled code? I don't understand
| your point.
| aidenn0 wrote:
| While we are being pedantic I seriously doubt either
| Metroid or Castlevania was _compiled_ , given that most
| NES games were written in 6502[1] assembly.
|
| 1: 6502-ish, it was a clone with the BCD instructions
| disabled.
| aidenn0 wrote:
| The NES had a dedicated sprite engine, Javascript has a huge
| standard library.
|
| Of course it's apples-to-oranges, but surely we can make such
| non-serious comparisons in a thread about a metroidvania game
| written for a fun contest?
| peanut_worm wrote:
| Wow this is really cool. It controls extremely well on a gamepad.
| This might make me try out game development. Well done!
| bil7 wrote:
| cool as FUCK!!! this is awesome!!
| petersonh wrote:
| Very cool! Love the simplicity of the characters, but smooth
| animations.
| lifthrasiir wrote:
| See also https://js13kgames.com/entries/2022 for this year's
| submissions. As always it's great to see so many people making
| games in so small size.
___________________________________________________________________
(page generated 2022-09-13 23:00 UTC)