10 ms·
Diablo in JavaScript
- phasevar 14y agoCool, I guess. No instructions what-so-ever. Can we get some documentation on keys to use?
- philipbjorge 14y agoIt 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.
- AdamTReineke 14y agoWorks in IE10. Why do you say Chrome only?
- donquix 14y agoMaybe he just tried Firefox and Chrome like me?
- gilgoomesh 14y agoWorks fine in Safari.
- thristian 14y agoMan, 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 14y agoThe 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 https://bugzilla.mozilla.org/show_bug.cgi?id=122665#c3 [1] http://bugs.jquery.com/ticket/8523#comment:16 http://bugs.jquery.com/ticket/8523#comment:16
- onli 14y agoWell, click left and use 1-9 for drinking potions. Nothing else is implemented - and that much is probably obvious for people who played a hack'n slay before. But thinking about it, it is interesting how games explain their shortcuts in the interface.
- fletchowns 14y agoThis is Hacker News, hit F12!
- NuZZ 14y agoBy the gods... :)
- aw3c2 14y agoRandom 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.
- sebkomianos 14y agoMy bad - haven't actually played Diablo. (and I guess that's extra uncool points for me, but, yeah..) Also, to clarify, I found this while browsing through http://gistflow.com http://gistflow.com (specific gist: http://gistflow.com/posts/201-diablo-js http://gistflow.com/posts/201-diablo-js)
- fletchowns 14y agoRandom 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_ 14y agoIt's not hate. It's pointing out that it's not Diablo in JavaScript.
- d0m 14y agoIt's possible to point that out without being a total jerk.
- Sandman 14y agoI didn't get the feeling that aw3c2 was being a jerk. The demo really does use sprites ripped from Diablo and it's in alpha quality. I could neither move nor attack, all I could do is watch that first monster attack me and wait while it completely depleted my health, at which point I did not die but just continued to stand there. Tested on FF 18.
- cornbread_bun 14y agoGreat, but it would be excellent if there were instructions.
- isacikgoz 14y agodoesnt work on iPad in stock browser
- rhokstar 14y agoAnybody got some SOJ's for sale?
- VMG 14y agoOne the one hand - great. On the other hand - we've been there ten years ago.
- DigitalSea 14y agoThis is pretty cool. It's obvious it's not a 1:1 port of the original, but still fun and entertaining.
- overgard 14y agoNot 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 14y agoThe next logical step is Diablo in CSS3.
- joeblau 14y agoThat made me giggle. I'm sure someone is working on it.
- mmahemoff 14y agoThis 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 http://jsdo.it/GeckoTang/4rXg
- scarecrowbob 14y agoTo keep on rolling and flip the statement again, it seems closer to "look, I can build Tetris on my wristwatch": in order to make your statement, you have to ignore the state of a web browser running on a 1997 vintage desktop.
- sebkomianos 14y agoAnd the "purpose" that the "web" was serving back then.
- cliffbean 14y agoThe implicit frame of the implicit frame might be "so let's move everything into the browser". Look at it from the perspective of someone who just wants to use a computer for something a computer could do in 1997. Doing it in a browser today would still sometimes be a downgrade from doing it in a (well written) native application in 1997. I am eager to seeing how much of a difference asm.js can make.
- alexpeattie 14y agoPretty cool. The full source code's on Github as well: https://github.com/mitallast/diablo-js https://github.com/mitallast/diablo-js The code's not commented very heavily, but it's pretty readable nonetheless.
- edgar_di 14y agoIs 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)
- shocks 14y agoI can't wait for Far Cry 3 in Javascript.
- saroho 14y agoFramerate was a bit choppy for me. It ran smoother back in 1997. The open web still has a long way to go.
- fiatpandas 14y agoCan'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 14y agoSometimes 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).
- jQueryIsAwesome 14y agoNo -webkit- specific code in sight and the console shows no error; the worst kind of bug. Edit: I found it; It is using the event property offSetX instead of a cross-browser property; if the developer or someone else want so fix: http://stackoverflow.com/questions/11334452/event-offsetx-in-firefox http://stackoverflow.com/questions/11334452/event-offsetx-in... [Line 151 in diablo.js]
- pjmlp 14y agoWebKit is the new IE.
- sktrdie 14y agoIt'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 14y agoThe odd implication I get from this, is that somehow the original Diablo was not programmed against open standards. Is that on purpose?
- Scene_Cast2 14y agoThere's a Diablo-like game also made in Javascript - http://www.smokymonkeys.com/triglav/ 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.
- lists 14y agoWeird, controls worked in Firefox on Windows but not Firefox on Linux
- moron4hire 14y agoThis 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 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 14y agoI see a green blob and a blue blob. What should do with it? :)
- schiang 14y agoThis 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.
- cpress 14y agoWhere are the cows?
- Bockit 14y agoI 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.
- sangupta 14y agoAwesome work. It's a bit slow in FF but works fine in Chrome. A welcome screen would be helpful.
- frannk 14y agocan not believe only 500 lines of code
- rawriclark 14y agoThis is running on a ie10 on winrt surface , cool stuff good job to the maker (even touch is working)
- deleted 14y ago[deleted]
- johnyzee 14y agoGTA in JavaScript: http://www.webworks.dk/enginetest http://www.webworks.dk/enginetest
- pjmlp 14y agoGreat! Now the browser finally caught up with MS-DOS games!
- ohwp 14y agoFun fact: this just works in Opera
- spyder 14y agoWow, the switch to webkit was fast. :)
- edgar_di 14y agothis must have been posted in HN before... NES emulator in javaScript http://fir.sh/projects/jsnes/ http://fir.sh/projects/jsnes/
- metaphorm 14y agoBorrowing some sprites and textures from Diablo 2 is hardly sufficient to call this "Diablo in Javascript".
- okamiueru 14y agoJust 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.