Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Mär 29, 2024 01:50

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Do Feb 26, 2004 19:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Kurze Einleitung :

Vor knapp 1 1/2 Wochen habe ich angefangen ein neues Spiel zu proggen, nämlich einen Spaceshooter á la R-Type/Salamander, allerdings mit OpenGL und komplett in 3D. Für alle die R-Type bzw. Salamander nicht kennen (was gut möglich ist, stammen nämlich alle aus der 16/8-Bit Konsolenzeit), es handelt sich dabei im "Ballerspiele" im Weltraum die immernur in eine Richtung ablaufen, also keine 6DOF wie z.B. bei WingCommander oder Freelancer.
Unterschied zu den von mir genannten Titeln ist bei Terrorcide - The Nuclear Sword of Damocles (Arbeitstitel) die Ansicht von hinten, so dass der 3D-Faktor besser rauskommt. Ausserdem möchte ich auch zumindest Ansatzweise sowas wie eine richtige Story einbauen, weshalb es bei jeder Mission sowohl ein Briefing als auch ein Debriefing geben wird. Der programmiertechnische Teil ist bereits so gut wie abgeschlossen (~2000 Zeilen, exklusive meiner Basecodeunits), momentan werkle ich daher am Content, also 3D-Modelle, Grafiken und Missionsskripts.

Zuerst aber wie gewohnt ein paar Screenshots :
Bild Bild Bild Bild

Kurze Erklärung zu den "WIP"-Screenshots (v.l.n.r.) :
  • Hier sieht man den Messagecomputer und das Briefing für die erste Mission.
  • Der Spieler wurde grade von seinem Dropship ausgesetzt und macht Staub aus den Asteroiden.
  • Mitten im freien Raum bei der Asteroidenjagd, kurz vor dem Erreichen der Zielbasis in Mission 1.
  • Formationstest (dazu später mehr).


Zum Programmiertechnischen :
Wie gesagt besteht der Quellcode des Spiels aus knapp 2000 Zeilen (darin enthalten sind meine Basecodeunits wie z.B. TexturenManager, ModelManager usw. nicht) und ist bisher (ein wenig Selbststolz kann nicht schaden ;) ) wohl der sauberste und "schönste" Quellcode den ich für ein größeres Projekt geschrieben habe.

Die Verwaltung aller Objekte in der Spielwelt übernimmt bei mir ein TEntityManager (der Begriff Entity sollte den meisten Lesern ein Begriff sein), der eine Liste von TBaseEntity-Objekten verwaltet. Objekte wie Raumschiffe (TActor), Geschosse (TBullet) und Explosionen (TExplosion) sind von dieser Klasse abgeleitet, die die wichtigsten abstrakten Funktionen und Prozeduren beinhaltet (Update, Render, IsObsolete). Verwaltet werden alle Objekte dann dynamisch über eine Pointerliste. Die Verwaltung aller Spielobjekte über einen solchen Entitätenmanager macht die Sache übrigens sehr einfach. Neue Entitäten werden auch über die (überladene) Funktion SpawnEntity erstellt, so dass andere Klassen (z.B. über Skripts) leicht neue Objekte in die Welt einfügen können.

Und wenn wir grade beim Thema Skripte sind : Missionen sowie alle anderen extern benötigten Daten liegen in Form von XML-Dateien vor. Wer selbst das XML-Format nutzt, kennt seinen riesigen Vorteil, nämlich die leichte Erweiterbarkeit. Die Verwaltung des Missionskomplexes wikelt dabei die Klasse TMissionManager ab, die nicht nur neue Missionen aus der entsprechenden XML-Datei lädt, sondern sich auch drum kümmert das die in dieses Datei abgelegten Missionsereignisse an der korrekten Position getriggert werden (dazu gleich mehr).
Alle anderen relevanten Daten verwaltet der TDataManager. Darunter fallen z.B. Formationen und Gizmoinformationen für die einzelnen 3D-Modelle.

Das Rendering (bzw. der ganze 3D-Teil) ist wohl (momentan) weniger interessant. Aber wie schon NapalmBomber3D soll auch Terrorcide als Freeware-Titel eher den Casual-Gamer ansprechen und soll daher auch auf älterer Hardware laufen. Deshalb gehe ich sowohl bei der graphischen Komplexität als auch beim Detailgrad Kompromisse ein. Also nur 2^n*2^n-Texturen (nicht zu groß), recht geringer Polygoncount und vorerst keine Shader. Da ich meinen fertigen ModelManager verwende, werden die 3D-Modelle je nach Hardware entweder als Displaylisten oder als VBOs (letztere nach Material sortiert) gerendert. Der TexturenManager nutzt auf neueren Karten dann auch die automatische Mipmapgeneration, was sich zumindest beim Laden bemerkbar machen sollte.
Einziges "interessantes" Merkmal des Rendervorganges ist daher die Z-Sortierung aller transparenten Objekte (Explosionen und Geschosse), da es sonst besonders bei heisser Action (viele Explosionen und Geschosse gleichzeitig sichtbar) zu hässlichen Effekten käme. Momentan sortiere ich noch mit dem langsamen (aber leicht zu implementierendem) BubbleSort-Algorithmus, der auch eigentlich ausreichen sollte. Andere Algorithmen wie z.B. QuickSort bringen nämlich erst wirklich bei einer großen Anzahl zu sortierender Elemente was.

