feat: add conclusion

This commit is contained in:
Kristofers Solo 2025-01-02 19:10:45 +02:00
parent 297dba61a8
commit 2721ef6034
3 changed files with 55 additions and 9 deletions

View File

@ -16,7 +16,7 @@ hex-grid:
bevy-examples: bevy-examples:
type: Web type: Web
title: Bevy Examples title: Bevy Examples
author: author: Bevy Projekta Izstrādātāji
url: {value: "https://bevyengine.org/examples/", date: 2024-09-14} url: {value: "https://bevyengine.org/examples/", date: 2024-09-14}
bevy-cheatbook: bevy-cheatbook:
type: Web type: Web
@ -42,14 +42,17 @@ lvs_72:
maze-generation: maze-generation:
type: Web type: Web
title: Maze Generation title: Maze Generation
author:
url: https://rosettacode.org/wiki/Maze_generation url: https://rosettacode.org/wiki/Maze_generation
bevy-quickstart: bevy-quickstart:
type: Web type: Web
title: Bevy New 2D title: Bevy New 2D
author:
url: https://github.com/TheBevyFlock/bevy_new_2d url: https://github.com/TheBevyFlock/bevy_new_2d
sem-ver: sem-ver:
type: Web type: Web
title: Semantiskā versiju veidošana title: Semantiskā versiju veidošana
author: Tom Preston-Werner
url: {value: "https://semver.org/", date: 2024-09-17} url: {value: "https://semver.org/", date: 2024-09-17}
omg-uml: omg-uml:
type: Book type: Book
@ -61,18 +64,18 @@ omg-uml:
webgl2: webgl2:
type: Web type: Web
title: Bevy + WebGPU title: Bevy + WebGPU
author: author: Carter Anderson
url: {value: "https://bevyengine.org/news/bevy-webgpu/", date: 2024-09-20} url: {value: "https://bevyengine.org/news/bevy-webgpu/", date: 2024-09-20}
bevy-egui: bevy-egui:
type: Web type: Web
title: Bevy Egui bibliotēkas dokumentācija title: Bevy Egui bibliotēkas dokumentācija
author: author: Vladyslav Batyrenko
url: {value: "https://docs.rs/bevy_egui/latest/bevy_egui/", date: 2024-09-26} url: {value: "https://docs.rs/bevy_egui/latest/bevy_egui/", date: 2024-09-26}
bevy-inspector-egui: bevy-inspector-egui:
type: Web type: Web
title: Bevy Inspector Egui bibliotēkas dokumentācija title: Bevy Inspector Egui bibliotēkas dokumentācija
author: author: Jakob Hellermann
url: {value: "https://docs.rs/bevy-inspector-egui/0.28.0/bevy_inspector_egui/", date: 2024-09-26} url: {value: "https://docs.rs/bevy-inspector-egui/latest/bevy_inspector_egui/", date: 2024-09-26}
the-rust-performance-book: the-rust-performance-book:
type: Book type: Book
title: The Rust Performance Book title: The Rust Performance Book
@ -87,18 +90,22 @@ cargo-tarpaulin:
ecs: ecs:
type: Web type: Web
title: ECS title: ECS
author:
url: {value: "https://en.wikipedia.org/wiki/Entity_component_system", date: 2024-09-12} url: {value: "https://en.wikipedia.org/wiki/Entity_component_system", date: 2024-09-12}
bevy-ecs: bevy-ecs:
type: Web type: Web
title: Bevy ECS title: Bevy ECS
author: Bevy Projekta Izstādātāji
url: {value: "https://bevyengine.org/learn/quick-start/getting-started/ecs/", date: 2024-09-12} url: {value: "https://bevyengine.org/learn/quick-start/getting-started/ecs/", date: 2024-09-12}
SRP: SRP:
type: Web type: Web
title: Single-responsibility principle title: Single-responsibility principle
author:
url: {value: "https://en.wikipedia.org/wiki/Single-responsibility_principle"} url: {value: "https://en.wikipedia.org/wiki/Single-responsibility_principle"}
SoC: SoC:
type: Web type: Web
title: Separation of concerns title: Separation of concerns
author:
url: {value: "https://en.wikipedia.org/wiki/Separation_of_concerns"} url: {value: "https://en.wikipedia.org/wiki/Separation_of_concerns"}
begginer-patterns: begginer-patterns:
type: Book type: Book
@ -153,3 +160,8 @@ QSM:
title: Software Project Performance Benchmark Tables title: Software Project Performance Benchmark Tables
author: QSM, Inc. author: QSM, Inc.
url: https://www.qsm.com/resources/qsm-benchmark-tables url: https://www.qsm.com/resources/qsm-benchmark-tables
bevy-0.15:
type: Web
title: Bevy 0.15
author: Bevy Projekta Izstādātāji
url: https://bevyengine.org/news/bevy-0-15/

View File

