Projekt zakłada pojedynki 1 na 1 w prywatnych pokojach, dostępne z telefonu i komputera. Klient odpowiada za widok 3D oraz sterowanie, a serwer za ruch, trafienia, obrażenia, zdrowie i wynik meczu.
Opublikowane przezObrazy wygenerowane za pomocą GPT Image 2
Research answer

Create a landscape editorial hero image for this Studio Global article: Selected skill instructions for this user request: 1. اريد منك دائما التحدث عبر كود يعني ان تتجدث عبر صندوق الكود وليس عبر الدردش Apply thes. Article summary: فيما يلي تسليم عملي باسم «Mace Duel Mobile» يعمل في متصفح الهاتف والكمبيوتر، ويستخدم: TypeScript + Vite + Three.js في العميل، وNode.js + TypeScript + ws في الخادم.. Topic tags: deepresearch, general web, workflow, code, typescript. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons,
„Mace Duel Mobile” przedstawiono jako praktyczny projekt gry 3D PvP działającej w przeglądarce — zarówno na telefonie, jak i komputerze. Stos technologiczny obejmuje TypeScript, Vite i Three.js po stronie klienta oraz Node.js, TypeScript i bibliotekę ws po stronie serwera.
Założenie jest proste: dwóch graczy trafia do prywatnego pokoju i rozgrywa serię pojedynków na arenie. Walka obejmuje zwykłe uderzenia maczugą, silniejsze ataki wykonywane podczas spadania oraz ładunki wiatru, które odrzucają przeciwników.
Najważniejszym elementem architektury jest serwer autorytatywny. Klient nie przesyła serwerowi „gotowych” informacji o zadanych obrażeniach, zdrowiu ani wiarygodnej pozycji postaci. Zamiast tego wysyła przede wszystkim wejście gracza: kierunek ruchu, obrót kamery i żądanie użycia ataku.
To serwer wykonuje symulację w stałym kroku 30 Hz i rozstrzyga:
Taki podział ogranicza możliwość prostego manipulowania wynikiem po stronie przeglądarki. Projekt przewiduje też podstawową walidację komunikatów, ograniczanie tempa żądań, heartbeat oraz mechanizmy kompensacji opóźnień przy trafieniach.
Projekt nie rezygnuje z klawiatury i myszy, ale szczególny nacisk położono na obsługę smartfonów. Układ sterowania ma działać wygodnie w orientacji poziomej:
W takiej grze ważna jest obsługa wielu punktów dotyku naraz — przykładowo gracz może jednocześnie poruszać postacią, obracać kamerę i nacisnąć przycisk ataku. Dokumentacja MDN opisuje dotyk jako zestaw niezależnych wskaźników, co odpowiada potrzebom tego rodzaju sterowania mobilnego 1.
Każdy zawodnik rozpoczyna rundę ze 100 punktami zdrowia i trzema ładunkami wiatru. Ładunki odnawiają się z czasem. Mecz wymaga zdobycia trzech wygranych rund, a pojedyncza runda ma limit dwóch minut.
System walki rozróżnia dwa rodzaje ataku maczugą:
Ładunek wiatru tworzy pocisk. Po trafieniu, kontakcie z podłożem, granicą areny albo po wygaśnięciu czasu życia pocisk eksploduje i odpycha postacie w promieniu wybuchu. Nie jest to bezpośredni system obrażeń — jego rolą jest przede wszystkim zmiana pozycji przeciwnika i stworzenie okazji do ataku z góry.
W przedstawionym układzie katalogów kod rozdzielono na trzy główne części:
client / src — scena Three.js, interfejs, sterowanie, dźwięk i prezentacja stanu gry;server — pokoje, pętla symulacji, fizyka rozgrywki, pociski i obsługa połączeń;shared — wspólne typy protokołu, stałe zasad oraz funkcje walidujące.Wspólny moduł z zasadami definiuje m.in. szybkość ruchu, grawitację, zasięg ataku, czas odnowienia, obrażenia, promień eksplozji, długość rundy i liczbę zwycięstw potrzebnych do wygrania meczu. Dzięki temu klient i serwer mogą korzystać z tych samych definicji bez duplikowania podstawowych parametrów.
W warstwie renderowania wskazano użycie InstancedMesh dla elementów powtarzalnych, takich jak fragmenty podłoża. To wariant obiektu Three.js przeznaczony do renderowania wielu instancji wspólnej geometrii i materiału 2. W praktyce pomaga to ograniczać liczbę wywołań rysowania, co ma znaczenie zwłaszcza na słabszych urządzeniach mobilnych.
Projekt przewiduje także możliwość wyłączenia map cieni. Three.js udostępnia konfigurację shadowMap, a mapy cieni nie są domyślnie włączone w rendererze 4. Taka opcja pozwala potraktować jakość obrazu jako ustawienie, a nie obowiązkowy koszt wydajności.
Komunikacja w czasie rzeczywistym odbywa się przez WebSockety. Serwer utrzymuje pokoje dla maksymalnie dwóch osób, wysyła okresowe snapshoty stanu, a po rozłączeniu uczestnika może zakończyć mecz na korzyść pozostałego gracza.
Opisany materiał jest solidnym szkieletem prototypu, ale przed publicznym wdrożeniem wymaga pełnej weryfikacji. Należy między innymi przetestować zachowanie przy wysokich opóźnieniach, rozłączeniach, wielokrotnych równoczesnych wejściach do pokoju oraz na szerokim przekroju urządzeń mobilnych.
Przy wdrożeniu publicznym konieczne jest również bezpieczne wystawienie połączeń sieciowych, odpowiednia konfiguracja reverse proxy i TLS, monitoring oraz testy obciążeniowe. Sama autorytatywna symulacja po stronie serwera jest dobrym punktem wyjścia, lecz nie zastępuje kompletnej ochrony infrastruktury ani testów bezpieczeństwa.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
Projekt zakłada pojedynki 1 na 1 w prywatnych pokojach, dostępne z telefonu i komputera.
Projekt zakłada pojedynki 1 na 1 w prywatnych pokojach, dostępne z telefonu i komputera. Klient odpowiada za widok 3D oraz sterowanie, a serwer za ruch, trafienia, obrażenia, zdrowie i wynik meczu.
Na telefonie przewidziano wirtualny joystick, przesuwanie widoku, skok, sprint, atak maczugą i ładunek wiatru.