Kollision ist übrigens auch schon implementiert. Momentan aber nur über BoundingBoxen, was zwar für den Anfang ausreichend ist, aber auf jeden Fall noch verfeinert wird. Werde später also noch zusätzlich Kollision auf Dreiecksbasis einbauen, da pure BBs bei einigen (End)gegnertypen die mir vorschweben alles andere als brauchbar wären.

Die Tools :
So ziemlich jeder Spielentwickler hat begriffen das der wichtigste Teil bei der Entwicklung die passenden Tools sind. Eine tolle Engine nützt ohne Tools zur Contenterstellung nämlich nichts, weshalb ich für Terroricde bisher bereits 3 verschiedene Tools entwickelt habe.

AfterModel (Screenshot) :
Mit diesem Tool kann ich sog. Gizmos (den Begriff hab ich einfach so mal aus 3DSMax übernommen) an meinen Modellen platzieren, die ich dann im Spiel nach Gusto interpretieren kann. Normalerweise sind das die Waffenpositionen und Glows an den Schiffen. Exportiert werden diese Gizmos dann nach XML und vom DataManager den passenden Modellen zugeordnet.

FormationBuilder (Screenshot) :
Eigentlich wollte ich zuerst per Zufall irgendwelche feindlichen Schiffe im Level erstellen lassen, was sich allerdings ziemlich schnell als chaotisch und spielerisch kaum interessant herausgestellt hat. Ausserdem lässt sich dort auch schlecht der für spätere Missionen höhere Schwierigkeitsgrad realisieren. Da ich aber schon nen Entitätenmanager habe mit dem ich bequem neue Aktoren dynamisch erstellen kann, hab ich mir schnell noch ein Tool zusammengebaut mit dem man Formationen erstellen und nach XML exportieren kann. Diese Formationen kann man dann leicht mit dem Missionsskripter an festgelegten Levelpositionen spawnen lassen. So hat man dann 100%ige Kontrolle über das wo und wann innerhalb einer Mission.

MissionsScripter (Screenshot) :
Wie bereits gesagt soll das Spiel storygetrieben sein. Da kann ich natürlich nicht einfach hingehen und per Zufall irgendwo Feinde bzw. Objekte erstellen. Deshalb hab ich bereits am Anfang der Entwicklung einen kleinen Missionsskripter geschrieben, der eine Ereignisliste erstellen kann. Dort kann man dann z.B. angeben das an Levelposition X Objekt Y mit im Skripter eingestellten Eigenschaften erstellt wird. Ausserdem kann man hier noch Briefing/Debrieing, Missionstitel, Länge und Umgebung (u.a.) einer Mission festlegen.



Das wars also erstmal zu meinem kleine Projekt. Habe den Zeitraum bis zur Fertigstellung mal auf 1-2 Monate festgelegt, und schätze das auch einhalten zu können. Das Spiel ist bereits lauffähig, aber ich wollte keine Version veröffentlichen in der es nur 1 1/2 fertige Missionen zu spielen gibt. Das wäre dann doch ein wenig langweilig, aber innerhalb der nächsten paar Wochen dürfte die erste spielbare Version mit 3-4 Missionen auf euch zukommen. Wie gesagt bastle ich momentan sowohl an der Story als auch (v.a., da sehr zeitraubend) an den 3D-Modellen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 27, 2004 23:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie bereits im Meinungsthread zum Projekt festgestellt wurde, ist bei einem Spiel die Erstellung des Contents wohl der aufwendigste Part, besonders wenn man alleine dran arbeitet. Bisher habe ich neben dem Spielerschiff, dem Dropship und der Asteroidenbasis (siehe Screenshot) auch schon zwei feindliche Schiffe gebastelt, wovon ersteres auf dem vierten Screenshots sichtbar, aber kaum erkennbar ist. Die beiden ersten feindlichen Schiffe gibts hier zu sehen. Wie gewohnt endet ein Klick auf das Bild in einer größeren Ansicht :
Bild Bild

