Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

16.08.2012, 21:28

Wenn du ein neues Projekt beginnen willst, würde ich dir grundsätzlich empfehlen, Duality selbst auszuchecken und zu bauen. Wenn du SVN installiert hast, ist das im Grunde kein großes Ding und es sorgt dafür, dass du immer auf dem aktuellen Stand bist. Offizielle Releaseversionen gibts von mir momentan eher selten, Updates mit Bugfixes und Tweaks aber relativ oft. Allein in den letzten drei Tagen, also seit dem "Platformer Example"-Release gabs fünf neue SVN Commits von mir, kann sich also durchaus lohnen :)
Das werde ich machen sobald ich Ende des Monats mein neues Laptop habe solange wird erstmal Content gesammelt und mit einer unaktuellen Version von Dualtiy gearbeitet.
Würde mich natürlich riesig freuen, wenn der Overnight Contest davon profitieren könnte, aber ich denke für ein öffentliches Event mit Zeitlimit ist Duality noch nicht bereit. Es läuft zwar recht stabil, aber da ich bisher nur sehr wenige Tester außer meiner selbst zur Verfügung hatte, traue ich der Sache noch nicht :D
Duality kann das bestimmt. Ich denke damit kann man schneller arbeiten als mit Beispielsweise SFML oder XNA oder womit auch immer. Ich dachte schon über Unity nach aber dafür ist die Zeit immer recht knapp ( wenn man nicht gerade sehr sehr viel code recyclet). Und bis zur Devmania ist ja auch noch ne Menge Zeit.

22

16.08.2012, 23:10

Wenns von deiner Seite aus was zu zeigen gibt oder Fragen aufkommen kannste gern hier einfach reinposten, würde mich natürlich sehr interessieren was dabei rauskommt und wie deine Erfahrungen sind :)

fkrauthan

Supermoderator

Beiträge: 979

Wohnort: Vancouver

Beruf: Software engineer

  • Private Nachricht senden

23

17.08.2012, 10:08

Ich will eine Linux Version :)
Homepage: fkrauthan.de | Browser-game: flowergame.net

24

19.08.2012, 23:52

Stimmt, eine Linux Version wäre perfekt! Da würde der Spiele-Markt für Linux gleich wieder blühen^^
Ansonst, ich hab mir Duality nur kurz auf nem Windows System angeschaut und finde es ziemlich gut.

25

22.08.2012, 00:00

Zum Thema Linux

Ich will eine Linux Version :)
Stimmt, eine Linux Version wäre perfekt! Da würde der Spiele-Markt für Linux gleich wieder blühen^^
Ansonst, ich hab mir Duality nur kurz auf nem Windows System angeschaut und finde es ziemlich gut.
Das ist zwar ein nachvollziehbarer Feature Request, aber er liegt jenseits des von mir realisierbaren und gleichzeitig abseits jedes momentan meinerseits existenten Entwicklungsfokus :D Ist also leider vorerst unrealistisch, vielleicht kommen wir irgendwann (nicht sehr bald) nochmal darüber ins Gespräch. Momentan liegt die Sache so:
  • Duality basiert hauptsächlich auf OpenTK und Standard-DotNet. Das ist prinzipiell Mono- und damit Linuxtauglich. Jedoch muss das erst für alle beteiligten Libraries und nich zuletzt auch den Code von Duality selbst verifiziert werden. Ich bezweifle stark, dass es "einfach läuft".
  • Der Editor verwendet noch eine Reihe weiterer Libraries, einige an die Windows GUI gekettet, teilweise mit direkten DllImports. Hier müsste für einen Port einiges getan werden. (Das wäre aber zumindest irrelevant für die Engine, Duality Games starten sollte mit Punkt eins abgehakt sein. Entwickelt werden müsste dann halt unter Windows.)
  • Der Editor ist darauf ausgelegt, optimal mit Visual Studio zusammenzuarbeiten. Es müsste geprüft werden, inwieweit Handlungsbedarf besteht, das auf andere IDEs auszuweiten. Und nicht zuletzt müsste man sich darum kümmern.
  • Nicht zu vergessen sind plattformabhängige Probleme, Bugs und Tweaks.
  • Ich besitze selbst kein Linux-System, keinerlei Linux-Erfahrung (weder als Benutzer noch als Entwickler) und beabsichtige nicht, das in naher Zukunft zu ändern. ^^
  • Selbst wenn das anders wäre verfüge ich als einzelner Entwickler, der diese Sache rein auf Hobbybasis betreibt, bei weitem nicht über die Kapazitäten zusätzlich auch noch mehrere Plattformen zu supporten.
