Du bist nicht angemeldet.

Werbeanzeige

1

01.12.2014, 22:26

[WIP] Racod's Lair - Ein Coop-Dungeoncrawler [Demo Released]


(Link)


Racod, Geisel der Menschheit, ist in sein Versteck geflohen um sich für seine nächste Epoche des Terrors zu erholen.
Es ist an Euch und Euren mutigen Gefährten Racod zu finden und zur Strecke zu bringen.


Spielbare Demo verfügbar
via IndieDB
via GitHub


Genre: Coop Dungeon Crawler / Hack'n'Slash RPG

Plattformen: Windows, Linux



Kern-Features:
  • Zufallsdungeons, -gegner und -loot (procedural generation)
  • Kooperatives Gameplay mit Splitscreen und/oder geteilter Kamera
  • Mod-freundlich durch XML-basierten Content und Lua-basiertes KI Scripting
Was verwendet wird: C++11, SFML, Thor, Boost, Sol2

Mehr Infos:

(Link)

(Link)

(Link)

Dieser Beitrag wurde bereits 12 mal editiert, zuletzt von »Glocke« (04.01.2018, 18:04)


2

03.02.2015, 11:51

Hallo zusammen,

inzwischen habe ich begonnen den gesamten Code neu zu implementieren, die Kernsysteme sind nun nach DOD-Prinzipien gebaut, alle anderen System (z.B. das Input-System) wird vermutlich mehr OOP, da es da nicht so sehr um Performance geht wie bei Physik oder Rendering.

Was hat sich sonst getan: Ich bin ersteinmal zurück zur Topdown-Darstellung und verwende keine Texturen für Tiles oder Objekte. Statt dessen ist jedes Tile und jedes Objekt ein Vertex Array; die Vertices habe ich in einzelnen Dateien, die die Vertices beschreiben. Das ganze ist zwar nicht hübsch, aber funktioniert soweit, dass man erkennen kann, was was grob sein könnte ^^

Im Moment passiert nichts spanneneds: ohne Animation bewegen sich Objekte über die Kacheln. Zum Performance-Test habe ich zwei zusätzliche Eingabe-Ereignisse eingebaut:
  • Space: 500 neue Objekte spawnen und bewegen sich zufällig los. Als "shape" verwende ich ein selbstgebautes Truhen-Modell, intern werden die Objekte aber als "Bullets" behandelt; d.h. sie bewegen sich in eine feste Richtung bis sie auf ein Hindernis (Spieler oder nicht passierbares Terrain) treffen - dann bleiben sie stehen.
  • Return: Alle stehenden Objekte (mit Ausnahme des Spielers) werden entfernt
.

Viel Spaß beim beobachten der "Flying Chests" :D



LG

Btw so eine beschriebe Shape-Datei sieht bei mir so aus (Beispiel: chest.cfg). Das Format ist angelehnt an OBJ-Files, aber ohne Texturen und reduziert auf 2D Positionen.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# x y r g b

# Basic Box
-0.5    -0.4    200 150 0
0.50    -0.4    200 150 0
0.50    0.00    190 130 0
-0.5    -0.4    200 150 0
0.50    0.00    190 130 0
-0.5    0.00    190 130 0

-0.5    0.00    190 130 0
0.50    0.00    190 130 0
0.50    0.40    200 150 0
-0.5    0.00    190 130 0
0.50    0.40    200 150 0
-0.5    0.40    200 150 0

# Wood "Texture"
-0.5    -0.32   190 130 0
0.50    -0.32   190 130 0
0.50    -0.34   190 130 0
-0.5    -0.32   190 130 0
0.50    -0.34   190 130 0
-0.5    -0.34   190 130 0

-0.5    -0.22   180 125 0
0.50    -0.22   180 125 0
0.50    -0.24   180 125 0
-0.5    -0.22   180 125 0
0.50    -0.24   180 125 0
-0.5    -0.24   180 125 0

-0.5    -0.10   170 120 0
0.50    -0.10   170 120 0
0.50    -0.12   170 120 0
-0.5    -0.10   170 120 0
0.50    -0.12   170 120 0
-0.5    -0.12   170 120 0

-0.5    -0.01   160 115 0
0.50    -0.01   160 115 0
0.50    0.010   160 115 0
-0.5    -0.01   160 115 0
0.50    0.010   160 115 0
-0.5    0.010   160 115 0

-0.5    0.10    170 120 0
0.50    0.10    170 120 0
0.50    0.12    170 120 0
-0.5    0.10    170 120 0
0.50    0.12    170 120 0
-0.5    0.12    170 120 0

-0.5    0.22    180 125 0
0.50    0.22    180 125 0
0.50    0.24    180 125 0
-0.5    0.22    180 125 0
0.50    0.24    180 125 0
-0.5    0.24    180 125 0