Wie lange ich genau an den jeweiligen Modellen gearbeitet habe kann ich nicht sagen, da bei so ner Sache die Zeit schnell vergeht und man die Uhr unten rechts in der Taskbar total misachtet. Es dürften allerdings einige Stunden vergangen sein, aber inklusive dem basteln der Texturen. Konzeptzeichnungen habe ich übrigens keine genutzt, und auch keine anderen Vorlagen. Habe halt frei drauflos gemodellt, die Inspiration stellt sich dabei bei mir immer recht schnell ein.
Aber wie gesagt wird das Erstellen der 3D-Modelle den Großteil der Entwicklungszeit darstellen, denn mehr wie 2 3D-Modelle (wenn sie denn gut aussehen sollen) werden sich an einem Tag wohl kaum erstellen lassen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 17:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wenn ich ein Projekt veröffentlichte, dann halt ich die Leute auch gerne auf dem laufenden. Hab gestern zumindest die grundlegende Story fertiggestellt (die für so ein Spiel natürlich nicht sonderlich umfangreich sein muss), und hab heute dann mal Photoshop angeworfen um mich dem Hauptmenü für das Spiel zu widmen :

Bild
(Klick für größere Ansicht)

Die Entstehungsdauer liegt bei mindestens 3 Stunden, hab aber nebenher noch anderes gemacht, weshalb ich da keine genaue Angabe machen kann. Allerdings zeigt sich dann wieder wie zeitaufwendig selbst so ein kleines Projekt ist, wenn man alles selbst machen muss.

Das Menü ist aber noch nicht komplett fertig, denn die ein oder andere Kleinigkeit gefällt mir noch nicht 100%ig, und evtl. kommen noch Menüpunkte dazu. Der runde Button mit dem Raumschiff drauf wird euch übrigens zur Schiffsdatenbank bringen, in der ihr euch dann spezifische Daten ansehen könnt.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 01, 2004 16:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hab heute das Menü (inklusive MouseOver) ins Spiel integriert, dazugekommen ist noch ein Grafik am oberen Bildrand und nen kleiner Copyrightvermerk :

Bild
(Klicken für größere Ansicht)

Ist zwar noch nicht ganz perfekt, aber dafür das ich kein Photoshop-Pro bin siehts meines Erachtens nach recht gelungen aus. Alles im allen dürften dafür locker 5-6 Stunden draufgegangen sein, aber ohne ein halbwegs ansehnliches Hauptmenü fühlen sich die meisten Spieler eher abgeschreckt. Also im Endeffekt Zeit die gut investiert wurde.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 04, 2004 16:01 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hab mich mal wieder ein paar Stunden meinem Projekt gewidment und zuerst mal das Hauptmenü komplett fertig gestellt und mit nem netten Hintergrund und spieleigenem Cursors versehen :
Bild

Ausserdem hab ich gestern Abend ein neues feindliches Schiff modelliert. Gestern habe ich daran knapp 2h gearbeitet, und heute auch nochmal ungefähr so lange. Es soll ein schwerer Angriffsbomber sein und ist im Verhältnis zu den bisherigen Feinden ungefähr doppelt so groß. Was mir noch nicht ganz so gefällt ist die Texturierung, aber daran werde ich noch arbeiten, Polycount liegt bei knapp 600 :
Bild Bild

Und um euch mal nen Eindruck von der Entstehung eines Modelles zu geben, hab ich ein animiertes GIF angefertigt, das einige Entstehungsschritte im "Leben" obigen Modelles zeigt. Normalerweise lege ich nämlich vor größeren Designänderungen eine numerierte Kopie des Modelles an (als enemy03_1, enemy03_2, usw.) für den Fall das ich was gravierend falsch mache das sich durch STRG+Z nicht beheben lässt :
Bild

So langsam (ist leider ein langwieriger Prozess) kommt also der Content fürs Spiel zusammen. Sobald ich genug feindliche Schiffe und andere Objekte gebastelt habe, werde ich mich dranmachen eine kleine Demokampagne für das Spiel zu stricken um es dann zu veröffentlichen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 09, 2004 16:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Eigentlich wollte ich die Demo schon fertig haben, aber ich hab mir die Tage Sacred zugelegt, das mich seit dem Wochende stark vom Programmieren abhält ;) Aber trotzdem gabs einige Fortschritte bei Terrorcide, und ich rechne mit einem Demorelease (4 oder 5 spielbare Level) spätestens am Wochenende oder Anfang nächster Woche.

Besonders mein wichtigstes Tool, nämlich den MissionsScripter habe ich recht stark erweitert. So hat er jetzt nicht nur weitaus mehr Funktionen, sondern dient inzwischen auch als Zentrale Stelle bei der Contenterstellung. So können aus diesem Tool heraus alle anderen Programme (AfterModel, FormationBuilder) gestartet werden und auch einen Button um die aktuell in Bearbeitung befindliche Mission direkt im Spiel zu starten macht das Entwickeln der Spielinhalte zu ner sehr bequemen Sache. Einen neuen Screenshot gibts es hier.

