mirror of
https://github.com/kristoferssolo/Qualification-Thesis.git
synced 2025-10-21 20:10:37 +00:00
feat(screen): add module
This commit is contained in:
parent
645a14aee5
commit
eb71f9261b
@ -46,6 +46,7 @@ papilspējas.
|
|||||||
numbering: none,
|
numbering: none,
|
||||||
"Abstract",
|
"Abstract",
|
||||||
)
|
)
|
||||||
|
#todo("add english title")
|
||||||
The qualification work includes the game "Maze Ascension", which offers
|
The qualification work includes the game "Maze Ascension", which offers
|
||||||
players the challenge to pass through procedurally generated hexagons
|
players the challenge to pass through procedurally generated hexagons
|
||||||
mazes. The game is built using the Rust programming language and Bevy
|
mazes. The game is built using the Rust programming language and Bevy
|
||||||
|
|||||||
149
main.typ
149
main.typ
@ -224,6 +224,7 @@ spēles līmeņu pārvaldības modulis,
|
|||||||
atveidošanas jeb renderēšanas un skaņas jeb audio moduļi.
|
atveidošanas jeb renderēšanas un skaņas jeb audio moduļi.
|
||||||
Šie procesi mijiedarbojas ar vienu datu krātuvi -- operatīvo atmiņu (RAM) -- un vienu
|
Šie procesi mijiedarbojas ar vienu datu krātuvi -- operatīvo atmiņu (RAM) -- un vienu
|
||||||
ārējo lietotāju -- spēlētājs.
|
ārējo lietotāju -- spēlētājs.
|
||||||
|
#todo("update module list")
|
||||||
|
|
||||||
Ievades apstrādes modulis uztver un apstrādā spēlētāja ievades datus.
|
Ievades apstrādes modulis uztver un apstrādā spēlētāja ievades datus.
|
||||||
Spēles stāvokļa modulis pārrauga vispārējo spēles stāvokli.
|
Spēles stāvokļa modulis pārrauga vispārējo spēles stāvokli.
|
||||||
@ -258,9 +259,9 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
|||||||
[*Funkcija*],
|
[*Funkcija*],
|
||||||
[*Identifikators*],
|
[*Identifikators*],
|
||||||
/* -------------- */
|
/* -------------- */
|
||||||
rowspanx(1)[Audio modulis], // audio
|
// rowspanx(1)[Audio modulis], // audio
|
||||||
[Skaņas efektu atskaņošana],
|
// [Skaņas efektu atskaņošana],
|
||||||
[],
|
// [],
|
||||||
|
|
||||||
rowspanx(1)[Izstrādes rīku modulis], // dev_tools
|
rowspanx(1)[Izstrādes rīku modulis], // dev_tools
|
||||||
[Labirinta pārvaldības saskarne],
|
[Labirinta pārvaldības saskarne],
|
||||||
@ -280,7 +281,7 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
|||||||
|
|
||||||
rowspanx(3)[Labirinta pārvaldības modulis], // maze
|
rowspanx(3)[Labirinta pārvaldības modulis], // maze
|
||||||
[Labirinta ielāde],
|
[Labirinta ielāde],
|
||||||
[],
|
[#link(<maze-F01>)[LPMF01]],
|
||||||
[Labirinta #red("pārlāde")],
|
[Labirinta #red("pārlāde")],
|
||||||
[],
|
[],
|
||||||
[Labirinta #red("izlāde")],
|
[Labirinta #red("izlāde")],
|
||||||
@ -299,19 +300,19 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
|||||||
[],
|
[],
|
||||||
|
|
||||||
rowspanx(4)[Spēles stāvokļa pārvaldības modulis], // screens
|
rowspanx(4)[Spēles stāvokļa pārvaldības modulis], // screens
|
||||||
[Spēļu stāvokļa pārvaldība],
|
[Spēles sākšana],
|
||||||
|
[#link(<screen-F01>)[SSPMF01]],
|
||||||
|
[Atgriešanās uz sākumekrānu],
|
||||||
|
[#link(<screen-F02>)[SSPMF02]],
|
||||||
[],
|
[],
|
||||||
[Spēles cilpas pārvaldība],
|
|
||||||
[],
|
[],
|
||||||
[Stāvokļu pāreju apstrāde],
|
|
||||||
[],
|
[],
|
||||||
[Spēles notikumu apstrāde],
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
) <function-modules>
|
) <function-modules>
|
||||||
|
|
||||||
=== Audio modulis
|
// === Audio modulis
|
||||||
#todo("uzrakstīt audio moduli")
|
// #todo("uzrakstīt audio moduli")
|
||||||
|
|
||||||
=== Izstrādes rīku modulis
|
=== Izstrādes rīku modulis
|
||||||
|
|
||||||
@ -328,7 +329,7 @@ Modulis pārbauda, vai konfigurācijā nav notikušas izmaiņas, un izraisa atti
|
|||||||
notikumus, lai atjauninātu labirintu un spēlētāja pozīciju, kad notiek izmaiņas.
|
notikumus, lai atjauninātu labirintu un spēlētāja pozīciju, kad notiek izmaiņas.
|
||||||
|
|
||||||
Svarīgi atzīmēt, ka šis modulis ir paredzēts lietošanai spēles izstrādes procesā.
|
Svarīgi atzīmēt, ka šis modulis ir paredzēts lietošanai spēles izstrādes procesā.
|
||||||
Laidiena #todo("double-check 'laidiens'") versijās šī lietotāja saskarne nebūs pieejama, nodrošinot, ka
|
Laidiena versijās šī lietotāja saskarne nebūs pieejama, nodrošinot, ka
|
||||||
gala lietotāji nevar piekļūt šīm uzlabotajām konfigurācijas opcijām.
|
gala lietotāji nevar piekļūt šīm uzlabotajām konfigurācijas opcijām.
|
||||||
|
|
||||||
// Moduļa funkcionalitāti var vizualizēt, izmantojot datu plūsmas diagrammu (DFD),
|
// Moduļa funkcionalitāti var vizualizēt, izmantojot datu plūsmas diagrammu (DFD),
|
||||||
@ -337,7 +338,6 @@ gala lietotāji nevar piekļūt šīm uzlabotajām konfigurācijas opcijām.
|
|||||||
// atjauninātas labirinta konfigurācijas un respawn notikumi.
|
// atjauninātas labirinta konfigurācijas un respawn notikumi.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#function-table(
|
#function-table(
|
||||||
"Labirinta pārvadības saskarne",
|
"Labirinta pārvadības saskarne",
|
||||||
"IRMF01",
|
"IRMF01",
|
||||||
@ -403,7 +403,7 @@ programmu.
|
|||||||
) <dpd-2-maze-gen>
|
) <dpd-2-maze-gen>
|
||||||
|
|
||||||
#function-table(
|
#function-table(
|
||||||
"Labirinta būzētājs",
|
"Labirinta būvētājs",
|
||||||
"LGMF01",
|
"LGMF01",
|
||||||
[Izveido sešstūrainu labirintu ar norādītajiem parametriem.],
|
[Izveido sešstūrainu labirintu ar norādītajiem parametriem.],
|
||||||
[
|
[
|
||||||
@ -446,20 +446,135 @@ programmu.
|
|||||||
=== Labirinta pārvaldības modulis
|
=== Labirinta pārvaldības modulis
|
||||||
#todo("uzrakstīt labirinta pārvaldības moduli")
|
#todo("uzrakstīt labirinta pārvaldības moduli")
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Labirinta ielāde",
|
||||||
|
"LPMF01",
|
||||||
|
[ Izveidot jaunu labirinta stāvu spēles pasaulē. ],
|
||||||
|
[
|
||||||
|
Ievades dati tiek saņemti no:
|
||||||
|
+ SpawnMaze notikuma (saturoša stāva numuru un konfigurāciju)
|
||||||
|
+ Bevy ECS komponentiem un resursiem
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Pārbauda, vai labirints šim stāvam jau eksistē.
|
||||||
|
+ Ja eksistē, parāda 1. paziņojumu un iziet no sistēmas.
|
||||||
|
+ Ģenerē jaunu labirintu balstoties uz nodoto konfigurāciju.
|
||||||
|
+ Aprēķina vertikālo nobīdi jaunajam stāvam.
|
||||||
|
+ Izveido jaunu entitāti, kas pārstāv labirinta stāvu, pievienojot tam
|
||||||
|
atbilstošās komponente.
|
||||||
|
+ Atkarībā no tā, vai tas ir pašreizējais vai nākamais stāvs, pievieno
|
||||||
|
attiecīgo komponenti.
|
||||||
|
+ Izsauc atsevišķu funkciju labirinta flīžu izveidei.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Izvades datu sistēmai nav.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ "Stāvs x jau eksistē."
|
||||||
|
+ "Neizdevās ģenerēt labirintu stāvam x."
|
||||||
|
],
|
||||||
|
) <maze-F01>
|
||||||
|
|
||||||
=== Spēlētāja modulis
|
=== Spēlētāja modulis
|
||||||
#todo("uzrakstīt spēlētāja moduli")
|
#todo("uzrakstīt spēlētāja moduli")
|
||||||
|
|
||||||
=== Spēles stāvokļa pārvaldības modulis
|
=== Spēles stāvokļa pārvaldības modulis
|
||||||
#todo("uzrakstīt spēles stāvokļa pārvaldības moduli")
|
#todo("uzrakstīt spēles stāvokļa pārvaldības moduli")
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Spēles sākšana",
|
||||||
|
"SSPMF01",
|
||||||
|
"Sākt spēles līmeni, ielādējot labirintu, spēlētāju un mūziku.",
|
||||||
|
[
|
||||||
|
+ Ekrāna stāvoklis
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Pievieno sistēmas spēles sākumā:
|
||||||
|
- Izveido līmeni;
|
||||||
|
- Izveido spēlētāju;
|
||||||
|
- Sistēmas tiek darbinātas secīgi.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Izvades datu sistēmai nav.
|
||||||
|
],
|
||||||
|
) <screen-F01>
|
||||||
|
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Atgriešanās uz sākumekrānu",
|
||||||
|
"SSPMF02",
|
||||||
|
"Apstrādāt atgriešanos uz titulekrānu no gameplay režīma.",
|
||||||
|
[
|
||||||
|
+ Ekrāna stāvoklis
|
||||||
|
+ Nospiestie tastatūra taustiņi
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Pārbauda, vai ir nospiests "Escape" taustiņš.
|
||||||
|
+ Ja nav, iziet no sistēmas un nedara neko.
|
||||||
|
+ Pārbauda, vai pašreizējais stāvoklis spēle ir aktīva.
|
||||||
|
+ Ja nav, iziet no sistēmas un nedara neko.
|
||||||
|
+ Samaina ekrāna stāvokli uz sākumekrānu.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Izvades datu sistēmai nav.
|
||||||
|
],
|
||||||
|
) <screen-F02>
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Attēlot sākumekrānu",
|
||||||
|
"SSPMF03",
|
||||||
|
"Izveido un parāda nosaukuma ekrāna lietotāja saskarni ar interaktīvām pogām.",
|
||||||
|
[
|
||||||
|
+ Ekrāna stāvoklis
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Pievieno interaktīvas pogas:
|
||||||
|
- pogu "Play" ar pāreju uz spēli;
|
||||||
|
// - pogu "Credits" ar pāreju uz kredītiem;
|
||||||
|
- pogu "Exit" (tikai platformām, kas nav WASM).
|
||||||
|
+ Pievieno novērotājus katrai pogai.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Izvades datu sistēmai nav.
|
||||||
|
],
|
||||||
|
) <screen-F03>
|
||||||
|
|
||||||
|
/* #function-table(
|
||||||
|
"Mūzikas atskaņošana",
|
||||||
|
"SSPMF03",
|
||||||
|
"Sākt atskaņot spēles mūziku gameplay režīmā.",
|
||||||
|
[ Ievades dati: + GameplayMusic resurss + AudioSource resurss ],
|
||||||
|
[ + Izveido jaunu audio entītiju + Pievieno AudioPlayer komponenti + Iestata atskaņošanas iestatījumus uz LOOP ],
|
||||||
|
[ + Aktīva audio atskaņošanas entītija ],
|
||||||
|
[ Nav definēti specifiski kļūdu ziņojumi. ],
|
||||||
|
) <screen-F03> */
|
||||||
|
|
||||||
|
/* #function-table(
|
||||||
|
"Mūzikas apturēšana",
|
||||||
|
"SSPMF04",
|
||||||
|
"Apturēt spēles mūziku, izejot no gameplay režīma.",
|
||||||
|
[
|
||||||
|
+ GameplayMusic resurss ar entītijas ID
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Pārbauda, vai eksistē mūzikas entītija:
|
||||||
|
+ Ja neeksistē, ...
|
||||||
|
+ Ja eksistē, likvidē entītiju rekursīvi
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Izvades datu sistēmai nav.
|
||||||
|
],
|
||||||
|
) <screen-F04> */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
== Nefunkcionālās prasības
|
== Nefunkcionālās prasības
|
||||||
=== Veiktspējas prasības
|
=== Veiktspējas prasības
|
||||||
Uz sistēmas veiktspēju ir sekojošas prasības:
|
Uz sistēmas veiktspēju ir sekojošas prasības:
|
||||||
- Labirinta ģenerēšana: Jebkura izmēra labirintam jātiek uzģenerētam ātrāk par 1 sekundi.
|
- Jebkura izmēra labirintam jātiek uzģenerētam ātrāk kā 1 sekundē.
|
||||||
- Spēles ielāde: Spēlei jāstartējas ātrāk par 3 sekundēm.
|
- Spēlei jāstartējas ātrāk par 3 sekundēm.
|
||||||
- Kadru ātrums: Spēlei jādarbojas ar vismaz 60 kadriem sekundē.
|
- Spēlei jādarbojas ar vismaz 60 kadriem sekundē.
|
||||||
- Ievades apstrāde: Spēlētāja kustībām jātiek apstrādātām bez manāmas aizkaves ($<16$ms).
|
- Spēlētāja kustībām jātiek apstrādātām bez manāmas aizkaves ($<16$ms).
|
||||||
=== Uzticamība
|
=== Uzticamība
|
||||||
Uz sistēmas uzticamību ir sekojošas prasības:
|
Uz sistēmas uzticamību ir sekojošas prasības:
|
||||||
- Kļūdu apstrāde: spēlei jāapstrādā kļūdas graciozi, bez sistēmas atteicēm.
|
- Kļūdu apstrāde: spēlei jāapstrādā kļūdas graciozi, bez sistēmas atteicēm.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user