Zusammenfassend: Falls es jemals eine Linuxversion geben sollte liegt davor ein langer Weg, den ich in Anbetracht verschiedener Faktoren keinesfalls allein bestreiten kann. Da müssten ein paar Leute her, die sich mit Mono und Linuxentwicklung in C# auskennen und sich selbst mal ransetzen. Der Source Code liegt offen, wer sich da tatsächlich heran wagen will: Nur zu ;)

26

24.08.2012, 00:00

Dualitor: Usability-Kram

Gibt mal wieder ein kleines Update. Hier nochmal in übersetzter Form, aber leider ohne Layout weil ich den Tabel-Tag nicht verstehe und es hier keine Floating-Funktion zu geben scheint:


(Link)
Es gibt jetzt einen Grid-CamViewLayer, der sich automatisch an den gegebenen Zoomfaktor anpasst und die Orientierung erleichtert. Außerdem werden die Raumkoordinaten des Mauscursors angezeigt. Was man hier auch ganz gut sehen kann sind diese netten Hintergrundboxen für die im CamView angezeigten Texte. Das macht sie deutlich besser lesbar.


(Link)
Ein neues Feature names DesignTimeData erlaubt es, GameObjects im Editor mit beliebigen Daten zu annotieren. Die Core Library kriegt davon nix mit und die Daten werden in einer separaten Datei gespeichert, der Overhead für das tatsächliche Spiel ist also exakt 0.
Eine erste Anwendung findet es darin, dass man GameObjects im Editor verstecken oder "sperren" kann. Sperren bedeutet, dass das Objekt nicht mehr durch Picking-Operationen selektiert werden kann, was insbesondere für flächendeckende Hintergrundobjekte eine echte Erleichterung ist. Bisher hat man die gerne mal versehentlich verschoben oder mitselektiert.


(Link)
Im Scene View kann man nun auswählen, ob Komponenten angezeigt werden sollen oder nicht. Es gibt durch ein verbergen keinen weiteren Nachteil, kann aber zu einer besseren Übersicht verhelfen.


(Link)
Klickt man auf den Play-Button der Sandbox, erhält ein bereits existierender Cam View mit Game Mode den Eingabefokus, damit man direkt mit Nutzereingaben loslegen kann. Existiert bisher kein Cam View, wird einer im Game Mode erstellt.


(Link)
Der Object Inspector verfügt nun über einen Debug Mode, in dem nicht nur öffentliche Felder und Properties angezeigt werden, sondern auch alle nicht-öffentlichen. Das gilt aus naheliegenden Usabilitygründen nur für vom Nutzer selbst geschriebene Komponenten.

An dieser Stelle besonderen Dank an TrommlBomml, der mich per PN mit User Feedback unterstützt hat :)

CodeBase

Treue Seele

Beiträge: 98

Wohnort: Österreich -> Salzburg

Beruf: Datenbank Entwickler

  • Private Nachricht senden

27

24.08.2012, 08:35

Sieht echt cool aus.
Mal ne frage wird es auch eine möglichkeit geben das ganze ins Web zu portieren ?
Wenn man daraus auch HTML5 Spiele erstellen könnte wäre es echt cool.
Planst du sowas auch ? Ansonsten :thumbsup:

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

28

24.08.2012, 11:52

Zitat

kann man auch die Module in Visual Basic schreiben ?
Dadurch, dass das alles in .net ist, kannst du das ja :) Vorausgesetzt du meinst Visual Basic .NET!

29

31.08.2012, 01:02

