Proiect de echipa

Deadline prezentare: 22 ian 2024 sau in ziua examenului

Punctaj: 3p

  • Detalii despre proiect si punctarea acestuia sunt prezentate in acest mesaj
  • Veti primi in curand un document in care sa va impartiti pe echipe si sa specificati ideea jocului.

Cerinte

Overview: Realizarea unui joc multiplayer cu backend in echipe de pana la 4 persoane, care reuneste si extinde conceptele studiate la aceasta materie.

Cerinte de baza

Genul jocului: La alegere, atat timp cat ideea se preteaza unui joc de tip multiplayer si integrarea unui sistem pentru backend. Cateva idei sunt mentionate in continuare (lista nu e exhaustiva, puteti veni cu concepte proprii).

  • MOBA, cu mecanici simplificate, ex. League of Legends, DOTA 2, etc.
  • Shooter, first sau third person, extindere la ideea de Battle Royale daca doriti
  • Card game / deck management, in ideea jocului Hearthstone
  • Party game (exista multe variatii, e un genre destul de larg), ex. Overcooked, Fall Guys, etc.
  • Survival, de ex. Lethal Company, The Forest, etc.

Platforma target: La alegere, PC, mobile, etc.

Dimensiune echipa dezvoltatori: 1-4 persoane.

Jocurile date ca exemplu anterior sunt complexe, asadar folositi-le ca inspiratie, important este sa acoperiti cerintele din punct de vedere technic si sa le scalati in functie de dimensiunea echipei.

In continuare sunt listate cerintele tehnice necesare jocului vostru.

Game launcher cu autentificare: Va trebui sa integrati si implementati un sistem de register si logic cu un backend la alegere (ex. PlayFab). Puteti folosi si variante third-party de autentificare, daca doriti, login via Steam, Google Play Games, Facebook, etc., alegerea depinde de platforma target.

Sistem de customizare sincronizat in backend: Indiferent de tipul de joc, va trebui sa implementati un sistem de customizare, care sa citeasca si/sau salveze date relevante in backend. Acest sistem depinde de tipul de joc pe care-l veti implementa, va oferim cateva exemple:

  • Pentru un shooter puteti avea un sistem de configurare skin-uri (personaj, arme), configurare loadout pentru arme inainte de runda, configurare mod de joc (deathmatch, squad-based, etc.)
  • Sistem de configurare a abilitatilor inainte de o runda de joc
  • Configurare pachet de carti
  • S.a.m.d

Sistem de matchmaking. Acesta are rolul de a gasi si de a aloca jucatorii in sesiuni de joc bazat pe anumite criterii. Exemple de astfel de criterii pot include:

  • Dimensiunea echipei: Ex. formarea echipelor de cate 2, 3 sau 4 jucatori
  • Nivelul de experienta: Pot fi create meciuri intre jucatori cu nivel/XP similar
  • Optiuni de configurare personalizate: Alegerea unui anumit mod de joc, harta, sau alte preferinte relevante
  • Exemplu simplicat de flow: Ex. Un client initiaza matchmaking → este plasat intr-o coada → backend-ul gaseste un alt client si returneaza informatii despre sesiunea de joc

Photon Fusion si PlayFab au sisteme ce faciliteaza implementarea unui sistem de matchmaking.

Sincronizare joc in retea cu minim 2 clienti: Similar laboratului precent, jocul vostru va trebui sa poata fie jucat online. Puteti opta pentru un joc de tip host si clienti sau server si clienti. In final, jocul va trebui sa poata sa fie jucat de minim 2 clienti in mod concurent.

Sinronizare sisteme relevante in retea: Intrucat componenetele ce se supun sincronizarii depind de la joc la joc, cerinta acesta se refera la implementarea sincronizarii in retea a sistemelor de joc relevante. Cateva exemple:

  • Animatii sincronizate catre toti clientii
  • Coliziuni/rigidbodies sincronizate
  • Audio si efecte de particule sincronizate

Arhitectura cod modulara: Cerinta este mai mult impusa pentru a facilita lucrul in echipa. La nivel de echipa, studiati la inceput (inainte de implementare) workflow-uri eficiente pentru:

  • Minimizarea conflictelor (de natura programatica)
  • Decideti daca exista design patterns care ajuta sa pastrati codul usor de extind
  • Folositi sistemele de evenimente prezentate in laboratorul 2

Exemple de functionalitati bonus

Server hosting: Realizati un build pentru server si hostati-l remote. De exemplu, PlayFab MPS permite un astfel de deployment pe server-ele lor. Astfel, clientii se vor conecta acum la server-ul remote cand incep sesiunea de joc

Voice chat: Sistem de voice chat (cu sau fara proximity). De exemplu, Photon are un modul auxiliar “Voice 2”, care se poate integra cu Fusion

Economy system

“Beta testing”: Incheiati etapa din prototipare prin a “lansa” jocul intr-o capacitate simpla. De ex., hostati build-ul de client/host pe itch.io astfel incat sa poata fi testat rapid

  • In mod optional, pregatiti o scurta descriere a jocului pentru utilizatori. Puteti folosi un feedback form (Google Forms) pentru a colecta feedback.
  • Testati jocurile colegilor!

Alte functionalitati ce extind jocul vostru pot fi considerate bonusuri. Punctajul oferit ca bonus se scaleaza in functie de complexitatea sistemelor implementate.

pjv/laboratoare/2024/proiect.txt · Last modified: 2024/12/17 19:50 by andrei.lapusteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0