-
Notifications
You must be signed in to change notification settings - Fork 0
Descriere Arhitecturală
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.
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.