Kleines Update
Seit meinem letzten Post hat sich im SVN wieder einiges getan. Hier mal die Kurzfassung:
  • AnimSpriteRenderer unterstützen jetzt das Abspielen beliebiger Frame-Sequenzen anstatt wie bisher einer durchgängig aufsteigenden Nummerierung. Außerdem erlaubt der neue Queue-Loopmode es, einzelne Frames in einer Warteschlange hinten einzufügen während sie in der Darstellung vorne abgearbeitet werden. So sind Übergänge und eigene Spritesheets besser integrierbar.
  • Core Plugins werden jetzt beim Laden und Neuladen vom Editor per Reflection einem groben Scan unterzogen. Es werden Warnings ausgegeben, wenn dabei Dinge gefunden werden, die Duality Best Practices widersprechen, beispielsweise öffentlich zugreifbare Felder in Komponentenklassen.
  • Das vom Editor verwendete Source Code Template beinhaltet standardmäßig kein Editor Plugin mehr, da "Build Solution" so eine Anfänger-Fallgrube darstellt, den Editor unnötigerweise zum Neustart zu zwingen. Das Editor Plugin ist noch vorhanden, nur nicht mehr standardmäßig Teil der Visual Studio Solution und kann bei Bedarf wieder hinzugefügt werden.
  • Wird ein GameObject im Scene View erstellt, wird es automatisch zum Umbenennen selektiert.
  • SpriteRenderer-Klassen unterstützen über das neue Offset-Property eine Anpassung der Sortierreihenfolge ohne Veränderung ihrer Z-Position.
  • Der Help Advisor zeigt für den Cam View nun Tastatur-Shortcuts an.
  • Es gibt jetzt die Möglichkeit, per Tastatur-Shortcut sowohl Kamera als auch selektierte Objekte pixelweise in allen drei Achsen zu verschieben. Geht mit dem Pfeiltasten und Numpad + / - für Objekte und dasselbe plus Strg für die Kamera.
  • Im Cam View gibt es jetzt einen "Reset Z" Button mit dem sich die Kamera zurücksetzen lässt - auf die Z-Position, mit der die Z-0-Ebene im Fokus liegt und unskaliert dargestellt wird.
  • Der Editor macht nun standardmäßig vor jedem Speichern ein Backup der betreffenden Datei (Siehe Backup-Ordner). Das ist natürlich optional.
  • Der Editor macht nun standardmäßig alle 30 Minuten ein Autosave aller Projektdaten (inkl. Backup, wo zutreffend). Alternativ können Autosaves auf 10 oder 60 Minuten konfiguriert oder ganz abgeschaltet werden.
  • Das Bewegungsverhalten der Kamera wurde angepasst um feinere Bewegungen zu ermöglichen, insbesondere auf der Z-Achse
  • Eine große Menge an Tweaks und Bugfixes
Diesmal geht ein besonderes Dankeschön an Darkrel, der mich auf den Großteil der Bugs aufmerksam gemacht und eine Menge Anregungen beigesteuert hat. :)

Fragestunde

Im Gespräch mit Darkrel ergaben sich einige Fragen, die vielleicht auch für andere Benutzer interessant sein könnten. Mit seiner freundlichen Erlaubnis poste ich daher mal ein paar Auszüge aus unserem Wortwechsel:

Zitat

Wenn ich im Code eine Eigenschaft hinzufüge, wird diese nicht im Editor angezeigt - auch nicht wenn ich den Editor neu starte. Ist das so gewollt oder nicht? Beim Platformer Beispiel wird die Eigenschaft des Charactercontrollers auch im Editor angezeigt (IsOnGround).
Im Editor angezeigt werden alle Properties, die nicht statisch und öffentlich (public) sind. Wenn ihr die aktuelle Duality-Version aus dem SVN verwendet, gibt es mittlerweile auch den Debug-Mode für den Objekt Inspector: Ist der aktiv, werden auch die nicht-öffentlichen (protected, private, internal) Properties sowie ebenfalls alle Felder angezeigt, statische aber trotzdem nicht. Der Object Inspector befasst sich schließlich mit Instanzen, nicht der Klasse an sich. :)
Generell sind zur Konfiguration von Komponentenklassen Properties gegenüber Feldern vorzuziehen. Das könnte beispielsweise so aussehen:

Quellcode

1
2
3
4
5
6
7
8
9
public class TestClass : Component, ...
{   // Privates Feld
    private string name;    // Öffentliches Property
    public string Name
    {
        get { return this.name; }
        set { this.name = value; }
    }
}



Zitat

Gibt es eine Möglichkeit eine Farbe als Transparenzfarbe zu definieren? Ebenfalls beim Platformer Beispiel, kann ich zwar die Explosion laden und als Animation anzeigen, allerdings bekomme ich es nicht hin den schwarzen Hintergrund auszublenden.
Transparenzfarben werden nicht unterstützt, allerdings wird der Alphakanal einer Textur natürlich als Transparenz interpretiert. Wenn du eine Farbe Transparent haben willst, öffne die Bilddatei im Grafikprogramm deines Vertrauens, wähle die Farbe aus, mach sie dort durchsichtig und speichere die Bilddatei wieder. Das setzt natürlich ein Format voraus, das mit dem Alphakanal umgehen kann, also beispielsweise .png
Bei einer Explosion mit schwarzem Hintergrund würde ich allerdings ein anderes Vorgehen empfehlen: Additives Blending ist wie geschaffen für diesen Fall. Wähl die Material-Ressource der Explosion aus und ändere das Technique-Property. Es steht vermutlich auf Mask oder Alpha, was du willst ist Add. Einfach bei den Standard-Ressourcen im DrawTechnique-Ordner (Oder SmoothAnim-Unterordner, je nachdem) schauen, "Add" lokalisieren und per DragDrop in das Technique-Property deines Materials ziehen. :)

Zitat

Wir wollen die Schwerkraft in verschiedene Richtungen lenken können. Was ist das dein erster Gedanke zu? Kann man in Duality irgendwie die Richtung der Schwerkraft direkt setzen oder ist unser Ansatz, einfach alle Map - Elemente um den Spieler zu drehen der einfachere?

Was die Schwerkraft angeht: Der Schwerkraftvektor ist eine Eigenschaft von Scene-Ressourcen. Du kannst sie über "GlobalGravity" festlegen, sowohl im Editor als auch zur Laufzeit über Scene.Current. Die Richtung ist damit jederzeit frei wählbar. Alternativ kann man auch GlobalGravity auf 0 setzen und programmatisch RigidBodies mit ApplyForce beschleunigen. Die gesamte Szene drehen ginge zwar auch, aber würde ich an dieser Stelle nicht empfehlen :D

Zitat

Wenn ich eine "Todeszone" einrichten will, um einen Charakter sterben zu lassen, wie gehe ich da in Duality am besten dran ran? Ich meine damit, dass im Platformer Example der Charakter nicht stirbt wenn er vom Gras runter hüpft. Solche Zonen sind ja keine Materialien. So wie ich dein Componentsystem verstanden habe, wäre der richtige Ansatz eine TriggerComponent, Kombiniert mit einer ZoneComponent. Ich sollte ja theoretisch ein GameObject einfügen können, welches nur diese beiden Komponenten enthält, richtig? Bietet mir Duality von Haus aus eine grafische Ansicht im Editor von z.B. einem Rechteck (das Rechteck der ZoneComponent)?
Die einfachste und zugleich flexibelste Variante wäre, RigidBodies zu nutzen. Du kannst die Shapes eines RigidBodies in den "Sensor"-Modus schalten, dann werden sie im RigidBody-Editor orangefarben angezeigt und stellen keinen festen Körper mehr da. Solche Shapes detektieren Kollisionen, reagieren jedoch nicht mehr darauf! Alles was du danach noch brauchst ist eine eigene Komponente (z.B. ZoneComponent), die ICmpCollisionListener implementiert und in OnCollisionBegin / OnCollisionEnd entsprechend deinen Vorstellungen reagiert :)

