Compare commits
11 Commits
8a58e22640
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| c16a913ba2 | |||
| ede03ad026 | |||
| ef550044ad | |||
| a6c8044e4a | |||
| 16ae22bcba | |||
| 93abb31ba7 | |||
| feabe7366c | |||
| b250629e34 | |||
| 56934135ab | |||
| 680a6f5f9e | |||
| a5ab983206 |
1
.gitignore
vendored
@@ -25,3 +25,4 @@ go.work.sum
|
||||
# env file
|
||||
.env
|
||||
|
||||
*.log
|
||||
|
||||
46
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build Windows",
|
||||
"type": "shell",
|
||||
"command": "mkdir -p release/windows && go build -o release/windows/regin_mountain_game.exe . && cp -r assets release/windows/ && mkdir -p release/windows/assets/maps && cp mapp-maker/*.tmj mapp-maker/*.tsj release/windows/assets/maps/ 2>/dev/null || true",
|
||||
"options": {
|
||||
"env": {
|
||||
"GOOS": "windows",
|
||||
"GOARCH": "amd64"
|
||||
}
|
||||
},
|
||||
"group": "build",
|
||||
"problemMatcher": [
|
||||
"$go"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Build Linux",
|
||||
"type": "shell",
|
||||
"command": "mkdir -p release/linux && go build -o release/linux/regin_mountain_game . && cp -r assets release/linux/ && mkdir -p release/linux/assets/maps && cp mapp-maker/*.tmj mapp-maker/*.tsj release/linux/assets/maps/ 2>/dev/null || true",
|
||||
"options": {
|
||||
"env": {
|
||||
"GOOS": "linux",
|
||||
"GOARCH": "amd64"
|
||||
}
|
||||
},
|
||||
"group": "build",
|
||||
"problemMatcher": [
|
||||
"$go"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Build All",
|
||||
"dependsOn": [
|
||||
"Build Windows",
|
||||
"Build Linux"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
86
README.md
@@ -1,27 +1,93 @@
|
||||
# Regin_mountain_of_treasures
|
||||
|
||||
Ett spel som beretar historier om dvärgen Regin och hans äventyr
|
||||
## Regin: Mountain of Treasures
|
||||
|
||||
Baserat på mitt didigare skol projekt Maze
|
||||
Ett spel som berättar historier om dvärgen Regin och hans äventyr.
|
||||
|
||||
spelet kommer att handla om dvärgen Regin och hans kamp att få tag på sin fars skat och Andvaranaut (en magisk ring) Storin är baserad på historier från eddan
|
||||
Projektet bygger vidare på mitt tidigare skolprojekt Maze, men har vuxit till ett eget spel med tydligare värld, starkare tema och en mer egen presentation.
|
||||
|
||||
tillägas ska göras att ändringar till historien har gjorts.
|
||||
Spelet handlar om dvärgen Regin och hans kamp att få tag på sin fars skatt och Andvaranaut, den magiska ringen. Historien är baserad på berättelser från Eddan, men tilläggas ska att ändringar till historien har gjorts för att passa spelet bättre.
|
||||
|
||||
Regin var en dvärg och berömd smed, son till Reidmar också känd som Hreidmar, bror till Fafne och Utter.
|
||||
Regin var en dvärg och berömd smed, son till Reidmar, också känd som Hreidmar, och bror till Fafne och Utter. Regin och Fafne är ute efter att döda deras far för att komma över hans skatt och ringen Andvaranaut.
|
||||
|
||||
Regin och Fafne är ute efter att döda deras far för att komma över hans skat och ringen Andvaranaut.
|
||||
Kommer dom lyckas?
|
||||
|
||||
kommer dom lykas?
|
||||
Om du känner till historien om Andvaranaut så kan du kanske lista ut hur spelet kommer att sluta.
|
||||
|
||||
om du käner till historien om Andvaranaut så kan du lista ut hur spelet kommer att sluta :)
|
||||
Eller gör du?
|
||||
|
||||
eller gör du?
|
||||
## Spelet Just Nu
|
||||
|
||||
info
|
||||
Här är några bilder som visar hur spelet ser ut just nu, med sido-vy till vänster och top-vy till höger.
|
||||
|
||||
### Utforskning och dubbel vy
|
||||
|
||||

|
||||
|
||||
### Klättring, nivåskillnader och lager
|
||||
|
||||

|
||||
|
||||
### Större objekt och miljödetaljer
|
||||
|
||||

|
||||
|
||||
### Inomhusyta och tätare scen
|
||||
|
||||

|
||||
|
||||
## Teknik I Korthet
|
||||
|
||||
Projektet använder en liten men tydlig teknikstack:
|
||||
|
||||
- Go som huvudspråk för spelkod, struktur och spel-loop.
|
||||
- Ebitengine för rendering, fönsterhantering, input och 2D-grafik.
|
||||
- MathGL för 3D-vektorer och positionshantering i spelvärlden.
|
||||
- Tiled JSON-kartor för att bygga upp rum och lager i världen.
|
||||
- JSON-drivna entity-definitioner för block, portaler, stegar och större miljöobjekt.
|
||||
- En egen renderingsmodell med dubbel vy: sido-vy och top-vy som visar samma värld från två håll samtidigt.
|
||||
|
||||
## Mer Om Spelet
|
||||
|
||||
Arkitekturen bygger på att världen tolkas som lager i flera led, där spelaren rör sig i en 3D-liknande struktur men spelet visas i två synkade 2D-vyer. Det gör att mark, höjd, djup, klättring och större objekt kan läsas på ett tydligare sätt direkt i spelbilden.
|
||||
|
||||
Målet är att låta myt, utforskning och rumslig förståelse arbeta tillsammans, så att spelet både känns som ett äventyr och som en värld man måste lära sig att läsa rätt.
|
||||
|
||||
## Inspiration Och Info
|
||||
|
||||
https://sv.wikipedia.org/wiki/Regin
|
||||
|
||||
https://sv.wikipedia.org/wiki/Gram_(mytologi)
|
||||
|
||||
https://sv.wikipedia.org/wiki/Reidmar
|
||||
|
||||
## Bygginstruktioner
|
||||
|
||||
### Systemkrav & Beroenden
|
||||
|
||||
Eftersom spelet använder Ebitengine behöver du ha följande installerat för att kunna kompilera.
|
||||
|
||||
**På Windows:**
|
||||
|
||||
Inget speciellt krävs utöver en modern version av Go. Ebitengine klarar sig bra för Windows-bygge även på Windows. Ibland kan gcc eller MinGW vara bra att ha vid ljud-tjafs eller cgo-relaterade problem.
|
||||
|
||||
**På Linux:**
|
||||
|
||||
Du behöver installera Go samt följande C-bibliotek för X11 och ljud:
|
||||
|
||||
```bash
|
||||
sudo apt-get install libc6-dev libgl1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev libxxf86vm-dev libasound2-dev pkg-config
|
||||
```
|
||||
|
||||
### Bygg Spelet Med VS Code Tasks
|
||||
|
||||
Spelet stödjer publisering via fördefinierade VS Code Tasks. Gå till `Terminal -> Run Task...` i VS Code.
|
||||
|
||||
- **Build Windows**: Kompilerar projektet för Windows (.exe) i mappen `release/windows`.
|
||||
- **Build Linux**: Kompilerar projektet för Linux i mappen `release/linux`.
|
||||
- **Build All**: Kompilerar för båda ovanstående plattformar.
|
||||
|
||||
### Bygg Manuellt
|
||||
|
||||
- Linux: `GOOS=linux go build -o release/linux/regin_mountain_game .`
|
||||
- Windows: `GOOS=windows go build -o release/windows/regin_mountain_game.exe .`
|
||||
85
assets/entity_defs.json
Normal file
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"entity_types": {
|
||||
"ground_grass": {
|
||||
"id": 1,
|
||||
"tiled_id": 1,
|
||||
"solid": true,
|
||||
"climbable": false,
|
||||
"sprites": {
|
||||
"top": "Tile_31",
|
||||
"side": "Tile_02"
|
||||
}
|
||||
},
|
||||
"ground_dirt": {
|
||||
"id": 2,
|
||||
"tiled_id": 2,
|
||||
"solid": true,
|
||||
"climbable": false,
|
||||
"sprites": {
|
||||
"top": "Tile_12",
|
||||
"side": "Tile_12"
|
||||
}
|
||||
},
|
||||
"ground_grass_2": {
|
||||
"id": 3,
|
||||
"tiled_id": 3,
|
||||
"solid": true,
|
||||
"climbable": false,
|
||||
"sprites": {
|
||||
"top": "Tile_31",
|
||||
"side": "Tile_31"
|
||||
}
|
||||
},
|
||||
"portal_grass": {
|
||||
"id": 4,
|
||||
"tiled_id": 4,
|
||||
"solid": false,
|
||||
"sprites": {
|
||||
"top": "../Grass/2.png",
|
||||
"side": "../Grass/3.png"
|
||||
},
|
||||
"target_map": "room2"
|
||||
},
|
||||
"ladder_1": {
|
||||
"id": 5,
|
||||
"tiled_id": 5,
|
||||
"solid": false,
|
||||
"climbable": true,
|
||||
"sprites": {
|
||||
"top": "../Ladders/1",
|
||||
"side": "../Ladders/1"
|
||||
}
|
||||
},
|
||||
"stone_1": {
|
||||
"id": 6,
|
||||
"tiled_id": 6,
|
||||
"solid": true,
|
||||
"sprites": {
|
||||
"top": "../Stones/1",
|
||||
"side": "../Stones/1"
|
||||
}
|
||||
},
|
||||
"tree_1": {
|
||||
"id": 7,
|
||||
"tiled_id": 7,
|
||||
"solid": true,
|
||||
"sprites": {
|
||||
"top": "../Trees/1",
|
||||
"side": "../Trees/1"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
"id": 100,
|
||||
"solid": true,
|
||||
"sprites": {
|
||||
"top": "player_idle",
|
||||
"side": "player_idle"
|
||||
},
|
||||
"animations": {
|
||||
"idle": {"frames": [0], "speed": 1},
|
||||
"walk": {"frames": [1, 2, 3, 4], "speed": 5},
|
||||
"jump": {"frames": [5, 6], "speed": 4}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4
assets/images/.directory
Normal file
@@ -0,0 +1,4 @@
|
||||
[Dolphin]
|
||||
PreviewsShown=true
|
||||
Timestamp=2018,1,22,14,58,44
|
||||
Version=4
|
||||
BIN
assets/images/1 Tiles/Tile_01.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_02.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_03.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_04.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_05.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_06.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_07.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_08.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_09.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_10.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tile_11.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_12.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/1 Tiles/Tile_13.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_14.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_15.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_16.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_17.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_18.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_19.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_20.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_21.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_22.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_23.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_24.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_25.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_26.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_27.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_28.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_29.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_30.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_31.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tile_32.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tile_33.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tile_34.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tile_35.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_36.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_37.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_38.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_39.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_40.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_41.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_42.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tile_43.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_44.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_45.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_46.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_47.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_48.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_49.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/1 Tiles/Tile_50.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_51.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_52.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_53.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_54.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tile_55.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tile_56.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_57.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_58.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/1 Tiles/Tile_59.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/1 Tiles/Tile_60.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/1 Tiles/Tileset.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/images/Boxes/1.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/Boxes/2.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/Boxes/3.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/Boxes/4.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Boxes/5.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/Boxes/6.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/Grass/1.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Grass/10.png
Normal file
|
After Width: | Height: | Size: 999 B |
BIN
assets/images/Grass/2.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Grass/3.png
Normal file
|
After Width: | Height: | Size: 1021 B |
BIN
assets/images/Grass/4.png
Normal file
|
After Width: | Height: | Size: 1010 B |
BIN
assets/images/Grass/5.png
Normal file
|
After Width: | Height: | Size: 1012 B |
BIN
assets/images/Grass/6.png
Normal file
|
After Width: | Height: | Size: 998 B |
BIN
assets/images/Grass/7.png
Normal file
|
After Width: | Height: | Size: 995 B |
BIN
assets/images/Grass/8.png
Normal file
|
After Width: | Height: | Size: 1006 B |
BIN
assets/images/Grass/9.png
Normal file
|
After Width: | Height: | Size: 985 B |
BIN
assets/images/Ladders/1.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Ladders/2.png
Normal file
|
After Width: | Height: | Size: 1011 B |
BIN
assets/images/Ladders/3.png
Normal file
|
After Width: | Height: | Size: 1020 B |
BIN
assets/images/Ladders/4.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/Ladders/5.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Ladders/6.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Pointers/1.png
Normal file
|
After Width: | Height: | Size: 1017 B |
BIN
assets/images/Pointers/2.png
Normal file
|
After Width: | Height: | Size: 1016 B |
BIN
assets/images/Pointers/3.png
Normal file
|
After Width: | Height: | Size: 1022 B |
BIN
assets/images/Pointers/4.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Pointers/5.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Pointers/6.png
Normal file
|
After Width: | Height: | Size: 1022 B |
BIN
assets/images/Pointers/7.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/Pointers/8.png
Normal file
|
After Width: | Height: | Size: 1020 B |
BIN
assets/images/Ridges/1.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/images/Ridges/2.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/Ridges/3.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
assets/images/Ridges/4.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |