DGL https://delphigl.com/forum/ |
|
Strategiespiel https://delphigl.com/forum/viewtopic.php?f=13&t=6314 |
Seite 1 von 1 |
Autor: | Lord Horazont [ Do Jan 25, 2007 18:11 ] |
Betreff des Beitrags: | Strategiespiel |
Hallo @ll Vorweg: Es bestehen gute Chancen, dass dieses Projekt nicht eingefroren wird, aber sicher ist dies nicht. Schon lange geisterte mir die Idee eines Strategiespiels im Kopf herum. Als mein Programmierlehrer (nen Kumpel, kein schulischer Unterricht, sowas haben wir leider nicht) dann als Aufgabe stellte, ein Rollenspiel zu Programmieren, habe ich sofort angefangen, ihn zu einem Strategiespiel zu überreden. Und das habe ich dann auch geschafft. Aktueller Entwicklungsstand Betadownload: nicht verfügbar Entwicklungsstand: Planungsphase weitestgehend abgeschlossen, jetzt gehts ans Eingemachte Commentthread Dateien Spielprinzip Wer erinnert sich noch an das gute alte Ascendancy? Ich habe es vor kurzem wieder ans laufen gebracht und dort auch viele meiner Motivationen herbekommen. Mein Strategiespiel (wofür wir noch einen Namen suchen, hat wer ne idee? ) wird auch Rundenbasiert ablaufen und sowohl im Weltraum als auch auf den Planeten selber spielen. Es wird alle Spielvorgaben aus XML-Dateien auslesen, das war eine Bedingung, weshalb es locker auch Modbar sein wird, sodass man z.B. in der Steinzeit anfangen und sich dann bis zu anderen Planeten vorarbeiten könnte, falls irgendwer so verrückt ist und einen solchen Mod erstellt. Im Gegensatz zu Ascendancy wird die Planetenansicht deutlich detaillierter sein. So á la Anno, oder so. Auf jeden Fall werde ich die aktuellste Version meines Wassershaders irgendwo unterbringen . Es wird verschiedene Rassen geben, die wie gesagt auch in den XML-Dateien deklariert sind. Diese Rassen könnten dann verschiedene Starttechnologien und -planeten haben. Eine Rasse, die Standardmäßig unterwasser lebt wäre z.B. denkbar. Die Ressourcenproduktion wird in der Standardausgabe (also ohne irgendwelche Modifikationen) deutlich gestaffelter sein, als bei Ascendancy. So wird es drei Baumaterialien, zwei verschiedene Nahrungsressourcen und Energie, sowie Forschungspunkte geben. Forschungspunkte können nicht gesammelt werden. Umweltfaktoren wie Verschmutzung und Temperatur werden sich auch auf die Moral und Produktivität auswirken. Bestimmte Einheitentypen werden mit individuellen Waffen- und Rüstungstypen ausgerüstet werden können, á la Earth-Reihe (wer sie kennt). Kämpfe werden ebenfalls Rundenbasiert ausgetragen, eine Kampfrunde entspricht auch einer Spielrunde. So kann man während eines Kampfes beispielsweise noch Einheiten nachproduzieren. Mehr fällt mir jetzt nicht ein. Es kann gut vorkommen, dass ich mich eine Weile nicht zu diesem Projekt melde, wie gesagt, es steht noch sehr am Anfang. Gruß Lord Horazont |
Autor: | Lord Horazont [ Do Jan 25, 2007 18:28 ] |
Betreff des Beitrags: | |
Append: Die Technik hinter allem Wie gesagt, es soll so ziehmlich alles Variabel sein. Für Planetenoberflächen (die auch per XML deklariert werden) können Texturen und sogar Shader festgelegt werden. Für die Grafik wird OpenGL, für den Sound, das LAN, Ereignisbehandlung, Fenster usw. wird SDL zum Einsatz kommen. Mods werden wahrscheinlich in ein spezielles Archivformat (das hab ich schon fertig) komprimierbar sein (mit nem kleinen Tool). Gruß Lord Horazont |
Autor: | Lord Horazont [ Do Apr 19, 2007 19:19 ] |
Betreff des Beitrags: | |
Wie man vielleicht an meiner Aktivität im Forum bemerken kann, arbeite ich wiedermal an meinem Projekt weiter. @World: In den letzten Tagen (und Wochen) habe ich mich hauptsächlich mit den Klassen für die Objektdefinitionen beschäftigt und kann sagen, dass ich sie jetzt zu ca. einem drittel Fertig habe. Dieses drittel entspricht den Klassen, die später die "Referenzen" für neue Objekte enthalten, also alles das, was man in XML-Dateien deklarieren kann, es sind also noch nicht die Klassen, die später die "richtigen" auf dem Spielfeld sichtbaren Einheiten enthalten. Diese Klassen werden fähig sein, "Instanzen", also die "richtigen" Objekte zu erzeugen. Ich arbeite hier mit ", weil es sich natürlich nicht um Pascal-Instanzen/-Referenzen handelt. @GUI: Ich habe jetzt auch endlich das Scissoring für das Abschneiden der Komponenten, wenn sie über die Parent-Komponente rausragen hinbekommen. Anfangs hatte ich zunächst einen nicht funktionierenden Algo, dann hatte ich das Problem, dass ich versehentlich auf das Result zugegriffen habe, anstatt auf den parameter... nun, das hat auch wieder einen Tag gedauert, bis mir das aufgefallen ist Nun befasse ich mich mit komplexeren GUI-Komponenten wie Edit-Felder, CheckBoxen und sowas, wobei es da noch am Font hapert (siehe Thread in Allgemein). Greuseliger Gruß Lord Horazont |
Autor: | Lord Horazont [ Fr Mai 18, 2007 15:55 ] |
Betreff des Beitrags: | Allgemeines zum Gameplay |
Auf Anfrage mal ein wenig zum Gameplay: Es wird zwei verschiedene Spielmodi geben, die sowohl im Single- als auch im Multiplayer verfügbar sind. Der Standardmodus ist der Mehrplanetenmodus. Hier sind alle Technologien verfügbar. Man startet alleine auf seinem Planeten (zumindest wenn man es nicht anders in den Spieleinstellungen angegeben hat, man kann auch pro Team einen Planeten zuweisen lassen) und muss sich dort erstmal ein wenig aufbauen. Irgendwann (bei einigen Rassen früher, bei anderen ein wenig später) hat man die Technologoien, die für den Weltraum erforderlich sind und kann erste Raumschiffe und -stationen bauen und den Weltraum erkunden. Der zweite Spielmodus wird der Einzelplanetmodus sein. Hierbei starten alle Spieler auf einem Planeten. Sollten es verschiedene Rassen sein, wird der Typ des Planets zufällig aus den Startplaneten der Rassen ausgewählt. Die Weltraumtechnologien sind hierbei gesperrt, das heißt es ist einfach ein verhältnismäßig klassisches Ground-Strategy-Game. Der Multiplayer wird eine Besonderheit (zumindest glaube ich, es noch nicht bei anderen Spielen gesehen zu haben) haben. Der Server kann die Bots auf die Clienten verteilen, sodass die Rechenlast nicht nur bei ihm liegt. Das hat allerdings den Nachteil, dass das ausklinken eines Spielers einen kurzen Augenblick länger dauert, da die ganzen Botinformationen zurück an den Server gegeben werden müssen. Sowohl Clients als auch Server werden die möglichkeit haben, diese Funktion zu deaktivieren, was bei Servern heißt, dass die ganze Rechenlast bei ihnen bleibt, bei Clients bedeutet es lediglich, dass sie keine Bots vom Server annehmen. Gegebenfalls kann der Server es auch erlauben, dass die Clients eigene Bots einklinken, die dann aber beim verlassen mitgenommen werden, also auch aus dem Spiel sind. Der Server wird ein Zeitlimit für die Runden festlegen können. Internetspiel wird wohl nur direkt über IP bzw. über mein Server-Listing-Module möglich sein, da ich keinen Server zur verfügung habe, der die Last übernehmen könnte, daher wird der Server einen Port geöffnet haben müssen oder man benutzt eben Tools wie Hamachi. Es wird auf dem Boden neun verschiedene Einheitentypen pro Rasse geben, per Mod kann man natürlich auch mehr oder weniger einbauen. Einige werden jetzt sagen, dass das deutlich zu wenig sind, aber ich bin der Meinung das reicht . Interessant wird bei ihnen sein, dass die "neun" nur die "Karosserien" betrifft. Es gibt also neun "Karosserien" pro Rasse, auf die man dann selbst Waffen, Schilde, Generatoren und Antriebe bauen muss, wofür je nach Klasse unterschiedlich viel Platz zur Verfügung steht. Es gibt drei Überklassen, das sind die Mechs, die Panzer und die Nahbodengleiter, von jedem gibt es noch einmal eine leichte, eine mittlere und eine schwere Version, die dann wie erwähnt unterschiedliche Ausrüstungen tragen können. Über Infanterie mache ich mir noch Gedanken, aber ich glaube, die werde ich weglassen. Bei Gebäuden verhält es sich ähnlich wie bei den Einheiten, nur dass es deutlich mehr geben wird. Auch einige Gebäude werden Waffen tragen, alle werden aber Schilde haben können. Die Energie wird hier nicht wie bei den Einheiten aus Generatoren sondern aus den planetaren Kraftwerken gewonnen. Im Weltraum finden sich pro Rasse jeweils sieben Raumschiffklassen, die ebenfalls wie die Einheiten ausrüstbar sind. Die sieben Klassen sind Korvette, Fregatte, Zerstörer, Schlachtschiff, Frachter, Träger, Jäger. Jede Schiffsklasse hat eigene Eigenschaften, wie Größenklasse (flighter für ein kleines Kampfschiff, frighter für ein kleines Frachtschiff, battleship für ein Großkampfschiff, vielleicht kommen noch welche dazu), Hangargröße (wie viele kleine Schiffe reinpassen), Frachtraumgröße für Waren und noch einiges mehr. Raumstationen können genauso wie Bodengebäude Schilde und Waffen (teilweise) tragen, allerdings brauchen sie Energiegeneratoren, da natürlich kein planetares Kraftwerk zur Verfügung steht. So, ich glaube das wars vorerst. Gruß Lord Horazont |
Autor: | Lord Horazont [ Do Nov 22, 2007 16:36 ] |
Betreff des Beitrags: | |
Eine eher nebensächliche Info, aber ich habe mich jetzt endgültig für eine Audiobibliothek entschieden. Eigentlich hatte ich vor, alle drei Konkurrenten ausführlich zu testen: FMOD OpenAL SDL_mixer. Allerdings bin ich bei FMOD hängengeblieben und nicht mehr zu den anderen beiden gekommen. Dafür habe ich jetzt einen vollständigen Audioplayer für die Konsole mit Spectrum- und Waveformanalyzer, Pitch und Volumeregelung sowie Unterstützung für Livestreams. Nunja, damit ist wohl klar, was ich nehme. FMOD wins. Gruß Lord Horazont |
Autor: | Lord Horazont [ Mi Apr 08, 2009 11:37 ] |
Betreff des Beitrags: | |
Auch hier kann ich mal wieder ein Update bekannt geben. Ich habe mich entschieden, mal die komplette worldmanager.pas in die Tonne zu treten und alle Klassen dafür neu aufzubauen. Dabei bin ich dieses mal deutlich strukturierter vorgegangen, habe vorher Listen und Diagramme erstellt, bis ich mir sicher war, dass mein Konzept so einigermaßen akzeptabel ist.. Das ist jetzt auch schon ein paar Monate her, angefangen hab ich damit kurz vor Weihnachten . Weiterhin habe ich das Netzwerkinterface neu aufgebaut, weil SDL_net mir zu viele Mängel hatte. Außerdem habe ich Synapse entdeckt, welches mir auch viel mehr Spaß macht. Leider leiten die Klassen nicht von TStream ab, sonst wäre das perfekt. Ich habe auch schon angefangen, ein netzwerkprotokoll zu entwerfen, um einen groben Überblick darüber zu bekommen, wie ich die Client-Server-Kommunikation, die Datentrennung zwischen Client und Server und den ganzen Rest gestalten kann. Nebenbei arbeite ich auch wieder an Thorium, damit ich endlich eine solide Scriptsprache für die Arbeit in der GUI oder den Partikelsystemen habe. Vorallem bin ich darauf gespannt, welche Performance Thorium bei Partikelfunktionen für Spawning und Death hinlegt... Allerdings mache ich mir keine Illusionen: Wahrscheinlich wirds relativ langsam. Dann werde ich das Konzept für die Partikelemitter etwas umstellen müssen und die dynamischer Hardcoden (klingt widersprüchlich, ich weiss ). Zu meinem Weltkonzept werde ich hier auch noch bald einen Thread aufmachen, damit ich mir von den "großen Jungs" (äh, und Mädels natürlich, wenn die was dazu zu sagen haben ) ein paar Tipps abholen kann, beziehungsweise einen abschließenden Kommentar. An dieser Stelle will ich mich auch noch einmal für den Klasse Support hier bedanken, speziell in den Konzeptthreads die ich hier ab und zu starte, bezüglich dieses Projektes (RefIDs, Weltaufbau usw. usf) Gruß Lord Horazont |
Autor: | Lord Horazont [ So Mai 24, 2009 01:06 ] |
Betreff des Beitrags: | |
Langsam ernährt sich das eichhörnchen - aber okay. Ich arbeite auch hin und wieder (wenn ich nicht gerade Dawn Of War spiele, mit Frase über Interfaces, Streams und EBML diskutiere, mit ihm und i0n0s zusammen D2 zocke, auf irgendeine weise anderen leuten bei ihren (Informatik-bezogenen) Problemen helfe oder an anderen Projekten schreibe) am Strategy Game. Ich habe auch mal ne hübsche Mind-Map gemacht, die alle Objekte des Strategy Game in irgendeine Ordnung bringt.... Ich dacht mir, das enthalte ich euch nicht vor und hab mal ne PNG draus gemacht. Ein bisschen groß geraten und ohne die Funktion von FreeMind, zweige auch einzuklappen (Standard, denke ich), wäre ich auch hoffnungslos verloren. Diese Karte stelllt alle Objektarten, die es im Spiel geben wird, dar. Jede Klasse hat hier also vier Unterpunkte. Unter "<Inheritors>" sind die Nachfahren der Klasse, unter "Actions" die Methoden des Controllers, unter "Definition data" die Definitionsdaten, die aus der XML-Datei gelesen werden können und unter "Runtime data" die Daten der eigentlichen Instanz dargestellt. Eigentlich sind es also drei Vererbungslinien, etwas anders dargestellt. Joa, und diese MindMap habe ich hier jetzt immer links neben Lazarus offen und verändere sie simultan zum Quelltext beziehungsweise umgekehrt. Sie dient mir so als Dokumentation, damit ich nicht allzu schnell den Überblick verliere. CodeExplorer hin oder her, irgendwann gehts einfach nicht mehr. Ich habe mir nebenbei viele, viele Gedanken gemacht und die auch teilweise zu Papier gebracht habe, etwa beispielsweise über das Diplomatiesystem, Kolonien und etwas auf View-Ebene, nämlich Aktionen (also so lustige kleine Buttons, wie man sie aus vielen Strategiespielen kennt, die dann Einheiten bzw Gebäuden zugeordnet sind). Dazu noch viel viel Kram, der mir jetzt gerade nicht mehr einfällt. Beispielsweise dürfte die MindMap nichtmal ansatzweise vollständig sein - vieles denke ich mir dazu und schreibe es nicht auf, weil es sich sowieso in mein Hirn eingebrannt hat. Ohgott, mir darf jetz nur keine ... größere Langzeitablenkung über den Weg laufen, sonst ist vermutlich die hälfte weg. So, dank der tatkräftigen Hilfe der "Mädels", die ich im letzten Post wohl unterschätzt habe (;)) gibts nun auch das Model-Controller-View-Konzept. Das dürfte denke ich bekannt sein, man trennt Daten, Darstellung und Aktion. Hier allerdings endet das in sieben Vererbungslinien. Einmal die Definitions-Reihe, wo für alle Spielklassen, die in XML-Dateien definierbar sind, eine Klasse existiert. Dann die eigentliche Model-Ebene, wo die Datenklassen implementiert sind. Die Haupt-Controllerebene, wo alle Methoden der Objekte definiert und teils auch implementiert werden. Die Controller-Interfaceebene, wo die Controller nochmal als Interfaces abgebildet werden. Die Client-Controllerebene, wo alle Methoden, die Clientseitig anders sind als in der Hauptebene entsprechend verändert wurden. Diese Klasse implementiert dann das Interface und wird dann an die Haupt-Controllerklasse weitergegeben. Das gleiche gibts dann noch mal für die Serverseite. Ohne viel Implementation nimmt der Worldmanager schon 3865 Zeilen in Anspruch, es fehlen noch die komplette Client- und Serverseitige Controllerdeklaration sowie große Teile der Interfaces. Die Datei frisst 131 KB, was für ein leeres Gerippe schon ziehmlich Krass ist. Ich frage mich, auf was ich mich da eingelassen habe. Aber irgendwann bekomm ich das fertig. Ich habs zu weit gebracht um aufzuhören . Achso. Ich habe auch schon etwas an der Story geschrieben. Ich weiss nicht, ob das so berauschend ist und eventuell ists teils nen bissl holprig, vorallem, wenn ich spät dran gearbeitet habe (was bei der Story häufiger vorkam) oder Pausen zwischendrin gemacht habe. Aber hier gibts schonmal ne Vorschau. Ich hoffe nur, dass ich das auch implementiert bekomme. Eventuell kommt noch irgendwo etwas abwechslung dazu, sodass man sich entscheiden kann, wie man agiert. Im Text sind immer kleine Einschübe, die Informationen über das geschehen nebenbei geben (Gebäude, die freigeschaltet werden, usw.). Alles, was Text ist, wird als Gespräch oder Cutscene angenommen. Vielleicht auch nicht. Hängt vom Kontext ab, ich hoffe, ihr kommt damit klar. Ansonsten: Fragen, Anregungen usw. bitte an mich . gute nacht, und jetzt wirklich, Lord Horazont |
Autor: | Lord Horazont [ So Jan 31, 2010 12:26 ] |
Betreff des Beitrags: | Re: Strategiespiel |
Nach einem Dreivierteljahr ohne Updates, und das leider auch hinter der Kulisse, habe ich nun beschlossen, das Projekt offiziell aufzugeben. Ich hatte das schon Anfang diesen Jahres vor, habs aber immer wieder vor mich her geschoben. [edit]Nach der Diskussion im Meinungsthread war ich wohl auf veralteten Stand. Der Thread bleibt bestehen[/edit] Zwar ist das ganze Konzeptuell vermutlich möglich und womöglich könnte ich es auch Umsetzen, aber mir fehlt die Motivation daran weiter zu arbeiten. Auch dass ich immer wieder im eigentlichen Gameplay in meinem Kopf umstrukturiert habe, hat nicht geholfen. Thorium ist hiervon übrigens nicht betroffen. Das entwickle ich beizeiten weiter, Support gibts dafür sowieso noch. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |