Ontwikkelaar maakt Quake-levels in JavaScript met omvang van 13kB

Ontwikkelaar Dominic Szablewski heeft twee levels van het legendarische schietspel Quake omgezet in JavaScript die met verdere aanpassingen nog slechts 13kB in beslag nemen. De levels zijn in de browser speelbaar.

Szablewski, alias PhobosLab, noemt zijn Q1K3-project een hommage aan Quake. De twee levels zijn geïnspireerd op de E1M1- en E1M3-levels van het origineel en de JavaScript-package bevat verder drie wapens, vijf verschillende vijanden en audio, beschrijft Kotaku. De browserversie bevat beelden met lage resolutie, maar de weergave is snel, soepel en prima speelbaar. De code staat op GitHub.

Het project is onderdeel van de Js13KGames-competitie van 2021. Dit jaarlijkse evenement is in 2012 gestart met als doel voor deelnemers om met HTML 5 en JavaScript een game van 13kB of minder te ontwikkelen. Alle minigames van dit jaar en eerdere competities zijn speelbaar. Bij het evenement van dit jaar was er bijvoorbeeld ook een op Portal geïnspireerde game.

Quake Q1K3

Door Olaf van Miltenburg

Nieuwscoördinator

14-09-2021 • 13:26

26

Submitter: himlims_

Reacties (26)

26
25
16
1
0
3
Wijzig sortering
Franse demoscener "p01" doet ook vrij coole sizecoding shizzle in javascript... http://www.p01.org/MONOSPACE/ bijv is 1k (of z'n tetris in 256 bytes)
Door de enorme hoeveelheden RAM is de "squeeze until it fits"-programmeerstijl helaas(?) niet meer zo belangrijk. Een mooi stukje nostalgie vind ik steeds implementatie crash bandicoot op playstation 1:
https://arstechnica.com/g...the-original-playstation/
Dat is ook niet te doen als je enkele uren krijgt om een pagina te bouwen. Waarom zelf een tabel maken met zoekfunctionaliteit als hier een library voor is? Die mensen hebben immers er goed over nagedacht, waarschijnlijk beter dan je in je ééntje kunt.
Hierdoor krijg je helaas wel websites die eerst ff 15mb downloaden
Vaak kan je bij libraries in slechts submodules installeren/vereisen. Maar ook daarbij wordt voor development vaak gewoon de volledige library gebruikt en wordt het efficiënter maken achteraf vergeten.
Niet zozeer "vergeten" eerder een budget keuze.
Het koste mij een jaar om een simpel webmail programma efficiënt te maken.
Ben ik klaar? Nee nog steeds niet.
Resultaat:
https://snappymail.eu/static/img/lighthouse-compare.png

Je begrijpt dat een game van 4GB efficiënt maken, dan een monster klus is.

[Reactie gewijzigd door DJMaze op 22 juli 2024 14:56]

Waarom zelf een tabel maken met zoekfunctionaliteit als hier een library voor is? Die mensen hebben immers er goed over nagedacht
Dit is vaker niet waar dan wel.
Niet helaas, doordat het niet heel erg relevant meer is kunnen nu hele volksstammen aan mensen games maken die "in de goede oude tijd" wellicht enkel tegen een muur aan zouden lopen. Ik heb het nog net aangestipt en ik was meer bezig met het proberen code niet te laten crashen dan dat ik bezig was met het maken van een programma/game. En je moest bijna alles zelf rollen want heel veel libraries en frameworks waren er niet...

Wat een opluchting toen ik voor het eerst Visual C++ mocht aanraken en een zee aan geheugen tot mijn beschikking had (16mb destijds...)
Mwah niet helemaal waar :),
Voor nieuwe games op specifieke target platform wat minder maar je zit nog altijd met je RAM budget, vergeet niet dat de assets zelf ook groeien in grootte.

Maar merendeels in ports, waar ik laatst een PS4 game naar de Switch heb moeten brengen, en daar was RAM wel echt een ding waar ik toch winst uit moest halen, met meer dan 50% minder om mee te werken en die game intact houden was toch een klus.
Waarom een filmpje kijken als je het in je browser kunt spelen? https://js13kgames.com/games/q1k3/index.html
ik vind mooi :+ maar staat gewoon in het artikel de 'speelbare link'
zelfde ontwikkelaar heeft quake ook 'geport' naar VR; https://phoboslab.org/log/2016/05/quake-for-oculus-rift

[Reactie gewijzigd door himlims_ op 22 juli 2024 14:56]

Anoniem: 221563 @chaozz14 september 2021 14:52
Op mobiel werkt die niet, dus wel zo handig zo’n video om een indruk te krijgen.
Lol, link staat gewoon in het artikel. Dit is gewoon iemands grap herhalen, maar dan luider :D
Werk enzo, ik heb het op een tablet voor mijn neus draaiende als achtergrondlawaai :)
Geen invert mouse, dus ik schiet steeds mis :D
https://phoboslab.org/q1k3/

Deze versie ondersteund wel invert mouse, even vinkje zetten bij de checkbox.
Ondanks dat toch weten uit te spelen :-)
Haha, ik was al bang dat ik de enige was die nog steeds alles met inverted muis speelt.
Heb even enorm m'n best gedaan, maar m'n hersenen willen dit echt niet op de een of andere manier.
Nopes, inverted ones unite! =)

Zag de commit op GitHub, wel fijn dat het erin is gezet, ga ik niet meer dood aan 1e ventje =)
Offtopic: ook al gemeld via de smiley; dit zou eigenlijk een .geek artikel moeten zijn.
Ontopic: wat gaaf gedaan, nog beter dan de demo-scene :)
Anoniem: 221563 14 september 2021 15:22
Hmm, ik kan alleen óf lopen, óf richten. Maar niet tegelijk. Lopen andere daar ook tegenaan? (Laptop toetsenbord/trackingpad)
Sommige laptops blokkeren je trackpad als je aan het tikken bent.
De meeste laptops blokkeren de touchpad wanneer je aan het typen bent. Bij sommige laptops is dit eenvoudig uit te schakelen, bij anderen moet je dan iets in het register aanpassen.
Geinig maar zeker ook gewoon tof.
Lekker, mag ik weer uit gaan leggen waarom onze Javascript bundle ruim 50x groter is. Knap gedaan!

Op dit item kan niet meer gereageerd worden.