10 ms·
Asciicker – an online 3D game demo rendering to ASCII text
- megamindbrian2 7y agoSource or it didn't happen...
- cproctor 7y agoIt's so lovely! You can see your reflection in the water.
- preommr 7y agoThe reflection in the water is really nice - it even shows the underside of the roof of the houses!
- Jyaif 7y agoI love it. [Q] and [E] to rotate the camera. You can take a look at the ressources to get an idea of how it was done: http://asciicker.com/x13/images/ http://asciicker.com/x13/images/
- 1_player 7y agoWorks pretty good on an iPhone, though I can't jump with touch controls
- mysterydip 7y agoTapping with two fingers at the same time let me jump on my iPhone (used firefox if that matters)
- 1_player 7y agoNice! And tapping the top left and right corners of the screens rotates the camera. Really smooth
- mratzloff 7y agoWhat are the mobile controls? Nothing works for me.
- hortense 7y agoYou can see the progression by starting with http://asciicker.com/x1/ http://asciicker.com/x1/ Very nice.
- jordanwallwork 7y agox3 is fun
- TheCraiggers 7y agoReally impressive. The first time I rotated the camera my jaw dropped a bit.
- deleted 7y ago[deleted]
- stfwn 7y agoSame! It works flawlessly on mobile as well, 60 fps without any frame drops on my iPad at least. Tap and drag to move, tap with an extra finger to jump, tap edge to rotate. Really cool stuff! Edit: the reflection in the water is a nice touch.
- deleted 7y ago[deleted]
- jansan 7y agoThanks, only after reading your comment I found why they call it a 3D game.
- 5trokerac3 7y agoI would love to see this demo ported to an 8 bit computer
- PorterDuff 7y agoI'm waiting for the 3270 version.
- vardump 7y agoI don't think any eighties 8-bit computer has any hope rendering this.
- PhasmaFelis 7y agoThere were realtime 3D games on 8-bit machines. The framerates were atrocious, and they used wireframes or simple filled polygons, but they were also higher-resolution. The C64's character display is 40x25, so that's only 1000 "pixels" per frame. I think it could be done, with reasonable sacrifices.
- vardump 7y ago> I think it could be done, with reasonable sacrifices. Yeah, like dropping rotation. I think it'd be easier to do 80x50 rendering than ASCII. > The framerates were atrocious... That's the sacrifice you'd need to make.
- PhasmaFelis 7y agoI don't think anyone's saying you could do a cycle-perfect emulation on 8-bit. The framerate would be low, the terrain mesh would have to be much simpler. But The Sentinel[1] ran on C64 with acceptable framerates (better than a lot of 3D games with much simpler graphics). I think you could manage a perfectly satisfactory port of Asciiker, even with rotation. [1] https://www.youtube.com/watch?v=D2H8WbDo5SE https://www.youtube.com/watch?v=D2H8WbDo5SE
- 7y ago
- ArtWomb 7y agoPerformance is terrific! Can you explain a bit how the renderer actually draws to screen? Looks like you create a mini texture per "font" and then draw as a list of quads per pixel? Also I noticed some websocket netcode up front. Is a multiplayer classic RTS in the works? ;)
- dirkk0 7y agox11 is multiplayer.
- amelius 7y agoI'm getting 52 fps, but it's not really surprising given that the effective resolution is quite low. Tip: in Firefox you can zoom out by opening the hamburger menu and changing the zoom level e.g. down to 30%.
- PhasmaFelis 7y agoLooks like this also works in Chrome. Also Ctrl-scrollwheel.
- exadeci 7y agoZooming out makes it look really nice!
- mihaifm 7y agoAny details on the tech? Looks amazing!
- Madmallard 7y agoYou can look at all of the source. Lots of math.
- nukeu666 7y agoAdd chat and you have a MMO
- apexalpha 7y agoThe multiplayer is fake I think. Me and my colleagues can't find each other and no one responds to weird walking by me.
- fclairamb 7y agoYes, I wanted to see what kind of communication protocol he used and there isn't any. Using the chrome dev tools shows no communication outside of the very few JS files and assets the game loads (very impressive by the way).
- jszymborski 7y agoYa, I've been doing figure-eights around folk and they haven't really reacted.
- askariwa 7y agoGreat work, i like what i see in http://asciicker.com/ http://asciicker.com/ too :-)
- rpmisms 7y agoThat's mind-boggling
- bnegreve 7y agoA bit more info here https://www.reddit.com/r/asciicker/comments/d3ca43/whats_going_on/f03z4xk/?utm_source=share&utm_medium=web2x https://www.reddit.com/r/asciicker/comments/d3ca43/whats_goi...
- flanbiscuit 7y agoWorks great on mobile! This is super cool!
- juancampa 7y agoWhen testing it, make sure you press `Q` and `E`
- PhasmaFelis 7y agoHoo boy, that makes a difference. Not sure how I missed it the first time.
- jjuel 7y agoAm I the only one who can't help but see it as Ascii Licker?
- TallGuyShort 7y agoThe ii in Ascii looks like li, so closer to Asslicker.
- metalliqaz 7y agoin what font does 'ii' look like 'li' ?
- TallGuyShort 7y agoSeriously? Any font that only separates the line from the dot with 1 or 2 pixels. Especially if you're only glancing long enough that a c could be mistaken for an l.
- bigwavedave 7y agoIf that's the case, shouldn't it look like "ascllcker"?
- TallGuyShort 7y agoAre you saying that if someone wrote 'cick my balls' you're not going to think for a brief moment they said something else?
- PhasmaFelis 7y agoOur minds try to fit uncertain patterns into familiar shapes, like the classic email forward: "Aoccdrnig to rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe."
- nydel 7y agohuh having some problems connecting at Wed Sep 18 14:22:32 UTC 2019 ... 404 Not Found ... will try later, sounds very interesting!
- jjuhl 7y agoA mention of AAlib ( https://en.m.wikipedia.org/wiki/AAlib https://en.m.wikipedia.org/wiki/AAlib , http://aa-project.sourceforge.net/aalib/ http://aa-project.sourceforge.net/aalib/ ) seems relevant.
- tuyiown 7y agoWell, you just can't omit libcaca :) https://en.m.wikipedia.org/wiki/Libcaca https://en.m.wikipedia.org/wiki/Libcaca
- sebular 7y agoThis is great. To anyone playing around with it: if you decrease your font size, it zooms you out!
- natmaka 7y agoThis somewhat reminds me of libcaca, "a graphics library that outputs text instead of pixels", used by well-known software. Invoke "mplayer --vo=caca ((a video file))" https://github.com/cacalabs/libcaca https://github.com/cacalabs/libcaca
- misterdoubt 7y agoAnd so I set off into a seemingly endless ocean. I'll let you know if I reach new vistas.
- baking 7y agoThere are edges and corners but I haven't swum the complete edge yet.
- GuyPostington 7y agoThe name is great.
- curlypaul924 7y agoThe reflection in the water is a nice touch.
- andischo 7y agoSeems like one turn is 60°. Is there a specific reason why it isn't 45° or 90°? Is there maybe some advantage to the 60° in regards to the ascii rendering?
- tibbon 7y agoHow slow would something like this be, had someone tried to make it for a 386/486 era computer? Like, could have this technique been used effectively for 3d games of that era?
- vanderZwan 7y agoWell, the engine already uses a lot of tricks from that era as far as I can tell: it's isometric, so "fake" orthogonal 3D, and uses sprites with different angles to view them from under the hood for the buildings and trees. It then renders all of this to ASCII with WebGL, which I presume generates a sprite-sheet. Also keep in mind that games like Zarch[0][1] (aka Virus[2]) already existed in 1987. The ASCII actually hides the fact that we have a low rendering resolution, which may help a lot here. So I think the main limitation might be the tricks required to render to ASCII, and time it takes to display those ASCII characters. Assuming the implementation tries to make a pure text-based renderer instead of a bitmapped one. Searching on pouet.net for "ASCII" doesn't reveal many demos[3], but the few that exist look pretty cool[4][5]. They lack separate foreground/background colors though, which bring up one important point: what terminal are you targeting? Anyway, I'm pretty sure there are more demos out there that basically render to the console but I don't remember the names right now so can't find them. [0] https://www.youtube.com/watch?v=xrN2soK60bA https://www.youtube.com/watch?v=xrN2soK60bA [1] https://www.youtube.com/watch?v=L7J5_5GZzeg https://www.youtube.com/watch?v=L7J5_5GZzeg [2] https://www.youtube.com/watch?v=V1sYsOm-y8w https://www.youtube.com/watch?v=V1sYsOm-y8w [3] http://www.pouet.net/search.php?what=ascii&type=prod http://www.pouet.net/search.php?what=ascii&type=prod [4] https://www.youtube.com/watch?v=kwy5RhRNVt0 https://www.youtube.com/watch?v=kwy5RhRNVt0 [5] https://www.youtube.com/watch?v=ZuhO1pHsKtU https://www.youtube.com/watch?v=ZuhO1pHsKtU
- nomel 7y agoDid you rotate the camera? The trees look like models.
- vanderZwan 7y agoElsewhere in the thread someone linked the art assets: http://asciicker.com/x13/images/ http://asciicker.com/x13/images/ As you can see it makes use of (I suspect paletted) PNGs
- gregf 7y agoThis is what dwarffortress needs IMO.
- artemonster 7y ago^^^THIS
- thih9 7y agoCould you add more detail as to why parent's opinion is important to you? E.g. what was your story with Dwarf Fortress UI?
- artemonster 7y agothe DF UI is a big "fuck you and fuck you again in yo face" design. this is coming from vim/emacs user (no probs with modality, long chords, etc). also coming from a user, who gladly enjoys text only games. But for DF a good UI is a necessity, or else it gets in your way. Your fun and productivity is obsctructed by the UI, most of gameplay is focused on navigating through UI, not playing. my 2ct ¯\_(ツ)_/¯ Also why I find Factorio so enjoyable - when you can zoom out and admire your creation acting for a while. If you zoom out in DF your eyes start to bleed.
- s_m_t 7y agothe stonesense mod adds this
- laurent123456 7y agoPlease consider adding support for non-qwerty keyboards (we don't have wasd, but zqsd). MDN has a very good example for this: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code#Handle_keyboard_events_in_a_game https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEve... Very impressive demo otherwise!
- btbuildem 7y agoReally cool! Love the backwash on the waves, that's the kind of detail that creates realism -- much more than subpixel texture perfection.
- logfromblammo 7y agoThis is lovely. For the next version, I'd enjoy the ability to change the vertical angle of the viewport. I can't tell if the fixed angle is a cheat to reduce maximum draw distance, or an artifact of "haven't coded it yet".
- anchpop 7y agoHit q and e
- logfromblammo 7y agoThat changes horizontal angle.
- chimi 7y agoI get 404 not found from this link.
- JohnJamesRambo 7y agoToejam and Earl vibes.
- nneonneo 7y agoThis is a really cool demo - amazing it works so well. It's all unminified JS which is a breath of fresh air these days. Some commenters are asking how it gets such good performance and whether it would work on retro hardware. It seems it uses WebGL (and fails without it), so likely it depends on a 3D engine for at least some of the rendering process. Still, WebGL seems to be used for only a small part of the rendering pipeline. If you want to play with arbitrary rotations instead of being locked to 60-degree increments, punch this into the developer console: document.onkeydown = function(e) { if(e.key == '[') { dest_angle -= 1; } else if(e.key == ']') { dest_angle += 1; } else return true; } Then use [ and ] keys to rotate by 1 degree increments. (Tested to work on Firefox).
- vanderZwan 7y agoYou just successfully disproved my earlier assumption that this used optimizations specifically for isometric views! It actually uses the WebGL for the 3D part too (having said that, such optimizations would still have helped in the hypothetical case one might have wanted to implement this on old hardware) Also, on a desktop you can use the browser zoom (via the menu) to get it to increase the font size. I managed to get my HD screen to show 96 x 54 characters, which comes close to the resolutions on old DOS terminals I think. Now if only it came with a CRT shader, like this one by Timothy Lottes: https://www.shadertoy.com/view/XsjSzR https://www.shadertoy.com/view/XsjSzR
- zbuf 7y agoDisappointed to find it renders to <canvas> and not a set of divs and spans... I'll bet no-one could make it do that.