Ansonsten hab ich die meiste Zeit damit verbracht Content für die Demo zu machen. So gibts bereits ein kurzes Skript, in dem ich alle Missionen für die Demo inklusive Intro und Beschreibung niedergeschrieben habe, um diese dann nur noch im Missionsskripter umsetzen zu müssen. Die 3D-Modelle für die Levelziele sind auch bereits alle fertig und ausser ein oder zwei neuen Feinden muss ich für die Demo wohl kaum noch Modelle basteln.
Da aber Bilder mehr als Worte sagen poste ich mal ein paar aktuelle Screenshots inklusive kurzer Beschreibung (wie immer öffnet ein Klick auf das Bild die größere Variante) :

Bild
Die Rebellenbasis, die der Spieler in einer der Missionen erreichen muss. Hat mich ungefähr 2 Stunden gekostet diese zu modellieren, da ich ihre grundlegende Struktur bereits vor Augen hatte. Polycount liegt irgendwo zwischen 500 und 700.

Bild Bild
Hier sieht man schön den Alphafade-Effekt den ich vor kurzem im Quellcode implementiert habe. Statt die Objekte einfach an der Far-Clipping-Plane ins Bild poppen zu lassen (was sehr hässlich aussieht, heute aber tatsächlich immernoch bei einigen Spielen gemacht wird) werden diese jetzt weich über Alphablending in die Szenerie eingefaded. Wenn man das mal direkt vergleicht liegen da rein optisch und atmosphärisch Welten dazwischen.
Das Objekt welches ihr da seht ist übrigens ein "herkömmliches" Sprungtor, das den Spieler wohl in einigen seiner Missionen begleiten wird.

Bild
Und zu guter letzt noch ein Screenshot auf dem die neue Schiffsklasse vom letzten Update in Aktion zu sehen ist. Der schwere Bomber hält nicht nur recht viel aus, sondern kann mit vier Waffenslots auch gut austeilen.



So viel also zum aktuellen Stand. Momentan sind 3 der 5 geplanten Mission fertig umgesetzt, und der Rest sollte auch schnell gemacht sein. Danach will ich noch ein wenig am Balancing arbeiten, denn es soll weder zu schwer noch zu einfach werden (verschiedene Schwierigkeitsgrade sind geplant, aber wohl nicht für die erste Demo). Ausserdem möchte ich Geschwindigkeitstechnisch auch noch ein wenig optimieren und die Demo auch noch auf nem anderen Rechner ausgiebig testen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 11, 2004 23:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Kurz vor dem Demorelease (hoffe damit bis spätestens Sonntag fertig zu sein) gönn ich euch noch ne Runde Screenshots, da ich die Tage Einiges gemacht habe (Klicken für größere Ansicht) :

Bild Bild Bild Bild

Auf obigen Screenshots kann man gleich zwei der auffalendsten Änderungen erkennen. Zum einen habe ich mich von den fertigen Hintergründen entfernt und mache diese jetzt selbst, da ich dann weder auf fremde Sachen angewiesen bin noch mich irgendwie einschränken muss, und zum anderen habe ich das Ingame-HUD komplett neugestaltet. Es befindet sich jetzt (wie hoffentlich zu erkennen) am unteren Bildschirmrand und besteht grob aus drei Leisten. Blaue Leiste links ist die Schildenergie, die gelbe Leiste rechts zeigt den Status der Schiffshülle an, und die große grüne Leiste unten zeigt (hellgrüne Überlagerung) die aktuelle Position im Level. Komplette Leiste hellgrün bedeutet also kurz vor der Zielankunft. Allerdings wird dieser Platz nicht nur zur Positionsanzeige genutzt, sondern auch später um Schiffsdetails wie z.B. Waffensysteme usw. anzuzeigen.

Ausserdem hab ich das Spiel heute auch auf meinem Zweitrechner getestet (Athlon TB 1,3Ghz, GeForce4-Ti4400) und auch dort war die Performance recht gut. Im schlimmsten Fall (dichtes Asteroidenfeld, diverse Geschosse und Explosionen) gings mal auf 75 FPS runter, aber das ist bei 1024x768 auf solch einem System im Rahmen dessen was ich mir erwünscht habe. Schätze dann also das es selbst auf nem 700Mhz-Rechner mit GeForce1 noch gut spielbar (>30fps in stressigen Situationen) sein sollte. Hab bei der Gelegenheit auch mal die verschiedenen Steuerungsmöglichkeiten durchgetestet, und sowohl mit der Tastatur als auch mit einem Gamepad und einem teuren Joystick spielt es sich recht angenehm.

Hoffe dann mal das ich das mit dem Release in Bälde noch schaffe...

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Erste Version ist fertig...
BeitragVerfasst: So Mär 14, 2004 15:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie im letzten Post versprochen gibts nun endlich auch die erste Demo :
Terrorcide - Version 0.1(4 Missionen, 6,56 MByte, ZIP-Archiv)

