8 ms·
Quake in 13kb (2021)
- tithe 2y agoExcellent. I propose we inscribe the Doom and Quake source onto twin golden platters[0] and send them into outer space with the next interstellar probe. [0] https://en.wikipedia.org/wiki/Voyager_Golden_Record https://en.wikipedia.org/wiki/Voyager_Golden_Record
- gonzo41 2y agoThat's more like sending an interstellar threat to the stars. Beware of earth, it is full of a waring race of people.
- tithe 2y agoSuper 3D Noah's Ark, then?
- jl6 2y ago"Sir, it appears the humans only require two of every creature." "Very well, we shall start the optimization process with them."
- bitwize 2y agoAliens will probably be like "Oof, ping times to your galaxy are high... Here's some rollback netcode for intergalactic DM."
- Modified3019 2y agoOne of my favorite copypasta, for it’s cosmic level of deranged belligerence: “A LETTER TO ALL ALIENS SPYING ON EARTH'S WIRELESS INTERNET SIGNALS: DEAR ALIENS, IGNORE EVERYTHING THAT NASA AND THE SPACE NERD SCIENTISTS HAVE TOLD YOU. THIS IS THE ONLY OFFICIAL, LEGITIMATE, HONEST STATEMENT OF ALL THE PEOPLE AND GOVERNMENTS OF PLANET EARTH. ALL OF US COLLECTIVELY, WITHOUT EXCEPTION, THINK THAT: • EVERY ALIEN IS A SON OF A BITCH • WE WILL WIN ANY SPACE WAR • OUR ENTIRE PLANET IS A BOMB • FUCK YOU FUCK YOU WE WILL NEVER EVER CHANGE OUR OPINION IGNORE EVERYTHING THEY PUT ON VOYAGER 1”
- dmkolobov 2y ago“We like to pretend space is full of hell monsters you see”
- tiltowait 2y agoRight ... pretend ...
- basementcat 2y agoYou would also need to describe how to build a JavaScript interpreter starting from fundamental physical properties of the hydrogen atom.
- tithe 2y agoLeft as an exercise to the reader :)
- kernal 2y agoWhere it’s going they don’t need JavaScript.
- eru 2y agoNah, the aliens likely use JavaScript themselves. It's everywhere.
- hajhatten 2y agoHeard the project has < 100 billion stars on github.galaxy though, basically dead by this point.
- lifthrasiir 2y agoWell, you can use an approach like CosmicOS [1] to bootstrap a functional computer to the alien hardware and then write a JavaScript interpreter and display in that bootstrapped language. In fact autonomous agents might be needed in general due to the long round-trip time of such interstellar messages. [1] https://cosmicos.github.io/ https://cosmicos.github.io/
- basementcat 2y agoHoly Dark Forest Batman!
- gattr 2y agoWait, but in "Independence Day" they uploaded human-made computer virus into alien computer and it just worked™!
- bheadmaster 2y ago"This civilization appears to be sending threatening messages in form of a simulation that demonstrates their destructive intent. Put their eradication on the TODO list."
- izacus 2y agoOf course, you'll also need to inscribe the whole Chrome source code, since this demo outsources a lot of engine stuff to the browser :)
- tcsenpai 2y agoSo technically this could fit in 5 QR codes. I say technically because neither by building or downloading with wget I can get a local html version working, so I guess it would be useful to waste time creating 5 QR codes.
- alexjplant 2y agoNintendo kind of did this back in the day with the e-Reader accessory for the Game Boy Advance. It used dot-based "barcodes" to encode NES games onto cards that you scanned and subsequently played from RAM. I imagine that some deft compression and the ARM Thumb instruction set came especially in handy here.
- tcsenpai 2y agoI once again reinvented the wheel, I see Jokes apart, didn't know that! Extremely cool!
- cmdr2 2y agoIt runs locally if you download the "m" and "l" files alongside it (for maps and models), and run it on a localhost server (to fix the CORS errors). curl "https://phoboslab.org/q1k3/index.html https://phoboslab.org/q1k3/index.html" > index.html curl "https://phoboslab.org/q1k3/l https://phoboslab.org/q1k3/l" > l curl "https://phoboslab.org/q1k3/m https://phoboslab.org/q1k3/m" > m python -m http.server -- I then zipped it up, and converted that zip file to 7 QR codes, so technically yes, we can fit Quake on a few QR codes.
- tcsenpai 2y agoSo bad is not a full html self runnable, I guess it is doable with some quick trickery. In that case, one could build a QR code html interpreter (aka read > output to file > open the file with firefox ) and it would be so cool
- mr_mitm 2y agoI did that trickery and it works: https://github.com/AdrianVollmer/Zundler https://github.com/AdrianVollmer/Zundler (I had to fix the mime type detection and I'll have to push that fix to PyPI, so use the main branch if you want to try it yourself.) Unfortunately, since we have to ship it with the gzip lib pako.js, the size more than quadruples to 77kb, so no QR code with this approach. Maybe I should look into making compression optional.
- treve 2y agoMind bending!
- jack_pp 2y agoweird to play without a crosshair, did the original quake not have one?
- deleted 2y ago[deleted]
- sjm 2y agoIt did but it was not enabled by default IIRC. Also fun fact the "crosshair" in original Quake was limited to only the character "+" from the character set. QuakeWorld later introduced a "crosshair 2" which was a slightly more complicated bitmap that you could change the color of.
- huesatbri 2y agoAnd the “+” was slightly off center as well if I remember correctly.
- lloeki 2y agoMy memory is fuzzy, there might not even had one at all in the first version. I had one of the first publicly distributed one (on a promo CD) and I remember it sure lacked a lot of stuff that were present down the road, IIRC even early 3dfx and then glquake had a bit more console options. As for alignment, well at 320x200 (or 240 if your video card+monitor could manage): - the crosshair might have been on the HUD layer which was pixel-aligned. - 2px wide would have been quite wide, and 1px would have been off centre. Tradeoffs tradeoffs. I remember thinking that Doom had this "always looking down the sights" feel and Quake inherited that but the 3D aspect of it was more like the weapon felt belly height instead of shoulder height. Since weapon was centered it wasn't too hard to aim horizontally, but Quake having 3d look up down and LOS hitscan line (vs Doom which hit the first enemy along a vertical plane) made Q hard-ish to aim vertically.
- tomduncalf 2y agoI seem to recall you had to open the console and type “crosshair 1”. I remember buying a book of all the console commands and various other tips haha
- jlund-molfese 2y agoFor anyone playing in Safari on a Mac—there seems to be something about games which capture the mouse that makes the cursor really slow. But holding down the left mouse button will bring it back to a normal speed.
- nilstycho 2y agoMaking of: https://phoboslab.org/log/2021/09/q1k3-making-of https://phoboslab.org/log/2021/09/q1k3-making-of
- mdaniel 2y agoI promise this is not intended as snark: if you already have .php files used for the build, why then do string and memory management in C?
- bilekas 2y agoI don't know for sure, but I would hazard a guess that it would take up less space, if memory serves, I don't think PHP has pointers for example and I guess things like that would be more space efficient in c.
- chuckadams 2y agoPHP has a pack() function that can write arbitrary bits, and if you like things extra-gnarly, you can manipulate arbitrary structs (and pointers) with FFI. But if there’s already a parser in C, it makes sense to use it.
- phoboslab 2y agoI assume you're talking about the pack_map.c used during build? That just was written in C because I had the .map parser already lying around from another side project. If I had done it from scratch for this project it likely would have been JS or PHP, too.
- FinchNova12 2y agoPrevious discussion: https://news.ycombinator.com/item?id=28520221 https://news.ycombinator.com/item?id=28520221
- casenmgreen 2y agoI need to be able to invert the Y-axis on the mouse. It looks amazing, but I can't play as it is.
- crawfishphase 2y agoopen your mouse and flip the y-axis sensors like a marine
- tgv 2y agoOr use it upside down. That has the additional benefit of also inverting the x axis.
- phoboslab 2y agoPlease play the post competition version: https://phoboslab.org/q1k3/ https://phoboslab.org/q1k3/ This fixes some bugs and also adds the mouse invert option.
- system2 2y agoIt is mind boggling for 13kb. After a few minutes I didn't even feel the difference. Just perfect.
- mdp2021 2y agoIt uses generative graphics like a simplification of the technique of Farbrausch (seen in its 64kb intros and usable in its ".werkkzeug" editor). > [the] library supports only 5 different functions: Embossed Rectangle; Embossed Grid; Noise; [draw] Text; Draw previous texture https://github.com/phoboslab/q1k3/blob/master/source/ttt.js https://github.com/phoboslab/q1k3/blob/master/source/ttt.js
- hajhatten 2y agoThe Farbrausch demo and a talk by Will Wright on the (originally planned) procedurally generated design of Spore lives rent free in my brain every time I see the list of 100's of gigabytes of queued game updates in Steam nowadays. https://www.youtube.com/watch?v=ofA6YWVTURU&t=100s https://www.youtube.com/watch?v=ofA6YWVTURU&t=100s
- saltserv 2y ago[dead]
- parag0n 2y agoGreat project, and clean code, thanks for this. Also interesting how you encode the soundtrack in js instead of putting it in the assets folder and then proceeding to sample the soundtrack in js yourself! "let music_data = [6014,21,88,[[[7,0,0,1,255,0,7,0,0,1,255,0,0,100,0,..."
- mdp2021 2y agoWell, when computers only had a few handful of kilobytes of RAM, we did not rely on samples... (Martin Galway being an exception, see Arkanoid on the C64 - but it is Genius and it merged organically with the system, it progressed the technique as opposed to bypassing it.)
- JoachimS 2y agoDang, could we change the title to 13 kB(yte), which is in the title of the the page? It is not 13 kb(it), which in this case a quite significant difference.
- jl6 2y agoBrilliant. It contains just enough content to re-activate the neurons where my memories of the original are stored, and my brain is filling in the rest.
- sbarre 2y agoYep! On the 2nd level, once I had the key, I kinda knew where I had to go? Even though the level isn't exactly the same as the one in Quake.
- deleted 2y ago[deleted]