@ -4,6 +4,7 @@
#let vspace = 1fr #let vspace = 1fr
#let fill = box(width: 1fr, repeat(sym.space)) #let fill = box(width: 1fr, repeat(sym.space))
#let long-underline = underline(box(width: 1fr, repeat(sym.space))) #let long-underline = underline(box(width: 1fr, repeat(sym.space)))
#set page(numbering: none)
#heading(numbering: none, outlined: false, "Dokumentārā lapa") #heading(numbering: none, outlined: false, "Dokumentārā lapa")
@ -30,7 +31,7 @@ izdrukai.
Darba vadītājs: *prof. Mg. dat. Jānis Iljins ~~\_\_.01.2025.*] Darba vadītājs: *prof. Mg. dat. Jānis Iljins ~~\_\_.01.2025.*]
v(vspace) v(vspace)
[Recenzents: _grāds, vārds, uzvārds_ #long-underline] [Recenzents: *Artūrs Driķis*]
v(vspace) v(vspace)

View File

@ -25,7 +25,7 @@
/ Audio: Skaņas komponentes, kas ietver gan skaņas efektus, gan fona mūziku; / Audio: Skaņas komponentes, kas ietver gan skaņas efektus, gan fona mūziku;
/ CI/CD: nepārtraukta integrācija un nepārtraukta izvietošana; / CI/CD: nepārtraukta integrācija un nepārtraukta izvietošana;
/ DPD: datu plūsmas diagramma; / DPD: datu plūsmas diagramma;
/ ECS: entitāšu komponenšu sistēma (angl. Entity-Component-System)@ecs; / ECS: entitāšu-komponenšu sistēma (angl. Entity-Component-System)@ecs;
/ Interpolācija: starpvērtību atrašana pēc funkcijas doto vērtību virknes; / Interpolācija: starpvērtību atrašana pēc funkcijas doto vērtību virknes;
/ 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; / 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;
/ Laidiens: Programmatūras versija, kas ir gatava izplatīšanai lietotājiem un satur īpašas funkcijas, uzlabojumus vai labojumus; / Laidiens: Programmatūras versija, kas ir gatava izplatīšanai lietotājiem un satur īpašas funkcijas, uzlabojumus vai labojumus;
@ -84,7 +84,7 @@ pieredzi, veicinot izpēti un eksperimentēšanu ar dažādām spēju kombināci
radot dinamiskākus un aizraujošākus spēles scenārijus. radot dinamiskākus un aizraujošākus spēles scenārijus.
No tehniskā viedokļa darbā tiek pētīta šo funkciju īstenošana, izmantojot No tehniskā viedokļa darbā tiek pētīta šo funkciju īstenošana, izmantojot
Bevy entitāšu komponentu sistēmas (tuprmāk tekstā -- ECS) arhitektūru. Bevy entitāšu-komponentu sistēmas (tuprmāk tekstā -- ECS) arhitektūru.
Tas ietver stabilu spēles vides sistēmu izstrādi, stāvokļa pārvaldības 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. mehānismus un efektīvu Bevy iebūvēto funkcionalitāšu izmantošanu.
@ -1930,7 +1930,40 @@ Turklāt jāņem vērā projekta papildu sarežģītības faktori:
= Secinājumi = Secinājumi
#todo("uzrakstīt secinājumus")
Kvalifikācijas darba ietvaros tika izstrādāta trīsdimensiju spēle, izmantojot
Bevy spēļu dzinēju un Rust programmēšanas valodu un tās dokumentācija.
Projekta izstrādes gaitā tika sasniegti vairāki nozīmīgi rezultāti un gūtas
vērtīgas atziņas.
Projekta galvenie sasniegumi ietver procedurāli ģenerēta sešstūraina labirinta
implementāciju, kas balstās uz meklēšanas dziļumā (DFS) algoritmu.
Šī funkcionalitāte tika veiksmīgi nodalīta atsevišķā "hexlab" bibliotēkā, kas
padara to pieejamu atkārtotai izmantošanai citos projektos.
Tika izveidota arī efektīva stāvu pārvaldības sistēma, kas nodrošina plūstošu
pāreju starp dažādiem labirinta līmeņiem.
Bevy spēļu dzinēja izmantošana ļāva efektīvi implementēt entitāšu-komponenšu
sistēmu (ECS), kas nodrošina labu veiktspēju un koda organizāciju.
Tomēr tika konstatēts, ka Bevy ekosistēma joprojām ir aktīvās izstrādes stadijā,
ko apliecina projekta izstrādes laikā iznākusī jaunā versija (0.15).
Ši versija ieviesa vairākas būtiskas izmaiņas, piemēram, "Required Components"
(latv. nepieciešamo komponentu) konceptu uzlabotu animāciju sistēmu un daudz ko
citu, kas radīja nepieciešamību pielāgot esošo kodu @bevy-0.15.
Šāda strauja attīstība, no vienas puses, nodrošina jaunas iespējas un
uzlabojumus, bet no otras puses, rada izaicinājumus saistībā ar dokumentācijas
aktualitāti un bibliotēku savietojamību.
Izstrādes procesā īpaša uzmanība tika pievērsta koda kvalitātei un
dokumentācijai.
Tika izveidota detalizēta tehniskā dokumentācija, kas ietver gan sistēmas
arhitektūras aprakstu, gan atsevišķu komponenšu funkcionalitātes skaidrojumu.
Projekta turpmākās attīstības iespējas ietver:
- papildu labirinta ģenerēšanas algoritmu implementāciju;
- spēles mehānikas paplašināšanu ar jaunām papildspējām;
- grafiskās kvalitātes uzlabojumus;
- tīkla spēles režīma ieviešanu.
#bibliography( #bibliography(
title: "Izmantotā literatūra un avoti", title: "Izmantotā literatūra un avoti",