diff --git a/abstract.typ b/abstract.typ index 1136454..8c74c92 100644 --- a/abstract.typ +++ b/abstract.typ @@ -12,8 +12,14 @@ first-line-indent: 0cm, [*Atslēgvārdi:*], ) +Labirints +datorspēle, +sistēmas prasības, +programmatūras prasību specifikācija, +Bevy, +ECS, +papilspējas. -#lorem(50) #text( hyphenate: auto, @@ -26,11 +32,23 @@ numbering: none, "Abstract", ) - #lorem(100) + _"Maze Ascension" is a minimalist maze exploration game built using the Bevy + engine. The game features simple visuals with hexagonal tiles forming the maze + structure on a white background with black borders, and a stickman-style player + character. Players navigate through multiple levels of increasing difficulty, + 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._ #par( first-line-indent: 0cm, [*Keywords:*], ) - #lorem(50) + Maze, + comtuper game, + system requirements, + software requirements specification, + Bevy, + ECS, + power-ups. ], ) diff --git a/assets/fonts/cmu/cmunbbx.otf b/assets/fonts/cmu/cmunbbx.otf deleted file mode 100644 index 4becf1b..0000000 Binary files a/assets/fonts/cmu/cmunbbx.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbi.otf b/assets/fonts/cmu/cmunbi.otf deleted file mode 100644 index 5cd8a12..0000000 Binary files a/assets/fonts/cmu/cmunbi.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbl.otf b/assets/fonts/cmu/cmunbl.otf deleted file mode 100644 index e594b5e..0000000 Binary files a/assets/fonts/cmu/cmunbl.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbmo.otf b/assets/fonts/cmu/cmunbmo.otf deleted file mode 100644 index 4bf308f..0000000 Binary files a/assets/fonts/cmu/cmunbmo.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbmr.otf b/assets/fonts/cmu/cmunbmr.otf deleted file mode 100644 index 886bff1..0000000 Binary files a/assets/fonts/cmu/cmunbmr.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbso.otf b/assets/fonts/cmu/cmunbso.otf deleted file mode 100644 index f1013a1..0000000 Binary files a/assets/fonts/cmu/cmunbso.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbsr.otf b/assets/fonts/cmu/cmunbsr.otf deleted file mode 100644 index a9fd5c4..0000000 Binary files a/assets/fonts/cmu/cmunbsr.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbtl.otf b/assets/fonts/cmu/cmunbtl.otf deleted file mode 100644 index d6d2784..0000000 Binary files a/assets/fonts/cmu/cmunbtl.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbto.otf b/assets/fonts/cmu/cmunbto.otf deleted file mode 100644 index d726505..0000000 Binary files a/assets/fonts/cmu/cmunbto.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbx.otf b/assets/fonts/cmu/cmunbx.otf deleted file mode 100644 index fc32d6d..0000000 Binary files a/assets/fonts/cmu/cmunbx.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunbxo.otf b/assets/fonts/cmu/cmunbxo.otf deleted file mode 100644 index d6c902b..0000000 Binary files a/assets/fonts/cmu/cmunbxo.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunci.otf b/assets/fonts/cmu/cmunci.otf deleted file mode 100644 index 99e8e03..0000000 Binary files a/assets/fonts/cmu/cmunci.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunit.otf b/assets/fonts/cmu/cmunit.otf deleted file mode 100644 index daba644..0000000 Binary files a/assets/fonts/cmu/cmunit.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunobi.otf b/assets/fonts/cmu/cmunobi.otf deleted file mode 100644 index 31fc8e3..0000000 Binary files a/assets/fonts/cmu/cmunobi.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunobx.otf b/assets/fonts/cmu/cmunobx.otf deleted file mode 100644 index 244bac9..0000000 Binary files a/assets/fonts/cmu/cmunobx.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunorm.otf b/assets/fonts/cmu/cmunorm.otf deleted file mode 100644 index d7310da..0000000 Binary files a/assets/fonts/cmu/cmunorm.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunoti.otf b/assets/fonts/cmu/cmunoti.otf deleted file mode 100644 index bc43e49..0000000 Binary files a/assets/fonts/cmu/cmunoti.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunrb.otf b/assets/fonts/cmu/cmunrb.otf deleted file mode 100644 index dda7ceb..0000000 Binary files a/assets/fonts/cmu/cmunrb.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunrm.otf b/assets/fonts/cmu/cmunrm.otf deleted file mode 100644 index b449df0..0000000 Binary files a/assets/fonts/cmu/cmunrm.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunsi.otf b/assets/fonts/cmu/cmunsi.otf deleted file mode 100644 index 3705fc6..0000000 Binary files a/assets/fonts/cmu/cmunsi.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunsl.otf b/assets/fonts/cmu/cmunsl.otf deleted file mode 100644 index 05608b2..0000000 Binary files a/assets/fonts/cmu/cmunsl.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunso.otf b/assets/fonts/cmu/cmunso.otf deleted file mode 100644 index 23fd4ad..0000000 Binary files a/assets/fonts/cmu/cmunso.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunss.otf b/assets/fonts/cmu/cmunss.otf deleted file mode 100644 index 49fecee..0000000 Binary files a/assets/fonts/cmu/cmunss.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunssdc.otf b/assets/fonts/cmu/cmunssdc.otf deleted file mode 100644 index f7d33bc..0000000 Binary files a/assets/fonts/cmu/cmunssdc.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunst.otf b/assets/fonts/cmu/cmunst.otf deleted file mode 100644 index e56babe..0000000 Binary files a/assets/fonts/cmu/cmunst.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunsx.otf b/assets/fonts/cmu/cmunsx.otf deleted file mode 100644 index b1fc68e..0000000 Binary files a/assets/fonts/cmu/cmunsx.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmuntb.otf b/assets/fonts/cmu/cmuntb.otf deleted file mode 100644 index d6772ca..0000000 Binary files a/assets/fonts/cmu/cmuntb.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunti.otf b/assets/fonts/cmu/cmunti.otf deleted file mode 100644 index 5739e9d..0000000 Binary files a/assets/fonts/cmu/cmunti.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmuntt.otf b/assets/fonts/cmu/cmuntt.otf deleted file mode 100644 index a564385..0000000 Binary files a/assets/fonts/cmu/cmuntt.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmuntx.otf b/assets/fonts/cmu/cmuntx.otf deleted file mode 100644 index 8fadd9a..0000000 Binary files a/assets/fonts/cmu/cmuntx.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunui.otf b/assets/fonts/cmu/cmunui.otf deleted file mode 100644 index d744777..0000000 Binary files a/assets/fonts/cmu/cmunui.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunvi.otf b/assets/fonts/cmu/cmunvi.otf deleted file mode 100644 index 3403b51..0000000 Binary files a/assets/fonts/cmu/cmunvi.otf and /dev/null differ diff --git a/assets/fonts/cmu/cmunvt.otf b/assets/fonts/cmu/cmunvt.otf deleted file mode 100644 index a3cdd44..0000000 Binary files a/assets/fonts/cmu/cmunvt.otf and /dev/null differ diff --git a/assets/images/dpd/dpd0.jpg b/assets/images/dpd/dpd0.jpg new file mode 120000 index 0000000..fbddb49 --- /dev/null +++ b/assets/images/dpd/dpd0.jpg @@ -0,0 +1 @@ +../placeholder.jpg \ No newline at end of file diff --git a/assets/images/dpd/dpd1.jpg b/assets/images/dpd/dpd1.jpg new file mode 120000 index 0000000..fbddb49 --- /dev/null +++ b/assets/images/dpd/dpd1.jpg @@ -0,0 +1 @@ +../placeholder.jpg \ No newline at end of file diff --git a/assets/images/placeholder.jpg b/assets/images/placeholder.jpg new file mode 100644 index 0000000..9a74bb1 Binary files /dev/null and b/assets/images/placeholder.jpg differ diff --git a/bibliography.yml b/bibliography.yml new file mode 100644 index 0000000..38bb556 --- /dev/null +++ b/bibliography.yml @@ -0,0 +1,46 @@ +typst: + type: Web + title: Typst + author: + - Mädje + - Laurenz + - Haug + - Martin + - Typst Projekta Izstrādātāji + url: https://typst.app/ +hex_grid: + type: Web + title: Hexagonal Grids + author: Red Blob Games + url: {value: 'https://www.redblobgames.com/grids/hexagons/', date: 2024-09-10} +bevy_examples: + type: Web + title: Bevy Examples + author: + url: {value: 'https://bevyengine.org/examples/', date: 2024-09-10} +bevy_cheatbook: + type: Web + title: Unofficial Bevy Cheat Book + author: + url: {value: 'https://bevy-cheatbook.github.io/', date: 2024-09-10} +lvs_68: + type: Book + title: Programmatūras prasību specifikācijas ceļvedis + author: Institūcija SIA "Latvijas standarts" + issue: 68 + date: 1996-03-27 + organization: Latvijas Nacionālais standartizācijas un metroloģijas centrs + page-total: 22 +lvs_72: + type: Book + title: Ieteicamā prakse programmatūras projektējuma aprakstīšanai + author: Institūcija SIA "Latvijas standarts" + issue: 72 + date: 1996-03-27 + organization: Latvijas Nacionālais standartizācijas un metroloģijas centrs + page-total: 13 +pipeline: + type: Web + title: "CI/CD: The what, why, and how" + author: + url: https://github.com/resources/articles/devops/ci-cd diff --git a/layout.typ b/layout.typ index 2075230..e876818 100644 --- a/layout.typ +++ b/layout.typ @@ -7,6 +7,7 @@ #let project( university: "", faculty: "", + type: "", title: [], authors: (), advisor: "", @@ -27,7 +28,7 @@ ) set text( //font: "New Computer Modern", - font: "CMU", size: 12pt, hyphenate: auto, lang: "lv", region: "LV", + font: "CMU", size: 12pt, hyphenate: auto, lang: "lv", region: "lv", ) show raw: set text(font: "New Computer Modern Mono") @@ -38,8 +39,8 @@ justify: true, leading: 1.5em, first-line-indent: indent, + spacing: 1.5em, ) - show par: set block(spacing: 1.5em) // Set 1.5em gap between paragraphs show heading: set block(spacing: 1.5em) set terms(separator: [ -- ]) @@ -59,7 +60,7 @@ it } "" - v(-indent) + v(-1cm) } /* Title page config start */ @@ -80,10 +81,24 @@ align( center, - text( - 20pt, - weight: "bold", - title, + upper( + text( + 20pt, + weight: "bold", + title, + ), + ), + ) + + v(0.3fr) + + align( + center, + upper( + text( + size: 16pt, + type, + ), ), ) @@ -134,32 +149,34 @@ /* --- Figure/Table config start --- */ show heading: i-figured.reset-counters show figure: i-figured.show-figure.with(numbering: "1.1.") + set figure(placement: auto) show figure.where(kind: "i-figured-table"): set block(breakable: true) show figure.where(kind: "i-figured-table"): set figure.caption(position: top) show figure: set par(justify: false) // disable justify for figures (tables) + show figure.caption: set text(size: 11pt) show figure.caption: it => { if it.kind == "i-figured-table" { - align( + return align( end, emph(it.counter.display(it.numbering) + " tabula ") + text( weight: "bold", it.body, ), ) - } else if it.kind == "i-figured-image" { - align( + } + if it.kind == "i-figured-image" { + return align( start, emph(it.counter.display(it.numbering) + " att. ") + text( weight: "bold", it.body, ), ) - } else { - it } + it } set ref(supplement: it => { }) // disable default reference suppliments @@ -199,6 +216,9 @@ number-align: center, ) + + // show link: set text(fill: blue.darken(20%)) + // Main body body } diff --git a/main.typ b/main.typ index 5aa5f7d..92bf33b 100644 --- a/main.typ +++ b/main.typ @@ -2,36 +2,201 @@ #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 +#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], authors: ("Kristiāns Francis Cagulis, kc22015",), advisor: "prof. Mg. dat. Jānis Iljins", date: "Rīga 2025", ) - #set heading(numbering: none) - = Apzīmējumu saraksts + +/ 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]: izvēršamas programmatūras iterācijas, ko varat iepakot un padarīt pieejamas plašākai auditorijai, lai lejupielādētu un izmantotu; +/ 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]); +/ Spēlētājs: lietotāja ieraksts vienas virtuālās istabas kontekstā. + +/* 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 +* dzinēju pieejamība. Starp šiem dzinējiem Bevy izceļas kā mūsdienīgs atvērtā +* koda risinājums, kas izmanto Rust programmēšanas valodu, lai nodrošinātu +* drošību un veiktspēju. Šajā diplomdarbā tiek pētīts Bevy spēļu dzinēja +* potenciāls, izstrādājot minimālistisku labirinta izpētes spēli "Maze +* Ascension". */ + = Ievads == Nolūks +Šī dokumenta mērķis ir raksturot sešstūru labirinta spēles "Maze Ascension" +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 +dizaina filozofiju. + +Spēles pamatā ir sešstūra formas plāksnes, kas, savukārt, veido sešstūra +formas labirintus, kuri rada atšķirīgu vizuālo un navigācijas izaicinājumu. +Spēlētāju uzdevums ir pārvietoties pa šiem labirintiem, lai sasniegtu katra +līmeņa beigas. Spēlētājiem progresējot, tie sastopas ar arvien sarežģītākiem +labirintiem, kuros nepieciešama stratēģiska domāšana, izpēte un papildspēju +izmantošana. + +Spēlētājam progresējot, tie sastopas ar dažādiem uzlabojumiem un +papildspējām, kas stratēģiski izvietoti labirintos. Šī funkcija padziļina spēlēšanas +pieredzi, veicinot izpēti un eksperimentēšanu ar dažādām spēju kombinācijām, +radot dinamiskākus un aizraujošākus spēles scenārijus. + +No tehniskā viedokļa darbā tiek pētīta šo funkciju īstenošana, izmantojot +Bevy entitāšu komponentu sistēmas (ECS) arhitektūru. Tas ietver stabilu spēles vides +sistēmu izstrādi, stāvokļa pārvaldības mehānismus un efektīvu Bevy iebūvēto +funkcionalitāšu izmantošanu. + +No darbības sfēras apzināti izslēgta daudzspēlētāju funkcionalitāte un sarežģīti +grafiskie efekti, koncentrējoties uz pulētu viena spēlētāja pieredzi ar skaidru, +minimālistisku vizuālo noformējumu. Šāda mērķtiecīga pieeja ļauj padziļināti +izpētīt spēles pamatmehāniku, vienlaikus nodrošinot projekta vadāmību un +tehnisko iespējamību. + == Saistība ar citiem dokumentiem +PPS ir izstrādāta, ievērojot LVS 68:1996 "Programmatūras prasību specifikācijas +ceļvedis"@lvs_68 un LVS 72:1996 "Ieteicamā prakse programmatūras projektējuma +aprakstīšanai"@lvs_72 standarta prasības. + +#todo("papildināt dokumentu sarakstu") + == Pārskats +Dokumenta ievads satur ... + +/* Dokumenta ievads satur tā nolūku, izstrādājamās programmatūras skaidrojumu, +vispārīgu programmatūras mērķi un funkciju klāstu, saistību ar citiem +dokumentiem, kuru prasības tika izmantotas dokumenta izstrādāšanas gaitā, kā arī +pārskatu par dokumenta daļu saturu ar dokumenta struktūras skaidrojumu. */ + +Pirmajā nodaļa tiek aprakstīti ... + +Otrajā nodaļā tiek ... + +Trešajā nodaļā tiek aprakstīta ... + #set heading(numbering: "1.1.") = Vispārējais apraksts == Esošā stāvokļa apraksts +Pašreizējo spēļu izstrādes ainavu raksturo pieaugoša interese pēc neatkarīgajām +spēlēm un modernu, efektīvu spēļu dzinēju izmantošana. Izstrādātāji arvien +biežāk meklē rīkus, kas piedāvā elastību, veiktspēju un lietošanas ērtumu. Spēļu +dzinējs Bevy ar savu moderno arhitektūru un Rust programmēšanas valodas +izmantošanu gūst arvien lielāku popularitāti izstrādātāju vidū, pateicoties tā +drošām un vienlaicīgām funkcijām. + == Pasūtītājs +Sistēma nav izstrādāta pēc konkrēta pasūtītāja pieprasījuma, tā ir raksturota un +projektēta ar iespēju realizēt pēc studenta iniciatīvas kvalifikācijas darba +ietvaros. + == Produkta perspektīva +"Maze Ascension" ir izstrādāta kā daudzplatformu spēle, izmantojot nepārtrauktas +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). +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 +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. + +/* Lai gan spēle neizmanto mākoņpakalpojumus datu uzglabāšanai vai +analīzei, CI/CD cauruļvads nodrošina, ka atjauninājumus un jaunas funkcijas var +izvietot efektīvi un droši. Šāda konfigurācija ļauj ātri veikt iterāciju un +nepārtraukti uzlabot spēli, nodrošinot, ka spēlētājiem vienmēr ir pieejama +jaunākā versija ar jaunākajiem uzlabojumiem un kļūdu labojumiem. */ + == Darījumprasības +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. + == 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 +ir personas, kas iesaistās spēlē, lai pārvietotos pa tās labirinta struktūrām. +Tā kā spēlei nav nepieciešami lietotāja konti vai autentifikācija, visiem +spēlētājiem ir vienlīdzīga piekļuve spēles funkcijām un saturam no spēles sākuma +brīža. + +/* "Sistēma" lietotājs ir atbildīgs par notikumu apstrādātāju izsaukšanu, kas +nepieciešams automātiskai spēles gaitas pārvaldībai. */ + +Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņa DPD +(skat. @fig:dpd-0 att.) + +#figure( + caption: "0. līmeņa DPD", + image("assets/images/dpd/dpd0.jpg"), +) + == Vispārējie ierobežojumi ++ Izstrādes vides un tehnoloģijas ierobežojumi: + + Programmēšanas valodas un Bevy spēles dzinēja tehniskie ierobežojumi; + + Responsivitāte; + + Starpplatformu savietojamība: Linux, macOS, Windows un WebAssembly. +// + Izplatīšanas un izvietošanas ierobežojumi: +// + CI/CD _pipeline_. + == 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. + - 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. +- Veiktspējas atkarība: + - Spēle ir atkarīga no Bevy spēles dzinēja (0.14 vai jaunāka versija). +- Veiksmīga kompilēšana un izvietošana ir atkarīga no CI/CD cauruļvadam saderības ar: + - Linux kompilācijām; + - MacOS kompilācijām; + - Windows kompilācijām; + - WebAssembly kompilāciju. +- Izplatīšanas atkarības: + - Pastāvīga #link("http://itch.io/")[itch.io] platformas pieejamība spēļu izplatīšanai. + - CI/CD cauruļvadam nepieciešamo kompilēšanas rīku un atkarību uzturēšana. +- Izstrādes atkarības: + - Rust programmēšanas valoda (stabilā versija); + - Cargo pakešu pārvaldnieks; + - Nepieciešamie Bevy spraudņi un atkarības, kā norādīts projekta Cargo.toml failā. +- Lietotāja vides pieņēmumi: + - Spēlētājiem ir pamata izpratne par labirinta navigāciju un mīklu risināšanas koncepcijām. + - Lietotāji var piekļūt un lejupielādēt spēles no #link("http://itch.io/")[itch.io] platformas. + - Spēlētājiem ir ievadierīces (tastatūra/pele), ar kurām kontrolēt spēli. + = Programmatūras prasību specifikācija -== Konceptuālais datu bāzes apraksts == Funkcionālās prasības +#figure( + caption: "1. līmeņa DPD", + image("assets/images/dpd/dpd1.jpg"), +) + == Nefunkcionālās prasības === Veiktspējas prasības ==== Statiskā veiktspēja @@ -52,20 +217,18 @@ ==== 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 */ +/* 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 */ == Daļējs lietotāju saskarņu projektējums /* 5-7 lietotāja saskarnes un to apraksts */ === Navigācija === Ekrānskati -#heading(numbering: none, "Izmantotā literatūra un avoti") -+ #hyperlink-source( - "Eiropas Parlaments.", - "Vispārēja datu aizsardzības regula (angl. GDPR). 2016, aprīlis.", - "https://eur-lex.europa.eu/legal-content/LV/TXT/PDF/?uri=CELEX:32016R0679", - datetime( - year: 2023, - month: 11, - day: 20, - ), - ) +#bibliography( + title: "Izmantotā literatūra un avoti", + "bibliography.yml", +) + +#pagebreak() +#todo[#total-words words]