DGL https://delphigl.com/forum/ |
|
Projekt "W" https://delphigl.com/forum/viewtopic.php?f=13&t=5930 |
Seite 1 von 6 |
Autor: | Sascha Willems [ Fr Sep 08, 2006 14:14 ] |
Betreff des Beitrags: | Projekt "W" |
----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- Update 14.08.2007 : Es ist fertig! Alle Infos und Downloads finden sich hier! ----------------------------------------------------------------------------- Einleitung : Wer meinen Blog liest, oder diesen Thread im OT-Forum gelesen hat, wird evtl. wissen dass ich an einem neuen (alten, aber dazu gleich mehr) Spiel werkle, das momentan unter dem Arbeitstitel Projekt "W" läuft, wobei die Leute aus meinem realen Bekanntenkreis auch schon wissen wofür das "W" steht. Und da ich bisher alle meine Projekte auch auf der DGL vorgestellt habe, werd ich bei meinem aktuellen Projekt mit dieser Tradition natürlich nicht brechen. Hintergrund : Der Hintergrund zu Projekt "W" ist aus meiner Sicht heraus recht interessant, denn dieses Projekt habe ich bereits 2002/2003 begonnen aber dann nach einem Prototyp und kurzer Entwicklung wieder eingemottet. Warum? Einfach Antwort : "Lahmes" Spielprinzip. Das Designdokument von damals propagierte ein sehr komplexes Spielprinzip, bei dem ein Match durchaus auch mal mehrere Tage hätte dauern können. Aus Sicht des Spielers ist das nicht unbedingt schlecht, siehe z.B. die riesigen Schlachten aus Panzer Generl oder vergleichbaren Spielen. Schlecht ists allerdings aus der Sicht eines Hobbyentwicklers, denn um die lange Spielzeit auch für den Spieler interessant zu gestalten, benötigt es sehr vieler Inhalte. Was bringt ein 24h-Match, wenn man bereits nach 1 oder 2 Stunden alles erforscht hat und alle möglichen Gebäude errichtet hat? Es bringt vor allem Monotonie, und Monotonie ist nichts für ein Computerspiel, denn da sollte der Spieler in irgendeiner Weise immer unter "Spannung" stehen. Und wenn man alleine an einem Projekt arbeitet kann man nicht hunderte verschiedene Einheiten und Gebäude designen, beschreiben, umsetzen und dann dafür auch noch 3D-Modelle erstllen, das würde dann wieder ein Ewigkeitsprojekt werden. Also lies ich es damals "gut" sein und widmete mich anderen Projekte. Allerdings habe ich dann vor wenigen Wochen wieder Lust bekommen ein neues Spiel zu entwickeln und hab dann auch ein kurzes neues Spielkonzept entworfen, mich dabei aber wieder an Projekt "W" zurückerinnert. Also neue Spielidee schnell vergessen und Designdokument von Projekt "W" ausgebuddelt und drüber gegrübelt. Dann hab ich mich direkt drangemacht das alte Spielkonzept zu überarbeiten, und nach über 10 Seiten mit Änderungen und v.a. guten neuen Ideen steht jetzt ein verbessertes Spielkonzept mit kürzerer Spieldauer (und weniger Inhalt den ich umsetzen muss), welches aber dennoch mehr Spaß machen sollte als das alte Konzept! Die Überarbeitung des Spielkonzepts war übrigens überaus interessant, und diesmal habe ich auch ein Designdokument in dem so ziemlich alles schriftlich hinterlegt ist. Bei meinen älteren Projekten habe ich oft Spielideen grob angerissen und dann direkt beim Proggen umgesetzt, was dann im Endeffekt alles andere als optimal war. Das ist diesmal anders, im Designdokument sind die einzelnen Spielelemente also nicht nur grob beschrieben, sondern bis ins Detail hin ausgearbeitet. Story : Gleich vorneweg : Zur Story selbst möchte ich noch nicht viel verraten, zumal die wohl auch noch teilweise überarbeitet wird. Das Spiel selbst spielt in der Nahen Zukunft (Datum hab ich mir erspart, evtl. mach ichs wie die MegaMan-Reihe also einfach 20XX ), und die bisherigen Staatenkonstellationen sind nicht mehr präsent. Jetzt gibt es nur noch 5 große "Nationen", die um die Vorherrschaft kämpfen. Bei der Ausarbeitung der "Nationen" hab ich mich übrigens an der aktuellen Weltpolitischen Situation orientiert und mir überlegt wie die Erde in einigen hundert Jahren in Sachen Aufteilung aussehen könnte. Da sind dann zwar auch ein paar politisch Inkorrekte Sachen dabei, aber da ich selbst und auch mein kompletter Bekanntenkreis politisch Inkorrekt sind ist mir das ehrlich gesagt schnuppe wenn sich da jemand drüber pikiert. So habe ich also für jede der Nationen eine eigene Hintergrundgeschichte mit aktuellem politischem Bezug sowie einie eigene Flagge entwickelt, anhand derer man eigentlich direkt erkennt um welche Nation es sich handelt. Die Zukunft in der Projekt "W" spielt ist übrigens keine friedliche, es wird also keine Diplomatie geben, und wer nicht unter die Zahnränder kommen will muss selbst zu einem Zahnrad werden. Spiel : Grundlegend gesagt ist Projekt "W" ein stark erweitertes Risiko mit fiktivem Szenario, was man allerdings von so ziemlich allen rundenbasierten Strategiespielen sagen kann. Jeder Spieler besitzt von Beginn an je nach gewählter Nation eine bestimmte Anzahl von Regionen (vergl. mit Staaten), und er muss gegnerische Nationen vernichten. Dabei sieht der Spielablauf in etwa wie folgt aus (Änderungen vorbehalten) :
Die Kämpfe bei einem Angriff auf befeindete Nationen laufen übrigens auch rundenbasiert auf einem Hexfeld ab (siehe Screenshots). Wenn man also seine nagelneue Armee auf eine feindliche Region zieht, wird auf das Hexfeld umgeschaltet, wo man dann seine Einheiten bewegt und angreifen lässt (bzw. verteidigt, wenn man selbst angegriffen wird) bis eine Partei gewonnen hat. Optional plane ich allerdings auch einen "Schnellkampf-Modus", bei dem der Kampfausgang errechnet wird. So ist dann jeder bedient, sowohl der gemächliche Spieler als auch der angehende Feldgeneral. In Sachen Mitspieler plane ich (Betonung auf "plane", k.A. wie viele Modi davon letztendlich ins Spiel finden) so ziemlich alles möglich. Angefangen bei computergesteuerten Gegner, über menschliche Spieler via LAN und Internet, so wie evtl. sogar Play-By-Mail (ne Idee von nem Bekannten, technisch recht leicht umsetzbar und sicherlich interessant, so kann man mal zwischendurch in der Mittagspause oder so nen Zug machen). Da es rundenbasiert ist sollten LAN und Internetanbindung kaum problematisch werden, wobei dann natürlich die Zeit für Züge begrenzt wird, also alle Spieler z.B. nach 10 Minuten fertig sein müssen. Aber das wird alles über Spieloptionen geregelt. Umsetzung : Der für die meisten DGLler wohl interessanteste Teil : Die programmiertechnische Umsetzung. Um eins direkt vorneweg zu nehmen : Für mich persönlich gibts in diesem Projekt rein programmiertechnisch nix neues zu erlernen, das Programmieren ist hier eher Routine, und Features die ich drin haben will sind meist nach kurzer Zeit umgesetzt. Zwar lerne ich dabei nix, allerdings habe ich nen stetigen Fortschritt und kann Features direkt ohne großes Probieren oder Experimentieren umsetzen, also quasi direkt vom Designdokument in den Quellcode. Ist quasi das direkte Gegenteil zu meinem letzten Projekt, dem NewtonPlayGround, wos kein Designdokument oder so gab, ich aber jede Menge gelernt hab. Macht aber natürlich trotzdem Spaß, sonst würd ichs nicht machen. Für die graphische Umsetzung verwende ich wie gewohnt OpenGL, und momentan noch nix ausgefeiltes. Evtl. kommt später nochn Bump-Mapping und Tag-Nacht-Shader für die 3D-Erdkugel dazu, aber viel komplexer wirds nicht werden. Für den Sound (auch wenns momentan nur ein Sound + Hintergrundmusik ist) nutze ich OpenAL, und zwar über ein Soundsystem dass ich vor längerer Zeit programmiert habe. Das Soundsystem ist austauschbar, ich kann also on-the-fly zwischen meinem FMOD und meinem OpenAL-Soundsystem wechseln, in dem ich einfach nur den Klassentyp ändere (also statt TalSoundSystem TFMODSoundSystem). Aber auch sonst gibts hier nix Interessantes, also Sachen wie EAX oder 3D-Sound braucht so ein Spiel ja nicht. Ansonsten benutze ich momentan auch noch GDIPlus zum Laden von PNG-Dateien. Ich hab also endlich das alte TGA-Format von Bord geworfen und kann dank GDI+ ohne zusätzliche DLL das moderne PNG-Format laden. Vom programmiertechnischem Standpunkt aus gesehen ist eigentlich nur die GUI interessant, denn für Projekt "W" brauchte ich eine komplette windowsähnliche GUI die mit OpenGL implementiert wurde. Also hab ich ne eigene GUI-Lib geschrieben (die natürlich von Projekt "W" unabhängig ist) die mir Fenster, Labels, Panels, Buttons, Listboxen usw. bietet und dazu dann auch einen passenden GUI-Editor geschrieben (siehe Screenshots) mit dem ich dann einfach und schnell neue Fenster zusammenklicken kann. Neben den üblichen UI-Komponenten gibt es noche eine spezielle geskinnte Komponente, die z.B. für das komplexe Kontrollzentrum rechts unten verwendet wird. Diese Komponente besteht aus einer Hintergrundgrafik und verschiedenen Teilen die dann im Mouseover aktiviert und natürlich auch angeklickt werden können. Die Mouseoverareale sind übrigens polygonal, d.h. man kann damit jede noch so komplexe Form in die UI einbringen. Ausserdem gibts auch ein Messagesystem (ähnlich dem von Windows, aber weniger komplex), damit man auf bestimmte Ereignisse, z.B. Buttonklicks reagieren kann. Fenster haben zusätzlich noch eigene Callbacks zum Rendern von z.B. zusätzlichen Objekten (etwa die 3D-Vorschau von Gebäuden und Einheiten) und zum eigenen Verarbeiten von Messages (dient primär der besseren Gliederung). Die komplette GUI wird dabei aus XML-Dateien geladen, ein Format dass ich inzwischen sehr häufig verwende. Es kann dank Delphis passender Komponenten einfach geladen und geschrieben werden, ist für Menschen lesbar (und damit auch veränder- bzw. korrigierbar) und man muss bei Änderungen nicht direkt das komplette Dateiformat inkl. Import- und Exportfunktionen anpassen. Einen Großteil der anderen Spieldaten (Gebäude, Einheiten, etc.) lade ich natürlich auch über XML. In Sachen Modellformat benutze ich übrigens ein eigenes, recht simples Binärformat. Anfänglich habe ich Direc3D-Meshes (ASCII) geladen, allerdings war der Parser nicht der schnellste und daher habe ich mir nen kleinen Konverter geschrieben der per Drag'n'Drop .X-Modelle in mein Format wandle. Im Normalfall ist dass Laden des Binärmodels um den Faktor 20 schneller. Das 3DS-Format hab ich ganz früher im Prototypen genutzt, dieses aber schon vor einiger Zeit (siehe Blog) ausgemustert, primär wegen der fehlenden korrekten Normalen. Beim .X-Format habe ich diese Probleme und auch einige Limitationen des 3DS-Formates nicht mehr, mein Binärformat übernimmt alle diese positiven Eigenschaften. Screenshots : Ohne Screenshots wärs natürlich langweilig, also einfach anklicken und es gibt ne größere Version im neuen Fenster : So sieht Projekt "W" im Spiel aus. Man sieht die 3D-Erdkugel und unten rechts das Kontrollzentrum. Dort fehlen allerdings noch einige Infoanzeigen und sonstige Sachen, deshalb siehts etwas kahl aus. Hier sieht man im Vergleich den aktuellen Build (links, aber das kann man erahnen) und den Prototypen von 2003. Ist schon ein Unterschied. Man erkennt dann rechts auch schön die GUI mit einigen 3D-Elementen in den einzelnen Fenstern. Die 3D-Elemente wurden über PBOs realisert und werrden im Fenster selbst dann als Quad gerendert. Screenshot aus einem Prototypen für die Hexfeldkämpfe. So in etwa wirds im Spiel dann auch aussehen, graphisch wohl etwas anspruchsvoller, mit anderen Einheiten und GUI-Elementen für Informationen usw. Das ist der GUI-Editor den ich nutze um die Fenster für meine OpenGL-GUI zu erstellen, inkl. Echtzeit-3D-Vorschau. Finis coronat opus : So viel also zu meinem aktuellen Projekt. Obwohl der Post recht lang ist fehlen noch viele Infos v.a. bzgl. der Spielidee und Story, dazu gibts dann später mal evtl. mehr. Und da ich ja jetzt hier den Projektethread offen habe werd ich versuchen (soweit zeitlich möglich, das Teil hier hat schon ewig gedauert) sowohl diesen Thread als auch meinen Blog bzgl. des Projektstatus synchron zu halten. |
Autor: | Sascha Willems [ Di Sep 12, 2006 13:44 ] |
Betreff des Beitrags: | |
Eigentlich wollte ich am Wochende zumindest ein paar 3D-Modelle für die Gebäude erstellen, was aufgrund von Zeitmangel leider nicht möglich war. Allerdings war ich nicht total untätig und hab ein wenig am Gamedesign gewerkelt : Ursprünglich sollte der Bereich "Spionage" (zusammen mit Sabotage) nur eine geringe Rolle im finalen Konzept spielen, nachdem ich mir da aber ein paar Gedanken drüber gemacht habe, wurde mir klar dass dieser Bereich durchaus interessant für den Spielablauf sein könnte. Also habe ich den ein wenig erweitert und somit zu einem wichtigen Punkt im Spielablauf befördert. Man kann jetzt im Transfermarkt zusätzlich Spione anstelle (die alle unterschiedliche Werte haben) und dann mit ihnen versuchen feindliche Regionen zu infiltrieren. Sollte das erfolgreich sein, so bekommt man nun Runde für Runde mehr oder weniger korrekte Infos (je nachdem wie gut der Spion ist) und kann dann nach einer bestimmten Rundenzahl auch zusätzlich Sabotage begehen, z.B. an Gebäuden oder stationierten Armeeeinheiten. Es besteht dabei natürlich immer die Gefahr entdeckt zu werden. Ausserdem habe ich den Transfermakrt wieder implementiert. Der war zwar schon im ersten Prototypen drin, habe ihn allerdings komplett überarbeitet und jetzt wieder mit im Spiel. Der Spieler kann dort in einem globalem Pool Generäle, Forscher und Spione anheuern die dann die entsprechenden Bereiche verstärken. Es geht auch ohne, allerdings kann man sich mit gutem Personal Vorteile verschaffen, kostet dann allerdings Ressourcen. Für den Transfermakrt hab ich dann auch noch schnell 3D-Grafiken für die 3 Berufe gebastelt. Bisher hatte ich da Platzhalterbilder aus der Google-Bildsuche drin, aber die wollt ich nicht mehr haben, was selbstgemachtes iss da doch besser : |
Autor: | Sascha Willems [ Mi Sep 13, 2006 19:36 ] |
Betreff des Beitrags: | Update des Kontrollzentrums |
Heute und gestern habe ich damit verbracht das bereits angesprochene Kontrollzentrum einer optischen Überholung zu unterziehen. Bisher hatte ich da ja vier mit Text beschriftete Buttons drin, die eher vorläufiger Natur waren. Und nachdem ich die letzten Wochen so ziemlich alle Bereich die man über Fenster erreichen kann ins Spiel implementiert habe, ist mir aufgefallen dass man einige der wichtigen Bereiche nur über mehr als einen Mausklick erreicht, und dass war einer der Punkte im Bezug auf das UI den ich unbedint vermeiden wollte. Also hab ich mir ein wenig Zeit genommen und aus den vier Buttons sechs gemacht, allerdings nicht mehr mit langweiliger Beschriftung, sondern mit leicht erkennbaren Icons (selbst gerendert). Zusäzlich hab ich den Mouseover-Effekt noch etwas aufgewertet, vorher sind die Buttons (siehe Flashanimation die ich mal gepostet habe) eingefaded, zusätzlich wachsen (und schrumpfen, wenn die Maus nicht mehr drüber ist) die Buttons nun auch, was kombiniert einen sehr genial aussehenden Effekt ergibt. Einen eigenen Flashfilm hab ich dafür jetzt nicht gemacht, man wirds ja dann im Spiel sehen können. Allerdings gibt es wie gewohnt einen Screenshot, das oberste Icon ist dabei der selektierte Button, also komplett eingefaded und auch komplett gewachsen. |
Autor: | Sascha Willems [ Do Jan 11, 2007 19:45 ] |
Betreff des Beitrags: | |
Wer meinen Blog verfolgt, wird wissen dass das Projekt momentan recht guten Fortschritt macht. Inzwischen ist es fast featurekomplett und ich habe vor kurzem damit begonnen die künstliche Intelligenz zu implementieren. Auch hier geht es weitaus besser voran als ich zuerst vermutet habe, und so bin ich nach zwei Tagen Arbeit an der KI soweit dass diese je nach Bedarf entsprechende Gebäude baut, Armeen erstellt und auf passende Regionen verteilt, und momentan bringe ich der KI auch bei welche feindlichen Regionen sie zuerst attackieren soll. |
Autor: | Sascha Willems [ Fr Jan 19, 2007 00:49 ] |
Betreff des Beitrags: | |
Feedback hält sich ja mal wieder in sehr engen Grenzen, aber bins ja nicht anders gewohnt. Nichtsdestotrotz poste ich auch hier mal wieder ein kleines Update : Die Tage habe ich endlich mit der Übersetzung begonnen, und diese auch implementiert. Übersetzt werden String in WeltEdit, zuerst wollte ich das über die ITE im BDS2006 machen, aber die gefiel mir dann nicht so toll , also hab ich meine eigene Lösung entwickelt. Dabei wird über eine Funktion mittels eines Bezeichners (z.B. szTestString) der für die aktuell eingestellte Sprache passende String zurückgegeben. Die Übersetzungen werden wie gewohnt als XML gespeichert. Ausserdem habe ich jetzte auch den Technologiebaum ins Spiel integriert, es gibt also endlich mehr als nur ein paar Testtechnologien. Auch wenn der noch nicht komplett ist (vom Umfang her will ich fürs finale Spiel circa doppelt soviel) kann man jetzt zumindest ne ganze Zeit lang forschen. Die AI hab ich erstmal "auf Eis gelegt", denn bevor ich der wirkliche Taktikten etc. beibringen kann muss ich mich erst ums Balancing kümmern. Dazu habe ich u.a. die Berechnungen für die regionalen Faktoren abgeändert, und die Gebäude bzw. Einheiten werden dann noch mit Preisen versehen, wenn alles so wie momentan 0 Ressourcen kostet, kann ich der AI ja kaum beibringen zu haushalten. Allerdings kann die AI jetzt endlich feindliche Regionen angreifen und im Falle eines Sieges übernehmen. Dazu habe ich dann auch einfach mal ne GIF-Animation erstellt, die sich über einen Zeitraum von 300 Spielrunden erstreckt und anhand von farblich markierten Regionen zeigt wie die AI andere Regionen übernimmt. Das animierte GIF besteht aus 30 Frames, ein Frame alle 10 Runden (also genau 300 Runden Spielzeit, per Debugfunktion vorgespult). Wer Interesse daran hat, kann sich das GIF hier ansehen. Sieht zwar wie gesagt nicht wirklich atemberaubend aus, aber so kann ich sehen dass meine recht primitive KI zumindest in der Lage ist was zu bewegen, auch wenns noch wenig strategisch ist. Und zum Schluß auch mal wieder ein neuer Screenshot, der das fast komplett übersetzte Interface mit diversen Fenstern etc. zeigt : |
Autor: | Sascha Willems [ Do Jan 25, 2007 22:27 ] |
Betreff des Beitrags: | Bewegte Bilder |
Da es jemand im Kommentarthread angesprochen hat, hab ich schnell mal ein Video von der aktuellen Version erstellt und hochgeladen. Ich bitte drum vorher den Hinweis zu lesen : Hinweis : Das Video stammt aus dem aktuellen Build, die dort sichtbare Version wurde also erst vor wenigen Stunden kompiliert. Es spiegelt damit also den aktuellen Entwicklungsstand dar, sehen tut man natürlich nicht alles, v.a. von der AI sieht man nix. Die braucht ja einigen Runden zum Aufbau, während die Einheiten und Gebäude im Spielstand der für das Video verwendet wurde alle per Debug "herbeigecheatet" sind. Dies ist also eher als "Feature-Video" anzusehen, nicht direkt als Gameplaytrailer. Projekt "W" ist immernoch im Alpha-Stadium, und normalerweise würde ich in einem solchen Stadium kein Video releasen, da kann sich bis zum Release nämlich noch sehr viel ändern. Bitte denkt daran wenn ihr das Video seht und euch etwas auf- oder missfällt! Es ist leicht über 2 Minuten lang, und ich habe die Qualität so angesetzt (768 KBit/s) dass man die Texte zumindest halbwegs erkennen kann. Ich bitte aber (wie im Intro zu lesen) ausdrücklich darum das Video nicht zu verbreiten, es nirgendwo zu verlinken oder es gar auf youtube o.ä. hochzuladen. Und dass itte ich zu respektieren, ansonsten gibts kein Bildmaterial mehr (klingt überzogen, aber was ich bisher schon in meiner Proggerlaufbahn erlebt hab will ich hier nicht näher erwähnen). Komprimiert ists mit dem Windows Media Format 9, ein aktueller Mediaplayer oder passender Codecpack muss also installiert sein. Sollte der Link nicht mehr gehen, habe ich das Video wahrscheinlich aus Traffic-Gründen (hab aber 25GB/Monat, das sollte für DGL reichen) entfernt. Und nun viel Spaß mit dem Video, hier gehts zum Download, sind ~13 MBytes. Feedback ist wie immer erwünscht! |
Autor: | Sascha Willems [ So Jan 28, 2007 19:30 ] |
Betreff des Beitrags: | |
Diesmal gibts kein richtiges Statusupdate, sondern eher ein "Kleinod". Hab zwar seit dem letzten Update wieder diverse Sachen gemacht, darunter auch mehrere neue Gebäude, ein schön anzusehendes, gut wiedererkennbares Logo fürs Spiel, usw. aber heute hab ich ein "Gebäude" erstellt dass recht untypsich fürs Spiel geworden ist und daher recht kurios wirkt : Da sieht man mal wieder wie abwechslungsreich es letztendlich sein kann wenn man ein komplexeres Spiel macht. Das Gebäude gehört übrigens zur Kategorie "Bevölkerung" und hat als Haupteffekt eine Verbesserung der regionalen Zufriedenheit zur Folge. Langsam aber sicher nähere ich mich dann auch der 100% 3D-Modellversorgung der Gebäude, zumindest was den Teil der vom Anfang an erstellbaren Gebäude betrifft, erforschbare Gebäude folgen später. Obiges Modell ist dann 3D-Gebäude Nummer 25. |
Seite 1 von 6 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |