
Diablo in JavaScript - sebkomianos
http://mitallast.github.com/diablo-js/
======
overgard
Not a commentary on this project per se, but I can't help but think when I see
"X in javascript" voted up that the implicit frame is: "isn't it impressive
what you can do in javascript now?"

But if you flip that statement on its head, the equivalent is "The web has
finally caught up with what we could do on a 1997 desktop!"

~~~
minimaxir
The next logical step is Diablo in CSS3.

~~~
mmahemoff
This is done in canvas, but a lot of games _are_ done in CSS3 - using 3D
transforms and CSS animation, it's very feasible.

Of course, it's much harder to do a game in _pure_ CSS, like this crazy thing
<http://jsdo.it/GeckoTang/4rXg>

------
aw3c2
Random Javascript point and click game demo in alpha quality. Uses sprites
ripped from Diablo 2. Other sprites from an unknown source. Not actually
Diablo. Not anywhere close.

~~~
fletchowns
_Random Javascript point and click game demo in alpha quality. Uses sprites
ripped from Diablo 2. Other sprites from an unknown source. Not actually
Diablo. Not anywhere close._

I thought it was really neat, I don't know what all your hate is about. I also
like that the source code is friendly looking and you could show it to
somebody new to coding to inspire them.

~~~
vor_
It's not hate. It's pointing out that it's not Diablo in JavaScript.

~~~
d0m
It's possible to point that out without being a total jerk.

~~~
shadowmint
The problem with this demo isn't that it's pretty alpha (and to be fair, it
is, you can move, and attack, that's about it).

The problem is that it uses _stolen_ assets from another game.

That is 100% not ok, even for a tech demo.

(...there are plenty of free game assets out there, creative commons license;
drawing attention to yourself by stealing someone elses art is douche
behaviour)

~~~
mcantelon
People sample audio all the time. This isn't a commercial project and sampling
some sprites from a 13 year old game doesn't seem like it's going to impact
Blizzard in any way. He should, of course, give the original creators credit
in his README at some point (judging by the fact there is no README the
project may be still undergoing development).

~~~
laurent123456
It won't impact Blizzard but it's going to make it to the front page of HN. If
the same demo was made with custom sprites, we would probably never have heard
of it since it indeed doesn't do much.

~~~
jQueryIsAwesome
He is sucking someone's else popularity! What an evil and selfish mind he has!

~~~
laurent123456
No, but it's sucking our "precious" time :) We're all thinking we're going to
see Diablo in JavaScript, and then this...

------
sktrdie
It's not the JavaScript part that is interesting, but the fact that it's
running in a browser. In fact, "Diablo (alpha) in Browser" would've been a
more appropriate title. And it's interesting because, well, it's programmed
for a browser, which is made of open-standards.

And I know people will complain about how "we were doing this kind of stuff in
the 90s", but I still think it's quite an accomplishment given that it's
programmed at a much higher-level of abstraction than the original Diablo
(which was C and some machine code).

But I still think it's stupid to have games in the browser. The browser does
not take full advantage of the hardware - it shouldn't, it's made for content
and information. Its priorities are security (sandbox) and accessibility.

So it's gonna be a while before we'll see games - that require lots of raw
machine code processing - in the browser. Because in principle, if browsers
give accessible raw processing power, they'll suffer on security. And it's
proven really hard to have the best of the both worlds, otherwise today we
would have mainstream cutting-edge graphic games available in the browser.

And we don't, we have 90s games.

~~~
taeric
The odd implication I get from this, is that somehow the original Diablo was
not programmed against open standards. Is that on purpose?

------
fiatpandas
Can't move in Firefox 18. What is so out of date with Firefox that this cannot
work? I see more and more of these demos flat out not working in FF, but work
fine in Chrome. What is the explanation?

~~~
dbaupp
Sometimes it is laziness on the part of the developer (i.e. only using webkit-
prefixes on the new JS/CSS features, even though the moz- prefixed equivalent
works perfectly), other times it just hasn't been implemented in FF yet
(although sometimes the demos do work in the aurora/nightly versions).

------
alexpeattie
Pretty cool. The full source code's on Github as well:

<https://github.com/mitallast/diablo-js>

The code's not commented very heavily, but it's pretty readable nonetheless.

~~~
edgar_di
Is this your code? I would like to contribute (I'm not so proficient with
JavaScript though, but a huge fan of diablo. (usually re-install it every two
years)

------
moron4hire
This is neat, but it's not really that big of a leap. Here is a thing I wrote
in 2002, as I was just starting to learn to program. It's a little broken now
because the character image didn't get archived, but you get the idea. A lot
more was possible, I just didn't quite have the chops before I got distracted
by my next project <http://www.oocities.org/webspynner_99/games/RPG/rpg.html>

The fact that browsers are still able to run my shitty code is kind of
impressive.

But just sayin', it's nice to see this, but even in the "on the web" realm,
it's not that big of a leap. It's more of an indication of how much network
and processor speeds have advanced in the last 11 years than how much
capability of web browser has.

~~~
runn1ng
I see a green blob and a blue blob.

What should do with it? :)

------
saroho
Framerate was a bit choppy for me. It ran smoother back in 1997. The open web
still has a long way to go.

------
phasevar
Cool, I guess. No instructions what-so-ever. Can we get some documentation on
keys to use?

~~~
philipbjorge
It appears to be Chrome only which might explain your problem with controls...

Edit: Yes, I did only test in Firefox and Chrome. According to the comments
below, it appears to work for modern browsers except Firefox.

~~~
thristian
Man, I can understand people writing Firefox-hating demos if they're trying to
show off some feature that recently landed in WebKit, I can almost understand
it if they just did a weekend-hack and couldn't be bothered testing in any
browsers other than their own.

I can't understand this - in 2013, how on earth do you break mouse events in
JavaScript? We've had events like onmousedown working reliably across browser
implementations for a decade or more, what on earth is going on?

~~~
anglebracket
The click handler is registered on the canvas and it checks e.offsetX. On
Firefox, some people use e.layerX, but it's not exactly the same thing [0].
Someone posted a useful polyfill on JQuery's bugtracker [1].

Firefox should just support offsetX as well, but they don't, for whatever
reason.

[0] <https://bugzilla.mozilla.org/show_bug.cgi?id=122665#c3>

[1] <http://bugs.jquery.com/ticket/8523#comment:16>

------
okamiueru
Just another misleading HN titles to a technically uninteresting project. I
believe this is a fair assessment.

Even if the goal was to showcase what can be done in JavaScript now, it's a
rudimentary isometric visualization of animated sprites with very simple game
logic (not even basic path finding).

Just to make it clear, regarding the creator and the project:

* _Is there something bad with him creating something?_ No, not at all. Cudos to him for making something! Especially for making it open source. Let's anyone peek at how he has done what he has. Sweet.

* _Is there something bad with with how he is doing it?_ Yes, he is using copyrighted graphics he doesn't own the rights to use.

Regarding this as HN:

* _Is this technically interesting?_ No, not even remotely. Throwing graphics on a canvas and point-and-click basic game logic is not interesting. Point out to me a basic mechanic or implementation that isn't trivial (overlay of minimap is the most interesting thing that comes to mind).

* _Is this aesthetically interesting?_ It would be, if it was original art. Seeing as it is just "borrowed" sprites, the optimal goal would be a screenshot of Diablo 2.

* _Is the title accurate?_ No, not even remotely (there is much more to Diablo than sprites).

* _Is the project anywhere finished and presentable?_ Maybe this just personal preference, but I don't like seeing other people's pre-alpha demos.

 _tl;dr:_ Stop wasting people's time with technically uninteresting posts with
misleading titles alluding to the contrary, to projects using assets they
shouldn't.

------
shocks
I can't wait for Far Cry 3 in Javascript.

------
lists
Weird, controls worked in Firefox on Windows but not Firefox on Linux

------
schiang
This is so awesome. I loved Diablo growing up and it's amazing to see that it
could be recreated using js. I'm interested to see what other games people
will make using js.

------
Scene_Cast2
There's a Diablo-like game also made in Javascript -
<http://www.smokymonkeys.com/triglav/>. Unfortunately, as it was made more
than five years ago, it's IE only (no ActiveX or installing anything
necessary, though). Check out some screenshots on the "gallery" page it you
don't feel like booting up IE.

------
VMG
One the one hand - great. On the other hand - we've been there ten years ago.

------
isacikgoz
doesnt work on iPad in stock browser

------
pjmlp
Great! Now the browser finally caught up with MS-DOS games!

~~~
jrogers65
Diablo was a Windows game - it didn't run on MS-DOS.

~~~
pjmlp
You are right, I was just trying to point out the quality one gets out of so
many layers instead of using desktop applications directly.

------
Bockit
I look forward to the day when I can watch in-game footage of games, maybe
replays from RTS games for example, in a game-engine in the browser.

------
metaphorm
Borrowing some sprites and textures from Diablo 2 is hardly sufficient to call
this "Diablo in Javascript".

------
rawriclark
This is running on a ie10 on winrt surface , cool stuff good job to the maker
(even touch is working)

------
DigitalSea
This is pretty cool. It's obvious it's not a 1:1 port of the original, but
still fun and entertaining.

------
johnyzee
GTA in JavaScript:

<http://www.webworks.dk/enginetest>

------
sangupta
Awesome work. It's a bit slow in FF but works fine in Chrome. A welcome screen
would be helpful.

------
ohwp
Fun fact: this just works in Opera

~~~
spyder
Wow, the switch to webkit was fast. :)

------
rhokstar
Anybody got some SOJ's for sale?

~~~
Yoni1
I got some, can you dupe me a GPOW? TPTPTPTP~~~^_^

~~~
rhokstar
I want Windforce bow. How much SOJ? ^_^

------
cornbread_bun
Great, but it would be excellent if there were instructions.

~~~
d0m
Click!

~~~
mbetter
Doesn't work.

------
edgar_di
this must have been posted in HN before... NES emulator in javaScript
<http://fir.sh/projects/jsnes/>

------
cpress
Where are the cows?

------
frannk
can not believe only 500 lines of code

