finish presentation
BIN
assets/images/diagrams/dpd1.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
assets/images/diagrams/floor.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
assets/images/diagrams/maze-gen.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
BIN
assets/images/diagrams/recursive.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
assets/images/game/debug.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
assets/images/game/dev-tools.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
assets/images/game/main-menu.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
assets/videos/coords/coords-fast.gif
Normal file
|
After Width: | Height: | Size: 33 MiB |
BIN
assets/videos/coords/coords-fast.webm
Normal file
|
Before Width: | Height: | Size: 950 B After Width: | Height: | Size: 952 B |
BIN
assets/videos/game/big-maze.gif
Normal file
|
After Width: | Height: | Size: 42 MiB |
BIN
assets/videos/game/big-maze.mkv
Normal file
BIN
assets/videos/game/maze-game-fast.gif
Normal file
|
After Width: | Height: | Size: 31 MiB |
BIN
assets/videos/game/maze-game-fast.webm
Normal file
BIN
assets/videos/game/maze-game.gif
Normal file
|
After Width: | Height: | Size: 84 MiB |
BIN
assets/videos/game/maze-game.webm
Normal file
BIN
assets/videos/game/palette.png
Normal file
|
After Width: | Height: | Size: 986 B |
BIN
assets/videos/hexmaze/hexmaze-fast.gif
Normal file
|
After Width: | Height: | Size: 3.8 MiB |
BIN
assets/videos/hexmaze/hexmaze-fast.webm
Normal file
|
Before Width: | Height: | Size: 974 B After Width: | Height: | Size: 983 B |
125
presentation.typ
@ -4,7 +4,7 @@
|
|||||||
#import "@preview/fletcher:0.5.3" as fletcher: node, edge
|
#import "@preview/fletcher:0.5.3" as fletcher: node, edge
|
||||||
#import "@preview/ctheorems:1.1.3": *
|
#import "@preview/ctheorems:1.1.3": *
|
||||||
#import "@preview/numbly:0.1.0": numbly
|
#import "@preview/numbly:0.1.0": numbly
|
||||||
|
#import "src/diagrams.typ": *
|
||||||
|
|
||||||
#set text(
|
#set text(
|
||||||
font: (
|
font: (
|
||||||
@ -62,7 +62,6 @@
|
|||||||
author: [Kristiāns Francis Cagulis kc22015],
|
author: [Kristiāns Francis Cagulis kc22015],
|
||||||
date: [2025],
|
date: [2025],
|
||||||
institution: [Latvijas Universitāte],
|
institution: [Latvijas Universitāte],
|
||||||
// logo: emoji.school,
|
|
||||||
),
|
),
|
||||||
config-colors(
|
config-colors(
|
||||||
primary: rgb("#575279"),
|
primary: rgb("#575279"),
|
||||||
@ -75,14 +74,13 @@
|
|||||||
|
|
||||||
#title-slide()
|
#title-slide()
|
||||||
|
|
||||||
|
|
||||||
#slide[
|
#slide[
|
||||||
= Pārskats
|
= Pārskats
|
||||||
|
|
||||||
- Entitāšu komponenšu sistēma (ECS)
|
- Entitāšu komponenšu sistēma (ECS)
|
||||||
- Spēles pārskats un funkcijas
|
- Maze Ascension
|
||||||
- Hexlab bibliotēka
|
- Hexlab bibliotēka
|
||||||
- Tehniskā demonstrācija
|
- Sešstūru implementācija
|
||||||
|
- Saskarne
|
||||||
- Rezultāti un secinājumi
|
- Rezultāti un secinājumi
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -166,43 +164,41 @@
|
|||||||
```
|
```
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
= Maze Ascension
|
= Maze Ascension
|
||||||
== Spēles pārskats
|
|
||||||
#grid(
|
== 1. Līmeņa DPD
|
||||||
columns: 2,
|
|
||||||
gutter: 1em,
|
#figure(
|
||||||
[
|
image("assets/images/diagrams/dpd1.png"),
|
||||||
- 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"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
== Spēles funkcionalitāte
|
== Stāva modulis
|
||||||
|
|
||||||
#grid(
|
#figure(
|
||||||
columns: 2,
|
image("assets/images/diagrams/floor.png", width: 50%),
|
||||||
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"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
= Hexlab bibliotēka
|
= Hexlab bibliotēka
|
||||||
|
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
|
|
||||||
#figure(
|
#figure(
|
||||||
caption: link("https://crates.io/crates/hexlab"),
|
caption: link("https://crates.io/crates/hexlab"),
|
||||||
image("assets/images/crates/hexlab.png", height: 92%),
|
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
|
== Ģenerēšanas algoritms
|
||||||
// recursive backtracking
|
// recursive backtracking
|
||||||
#figure(
|
#figure(
|
||||||
@ -211,16 +207,6 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
= Sešstūru implementācija
|
= 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
|
== Attēlošana
|
||||||
|
|
||||||
#grid(
|
#grid(
|
||||||
@ -238,32 +224,64 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
= Saskarne
|
= Saskarne
|
||||||
== foo
|
#pagebreak()
|
||||||
#lorem(10)
|
|
||||||
|
#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
|
= Secinājumi
|
||||||
== Rezultāti
|
== Rezultāti
|
||||||
- Veiksmīgi īstenota procedurālā ģenerēšana.
|
|
||||||
- Efektīvs labirinta ģenerēšanas algoritms.
|
- 3D spēle izmantojot Bevy un Rust:
|
||||||
- Vienmērīga spēlēšanas pieredze.
|
- Procedurāla sešstūraina labirints ģenerēšana, izmantojot DFS.
|
||||||
- Modulāra un atkārtoti izmantojama kodu bāze.
|
- 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
|
== 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?
|
Jautājumi?
|
||||||
|
|
||||||
#show: appendix
|
#show: appendix
|
||||||
|
|
||||||
= Pēcvārds
|
= Galavārds
|
||||||
== ECS vs OOP
|
== ECS vs OOP
|
||||||
#grid(
|
#grid(
|
||||||
columns: (1fr, 1fr),
|
columns: (1fr, 1fr),
|
||||||
gutter: 1em,
|
gutter: 1em,
|
||||||
[
|
[
|
||||||
*ECS*
|
*ECS*
|
||||||
- Plakanā hierarhija
|
- Plakana hierarhija
|
||||||
- Datu orientēta
|
- Datu orientēta
|
||||||
- Kešatmiņai piemērots
|
- Kešatmiņai piemērots
|
||||||
- Paralēla apstrāde
|
- Paralēla apstrāde
|
||||||
@ -276,3 +294,14 @@ Jautājumi?
|
|||||||
- Secīga apstrāde
|
- 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%)),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
|||||||