
Impact – HTML5 Game Engine - sgerhard
https://github.com/phoboslab/impact
======
Kiro
Why was the title changed? The interesting part here is that it has been open
sourced and made free. Now it sounds like it's a new engine or active project.

[http://impactjs.com/blog/2018/05/impact-is-now-free-open-
sou...](http://impactjs.com/blog/2018/05/impact-is-now-free-open-source)

~~~
matt4077
Anything that might provoke interest in an article is considered "clickbait"
by the HN community and neutered.

A famous HN headline of 1963 was "JFK returns to Washington after visit to
Dallas"

~~~
tomcam
Please, lords of HN, preserve this wonderful comment

------
mrspeaker
Wow, this is fantastic! I feel like Impact never got the attention it
deserved: at the time of release it was miles above the rest of the 2D pack,
and the author was brave/crazy enough to charge money for it (which obviously
hindered greater uptake, compared to Phaser - but it showed he was serious
about it as a real product). The editor it came with was fantastic - and there
still isn't a lot of movement in this area for other game libraries (I think
Phaser has a third-party paid effort that is shaping up)

Then he released Ejecta as open source, which was a real game game-changer for
me: 60FPS canvas games running on my old iPHone 3G - it was FANTASTIC!

I would have given up on tinkering with HTML5 games along time ago if it
wasn't for Dominic, so, if you happen to read this, thank you for all your
effort!

~~~
stcredzero
My procedurally generated huge-universe MMO uses Go on the back end but
ImpactJS on the front end. <
[https://www.emergencevector.com](https://www.emergencevector.com) > I was
meaning to port the game to PixiJS to be able to open source the front end,
but now I don't have to!

(Even better, now that I know Ejecta is also open source, I can have OpenGL
and iOS distribution!)

------
benrbray
Neat! By clicking on some links I found the blog of who looks like primary
developer of Impact, Dominic Szablewski.

[http://phoboslab.org/log](http://phoboslab.org/log)

It's nice to see a blog with articles from ~10 years ago that aren't broken! I
really like his WebGL rendering of WipEout maps:

[http://phoboslab.org/wipeout/](http://phoboslab.org/wipeout/)
[http://phoboslab.org/log/2015/04/reverse-engineering-
wipeout...](http://phoboslab.org/log/2015/04/reverse-engineering-wipeout-psx)

------
bluedino
The demo game for Impact was Biolab disaster

[http://playbiolab.com/](http://playbiolab.com/)

It's got retro feel, and shows the power of the engine for making scrolling
games. Really neat project and I was surprised that it's 8 years old already.

~~~
outworlder
Perhaps the most well-known game is Z-Type.

[http://zty.pe/](http://zty.pe/)

~~~
RobertRoberts
That was nice a for a minutes. It's funny how the web, free software allow for
so many games these days that are free that I think we can take it for
granted. When I was a kid, getting _any_ game at all was amazing.

Kids these days are overwhelmed with free stuff, it's likely the reason an
engine like this has a hard time making money.

~~~
hutzlibu
Yes, but the usual "free games" kids get today, they pay with their attention,
and or data, and/or later with real money to make progress in the game.

All the games of my childhood I bought(or pirated) .. were 100% about the
game.

vut when I see my niece and nephiew playing and accpeting lots of
advertisement all the time in their game, like it's normal, I get a bit sad.

So of course, I push other content to them... but I would say the ordinary kid
today, gets a lot worse input today, the I did.

And I would like to see much more real free, open source games out there. But
apparently very hard to make money with it..

------
yesimahuman
I built a game with Impact a number of years ago and it worked very well. It
also comes with this really simple but powerful tile editor
[https://github.com/phoboslab/Impact/blob/master/weltmeister....](https://github.com/phoboslab/Impact/blob/master/weltmeister.html).
Regardless, it was a great way to learn 2d game development and got me to
actually pay for a software library!

~~~
city41
I was a big fan of Impact back in the day. It's a great general purpose 2d
engine, but it's especially great for platformers. I collected all my Impact
plugins here:
[https://github.com/city41/ImpactPlugins](https://github.com/city41/ImpactPlugins)

~~~
542458
There used to be a great impact plugin site, pointofimpact I think it was
called. Unfortunately, it's all gone now, along with most of the plugins on
it...

------
phn
Are there any active projects using this?

It seems to me this was a big thing back in the day but not really relevant
anymore.

~~~
rushsteve1
If I remember right CrossCode[1] is using it. Fun game but another case of
near endless beta.

[1]: [http://www.cross-code.com/en/home](http://www.cross-code.com/en/home)

~~~
542458
It's worth noting that crosscode's version of the engine is HEAVILY rewritten
- it's not really a good representation of the base engine's capabilities.

------
platelminto
Does anyone know how this compares to Construct 2 & 3? I've only used
Construct for simple 2D HTML5 game development, and haven't really heard of
any other HTML5 game engines.

~~~
Andrex
Construct is a fully visual game editor, no code is required. Impact is an
engine, so you have to write your own JS to do anything.

------
ibdf
"Publish your Games into the AppStore with almost native performance".

This had me laughing. Maybe too honest.

~~~
Kiro
Ejecta is actually pretty cool. It maps all the ImpactJS render calls to
native OpenGL draws plus other stuff like that.

> JavaScript code is executed directly by a JavaScript VM (JavaScriptCore),
> the HTML5 Canvas 2D and WebGL API is implemented in native code with OpenGL,
> Audio is implemented with OpenAL. Several other APIs (touch, accelerometer,
> localStorage, gamepad) behave like those in a real browser.

[http://impactjs.com/ejecta](http://impactjs.com/ejecta)

~~~
Xuper
So I solves a lot of pain points and the only problem you are left with is
dealing with JavaScript? It's quite neat, but why not simply use a better
language and an engine? E.g. Unity3d, MonoGame, Godot?

~~~
always_good
If you're targeting the web, then you're compiling to Javascript anyways, so
the indirection + engine complexity isn't always worth it. Unity tends to pay
off as you take on more platform targets and/or implementation complexity
(like graphics), for example.

It's kinda like using
[https://github.com/schteppe/p2.js](https://github.com/schteppe/p2.js) for
physics instead of Box2D: if p2 gets the job done, then you get the advantage
of working with a much simpler code base than Box2D which is just about
impenetrable as an emscripten port.

------
ryanpcmcquen
I hope someone gets Weltmeister running client side now (without PHP). Then
you could hack on Impact using a Chromebook!

~~~
542458
There are a few node drop-in replacement for the PHP components. The one I've
used in the past is:

[https://github.com/drhayes/impact-dev-
server](https://github.com/drhayes/impact-dev-server)

~~~
ryanpcmcquen
I have seen those, most of them seem abandoned.

~~~
always_good
Though so is Impact (well, unmaintained) and its plugin ecosystem (the website
died and the plugins it hosted are lost), so it's more or less something you
have to be comfortable with if you choose to use Impact in 2018.

Excited to see it open source now, of course. Great opportunity for a
community to slowly redevelop and rebuild what once was.

I used Impact as recently as two years ago despite these issues and was able
to make a networked game. The code is easy to work with and understand. And I
used one of the Node wrappers to get the editor working without PHP.

------
drdrey
How does it compare to PhaserJS?

~~~
always_good
Smaller in scope thus simpler. Unmaintained. Far easier to borrow pieces from
as needed.

For example I implemented networking on top of my Impact game with relative
ease (networked games are never easy) while layering it on top of my Phaser
gamer would've taken longer and with more uncertainty because Phaser is far
more opinionated and larger in scope.

------
xorcist
I imagine Impact is from a time when javascript wasn't as performant and far
from as portable as today. Is it still relevant given the canvas and sound
improvements in a modern browser? What would be the major use cases for
something like Impact versus starting from scratch?

~~~
always_good
Well, do you think it's worthwhile to implement your own collision map system,
vector math, tile editor, etc. every time you start a new game?

It sure is tempting, but not necessarily healthy to the odds that you will
ship a game. Though it's also not obvious how much a game engine will help you
(like if you'll run into issues with your specific mechanics) until you
credentialize in it, so it's always a bit of a crap shoot because games are so
open-ended.

For example, I once migrated away from PhaserJS because I couldn't figure out
how to add networking and server-side simulation without having more of the
physics code in my git diffs.

------
ezekg
I absolutely loved playing Xibalba, and was actually thinking about it a few
days ago. One of the few HTML shooters that was performant on my mobile device
-- actually played through the whole game on mobile. Awesome to see the engine
open sourced.

------
kodablah
Is it maintained? Only commit in over 3 years appears to be the readme and
license.

~~~
tcfunk
Base on their blog post, it looks like its lack of maintenance was the driver
for the decision to go open source [http://impactjs.com/blog/2018/05/impact-
is-now-free-open-sou...](http://impactjs.com/blog/2018/05/impact-is-now-free-
open-source)

------
n-gauge
I used this years ago - however ended up with construct 2. I've also
contributed to the open source scratch 2 apk (runs in a browser) using webRTC
for the cloud vars. It's the only scratch emulator with lists support too.

[https://github.com/htmlgames/htmlgames.github.io/tree/master...](https://github.com/htmlgames/htmlgames.github.io/tree/master/htmlgames/differences/UAT/itchy)

------
NapoleonSolo
Another notable site that used Impact (for the client) is the multiplayer
universe [http://Manyland.com](http://Manyland.com)

------
tluyben2
I created some games for client in this; I liked it quite a bit. Interesting
to see if someone picks it up. We encountered only small issues with it which
did not really hamper development at the time.

------
optymizer
How does it compare with PhaserJS?

~~~
k__
Phaser is still maintained. Impact got its last update years ago.

