Repository navigation
Easter egg: Athega Space - #57
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Athega Space (draft)
Hemligt spel på egen branch; inte publicerat på main. Starta med fem snabba klick på startsidans logga eller Konamikoden.
Spel
Upp till fyra spelare
PeerJS Cloud sköter kostnadsfri signalering; WebRTC skickar speldata mellan webbläsarna. Värden avgör träffar/poäng och samordnar sidbyten. Spelarna har färgade skepp, namn vid skeppen och en gemensam spelarlista. Powerups är individuella.
Endast triggerdetektorn laddas vid vanlig sidvisning. Spelmoduler, ljud och CSS laddas vid aktivering. Den lokalt serverade PeerJS-bundlen och nätverksanslutningen startar först vid Skapa rum/Anslut, även när lobbyn öppnats via inbjudan.
Ingen TURN finns, så vissa nätverk kan inte ansluta. Värden måste ha spelet öppet; efter att värden lämnat fortsätter gästerna i sololäge. Pilotnamn hålls i minnet och delas med deltagarna samt ingår i signaleringen. En localhost-länk fungerar endast på samma dator.
Verifierat
Inte provat på fysisk iPhone/Safari eller mellan två olika internetanslutningar. Prototypen är co-op och saknar tävlingsskydd mot fusk. Full användarguide finns i README.md.
Gemensam spelvärld och kamera
/blogg/#space=…fungerar också; gästen följer värdens aktuella sida efter anslutning.Verifierat i Chromium med fyra olika skärmar (1440 × 1000, 390 × 844, 844 × 390 och 1024 × 768): identisk sidlayout, skeppsträff, följande kamera, gemensam scroll/gravitation/ljud, sidbyte och avslut. Separat test av inbjudan från bloggarkivet, inklusive äldre länkar med undersida. Efter uppdateringen behöver redan öppna spel laddas om och en ny inbjudan skapas.
Lobby, ronder och skador
Verifierat i webbläsare: namnets beständighet och blockerad storage; väntelobby och värdstart; skeppskollision med/utan sköld; exakt en kill/död per nedskjutning och kraschljud hos båda; samma vinnare vid tidsgränsen; återställning inför ny rond; objektskador stegvis, synk och sen anslutning. Bygge, 39 tester och sidkontroll av 255 sidor går igenom.
Minor, bomber och isolering
Genomförd granskning mot main
Reviewfixar:
3df4650. Senaste main (076bc759) är inmergad i feature-branchen (2fc592c). Main är inte ändrad/publicerad.Rättade fynd, i prioritetsordning:
Struktur: Gränssnitt/tema, ritfunktioner och protokollregler ligger i separata moduler. Gemensamt meddelandeformat, dokumenterade modulansvar och reproducerbara browsertester. Rester från tidigare direktmanipulation av sidan och sektorterminologi har tagits bort.
Isolering: Vanlig sidvisning laddar endast trigger.js (cirka 3 kB okomprimerad). Spelkod/CSS/iframe laddas vid aktivering; PeerJS först vid Skapa/Anslut. Vanliga sidans DOM förblir orörd. Avslut återställer inert, fokus och scroll samt stänger ljud, nätverk, timers och lyssnare.
Verifiering: 51 automatiska tester godkända, bygge godkänt, 255 sidor kontrollerade och samtliga 255 URL:er från aktuella main bevarade. Chromium i desktop/mobilstorlek, upprepade starter/avslut, CSS-fel och Escape under laddning. Riktiga två-/trespelartester för lobby, navigering, gamla meddelanden, kills/vinnare/omstart, minor/bomber och objektskador vid sen anslutning. Ett live-test fick anslutningstimeout; samma test gick igenom vid omkörning utan kodändring.
Bedömning: Behåll statiska ES-moduler, separat iframe och PeerJS för denna funktion. Ingen ny spelmotor eller eget serverbygge behövs för nuvarande omfattning. Game.js är fortfarande en relativt stor samordnare; ytterligare spelfunktioner bör fortsätta läggas i avgränsade moduler.
Kända begränsningar: Ingen TURN eller värdmigrering; vissa nätverk kan inte kopplas ihop. Håll värdens flik aktiv eftersom webbläsare begränsar bakgrundsfysik. Klienterna betros för lokal rörelse/skrov, så detta är inte ett fuskresistent tävlingsspel. npm audit har befintliga fynd i byggverktyg; kontroll mot main-lockfilen visar att inga av fynden introducerats av denna branch.