Wenn du in einer dieser Methoden genauere Infos über die Kollision haben willst, musst du die übergebenen CollisionEventArgs in RigidBodyCollisionEventArgs casten und auf null prüfen (wenn du den best practices folgen willst, denn auch wenn das bisher nie passiert, theoretisch könnte es auch nicht-RigidBody-Kollisionen geben). Anschließend kannst du die benutzen, um das genaue kollidierte Shape-Objekt zu bekommen, falls du das brauchst. Das GameObject bekommst du auch in den CollisionEventArgs bereits.

Mit dieser herangehensweise kannst du Zones mit beliebigen konvexen Polygonen und Kreisen definieren, eben ganz wie RigidBodies selbst :) Nur nicht vergessen, die Zone auf statisch zu schalten, sonst fällt sie runter und hält niemals an, da sie ja selbst nicht kollidiert :D

Achja, eins noch: Wenn du GameObjects, Ressourcen oder Komponenten zerstören willst, solltest du in den meisten Fällen DisposeLater gegenüber Dispose bevorzugen, da dein Code sich in den allermeisten Fällen indirekt in der aktuellen Update-Schleife der Engine befindet. Wenn du mittendrin auf die Idee kommst, mal GameObjects zu löschen, oder gar die Szene, in der sich alles befindet, dann läufst du Gefahr dass sich ein Objekt quasi selbst den Boden unter den Füßen wegzieht.


Zitat

Wie genau wirken sich Prefabs aus? Ich erstelle ein Prefab und ziehe ein GameObject von der Scene View in das Prefab und kann die so gespeicherte Konstellation direkt wieder erstellen. Was passiert aber, wenn ich ein Prefab Objekt auf dem Schirm habe und das Prefab neu definiere (ein anderes GameObject darauf ziehe)?
Jede Änderung an einem Prefab wirkt sich auf alle Instanzen dieses Prefabs aus! Damit alle Instanzen nicht gezwungen sind, völlig identische Kopien zu sein, verwalten sie lokal eine Änderungsliste, die nicht vom Prefab übernommen und im Editor automatisch verwaltet wird, wenn man etwas verändert.
Beispiel: Du erstellst ein Prefab von einem Objekt, das im Ursprung rumliegt und via ColorTint rot gefärbt wurde. Das instanziierst du jetzt dreimal und schiebst die drei Kopien jeweils woanders hin. Wenn du nun bei deinem Prefab (durch instanziieren, verändern, "Apply" klicken) den ColorTint auf "grün" stellst, werden sich alle anderen Instanzen ebenfalls grün färben! Ihre verschobene Position behalten sie aber. Welche Properties in der objektlokalen Änderungsliste sind, kannst du daran sehen dass sie im Object Inspector fett gedruckt werden. :)
Klickst du bei einer Prefab-instanz auf Apply, wird diese als neues Muster verwendet. All ihre Properties werden ins Prefab übernommen und die lokale Änderungsliste gelöscht.


Zitat

Wie werden wenn man GameObjects verschachtelt Eigenschaften vom jeweiligen Vater - GameObject geerbt?
Lediglich die Transform-Komponente passt sich an ihr Parent-Objekt an, d.h. Position, Rotation und Skalierung sind relativ. Das lässt sich aber abschalten, wenn man im Child-Objekt in der Transform-Komponente "IgnoreParent" anklickt. Wird aber eigentlich nur sehr sehr selten benötigt. Wenn der Parent gar keine Transform-Komponente hat, sind all seine Children völlig frei, d.h. hier wird dann tatsächlich nichts "vererbt".


Zitat

Ein Hinweis dazu, was im Sandbox - Modus geht und was nicht wäre hilfreich. Wir haben ewigs gedacht unser Code sei völliger Crap, weil im Sandbox modus keine keyboard inputs funktionieren :wacko:

Keyboard- und auch Mouse-Inputs funktionieren! Allerdings nur wenn die Cam View die man gerade verwendet im Game View modus ist. Andernfalls werden Keyboard- und Mouse-Inputs als Editor-Relevant eingestuft und im Editor verarbeitet anstatt weitergeleitet zu werden. Das ist schon gewollt so :) Nicht immer will man wirklich testspielen, wenn man die Sandbox betritt, daher existieren die dafür nötigen Inputweiterleitungen nur explizit im Game Mode.
Was ich selbst ganz gerne mache: Zwei CamViews offen haben, einer zum editieren, der andere im Game Mode, wenn ich testen will. So kann ich beides: Testspielen wenn ich die Sandbox betreten hab, kurz im anderen View was ändern und weiterspielen ohne unhandlich den View Modus zwischendrin zu ändern.


Zitat

Wenn man auf Keystrokes reagieren will, was ist der Unterschied in deinem Ansatz im Platformer sample zwischen DualityApp.Keyboard[Key.XYZ] und einem KeyDown event handler in Duality.Keyboard.KeyDown? Wieso hast du alle Tasten bis auf die leertaste mit dem ersten Ansatz abgefragt und die Leertaste dann mit dem zweiten?
DualityApp.Keyboard[Blub] ist so lange True, wie die Taste gedrückt ist, auch wenn man sie gedrückt hält. KeyDown wird genau einmal getriggert, wenn die Taste heruntergedrückt wird. Hatte die Leertaste über KeyDown-abgefragt, weil ich hier wirklich nur einen einzigen Trigger-Aufruf wollte, keine per-Frame checks :)


Zitat

Wie funktioniert die Licht - Komponente? Das habe wir nicht wirklich gecheckt o.O
Die ist eigentlich nicht dafür vorgesehen, in Duality direkt mit dabei zu sein, das war nur mal so ein Experiment, was du mit der Solution aus dem SVN halt dabei hast ;) Es gab da aber mal eine TechDemo, die dir demonstrieren kann was sie tut und wie man sie verwendet. Da die mittlerweile jedochso eingie Versionen zurückliegt, werden die beiliegenden Daten nicht 1:1 in der SVN-Version funktionieren. Zum angucken und lernen reichts aber sicher :)


Zitat

Ist es im Moment überhaupt möglich Tilesets zu verwenden? Also z.B. mehrere verschiedene Bodenstrukturen in ein Bild zu pappen und die dann einzeln anzeigen lassen? Oder muss ich da den namentlich eher unpassenden AnimSpriteRenderer nehmen?
Nein, da gibt es momentan noch keine Lösung. Sowas müsste man sich noch selbst basteln, kam noch nicht dazu :) Es ist allerdings auch alles andere als leicht, eine für alle denkbaren Projekte globale Lösung für Tilemaps zu finden - insofern wird auch dieses Feature wohl noch ein Weilchen brauchen. Bis dahin: SpriteRenderer angucken und als Inspiration für einen eigenen TilemapRenderer nehmen. Eventuell könnte man auch einen eigenen Tileset-Ressourcentyp definieren und beides kombinieren. Erweitert werden könnte das auch noch mit einem TilemapBody, der aus einer Tilemap automatisch die zugehörigen Shapes für einen ebenfalls angehängten RigidBody definiert. Ein hübsches Design wäre also hier die Aufteilung in Tileset(-Ressource) Tilemap, TilemapRenderer und TilemapBody.
Der größere Brocken müsste aber hier auf Editorseite passieren, den eine Tilemap ist nicht soo viel wert, wenn man keinen vernünftigen Editor hat um sie zu basteln. Kann zwar prinzipiell auch jeder selbst machen, über entsprechendes Editor-Plugin, aber ich muss zugeben dass das ohne jede Erfahrung nicht ganz leicht ist. Da müsste man wohl eine Weile investieren. Insofern hab ich vor, früher oder später eine gneralisierte Lösung für Tilemaps in Dualitys Core aufzunehmen, aber wie gesagt: Geduld :D Wird noch dauern.


Zitat

Ist es möglich eine virtuelle Ordnerstruktur in der Scene - View einzuführen? Besonders bei grösseren Szenen wird das ganze schnell unübersichtlich, weil die Scene View komplett vollgepappt ist.
Dafür verwendest du am besten leere GameObjects. Der Overhead dafür ist sehr gering und sie enthalten selbst keinerlei Logik, beeinflussen also ansonsten nichts. :)
Ebenfalls zur Übersicht beitragen kann der Filter, der sich unterhalb von Scene- und Project View befindet. Er geht leider manchmal etwas unter, daher wird er gerne übersehen. Wenn man dort einen Namen eintippt werden nur noch die Nodes dargestellt, die diesen enthalten.


Zitat

Wie wechselt man zwischen verschiedenen Szenen?
Doppelklick auf die Scene-Ressource im Project View :)

Darkrel

Treue Seele

Beiträge: 143

Wohnort: Zürich

Beruf: Student ETH Zürich

  • Private Nachricht senden

30

01.09.2012, 14:13

Dazu noch von mir etwas:

Wenn man sich erstmal ein wenig in Duality eingearbeitet hat (und das geht fix), kommt man recht schnell voran. Wir hatten an unserem Programmiertag mit einigen Bugs zu kämpfen, die mittlerweile jedoch gefixt sind.
Ich kann das Ganze nur weiterempfehlen, zumal Fetze auf Verbesserungsvorschläge und Bugreports sehr schnell reagiert. Von meiner Riesen - Liste an Verbesserungsvorschlägen waren die nicht allzu aufwändigen davon innert 24 Stunden umgesetzt und über SVN verfügbar.

Dadurch dass man die Source von Duality hat, kann man einige Bugs auch selbst fixen. Der Code ist auf den ersten Blick gut strukturiert und lesbar.

Grüsse,
Darkrel

Nachtrag:

Wir (mein Kumpel und Ich) haben uns um 8:00 Uhr bei mir eingefunden und die erste Stunde damit verbracht uns in Duality einzuarbeiten. Fetze hatte mir einige Fragen schon am Vorabend beantwortet, wir konnten also recht schnell loslegen. Bis zum Mittag hin haben wir uns auf die zentral Gameplay - Elemente und einen Grafikstil geeinigt und die benötigten Texturen und Animationen erstellt. Nach einer kurzen Mittagspause starteten wir mit dem Level - Design in Duality. Ein Level war recht fix aus einzelnen teilen von Hand aufgebaut und der Spielercharakter an seinen Startpunkt im Demo - Level gesetzt. Die Animationen, Kollisionserkennung und Physik funktionierten da bereits einwandfrei und das Verhalten war sehr einfach zu definieren.

Ziel des Spiels sollte es sein eine Kugel durch ein Labyrinth zu manövrieren und Stacheln auszuweichen. Gesteuert wird dabei sowohl über die Schwerkraft - Richtung, als auch über die Rotation der Kugel.
Um 15:00 Uhr hatten wir ein Demo - Level mit Stacheln fertig und konnten die Kugel durch das Level manövrieren und sterben lassen. Dann fanden wir die ersten Fehler in Duality. Zum einen mussten wir uns durch den Duality - Code wühlen um einen Bug zu finden, der verhinderte dass der Sandbox Modus benutzt werden konnte. Zum zweiten haben wir nicht geschnallt dass wir nicht die komplette Projektmappe erstellen sollten.
Im Nachhinein muss ich sagen, wir hätten das Bugfixing besser sein lassen und uns auf die Fertigstellung des Spiels konzentrieren sollen. Als wir die beiden Probleme schliesslich in den Griff bekamen (sogar wir sind irgendwann auf die Idee gekommen, dass wir nicht die ganze Projektmappe erstellen sollten ;)) machten wir uns an die Umsetzung der restlichen Spielelemente, als wir dann schliesslich abbrechen mussten weil uns die Zeit ausging und wir noch andere Dinge vorhatten.

Das Endresultat sah in etwa so aus:

Bild

Nach diesem Tag mit Duality bin ich mir sicher: An einem weiteren Tag würden wir das Spiel vermutlich schon am frühen Nachmittag fertig haben.
Edit: Zumindest wenn der letzte Bug den ich gefunden habe noch gefixt wird ;)
:cursing:

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Darkrel« (03.09.2012, 19:19)


Werbeanzeige