diff --git a/bibliography.yml b/bibliography.yml index 3ae27d2..4ddc9f4 100644 --- a/bibliography.yml +++ b/bibliography.yml @@ -16,7 +16,7 @@ hex-grid: bevy-examples: type: Web title: Bevy Examples - author: + author: Bevy Projekta Izstrādātāji url: {value: "https://bevyengine.org/examples/", date: 2024-09-14} bevy-cheatbook: type: Web @@ -42,14 +42,17 @@ lvs_72: maze-generation: type: Web title: Maze Generation + author: url: https://rosettacode.org/wiki/Maze_generation bevy-quickstart: type: Web title: Bevy New 2D + author: url: https://github.com/TheBevyFlock/bevy_new_2d sem-ver: type: Web title: Semantiskā versiju veidošana + author: Tom Preston-Werner url: {value: "https://semver.org/", date: 2024-09-17} omg-uml: type: Book @@ -61,18 +64,18 @@ omg-uml: webgl2: type: Web title: Bevy + WebGPU - author: + author: Carter Anderson url: {value: "https://bevyengine.org/news/bevy-webgpu/", date: 2024-09-20} bevy-egui: type: Web 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} bevy-inspector-egui: type: Web title: Bevy Inspector Egui bibliotēkas dokumentācija - author: - url: {value: "https://docs.rs/bevy-inspector-egui/0.28.0/bevy_inspector_egui/", date: 2024-09-26} + author: Jakob Hellermann + url: {value: "https://docs.rs/bevy-inspector-egui/latest/bevy_inspector_egui/", date: 2024-09-26} the-rust-performance-book: type: Book title: The Rust Performance Book @@ -87,18 +90,22 @@ cargo-tarpaulin: ecs: type: Web title: ECS + author: url: {value: "https://en.wikipedia.org/wiki/Entity_component_system", date: 2024-09-12} bevy-ecs: type: Web 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} SRP: type: Web title: Single-responsibility principle + author: url: {value: "https://en.wikipedia.org/wiki/Single-responsibility_principle"} SoC: type: Web title: Separation of concerns + author: url: {value: "https://en.wikipedia.org/wiki/Separation_of_concerns"} begginer-patterns: type: Book @@ -153,3 +160,8 @@ QSM: title: Software Project Performance Benchmark Tables author: QSM, Inc. 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/ diff --git a/doc.typ b/doc.typ index 4cc8720..8dc281b 100644 --- a/doc.typ +++ b/doc.typ @@ -4,6 +4,7 @@ #let vspace = 1fr #let fill = 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") @@ -30,7 +31,7 @@ izdrukai. Darba vadītājs: *prof. Mg. dat. Jānis Iljins ~~\_\_.01.2025.*] v(vspace) - [Recenzents: _grāds, vārds, uzvārds_ #long-underline] + [Recenzents: *Artūrs Driķis*] v(vspace) diff --git a/main.typ b/main.typ index 4ce2fd6..43aa471 100644 --- a/main.typ +++ b/main.typ @@ -25,7 +25,7 @@ / 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; / 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; / 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; @@ -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. 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 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 -#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( title: "Izmantotā literatūra un avoti",