diff --git a/assets/images/diagrams/dpd1.png b/assets/images/diagrams/dpd1.png new file mode 100644 index 0000000..50933f1 Binary files /dev/null and b/assets/images/diagrams/dpd1.png differ diff --git a/assets/images/diagrams/floor.png b/assets/images/diagrams/floor.png new file mode 100644 index 0000000..c7d04c7 Binary files /dev/null and b/assets/images/diagrams/floor.png differ diff --git a/assets/images/diagrams/maze-gen.png b/assets/images/diagrams/maze-gen.png new file mode 100644 index 0000000..637f2ba Binary files /dev/null and b/assets/images/diagrams/maze-gen.png differ diff --git a/assets/images/diagrams/recursive.png b/assets/images/diagrams/recursive.png new file mode 100644 index 0000000..b7284bc Binary files /dev/null and b/assets/images/diagrams/recursive.png differ diff --git a/assets/images/game/debug.png b/assets/images/game/debug.png new file mode 100644 index 0000000..9ca6e5f Binary files /dev/null and b/assets/images/game/debug.png differ diff --git a/assets/images/game/dev-tools.png b/assets/images/game/dev-tools.png new file mode 100644 index 0000000..3a04a17 Binary files /dev/null and b/assets/images/game/dev-tools.png differ diff --git a/assets/images/game/main-menu.png b/assets/images/game/main-menu.png new file mode 100644 index 0000000..7e4e9b2 Binary files /dev/null and b/assets/images/game/main-menu.png differ diff --git a/assets/videos/coords/coords-fast.gif b/assets/videos/coords/coords-fast.gif new file mode 100644 index 0000000..324f725 Binary files /dev/null and b/assets/videos/coords/coords-fast.gif differ diff --git a/assets/videos/coords/coords-fast.webm b/assets/videos/coords/coords-fast.webm new file mode 100644 index 0000000..cefe0e0 Binary files /dev/null and b/assets/videos/coords/coords-fast.webm differ diff --git a/assets/videos/coords/palette.png b/assets/videos/coords/palette.png index 00ea8fd..a5ac9f1 100644 Binary files a/assets/videos/coords/palette.png and b/assets/videos/coords/palette.png differ diff --git a/assets/videos/game/big-maze.gif b/assets/videos/game/big-maze.gif new file mode 100644 index 0000000..cab019f Binary files /dev/null and b/assets/videos/game/big-maze.gif differ diff --git a/assets/videos/game/big-maze.mkv b/assets/videos/game/big-maze.mkv new file mode 100644 index 0000000..d04e39b Binary files /dev/null and b/assets/videos/game/big-maze.mkv differ diff --git a/assets/videos/game/maze-game-fast.gif b/assets/videos/game/maze-game-fast.gif new file mode 100644 index 0000000..e082f51 Binary files /dev/null and b/assets/videos/game/maze-game-fast.gif differ diff --git a/assets/videos/game/maze-game-fast.webm b/assets/videos/game/maze-game-fast.webm new file mode 100644 index 0000000..66292e1 Binary files /dev/null and b/assets/videos/game/maze-game-fast.webm differ diff --git a/assets/videos/game/maze-game.gif b/assets/videos/game/maze-game.gif new file mode 100644 index 0000000..7339ace Binary files /dev/null and b/assets/videos/game/maze-game.gif differ diff --git a/assets/videos/game/maze-game.webm b/assets/videos/game/maze-game.webm new file mode 100644 index 0000000..3e0692d Binary files /dev/null and b/assets/videos/game/maze-game.webm differ diff --git a/assets/videos/game/palette.png b/assets/videos/game/palette.png new file mode 100644 index 0000000..a7e7985 Binary files /dev/null and b/assets/videos/game/palette.png differ diff --git a/assets/videos/hexmaze/hexmaze-fast.gif b/assets/videos/hexmaze/hexmaze-fast.gif new file mode 100644 index 0000000..b655fb7 Binary files /dev/null and b/assets/videos/hexmaze/hexmaze-fast.gif differ diff --git a/assets/videos/hexmaze/hexmaze-fast.webm b/assets/videos/hexmaze/hexmaze-fast.webm new file mode 100644 index 0000000..678dbce Binary files /dev/null and b/assets/videos/hexmaze/hexmaze-fast.webm differ diff --git a/assets/videos/hexmaze/palette.png b/assets/videos/hexmaze/palette.png index 86f2e2b..629b0e0 100644 Binary files a/assets/videos/hexmaze/palette.png and b/assets/videos/hexmaze/palette.png differ diff --git a/presentation.typ b/presentation.typ index 7c7fd4d..2ecfb4c 100644 --- a/presentation.typ +++ b/presentation.typ @@ -4,7 +4,7 @@ #import "@preview/fletcher:0.5.3" as fletcher: node, edge #import "@preview/ctheorems:1.1.3": * #import "@preview/numbly:0.1.0": numbly - +#import "src/diagrams.typ": * #set text( font: ( @@ -62,7 +62,6 @@ author: [Kristiāns Francis Cagulis kc22015], date: [2025], institution: [Latvijas Universitāte], - // logo: emoji.school, ), config-colors( primary: rgb("#575279"), @@ -75,14 +74,13 @@ #title-slide() - #slide[ = Pārskats - - Entitāšu komponenšu sistēma (ECS) - - Spēles pārskats un funkcijas + - Maze Ascension - Hexlab bibliotēka - - Tehniskā demonstrācija + - Sešstūru implementācija + - Saskarne - Rezultāti un secinājumi ] @@ -166,43 +164,41 @@ ``` } - = Maze Ascension -== Spēles pārskats -#grid( - columns: 2, - gutter: 1em, - [ - - Procedurāli ģenerēta spēle ar sešstūrainu labirintu - - Procedurāli ģenerēti līmeņi - - Izstrādāts ar Bevy spēles dzinēju - - Labirintu ģenerēšanas bibliotēka - ], - image("assets/images/placeholder.jpg"), + +== 1. Līmeņa DPD + +#figure( + image("assets/images/diagrams/dpd1.png"), ) -== Spēles funkcionalitāte +== Stāva modulis -#grid( - columns: 2, - gutter: 1em, - [ - - Izveidots, izmantojot Bevy spēļu dzinēju - - Pielāgota labirintu ģenerēšanas bibliotēka - - Procedurāla līmeņu ģenerēšana - - Dinamiska grūtības pakāpes mainīšana - ], - image("assets/images/placeholder.jpg"), +#figure( + image("assets/images/diagrams/floor.png", width: 50%), ) = Hexlab bibliotēka + #pagebreak() + #figure( caption: link("https://crates.io/crates/hexlab"), image("assets/images/crates/hexlab.png", height: 92%), ) +== Labirinta ģenerēšanas funkcijas projektējums +#grid( + columns: (1fr, 1fr), + figure( + image("assets/images/diagrams/maze-gen.png"), + ), + figure( + image("assets/images/diagrams/recursive.png"), + ), +) + == Ģenerēšanas algoritms // recursive backtracking #figure( @@ -211,16 +207,6 @@ ) = Sešstūru implementācija -== Iedvesma -#figure( - caption: link("https://www.redblobgames.com/grids/hexagons/"), - grid( - columns: 2, - figure(image("assets/images/redblogmages/axial-coords.png", height: 92%)), - figure(image("assets/videos/coords/coords.gif", height: 92%)), - ), -) - == Attēlošana #grid( @@ -238,32 +224,64 @@ ) = Saskarne -== foo -#lorem(10) +#pagebreak() + +#grid( + columns: 2, + figure( + image("assets/images/game/main-menu.png"), + ), +) + +#figure( + image("assets/videos/game/maze-game.gif"), +) + +#grid( + columns: (1fr, 1fr), + figure( + image("assets/images/game/debug.png"), + ), + figure( + image("assets/images/game/dev-tools.png"), + ), +) + + +#figure( + image("assets/videos/game/big-ass-maze.gif"), +) = Secinājumi == Rezultāti -- Veiksmīgi īstenota procedurālā ģenerēšana. -- Efektīvs labirinta ģenerēšanas algoritms. -- Vienmērīga spēlēšanas pieredze. -- Modulāra un atkārtoti izmantojama kodu bāze. + +- 3D spēle izmantojot Bevy un Rust: + - Procedurāla sešstūraina labirints ģenerēšana, izmantojot DFS. + - Izveidota atkārtoti lietojama atvērtā pirmkoda bibliotēka "hexlab". +- Efektīva līmeņa pārvaldība: + - Vienmērīga pāreja starp labirinta līmeņiem. == Turpmākie darbi -= Paldies par uzmanību +- Īstenot vairāk labirintu ģenerēšanas paņēmienus/algoritmus. +- Ieviest jaunas mehānikas un papildspējas. +- Uzlabot vizuālo kvalitāti un spēlētāja izskatu. +- Izstrādāt daudzspēlētāju režīmu. + += Paldies par uzmanību! Jautājumi? #show: appendix -= Pēcvārds += Galavārds == ECS vs OOP #grid( columns: (1fr, 1fr), gutter: 1em, [ *ECS* - - Plakanā hierarhija + - Plakana hierarhija - Datu orientēta - Kešatmiņai piemērots - Paralēla apstrāde @@ -276,3 +294,14 @@ Jautājumi? - Secīga apstrāde ], ) + +== Iedvesma +#figure( + caption: link("https://www.redblobgames.com/grids/hexagons/"), + grid( + columns: 2, + figure(image("assets/images/redblogmages/axial-coords.png", height: 92%)), + figure(image("assets/videos/coords/coords.gif", height: 92%)), + ), +) +