Im Hauptmenü funktionieren im aktuellen Release nur die Punkte "Neues Spiel starten", "Spiel fortsetzen" (wenn man in der Kampagne ist) und "Verlassen". Optionen muss man momentan noch über die terrorcide.ini anpassen (das dürfte aber wohl kein Problem sein).

Die Spieldauer der vier Missionen sollte bei knapp 20-25 Minuten liegen (sofern man nicht irgendwo kaputt) geht. Ich hab heute und auch gestern ziemlich viel Zeit mit dem Playtesting verbracht, in der Hoffnung das der Schwierigkeitsgrad so wie auch die Missionen an sich recht ausgewogen sind. Wer sich alle Missionen mal ansehen will, ohne jedoch alle durchspielen zu müssen, der kann über Umschalt+n in die nächste Mission springen, während sich mit d Debuginfos wie z.B. FpS anzeigen lassen.

Getestet wurde die Demo wie erwähnt auf meiner Radeon9700 und einer GeForce4-Ti4400 und selbst auf dem schwächeren Rechner lief es recht flüssig, allerdings wäre ich über Feedback im Bezug auf Geschwindigkeit und Kompatibilität auf euren Systemen wie immer recht dankbar.

Wann die nächste Version folgt kann ich nicht sagen (zumal am Donnerstag meine englische UT2k4-Version da sein sollte), allerdings hab ich schon einiges für die Zukunft geplant. Neben mehr Content (Missionen, Gegner, Umgebungen) sind auch andere Spielerschiffe inklusive Upgrades, sowie verschiedene Waffensysteme und andere Powerups geplant.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 17, 2004 11:33 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Nach dem doch zahlreichen Feedback auf die ersten Version hab mich nicht ausgeruht, und die letzten Tage wieder einiges an Terrorcide getan, und evtl. gibts nächste Woche bereits Version 0.2. Folgendes hat sich geändert, bzw. ist neu hinzugekommen :

Bild
Die Schiffsdatenbank, in der ihr euch alle feindlichen Schiffe ansehen könnt und wo ihr euch über einen begleitenden Text auch einen Eindruck von den Stärken und Schwächen der Feinde machen könnt. Allerdings plane ich aus der Schiffsdatenbank in einem der nächsten Releases eine Infodatenbank zu machen, in der man dann auch Infos zu Storyelementen (ÜGA, Dr.Eisenwinter, usw.) bekommt, was der Atmosphäre des Spiels zu gute kommen sollte.

Bild
Objekthighlighting. Einer der größten Kritikpunkte (berechtigt) war die Problematik der Zielerfassung, da es aus dieser ungewohnten Perspektive nicht so einfach ist abzuschätzen, welches Objekt denn genau in der Schussbahn liegt. Das hab ich jetzt verbessert, und das jeweils dem Waffenslot nächste Objekt wird hell markiert, so dass die Sache mit der Zielerfassung nun deutlich einfacher sein sollte.

Bild
Auch wenns nur ein kleiner Effekt ist, so trägt das Aufblitzen des Schildes am Schiff bei einem Schildtreffer doch zur Atmosphäre bei. Ist zwar kein aufregendes Feature, aber irgendwas muss ich ja zum Screenshot sagen ;)

Ansonsten gibts nun auch noch nen Ladebildschirm, sowohl beim Start als auch zwischen den Missionen, und der automatische Joysticksupport lässt sich nun deaktivieren (für Leute die Probleme mit angeschlossenen Joysticks haben).

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 20, 2004 16:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Kleines Newsupdate zu Terrorcide :
Habe die Tage für alle metallischen Objekte (lässt sich über AfterModel für jeden Mesh festlegen) reflektive Oberflächen implementiert :

Bild Bild

Implementiert habe ich das momentan noch über einfache Environmentmaps (also Spheremapping), aber über kurz oder lang wird das wohl richtigen Cubemaps weichen, denn beim Spheremapping hat man zu wenig Kontrolle über die Reflektionen.

Ausserdem gibts jetzt auch endlich diverse Powerups, die dem Spielfluß stark zugute kommen. Die PowerUps reichen von verstärkten Schilden/Hüllen über Regeneration eben dieser (inklusive Nanoroboter für die Hüllle, damit sich diese langsam wieder restauriert), bis hin zu einem kurzzeitgen Afterburner. Weitere PowerUps sind natürlich in der Planung.
Momentan ist es so, dass das zuletzt zerstörte Schiff einer Formation ein Powerup hinterlässt, welches man dann aufnehmen kann. Das halte ich eigentlich für die beste Lösung, und wird sich so wohl auch bis auf einige Spezialfälle nicht ändern.

Ansonsten hab ich mir auch mal Gedanken über die Implementation von Bumpmapping gemacht, und will das sowohl für alte als auch moderne Karten einbauen. Problem bei alten Karten ist allerdings die Tatsache das ich dann pro Lichtquelle zwei Passes brauche, was dann dazu führen würde das ich maximal eine Explosion zur Beleuchtung der Szene miteinbeziehen könnte, was dann aber auch schon 4 Renderpasses wären. Mal sehen wie ich das löse, aber zuerst kümmer ich mich mal um die Spiellogik.

Wann die nächste Version kommt kann ich nicht sagen, aber ich hoffe bis Ende nächster Woche mit v0.2 fertig zu sein.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 25, 2004 18:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Trotz UT2004 (das mich momentan heftig beschäftigt) hab ich die Tage ein wenig an Terrorcide weitergearbeitet. Implementiert habe ich neben einem (trotz der simplen Methode) recht gut rüberkommendem Warptunnel-Effekt (der animiert natürlich besser aussieht als auf den Screenshots) auch den ersten Endgegner. Fehlt eigentlich nur noch die Mission um diesen herum, aber wahrscheinlich wirds so sein das der Endgegner ein sog. "Warpblocker" ist, den Dr.Eisenwinter nutzt um ungeliebte Feinde auf ihrer Warpreise zu eliminieren. Ist zwar noch nicht implementiert, aber im Endeffekt will ich es so haben (geht dank Formations-IDs recht einfach) das man die Gerätschaft in der Mitte erst zerstören kann, wenn die (um das Zentrum rotierenden) Kugeln zerstört wurden :

Bild Bild

Ob ich den Termin für v0.2 zum Wochenende halten kann, bezweifle ich, aber ich dafür wirds dann in der nächsten Version nen erweiterten Missionsplot inklusive mindestens dem oben gezeigten Endgegner geben.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 28, 2004 00:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Auch die letzten beiden Tage habe ich wieder recht intensiv an Terrorcide gewerkelt, und v.a. unter der Haube so Einiges gewerkelt. Das Spiel an sich (ohne meine ganzen Basecode-Units, die einen Großteil der Arbeit erledigen) besteht jetzt aus ~3400 Zeilen Code, also recht effizient für den momentanen Status.

Neu hinzugekommen ist jetzt Soundunterstützung, die ich zuerst über OpenAL realisieren wollte, aber dann doch mittels FMOD einbauen musste. OpenAL macht nämlich (wohl wegen der sehr alten Header) mit jedem neuen Release meines NForce2-Soundtreibers mehr Probleme. Wollte es auf dem letzten Treiber einfach nur keinen Ton mehr von sich geben, so "belohnt" es mich jetzt selbst bei der simpelsten Anwendung mit einem Absturz. Aber da FMOD ja für Freewareprojekte kostenlos ist, kann ich das verkraften. Momentan gibts erstmal nur Sounds für Schüsse, Treffer bzw. Explosionen; Musik wird dann folgen wenn ich eine brauchbare Lösung (sprich jemanden der die Mucke macht) gefunden habe.

Ausserdem habe ich mich heute endlich mal um ordentlich anpassbare Geschosstypen gekümmert. Im MissionsSkripter (den ich wohl bald umbennen muss, da er sich so langsam zum Zentralen Contenttool für das Spiel entwickelt) gibts jetzt einen weiteren Tab, in dem man die Geschossliste anpassen kann, wobei jedes Geschoss verschiedene Eigenschaften hat, darunter Textur, Schaden, Größe, Soundfile und auch ob das Geschoss zielsuchend ist (der erste Endgegner wird dem Spieler mit zielsuchenden Geschossen zu schaffen machen). Wie gewohnt verwende ich auch zur Speicherung dieser Daten das XML-Format, zu dem ich auch kurz was sagen will : XML (wie das X=eXtensible vermuten lässt) ist ja ein erweiterbares Format, was mir aufgrund dieser Eigenschaft bisher sehr viel Arbeit "erspart" hat. Statt meine (wie so oft früher) eigenen Formate zu nutzen in denen ich z.B. einfach die kompletten Records in eine Datei gespeichert habe (via File of T...), kann ich dank XML einfach und ohne großen Aufwand Objekten neue Eigenschaften verpassen. Wenn ich z.B. mein Ojekt TFormation um eine neue Eigenschaft erweitert habe, häng ich halt einfach noch ein Attribut an den passenden XML-Knoten an, ohne das ich dafür dann das Dateiformat wieder anpassen muss. Von meiner Seite daher ein klares Ja für XML zur Speicherung von Spieldaten (solange diese nicht zu groß werden, also z.B. 3D-Modelle), denn das XML-Format spart viel Zeit und Arbeit.

Auch in Sachen Formationstypen hab ich einiges erweitert. Es gibt neue Bewegungsmuster (z.B. um eine bestimmte Achse rotieren (Aktorbezogen) und um einen Pivotpunkt rotieren; so wurde z.B. die Formation um den Endgegner herum gemacht, die schön brav um den Endboss herumrotiert. Auch kann ich jetzt Formationen mit dem Tag "EndBossSupport" versehen, was im Endeffekt bedeutet das die so markierte(n) Formation(en) erst vernichtet werden muss(müssen) um dem Endboss schaden zufügen zu können. Allerdings wird sich hier noch Einiges mehr tun, denn besonders im Bezug auf Formationen lässt sich sehr viel umsetzen. Wenige, sich dazu noch ähnelnde Formationen können nämlich schnell das Spielgefühl ruinieren, was natürlich nicht in meinem Sinne ist.

Ansonsten hab ich den Warptunneleffekt noch etwas verbessert, denn der wechselt jetzt flüssig seine Farben. In der nächsten Demo dürft ihr das dann in Aktion sehen, sieht nämlich reichlich gut und v.a. passen aus ;)
Nebenbei hab ich heute noch Salamander auf nem PC-Engine Emulator durchgespielt (eines DER Spiele die ich niemals vergesse), und dabei ist mir aufgefallen das man dort (im Emulator kann man ja tollerweise immer Speichern/Laden) die Spielzeit eigentlich nur durch die Schwierigkeit gestreckt hat. Beim Durchspielen mit Laden/Speichern im EMU betrug die Spielzeit nämlich nur magere 20~25 Minuten. Diesen Weg (den früher viele Spaceshooter gingen, R-Type (alle Teile), war auch höllisch schwer, möchte ich nicht gehen, das frustriert nämlich mehr als es Spaß macht. Terroricde wird daher vom Schwierigkeitsgrad nicht so straff wie Salamander/R-Type, aber dafür halt mehr Content (Level, Endbosse) enthalten.

Und wie gewohnt gibts wieder Eye-Candy, auch wenn der diesmal fast so aussieht wie beim letzten Mal. Zu sehen ist wieder Endgegner1, allerdings sieht man das der Warptunnel die Farbe ändert un das die (neuen) Geschosse in Richtung Spieler wandern :

Bild Bild

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 01, 2004 17:14 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Die letzten Tage habe ich größtenteils (wenn ich an Terrorcide gearbeitet habe) mit einigen Umstellungen/Optimierungen am Quellcode verbracht. So werden 3D-Modelle und deren Texturen nur noch bei Bedarf geladen, also wenn man einen Level startet in dem diese zu sehen sind, wodurch sich besonders die Startzeit der Anwendung drastisch reduziert hat, genauso wie der Speicherbedarf (sofern man sich nicht durch alle Mission durchprügelt). Denn besonders wenn man viele 3D-Objekte mit nochmal so vielen Texturen braucht, wirds ab nem gewissen Maß unerträglich wenn diese direkt beim Start des Spiels geladen werden und man so recht lange warten muss bis man loslegen kann. Programmiertechnisch hat das für mich eine Umstellung in meinem ModelManager sowie meiner PackageUnit bedeutet, und natürlich im MissionsManager. Wird über diesen jetzt eine neue Mission gestartet, so geht dieser erstmal alle in diesem Einsatz auftretenden Ereignisse (Aktoren- und Formationserstellung, etwaige Makros mit ihren Unterformationen) durch und schaut ob die dort verwendeten Modelle schon im Speicher (sprich im ModelManager) vorhanden sind. Ist dies nicht der Fall, so werden die Modelle zusammen mit ihren Texturen (sofern noch nicht im TexturenManager) nachgeladen.

Eine weitere Änderung sind die Formationsmakros (siehe MissionSkripter Screenshot). Über den Missionsskripter kann ich jetzt ganz bequem Makros erstellen, die aus mehreren Formationen bestehen und in einer globalen Datenbank (natürlich XML) abgelegt werden. Siehe dazu erstmal folgenden Screenshot :
Bild
Die mechanische Schlange besteht aus mehreren Formation, allerdings fein in ein Formationsmakro gekapselt. So muss ich nicht für jede Schlange meherer Formationen ins Missionsskript einfügen, sondern einfach nur sage das an Eventposition X das Makro Y, welches die Formationen für die Schlange beinhaltet, abgespult werden soll.

Das wars grob zur Entwicklung der letzten Tage. Momentan mache ich mir Gedanken über die Art und Weise wie ich Waffenupgrades für das Spielerschiff integriere. Hab im Zuge dessen auch diverse alte Klassiker angespielt (auf SNES, MegaDrive und PC-Engine) und mir dort mal die verschiedenen Upgradesysteme angesehen. Bei R-Type und Salamander z.B. wird das über aufsammelbare PowerUps geregelt, was allerdings öfters dazu geführt hat das ich mal ein ungewolltes Waffensystem aufgenommen habe. Bei Parodius hingegen wurde es so gemacht das man für das Aufsammeln bestimmter Boni eine PowerUp-Leiste aufgeladen hat, und man dann, wenn die Leiste das gewünschte PowerUp erreicht hat, selbst wählen kann. Ein weiterer Ansatz wäre es auch, den Spieler am Ende des Levels in einen Shop zu bringen, wo er gegen Bares dann sein Schiff aufrüsten kann. Bei Thunderforce 4 (MegaDrive) ist dann wieder anders, denn dort kann man, sobald man ein Waffensystem aufgesammelt hat, über einen Knopfdruck beliebig wechseln. Momentan favorisiere ich letztere Variante, aber mal sehen was ich am Ende einbaue.
Auch solche "Support-PODs" (die kleinen Dinger die z.B. in Salamander aufgesammelt werden und ums Schiff schwirren und mitballern) habe ich vor einzubauen, bin mir aber noch nicht ganz schlüssig in welcher Art und Weise.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 03, 2004 19:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Aktuellste Änderung sind jetzt verschiedene Waffensysteme (6 an der Zahl) für das Spielerschiff, die ich dann natürlich auch gleich mit in das HUD (das ich dabei auch etwas verändert habe) einbinden, das sieht jetzt nämlich so aus :
Bild
Verfügbare Waffensysteme werden farbig dargestellt, und das momentan aktive mit einem grünen Glühen hinterlegt. Um mal kurz deutlich zu machen wie aufwendig so ein HUD ist : In obiger Grafik stecken so über den Daumen gepeilt bestimmt 5-6 Stunden Arbeit, also von der ersten Version bis zur aktuellen Iteration, wobei ja nicht nur das Erstellen des HUDs Zeit kostet, sondern auch Teile herausgepastet und mit Alphamasken belegt werden müssen, um z.B. verfügbare Waffen und Positionsbalken darzustellen. Dafür bin ich jetzt allerdings mit dem Aussehen des HUDs recht zufrieden und werde wohl nur noch minimale Änderungen dran vornehmen.

Wie genau ich die zur Verfügungstellung der Waffensysteme mache weiß ich immernoch nicht. Aber momentan tendiere ich stark zu einem Shop in dem man sich nach einem Level (für das erfolgreiche Beenden einer Mission gibt es einen festen Betrag, plus etwaige Boni für z.B. hohe Trefferquote o.ä.) damit eindecken kann. Es über aufsammelbare Powerups zu machen ist mir dann doch zu zufällig und je nach Mission (Endgegner stellen ja immer eine eigene Mission dar) auch unfair für den Spieler.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 05, 2004 21:32 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie "angedroht" werde ich Shipupgrades jetzt also entgültig via eines Shopsystems realisieren. Vor (oder danach, je nach Standpunkt) einem Einsatz kann sich der Spieler im Hangar mit bestimmten Upgrades eindecken. Wie viel Geld im dabei zur Verfügung steht werde ich wohl folgendermaßen berechnen : Im Missionsskript werden insgesamt drei Beträge festelegt. Einmal der Grundbetrag für den erfolgreichen Abschluss der Mission, und dann sowohl eine Prämie für Trefferquote und eine Prämie für zerstörte Formationen. Wer sich also anstrengt, ne hohe Trefferquote bringt und so viele Formationen wie möglich vernichtet, wird dann auch am Missionsende dementsprechend entlohnt und kann dann schön einkaufen gehen.

Da ich das Ganze dann aber auch gerne stimmungsvoll (bei einem Computerspiel geht es ja im Endeffekt "nur" um eins, nämlich den Spieler in die Atmosphäre einzusaugen) habe ich mir heute mal über das graphische Rundherum des Shops Gedanken gemacht, und bin dann nach ner groben Zeichnung auf Papier zum Schluß gekommen es in Form eines Schiffshangars zu machen. Hab dann auch Flux mal meinen 3D-Modeller angeworfen und heute einige Stunden (da ich sowas gerne von Anfang an richtig, also detailliert, mache, hats recht lange gedauert) an diesem Hangar gewerkelt. Rausgekommen ist dabei (das Menü habe ich im PS gemacht) folgendes (Klicken für größere Ansicht) :
Bild
Sieht fürs Erste doch schon recht stimmig aus, evtl. werden es später aber verschiedene Settings, wie z.B Planeten o.ä., halt der Story entsprechend. Momentan sieht man hier nur die Kaufoptionen für die Waffensysteme, aber solche Sachen wie bessere/schneller aufladende Schilde oder stärkere Panzerung wirds dort auch in Zukunft geben. PowerUps wird man aber immernoch aufsammeln können, dann jedoch nur Ein-Weg-PowerUps wie den Afterburner oder Schild-/Hüllenwiederherstellung.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 29 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.189s | 19 Queries | GZIP : On ]