Add bibliography

This commit is contained in:
Kristofers Solo 2024-11-07 21:21:35 +02:00
parent d21deb8109
commit 385d33423e
6 changed files with 160 additions and 88 deletions

1
assets/images/dpd/dpd0.jpg Symbolic link
View File

@ -0,0 +1 @@
../placeholder.jpg

1
assets/images/dpd/dpd1.jpg Symbolic link
View File

@ -0,0 +1 @@
../placeholder.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

41
bibliography.yml Normal file
View File

@ -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

View File

@ -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
}

163
main.typ
View File

@ -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]<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"),
) <dpd-0>
== 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"),
) <dpd-1>
== 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]