Skip to content

Descriere Arhitecturală

Razvan Capatina edited this page Jan 30, 2025 · 18 revisions

Sinteza Produsului Arhitectural si Comparatie cu Livrabilul Intermediar

  Proiectul final este un joc 2D top-down shooter, axat pe multiplayer si conceput pentru o experienta dinamica si personalizabila. Jocul include doua moduri de joc: Zombie Survival si Team Deathmatch, oferind atat o componenta colaborativa, cat si una competitiva.

Realizari fata de livrabilul intermediar:

  • Multiplayer functional – jucatorii se pot conecta si juca impreuna intr-o sesiune multiplayer.
  • Doua moduri de joc implementate – atat Team Deathmatch, cat si Zombie Survival, fiind complet functionale.
  • Generare procedurala a hartii – fiecare sesiune poate avea o configuratie diferita a mediului de joc.
  • Server implementat – Permite gestionarea conexiunilor si coordonarea jucatorilor intr-o retea LAN sau extinsa prin VPN (LogMeIn Hamachi).
  • Personalizare completa a jocului – jocul este modular, elementele de skin-uri, harti sunt usor de modificat de utilizatorii finali fara cunostinte tehnice.
  • Suport nativ pentru multiplayer extins – conectarea prin VPN (LogMeIn Hamachi) este posibila, dar nu exista un sistem integrat pentru joc online fara solutii externe, cu exceptia LAN-ului.

Idei propuse in livrabilul intermediar care nu s-au concretizat in dezvoltarea proiectului:

  • Post-Processing Effects
  • Custom Input
  • Weapon Upgrade
  • Tutorial

Proiectul a atins majoritatea componentelor propuse in cadrul livrabilului intermediar.

Cerinte Non-Functionale

Proiectul s-a concentrat pe imbunatatirea:

  • Responsiveness - importanta pentru comunicare eficienta intre Client si Server si pentru sincronizarea informatiilor intre clienti.
  • Availability - Serverul trebuie sa aiba rezistenta la un volum ridicat de request-uri intr-un timp scurt (numar mare de jucatori, multe evenimente intr-un timp scurt, etc.).
  • Usability - Clientul trebuie sa poate sa se conecteze fara probleme la Server in orice moment de timp. Serverul trebuie sa poata gestiona conectarea si deconectarea repetata a unui numar mare de utilizatori la sesiunile de joc valabile.
  • Security - verificarea continutului campurilor dintr-un formular, verificarea informatiilor ce ajung de la Client la Server

Descriere Arhitecturala

  Aplicatia a avut ca scop dezvoltarea unui joc multiplayer. Astfel am gandit structura ca fiind formata dintr-un Client si un Server.

  Serverul este componenta centrala care administreaza toate conexiunile jucatorilor, sincronizeaza starea jocului si gestioneaza evenimentele din joc. Acesta functioneaza pe un protocol modificat folosit in special de biblioteca ENet, care se bazeaza pe o combinatie intre TCP si UDP.

  Jocul poate fi rulat atat in Singleplayer, cat si in Multiplayer. Singleplayer-ul este simulat prin ideea ca avem un singur Client conectat la Server (comunicare unu-la-unu).

  Atat in Singleplayer, cat si in Multiplayer, Clientul care initiaza sesiunea de joc va instantia un Server pe masina sa locala, urmand ca ceilalti Clienti sa se conecteze la acesta. Astfel, ceilalti Clienti se pot conecta la Server, fie prin apartenenta lor la acelasi LAN cu cel ce a creat sesiunea, cat si prin simularea unui LAN Virtual folosind LogMeIn Hamachi. Aceasta comunicare este ilustrata in diagramele de mai jos.

Diagrame


System Context Diagram

SystemContextDiagram



System Container Diagram

SystemContainerDiagram



Class Diagram

ClassDiagram

Clone this wiki locally