From 385d33423e922587f7e68abc1e9718fd24739147 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Thu, 7 Nov 2024 21:21:35 +0200 Subject: [PATCH] Add bibliography --- assets/images/dpd/dpd0.jpg | 1 + assets/images/dpd/dpd1.jpg | 1 + assets/images/placeholder.jpg | Bin 0 -> 11790 bytes bibliography.yml | 41 +++++++++ layout.typ | 42 ++++++--- main.typ | 163 ++++++++++++++++++---------------- 6 files changed, 160 insertions(+), 88 deletions(-) create mode 120000 assets/images/dpd/dpd0.jpg create mode 120000 assets/images/dpd/dpd1.jpg create mode 100644 assets/images/placeholder.jpg create mode 100644 bibliography.yml 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 0000000000000000000000000000000000000000..9a74bb101927e35eba99dd0ac4d9b258a9694af9 GIT binary patch literal 11790 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 literal 0 HcmV?d00001 diff --git a/bibliography.yml b/bibliography.yml new file mode 100644 index 0000000..2fd5ac2 --- /dev/null +++ b/bibliography.yml @@ -0,0 +1,41 @@ +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 diff --git a/layout.typ b/layout.typ index 2075230..afcfef3 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: [ -- ]) @@ -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 174093a..b30d404 100644 --- a/main.typ +++ b/main.typ @@ -2,23 +2,27 @@ #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 +/ DPD: datu plūsmas diagramma; / ECS: entitāšu komponentu sistēma (angl. Entity-Component-System); +/ 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); +/ 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 @@ -32,7 +36,7 @@ == 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. - +#lorem(100) == Darbības sfēra #todo("add first sentence") @@ -63,10 +67,10 @@ netraucētu un efektīvu spēles pieredzi. == Saistība ar citiem dokumentiem PPS ir izstrādāta, ievērojot LVS 68:1996 "Programmatūras prasību specifikācijas -ceļvedis" un LVS 72:1996 "Ieteicamā prakse programmatūras projektējuma -aprakstīšanai" standarta prasības. +ceļvedis"@lvs_68 un LVS 72:1996 "Ieteicamā prakse programmatūras projektējuma +aprakstīšanai"@lvs_72 standarta prasības. -#todo("papildināt dokumentus") +#todo("papildināt dokumentu sarakstu") == Pārskats Dokumenta ievads satur ... @@ -85,11 +89,76 @@ 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 par 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šības un laiksakritība 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) _pipeline_ +#todo("check CI/CD pipeline translation"), lai racionalizētu +izstrādes un izplatīšanas procesu. Šis _pipeline_ 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 #todo("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ēli 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 _pipeline_ 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 // Constraints @@ -115,6 +184,11 @@ pārvaldāms, nodrošinot strukturētu ceļu projekta mērķu sasniegšanai. */ = Programmatūras prasību specifikācija == 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 @@ -143,75 +217,10 @@ pārvaldāms, nodrošinot strukturētu ceļu projekta mērķu sasniegšanai. */ === Navigācija === Ekrānskati -#heading( - numbering: none, - "Izmantotā literatūra un avoti", +#bibliography( + title: "Izmantotā literatūra un avoti", + "bibliography.yml", ) -+ #hyperlink-source( - [Institūcija "Latvijas standarts".], - [LVS 68:1996 "Programmatūras prasību specifikācijas ceļvedis". 1996, marts.], - "", - datetime( - year: 2023, - month: 11, - day: 20, - ), - ) - -+ #hyperlink-source( - [Institūcija "Latvijas standarts".], - [LVS 72:1996 PPS "Ieteicamā prakse programmatūras projektējuma aprakstīšanai". 1996, marts.], - "", - datetime( - year: 2024, - month: 11, - day: 04, - ), - ) - -+ #hyperlink-source( - "", // TODO: - "Hexagonal Grids from Red Blob Games.", - "https://www.redblobgames.com/grids/hexagons/", - datetime( - year: 2024, - month: 09, - day: 10, - ) -) - -+ #hyperlink-source( - "", // TODO: - "Power-up.", - "https://en.wikipedia.org/wiki/Power-up", - datetime( - year: 2024, - month: 11, - day: 04, - ), - ) - - -+ #hyperlink-source( - "", // TODO: - "Unofficial Bevy Cheat Book.", - "https://bevy-cheatbook.github.io/", - datetime( - year: 2024, - month: 09, - day: 10, - ), - ) - -+ #hyperlink-source( - "Bevy piemēri.", - "Bevy Examples", - "https://bevyengine.org/examples/", - datetime( - year: 2024, - month: 09, - day: 10, - ), - ) - +#pagebreak() +#todo[#total-words words]