-0.5    0.32    190 130 0
0.50    0.32    190 130 0
0.50    0.34    190 130 0
-0.5    0.32    190 130 0
0.50    0.34    190 130 0
-0.5    0.34    190 130 0

# Left Brace
-0.31   -0.4    140 140 140
-0.25   -0.4    140 140 140
-0.25   0.40    140 140 140
-0.31   -0.4    140 140 140
-0.25   0.40    140 140 140
-0.31   0.40    140 140 140

# Right Brace
0.31    -0.4    140 140 140
0.25    -0.4    140 140 140
0.25    0.40    140 140 140
0.31    -0.4    140 140 140
0.25    0.40    140 140 140
0.31    0.40    140 140 140

# Left Hidge
-0.32   -0.41   200 200 200
-0.24   -0.41   200 200 200
-0.24   -0.40   200 200 200
-0.32   -0.41   200 200 200
-0.24   -0.40   200 200 200
-0.32   -0.40   200 200 200

# Right Hidge
0.32    -0.41   200 200 200
0.24    -0.41   200 200 200
0.24    -0.40   200 200 200
0.32    -0.41   200 200 200
0.24    -0.40   200 200 200
0.32    -0.40   200 200 200

# Lock
-0.1    0.38    200 200 200
0.10    0.38    200 200 200
0.10    0.42    200 200 200
-0.1    0.38    200 200 200
0.10    0.42    200 200 200
-0.1    0.42    200 200 200

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Glocke« (03.02.2015, 12:26)


3

09.02.2015, 14:08

Hiho,

der ganzen Sache wurden jetzt sehr einfache, selbstgemachte Pixel-Grafiken, ein einfaches Lighting-System und ein ebenfalls selbst gebauter Ambience-Hintergrundtrack hinzugefügt.



LG

4

17.02.2015, 17:38

Nach ewigen Versuchen ist es mir gelungen mit Gimp eine einfache Sprite-Animation zu erstellen.. In einer Standalone-Anwendung (die den Sprite einfach nur animiert und zeichnet) sieht das ganze dann so aus:


LG

5

17.02.2015, 19:18

Sieht doch super aus!

6

20.02.2015, 17:14

Danke, Bambi :)

Heute habe ich mal mit einem alternativen Kamera-Ansatz experimentier - Splitscreen ist zwar schön, aber nicht nicht die einzige Lösung. Ergebnis: Eine einzelne Kamera-Instanz die sich mehrere Spieler teilen. Dank etwas zusätzlicher Mathematik läuft's ganz rund :)


7

22.02.2015, 18:41

Inzwischen habe ich das Lighting-System neu implementiert und Hard Edge Shadow Casting implementiert. Das Ganze läuft noch nicht 100%ig rund und im Debug Mode auf meinem Netbook ... von daher sind im Video noch ein paar kleine Ruckler drinnen :D


8

22.02.2015, 20:18

Vielleicht schaffst du es ja irgendwann noch weiche kanten hinzugekommen. Bis dahin aber ist es doch schon sehr stimmungsvolle stimmungsvoll! Trägt sehr positiv zur "dungeon-athmosphäre" bei :thumbsup:

9

25.02.2015, 15:01

Vielleicht schaffst du es ja irgendwann noch weiche kanten hinzugekommen.

Naja weiche Kanten werden warten müssen .. ich bin froh jetzt die gröbsten Performanceprobleme im Griff zu haben. Manche Sachen (wie, dass Feuerbälle Schatten werden), werden vermutlich Spieler-definierbare Einstellungen werden.

An den 13ms die zum Zeichnen gebraucht werden sieht man ganz deutlich, dass ich solche Einstellungen brauchen werde :D Noch läuft es auf dem Netbook flüssig .. :D

Bis dahin aber ist es doch schon sehr stimmungsvolle stimmungsvoll! Trägt sehr positiv zur "dungeon-athmosphäre" bei :thumbsup:

Vielen Dank!! Insgesamt soll die Atmosphäre düster werden .. mal schauen wie es aussieht, wenn ich mit dem Animationssystem anfange: Sprite-Animationen via Frames und Lighting-Animationen im Stile flackernde Lichter (und daraus resultierende flackernde Schatten).

TrommlBomml

Community-Fossil

Beiträge: 2 141

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

10

25.02.2015, 16:06

was ich persönlich interessant finde würde wären genauere Zeiten bei deinem Profiler: wie wäre es mit zwei stellen nach dem Komma und halbsekündliche UI-Updates (average time)? Dann sind die Sprünge bei Input nicht mehr so schlimm ;)

Werbeanzeige