Skip to content

Dungeon Master is a 2D dungeon crawler roguelite game made in Unity as a university team project. It is not meant to be a commercial game.

License

Notifications You must be signed in to change notification settings

rrrrares33/MDS-UnityProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dungeon Master

This game can be built from its own release or its launcher's release. The game launcher is available right here!

Demo

Un demo scurt al proiectului poate fi regăsit chiar aici!

Membrii echipei

  • Kaya Adrian
  • Gherasim Rareș
  • Popa-Podărăscu Ioan-Petrino

User stories

image

Descrierea jocului

În momentul de față, un jucător poate să descarce launcher-ul și să înceapă un nou joc. De fiecare dată când jocul este rulat, o hartă nouă și diferită se generează cu un număr de 20 de inamici pe aceasta și cu mai multe camere. Jucătorul trebuie să treacă prin toate camerele fără a-și pierde viața din cauza atacurilor inamicilor. Inamicii vor încerca să îl atace venind foarte aproape de acesta. Pentru a se apăra, dar și pentru a-și omorî adversarii, player-ul poate să atace folosindu-se de sabia pe care o are în mână, care omoră inamicii. Pentru movement se pot folosi ori tastele WASD, ori săgețile de pe tastatură.

image

Instalare

Pentru a instala proiectul este suficient să avem launcher-ul prezent în primul paragraf. Practic acesta este legat de un Google Drive pe care se află starea curentă a jocului și numărul versiunii. Dacă versiunea din launcher diferă de cea de pe Drive, atunci descarcă și încarcă noua versiune. Dacă nu, nu face nimic.

image

UML

Acesta este realizat doar pentru generatorul hărții, care este unul aleator, iar la fieceare rulare generează harta altfel. Schema UML este urmatoarea (MonoBehaviour este o parte implementată deja în Unity, restul sunt implementate de noi):

image

Source control

Pentru partea de branch-uri am lucrat pe un singur branch, pe cel denumit master. Am avut 52 de commit-uri pe parcursul proiectului, deoarece am incercat să menținem evindența fiecărei mici schimbări pe care am adus-o codului sau aspectului jocului.

image

Teste automate

Unity suportă două tipuri de teste automate: cele din Edit Mode și cele din Play Mode. Ele pot fi văzute în Unity mergând la Window > Panels > Test Runner.

image

Testele în modul Edit sunt menite să testeze părți din cod în orice moment, făcându-le foarte similare cu testele automate regăsite în alte tipuri de software. Pentru acest tip testăm dacă cele 4 direcții cardinale și diagonalele, folosite pentru algoritmul Simple Random Walk în generarea aleatoare, au coordonatele potrivite ca să ne asigurăm că fiecare direcție corespunde cu realitatea.

image

Însă, testele din modul Play vor porni o instanță a jocului deoarece sunt menite să testeze comportamentul codului la runtime. Pentru acest mod am testat dacă există tile-uri pentru podea care să fie izolate, adică dacă există părți inaccesibile pe hartă, lucru ce nu ar trebui să se întâmple niciodată.

image

Bug reporting

Pe partea de bug reporting avem două bug-uri raportate în cadrul tabului Issues din proiectul de pe GitHub. Acestea au fost rezolvate, deci sunt marcate drept closed la momentul actual.

image

Build tool

Pentru build tool am folosit singurul build tool pe care am reușit să îl găsim care să funcționeze cu Unity, acesta realizând versiuni are jocului pentru următoarele platforme: MacOS, Windows x32, Windows x64, Linux x64. Am reușit să testăm pe MacOS și pe Windows x64 și putem spune că merge foarte bine pe acestea. La fiecare push care se realizează, build tool-ul acționează și generează variantele necesare ale proiectului.

image

Design patterns

Pentru a putea implementa partea de design patterns am folosit un singleton generic care este moștenit de clasa GameManager a noastră. Această clasă are rolul de a administra funcționalitățile jocului și de a-l genera, motiv pentru care un singleton este optim pentru aceasta deoarece nu ne dorim niciodată să apară două obiecte instanțiate cu această clasă în cadrul jocului. De asemenea GameManager trebuie să persiste în cazul în care se încarcă o scenă nouă ca să păstrăm datele între ele. Nu am putut implementa mai multe scene, dar dacă era cazul atunci nu ar fi fost o problemă datorită singletonului.

image

image


Surse externe

About

Dungeon Master is a 2D dungeon crawler roguelite game made in Unity as a university team project. It is not meant to be a commercial game.

Topics

Resources

License

Stars

Watchers

Forks