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 runda 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 (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 (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.

Descriere Arhitecturala

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

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