mirror of
https://github.com/kristoferssolo/Qualification-Thesis.git
synced 2025-10-21 20:10:37 +00:00
Merge branch 'chapter/requirements'
This commit is contained in:
commit
ae1dee0996
@ -1,3 +1,4 @@
|
||||
#import "@preview/dashy-todo:0.0.1": todo
|
||||
#pagebreak()
|
||||
#heading(
|
||||
level: 1,
|
||||
@ -8,6 +9,9 @@
|
||||
|
||||
#lorem(100)
|
||||
|
||||
#todo("Uzrakstīt anotāciju (līdz 850 rakstzīmēm)")
|
||||
|
||||
|
||||
#par(
|
||||
first-line-indent: 0cm,
|
||||
[*Atslēgvārdi:*],
|
||||
@ -39,6 +43,7 @@ papilspējas.
|
||||
progressing vertically as they climb up through levels. The game includes
|
||||
power-ups and abilities hidden throughout the maze, and later introduces the
|
||||
ability to move between levels freely._
|
||||
#todo("līdz 850 rakstzīmēm")
|
||||
#par(
|
||||
first-line-indent: 0cm,
|
||||
[*Keywords:*],
|
||||
|
||||
@ -1 +0,0 @@
|
||||
../placeholder.jpg
|
||||
4
assets/images/dpd/dpd0.svg
Normal file
4
assets/images/dpd/dpd0.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 56 KiB |
@ -1 +0,0 @@
|
||||
../placeholder.jpg
|
||||
4
assets/images/dpd/dpd1.svg
Normal file
4
assets/images/dpd/dpd1.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 304 KiB |
@ -44,3 +44,15 @@ pipeline:
|
||||
title: "CI/CD: The what, why, and how"
|
||||
author:
|
||||
url: https://github.com/resources/articles/devops/ci-cd
|
||||
backtracking:
|
||||
type: Web
|
||||
title: Backtracking
|
||||
url: https://en.wikipedia.org/wiki/Backtracking
|
||||
maze_generation:
|
||||
type: Web
|
||||
title: Maze Generation
|
||||
url: https://rosettacode.org/wiki/Maze_generation
|
||||
bevy_quickstart:
|
||||
type: Web
|
||||
title: Bevy New 2D
|
||||
url: https://github.com/TheBevyFlock/bevy_new_2d
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
#import "@preview/i-figured:0.2.4"
|
||||
#import "@preview/big-todo:0.2.0": *
|
||||
#import "@preview/tablex:0.0.9": tablex
|
||||
|
||||
#let indent = 1cm
|
||||
@ -57,7 +56,7 @@
|
||||
),
|
||||
)
|
||||
} else {
|
||||
it
|
||||
text(12pt, it)
|
||||
}
|
||||
""
|
||||
v(-1cm)
|
||||
@ -144,12 +143,12 @@
|
||||
/* Title page config end */
|
||||
|
||||
// WARNING: remove before sending
|
||||
todo_outline
|
||||
outline(title: "TODOs", target: figure.where(kind: "todo"))
|
||||
|
||||
/* --- Figure/Table config start --- */
|
||||
show heading: i-figured.reset-counters
|
||||
show figure: i-figured.show-figure.with(numbering: "1.1.")
|
||||
set figure(placement: auto)
|
||||
set figure(placement: none)
|
||||
|
||||
show figure.where(kind: "i-figured-table"): set block(breakable: true)
|
||||
show figure.where(kind: "i-figured-table"): set figure.caption(position: top)
|
||||
|
||||
261
main.typ
261
main.typ
@ -1,15 +1,16 @@
|
||||
#import "layout.typ": project
|
||||
#import "@preview/dashy-todo:0.0.1": todo
|
||||
#import "@preview/i-figured:0.2.4"
|
||||
#import "@preview/tablex:0.0.9": tablex, rowspanx, colspanx, cellx
|
||||
#import "utils.typ": *
|
||||
#import "@preview/wordometer:0.1.3": word-count, total-words
|
||||
#import "layout.typ": project
|
||||
#import "utils.typ": *
|
||||
#show: word-count
|
||||
|
||||
#show: project.with(
|
||||
university: "Latvijas Universitāte",
|
||||
faculty: "Eksakto zinātņu un tehnoloģiju fakultāte",
|
||||
type: "Kvalifikācijas darbs",
|
||||
title: [Spēles izstrāde, izmantojot Bevy spēļu dzinēju],
|
||||
title: [Spēles izstrāde, izmantojot\ Bevy spēļu dzinēju],
|
||||
authors: ("Kristiāns Francis Cagulis, kc22015",),
|
||||
advisor: "prof. Mg. dat. Jānis Iljins",
|
||||
date: "Rīga 2025",
|
||||
@ -17,15 +18,20 @@
|
||||
#set heading(numbering: none)
|
||||
= Apzīmējumu saraksts
|
||||
|
||||
/ Audio: #todo("add description")
|
||||
/ CI/CD: nepārtraukta integrācija un nepārtraukta izvietošana;
|
||||
/ DPD: datu plūsmas diagramma;
|
||||
/ ECS: entitāšu komponentu sistēma (angl. Entity-Component-System#footnote[https://en.wikipedia.org/wiki/Entity_component_system]);
|
||||
/ GitHub#footnote[https://en.wikipedia.org/wiki/GitHub]: izstrādātāju platforma, kas ļauj izstrādātājiem izveidot, glabāt, pārvaldīt un kopīgot savu kodu;
|
||||
/ GitHub Release #footnote[https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases]<gh-release>: izvēršamas programmatūras iterācijas, ko varat iepakot un padarīt pieejamas plašākai auditorijai, lai lejupielādētu un izmantotu;
|
||||
/ Jaucējtabula#footnote[https://lv.wikipedia.org/wiki/Jauc%C4%93jtabula]: jeb heštabula (angl. hash table#footnote[https://en.wikipedia.org/wiki/Hash_table]) ir datu struktūra, kas saista identificējošās vērtības ar piesaistītajām vērtībām.
|
||||
/ Papildspēja: objekts, kas kā spēles mehānika spēlētājam piešķir īslaicīgas priekšrocības vai papildu spējas (angl. power-up#footnote[https://en.wikipedia.org/wiki/Power-up]<power-up>);
|
||||
/ Pirmkods: #todo("add description")
|
||||
/ PPA: programmatūras projektējuma apraksts;
|
||||
/ PPS: programmatūras prasību specifikācija;
|
||||
/ Papildspēja: objekts, kas kā spēles mehānika spēlētājam piešķir īslaicīgas priekšrocības vai papildu spējas (angl. power-up#footnote[https://en.wikipedia.org/wiki/Power-up]<power-up>);
|
||||
/ Renderēšana: #todo("add description")
|
||||
/ Spēlētājs: lietotāja ieraksts vienas virtuālās istabas kontekstā.
|
||||
/ Sēkla: _seed_ #todo("add description")
|
||||
|
||||
/* Pēdējos gados spēļu izstrādes joma ir piedzīvojusi strauju popularitātes
|
||||
* pieaugumu, ko veicināja neatkarīgo spēļu skaita pieaugums un jaudīgu spēļu
|
||||
@ -41,8 +47,6 @@
|
||||
programmatūras prasības un izpētīt Bevy spēļu dzinēja iespējas.
|
||||
|
||||
== Darbības sfēra
|
||||
#todo("add first sentence")
|
||||
|
||||
Darba galvenā uzmanība ir vērsta uz būtisku spēles mehāniku ieviešanu, tostarp
|
||||
procedurālu labirintu ģenerēšanu, spēlētāju navigācijas sistēmu, papildspēju
|
||||
integrāciju un vertikālās progresijas mehāniku, vienlaikus ievērojot minimālisma
|
||||
@ -112,11 +116,12 @@ ietvaros.
|
||||
integrācijas un nepārtrauktas izvietošanas (CI/CD) cauruļvadu@pipeline, lai
|
||||
vienkāršotu izstrādes un izplatīšanas procesu.
|
||||
Šis cauruļvads ir konfigurēts tā, lai kompilētu spēli vairākām platformām,
|
||||
tostarp Linux, macOS, Windows un WebAssembly (Wasm).
|
||||
tostarp Linux, MacOS, Windows un WebAssembly (Wasm).
|
||||
Tas nodrošina, ka spēle ir pieejama plašai auditorijai, nodrošinot konsekventu
|
||||
un saistošu pieredzi dažādās operētājsistēmās un vidēs.
|
||||
|
||||
Spēle tiek izplatīta, izmantojot GitHub releases un #link("http://itch.io/")[itch.io], kas ir populāra neatkarīgo spēļu
|
||||
Spēle tiek izplatīta, izmantojot GitHub releases un
|
||||
#link("http://itch.io/")[itch.io], kas ir populāra neatkarīgo spēļu
|
||||
platforma, kas ļauj viegli piekļūt un izplatīt spēles visā pasaulē.
|
||||
Izmantojot šīs platformas, datorspēle gūst dažādu maksājumu modeļu un kopienas
|
||||
iesasaistes funkcijas, tādējādi palielinot spēles sasniedzamību un atpazīstamību.
|
||||
@ -131,13 +136,25 @@ jaunākā versija ar jaunākajiem uzlabojumiem un kļūdu labojumiem. */
|
||||
Sistēmas izstrādē galvenā uzmanība tiks pievērsta sekojošu darījumprasību
|
||||
īstenošanai, lai nodrošinātu stabilu un saistošu lietotāja pieredzi:
|
||||
|
||||
+ Spēles progresēšana un līmeņu pārvaldība: Sistēma automātiski pārvaldīs spēlētāju virzību pa spēles līmeņiem, nodrošinot vienmērīgu pāreju, kad spēlētāji progresē un saskaras ar jauniem izaicinājumiem.
|
||||
Progress tiks saglabāts lokāli spēlētāja ierīcē.
|
||||
+ Nevainojama piekļuve spēlēm: Spēlētāji varēs piekļūt spēlei un spēlēt to bez nepieciešamības izveidot lietotāja kontu vai pieteikties. Tas nodrošina netraucētu piekļuvi spēlei, ļaujot spēlētājiem nekavējoties sākt spēlēt.
|
||||
// + Paziņošanas sistēma: Spēlētāji saņems paziņojumus par svarīgiem spēles atjauninājumiem, sasniegumiem un citu svarīgu informāciju, lai saglabātu viņu iesaisti un informētību.
|
||||
+ Savietojamība ar vairākām platformām: sistēma būs pieejama vairākās platformās, tostarp Linux, macOS, Windows un WebAssembly, nodrošinot plašu pieejamību un sasniedzamību.
|
||||
+ Kopienas iesaiste: Spēle izmantos #link("http://itch.io/")[itch.io] kopienas funkcijas, lai sadarbotos ar spēlētājiem, apkopotu atsauksmes un veicinātu atbalstošu spēlētāju kopienu.
|
||||
+ Regulāri atjauninājumi un uzturēšana: CI/CD cauruļvadu veicinās regulārus atjauninājumus un uzturēšanu, nodrošinot, ka spēle ir atjaunināta ar jaunākajām funkcijām un uzlabojumiem.
|
||||
+ Spēles progresēšana un līmeņu pārvaldība: Sistēma automātiski pārvaldīs
|
||||
spēlētāju virzību pa spēles līmeņiem, nodrošinot vienmērīgu pāreju, kad
|
||||
spēlētāji progresē un saskaras ar jauniem izaicinājumiem. Progress tiks
|
||||
saglabāts lokāli spēlētāja ierīcē.
|
||||
+ Nevainojama piekļuve spēlēm: Spēlētāji varēs piekļūt spēlei un spēlēt to bez
|
||||
nepieciešamības izveidot lietotāja kontu vai pieteikties. Tas nodrošina
|
||||
netraucētu piekļuvi spēlei, ļaujot spēlētājiem nekavējoties sākt spēlēt.
|
||||
// + Paziņošanas sistēma: Spēlētāji saņems paziņojumus par svarīgiem spēles
|
||||
// atjauninājumiem, sasniegumiem un citu svarīgu informāciju, lai saglabātu viņu
|
||||
// iesaisti un informētību.
|
||||
+ Savietojamība ar vairākām platformām: sistēma būs pieejama vairākās
|
||||
platformās, tostarp Linux, macOS, Windows un WebAssembly, nodrošinot plašu
|
||||
pieejamību un sasniedzamību.
|
||||
+ Kopienas iesaiste: Spēle izmantos #link("http://itch.io/")[itch.io] kopienas
|
||||
funkcijas, lai sadarbotos ar spēlētājiem, apkopotu atsauksmes un veicinātu
|
||||
atbalstošu spēlētāju kopienu.
|
||||
+ Regulāri atjauninājumi un uzturēšana: CI/CD cauruļvadu veicinās regulārus
|
||||
atjauninājumus un uzturēšanu, nodrošinot, ka spēle ir atjaunināta ar jaunākajām
|
||||
funkcijām un uzlabojumiem.
|
||||
|
||||
== Sistēmas lietotāji
|
||||
Sistēma ir izstrādāta, ņemot vērā vienu lietotāja tipu -- spēlētājs. Spēlētāji
|
||||
@ -153,8 +170,8 @@ Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņ
|
||||
(skat. @fig:dpd-0 att.)
|
||||
|
||||
#figure(
|
||||
caption: "0. līmeņa DPD",
|
||||
image("assets/images/dpd/dpd0.jpg"),
|
||||
caption: [\0. līmeņa DPD #todo("uzlabot diagrammu")],
|
||||
image("assets/images/dpd/dpd0.svg"),
|
||||
) <dpd-0>
|
||||
|
||||
== Vispārējie ierobežojumi
|
||||
@ -167,7 +184,8 @@ Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņ
|
||||
|
||||
== Pieņēmumi un atkarības
|
||||
- Tehniskie pieņēmumi:
|
||||
- Spēlētāja ierīcei jāatbilst minimālajām aparatūras prasībām, lai varētu palaist uz Bevy spēles dzinēja balstītas spēles.
|
||||
- Spēlētāja ierīcei jāatbilst minimālajām aparatūras prasībām, lai varētu
|
||||
palaist uz Bevy spēles dzinēja balstītas spēles.
|
||||
- ierīcei jāatbalsta OpenGL 3.3 vai WebGL 2.0, lai nodrošinātu pareizu atveidošanu.
|
||||
- tīmekļa spēļu spēlēšanai (WebAssembly versija) pārlūkprogrammai jābūt mūsdienīgai un saderīgai ar WebAssembly.
|
||||
- ekrāna izšķirtspējai jābūt vismaz 800x600 pikseļu, lai spēle būtu optimāla.
|
||||
@ -192,43 +210,218 @@ Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņ
|
||||
|
||||
= Programmatūras prasību specifikācija
|
||||
== Funkcionālās prasības
|
||||
\1. līmeņa datu plūsmas diagramma (skat. @fig:dpd-1 att.) ilustrē galvenos
|
||||
procesus spēles "Maze Ascension" sistēmā.
|
||||
Diagrammā attēloti septiņi galvenie procesi:
|
||||
ievades apstrādātājs,
|
||||
spēles stāvokļa pārvaldnieks,
|
||||
labirinta ģenerators,
|
||||
spēlētāja modulis,
|
||||
spēles līmeņu pārvaldnieks,
|
||||
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
|
||||
ārējo lietotāju -- spēlētājs.
|
||||
|
||||
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.
|
||||
Labirinta ģeneratora modulis izveido un pārvalda labirinta struktūras.
|
||||
Spēlētāja modulis apstrādā visas ar spēlētāju saistītās kustības, sadursmes un papildspēju mijiedarbības.
|
||||
Spēles līmeņu pārvaldnieks kontrolē līmeņu virzību un stāvokli.
|
||||
Renderēšanas un audio moduļi pārvalda attiecīgi vizuālo un audio izvadi.
|
||||
|
||||
// Visas datu plūsmas starp procesiem tiek nodrošinātas, izmantojot operatīvo
|
||||
// atmiņu, ievērojot atbilstošas datu plūsmas diagrammas konvencijas. Šī
|
||||
// arhitektūra nodrošina efektīvu datu pārvaldību un skaidru interešu nodalīšanu
|
||||
// starp dažādām spēles sastāvdaļām.
|
||||
|
||||
#figure(
|
||||
caption: "1. līmeņa DPD",
|
||||
image("assets/images/dpd/dpd1.jpg"),
|
||||
caption: [\1. līmeņa DPD #todo("uzlabot diagrammu")],
|
||||
image("assets/images/dpd/dpd1.svg"),
|
||||
) <dpd-1>
|
||||
|
||||
|
||||
=== Funkciju sadalījums moduļos
|
||||
Tabulā @tbl:function-modules ir sniegts visaptverošs spēles funkcionalitātes
|
||||
sadalījums pa tās galvenajiem moduļiem. Katram modulim ir noteikti konkrēti
|
||||
pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
||||
|
||||
#figure(
|
||||
caption: "Funkciju sadalījums pa moduļiem",
|
||||
kind: table,
|
||||
tablex(
|
||||
columns: (auto, 1fr, auto),
|
||||
/* --- header --- */
|
||||
[*Modulis*], [*Funkcija*], [*Identifikators*],
|
||||
/* -------------- */
|
||||
rowspanx(3)[Ievades apstrādes modulis],
|
||||
[Ievades notikumu apstrāde], [],
|
||||
[Ievades stāvokļa atjaunināšana], [],
|
||||
[Ievades validācija], [],
|
||||
|
||||
rowspanx(4)[Spēles stāvokļa pārvaldības modulis],
|
||||
[Spēļu stāvokļa pārvaldība], [],
|
||||
[Spēles cilpas pārvaldība], [],
|
||||
[Stāvokļu pāreju apstrāde], [],
|
||||
[Spēles notikumu apstrāde], [],
|
||||
|
||||
rowspanx(4)[Spēlētāja modulis],
|
||||
[Kustības vadība], [],
|
||||
[Sadursmju apstrāde], [],
|
||||
[Papildsēju pārvaldība], [],
|
||||
[Spēlētāju stāvokļa atjaunināšana], [],
|
||||
|
||||
rowspanx(1)[Labirinta ģenerēšanas modulis],
|
||||
[Labirinta ģenerēšana], [#link(<LGMF01>)[LGMF01]],
|
||||
|
||||
rowspanx(5)[Līmeņu pārvaldības modulis],
|
||||
[Līmeņu ielāde], [],
|
||||
[Progresa izsekošana], [],
|
||||
[Pāreju apstrāde], [],
|
||||
[Stāvokļa saglabāšana], [],
|
||||
[Stāvokļa ielāde], [],
|
||||
|
||||
rowspanx(4)[Renderēšanas modulis],
|
||||
[Labirinta renderēšana], [],
|
||||
[Spēlētāja renderēšana], [],
|
||||
[Lietotājsaskarnes renderēšana], [],
|
||||
[Vizuālo efektu renderēšana], [],
|
||||
|
||||
rowspanx(3)[Audio modulis],
|
||||
[Skaņas efektu atskaņošana], [],
|
||||
[Mūzikas pārvaldība], [],
|
||||
[Audio stāvokļu apstrāde], [],
|
||||
),
|
||||
) <function-modules>
|
||||
|
||||
=== Ievades apstrādes modulis
|
||||
=== Spēles stāvokļa pārvaldības modulis
|
||||
=== Spēlētāja modulis
|
||||
=== Labirinta ģenerēšanas modulis
|
||||
#function-table(
|
||||
"Labirinta ģenerēšana",
|
||||
"LGMF01",
|
||||
[Izveido sešstūrainu labirintu ar norādītajiem parametriem.],
|
||||
[
|
||||
+ Rādiuss: `u32` -- Labirinta rādiuss. Obligāts parametrs, kas nosaka labirinta izmēru.
|
||||
+ Sēkla: `Option<u64>` -- Neobligāta sēkla nejaušo skaitļu ģeneratoram. Ja
|
||||
norādīta, nodrošina reproducējamu labirinta ģenerēšanu ar vienādiem
|
||||
parametriem. Ja nav norādīta, tiek izmantota nejauša sēkla.
|
||||
+ Sākuma pozīcija: `Option<Hex>` -- Neobligāta sākotnējā pozīcija labirintā.
|
||||
Ja norādīta, labirinta ģenerēšana sāksies no šīs pozīcijas. Ja nav norādīta,
|
||||
tiek izvēlēta nejauša derīga sākuma pozīcija.
|
||||
// + Ģeneratora tips: `GeneratorType` -- Algoritms, kas tiks izmantots
|
||||
// labirinta ģenerēšanai. Pašlaik pieejams tikai RecursiveBacktracking.
|
||||
],
|
||||
[
|
||||
+ Validē ievades parametrus:
|
||||
+ Pārbauda rādiusa esamību un derīgumu;
|
||||
+ Validē sākuma pozīciju, ja tāda norādīta;
|
||||
+ Izveido sākotnējo labirinta struktūru:
|
||||
+ Inicializē tukšu labirintu ar norādīto rādiusu;
|
||||
+ Katrai šūnai iestata sākotnējās (visas) sienas.
|
||||
+ Validē stākuma prozīciju, ja tāda norādīta.
|
||||
+ Ģenerē labirintu:
|
||||
+ Rekursīvi izveido ceļus, noņemot sienas starp šūnām;
|
||||
+ Izmanto atpakaļizsekošanu, kad sasniegts strupceļš.
|
||||
],
|
||||
[
|
||||
+ Jaucējtabulu, kas satur:
|
||||
+ Sešstūra koordinātes kā atslēgās;
|
||||
+ Sešstūra objekti ar:
|
||||
+ Pozīcijas koordinātēm ($x$, $y$);
|
||||
+ Sienu konfigurāciju (8-bitu maska).
|
||||
],
|
||||
[
|
||||
+ Lai izveidotu labirintu, ir jānorāda rādiuss.
|
||||
+ Sākuma pozīcija ir ārpus labirinta robežām.
|
||||
+ Neizdevās izveidot labirintu.
|
||||
],
|
||||
) <LGMF01>
|
||||
|
||||
|
||||
=== Līmeņu pārvaldības modulis
|
||||
=== Renderēšanas modulis
|
||||
=== Audio modulis
|
||||
|
||||
== Nefunkcionālās prasības
|
||||
=== Veiktspējas prasības
|
||||
==== Statiskā veiktspēja
|
||||
==== Dinamiskā veiktspēja
|
||||
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.
|
||||
- Spēles ielāde: Spēlei jāstartējas ātrāk par 3 sekundēm.
|
||||
- Kadru ātrums: 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).
|
||||
=== Uzticamība
|
||||
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.
|
||||
- Saglabāšana: spēles progresam jātiek automātiski saglabātam pēc katra līmeņa.
|
||||
- Atjaunošanās: spēlei jāspēj atjaunoties pēc negaidītas aizvēršanas.
|
||||
|
||||
=== Atribūti
|
||||
==== Izmantojamība
|
||||
==== Mērogojamība
|
||||
Uz sistēmas izmantojamību ir sekojošas prasības:
|
||||
- $90%$ jaunu lietotāju jāspēj lietot visas tiem pieejamās funkcijas bez palīdzības.
|
||||
- Teksta fonta izmēram datoru ekrāniem jābūt vismaz 14 pikseļiem, labas
|
||||
salasāmības nodrošināšanai.
|
||||
|
||||
==== Drošība
|
||||
Uz drošību risinājumiem ir sekojošas prasības:
|
||||
- Spēles pirmkods ir iekļauts kopā ar izpildāmo bināro failu;
|
||||
- Spēle nemodificē un nelasa lietotāja vai operētājsistēmas failus, izņemot izmantoto bibliotēku
|
||||
failus.
|
||||
|
||||
==== Uzturamība
|
||||
Pret sistēmas izstrādājamo programmatūras uzturamību tiek izvirzītas sekojošās prasības:
|
||||
- API dokumentācijas pārklājumam jābūt vismaz 80%.
|
||||
- Koda testēšanas pārklājumam jābūt vismaz 70%.
|
||||
|
||||
==== Pārnesamība
|
||||
=== Projekta ierobežojumi
|
||||
==== Intelektuālā īpašuma tiesības
|
||||
==== Aparatūras ierobežojumi
|
||||
===== Atbalstītās ierīces
|
||||
===== Serveris un mitināšana
|
||||
- Platformas: spēlei jādarbojas uz 64 bitu Windows, Linux un MacOS.
|
||||
- Prasības: spēlei jādarbojas uz datora ar vismaz:
|
||||
- 4GB operatīvo atmiņa(RAM);
|
||||
- Integrēto grafisko karti;
|
||||
- Divu-kodolu procesoru.
|
||||
|
||||
=== Paplašināmība
|
||||
- Labirinta ģenerēšana: jābūt iespējai viegli pievienot jaunus ģenerēšanas
|
||||
algoritmus,
|
||||
- Līmeņu dizains: jābūt iespējai viegli pievienot jaunus līmeņus.
|
||||
- Papildinājumi: koda arhitektūrai jāatbalsta jaunu funkciju pievienošana.
|
||||
|
||||
=== Ārējās saskarnes prasības
|
||||
==== Lietotāja saskarne
|
||||
==== Sakaru saskarne
|
||||
|
||||
= Programmatūras projektējuma apraksts
|
||||
== Daļējs funkciju projektējums
|
||||
/* Apraksta svarīgākās, sarežģītākās funkcijas vai sistēmas darbības aspektus;
|
||||
* obligāti jālieto vismaz 4 dažādi diagrammu veidi, izņemot DPD un lietošanas
|
||||
* piemēru (use case) diagrammas */
|
||||
== Izmantotās bibliotēkas
|
||||
== Daļējs lietotāju saskarņu projektējums
|
||||
/* 5-7 lietotāja saskarnes un to apraksts */
|
||||
=== Navigācija
|
||||
=== Ekrānskati
|
||||
|
||||
= Testēšanas dokumentācija
|
||||
== Dinamiskā programmatūras testēšana
|
||||
=== Manuālā integrācijas testēšana
|
||||
=== Automatizēti testi
|
||||
== Statiskā programmatūras testēšana
|
||||
|
||||
= Programmas projekta organizācija
|
||||
|
||||
= Kvalitātes nodrošināšana
|
||||
|
||||
= Konfigurācijas pārvaldība
|
||||
|
||||
= Darbietilpības novērtējums
|
||||
|
||||
= Secinājumi
|
||||
|
||||
#bibliography(
|
||||
title: "Izmantotā literatūra un avoti",
|
||||
"bibliography.yml",
|
||||
)
|
||||
|
||||
#pagebreak()
|
||||
#todo[#total-words words]
|
||||
#heading("Pielikumi", numbering: none)
|
||||
|
||||
// #include "doc.typ"
|
||||
|
||||
// #pagebreak()
|
||||
// #total-words words
|
||||
|
||||
14
utils.typ
14
utils.typ
@ -1,5 +1,4 @@
|
||||
#import "@preview/tablex:0.0.9": tablex
|
||||
#import "@preview/big-todo:0.2.0": todo as TODO
|
||||
|
||||
#let custom-block(
|
||||
item,
|
||||
@ -115,7 +114,7 @@
|
||||
titles: (
|
||||
"Funkcijas nosaukums",
|
||||
"Funkcijas identifikators",
|
||||
"Ievads",
|
||||
"Apraksts",
|
||||
"Ievade",
|
||||
"Apstrāde",
|
||||
"Izvade",
|
||||
@ -180,17 +179,6 @@
|
||||
)
|
||||
}
|
||||
|
||||
#let todo(
|
||||
..body,
|
||||
) = {
|
||||
TODO(
|
||||
..body,
|
||||
inline: true,
|
||||
big_text: 14pt,
|
||||
small_text: 12pt,
|
||||
)
|
||||
}
|
||||
|
||||
#let hyperlink-source(
|
||||
author,
|
||||
title,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user