Hacker News new | ask | show | jobs
by strix_varius 300 days ago
I'm curious about the goal here... if you wanted to learn how to turn gameplay ideas into playable video games, then the most effective way would be picking up either an ultralight engine like Defold or an ultra-tutorialized engine like Unity.

If you wanted to learn JavaScript by building games, then you should definitely not use Kaplay or Phaser, etc, since they're so far removed from JavaScript you wouldn't learn anything (other than how to build things in their particular environments). Web standard JS is more than capable of building simple games with no abstractions separating you from what you're trying to learn.

1 comments

I'm confused by your advice, honestly. Defold is definitely not ultra-light, it's a whole ide/studio engine. If I was recommending for ease of entry, I'd 100% pick a "fantasy console" like Pico-8[1] or one of the many alternatives[2] that are free and use a different language if Lua isn't the person's thing.

Second, Phaser[3] actually IS regular javascript. It's the opposite of Defold that is a whole node based editor thing. Phaser is just a an API you use in a script file, that you just splonk into your html page. I don't know how much more standard JS you can get than that.

[1]: https://www.lexaloffle.com/pico-8.php

[2]: https://github.com/paladin-t/fantasy

[3]: https://docs.phaser.io/phaser/getting-started/set-up-dev-env... (linked to the hello world example)

> Defold is definitely not ultra-light

Defold ships as a ~2MB executable, is designed for lightweight performance on non-cutting-edge mobile devices, and focuses on portability with a commitment to never require any build tooling. Professional game developers and hobbyists alike very much consider it a lightweight platform, but you're welcome to disagree with them.

> I'd 100% pick a "fantasy console" like Pico-8

Ok?

> Phaser[3] actually IS regular javascript ... I don't know how much more standard JS you can get than that.

Your linked example starts with `class Example extends Phaser.Scene` as the base for everything, then fills it with gems like `this.physics.add.image(400, 100, 'logo')` ... For your colleagues' sake, I truly hope that's not the sort of "regular javascript" you use at work.