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

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

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



Ein neues Thema erstellen Auf das Thema antworten  [ 80 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 30, 2007 22:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich habe mal wieder was Neues zu Projekt W auf meiner Seite gepostet, dort gehts um ein neues Forschungsfenster, Technologiebilder und ne kleine Namensänderungen.

Ansonsten betreibe ich momentan nur noch Feinschliff, also lauter Kleinigkeiten und das Spiel (Phase 1) steht kurz vorm Release. Ein paar Hardwareprobleme mit Radeonkarten habe ich auch "behoben" (nach näherer Betrachtung ist der Treiber Schuld, mit nem alten Treiber gehts und auf NV auch, war ne Sache mit dem Shaderlog) und ein paar problematische Dinge wie automatisches Mipmapping bei NPOT-Texturen haben ich herausgenommen da dies zwar auf alten Karten u.U. angeboten wird, dort dann aber evtl. in Software läuft, es gibt jetzt also nur noch Texturen die POT sind um solche Probleme von vorneherein zu umgehen. Karten die eh keine automatische MipMap-Generierung können benutzen sowieso gluBuildMipMap. Auf der Geforce 4 läufts jetzt auch zu 100% ohne Probleme (es gab noch ein paar kleine Fehler in der Darstellung des shaderlosen Pfades, wurde alles behoben) und v.a. auch mit annehmbarer Geschwindigkeit.
Ausserdem hab ich im Zuge des Feinschliffs noch diverse Sounds eingebunden und diverse Icons wurden hinsichtlich ihrer Optik überarbeitet um besser auszusehen bzw. leichter erkennbar zu sein. Das Spielen macht jetzt zumindest mir persönlich recht viel Spaß, es "fühlt" sich zumindest professionell an und es ist auch nix mehr drin wo ich jetzt sagen würde "das gefällt mir so nicht". Ausserdem hab ich diverse Bugs behoben (>30) damit das Spiel nach Release dann so weit wie möglich fehlerfrei läuft.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 12, 2007 20:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Eigentlich wollt ichs ursprünglich schon dieses Wochenende releasen, hat aber leider nicht ganz hingehaun. Ich denke aber ich kann nächstes Wochenede (oder evtl. die Woche über, hier iss ja am Mittwoch Feiertag) als sicheren Termin festhalten.

Es ist alles fertig, es funktioniert alles, keine Bugs mehr drin (zumindest hab ich keine mehr gefunden) und alles passt und läuft rund, Texte habe ich heute soweit auch alle korrekturgelesen. Ausserdem hab ich den VRAM-Verbrauch nochmal senken können, etvl. läufts dadurch sogar auf einer 64-MByte Karte (hab zwar eine da, aber keine Lust die auch noch einstöpseln zu müssen). Hardwaretechnisch habe ich grade die letzten Testläuft gemacht und es läuft auf ner GeForce 4 (128 MByte, shaderloser Pfad), einer GeForce 6800 (128 MByte), einer Radeon 9700 (128 MByte) und einer GeForce 7900GS (256 MByte). Und selbst auf der GeForce 4 läufts auf nem recht alten Prozessor (Athlon XP 2600+) in 1024x768 mit ~70FpS, man könnte selbst da evtl. noch mit AA spielen.
Jetzt werd ich nur noch ein paar Testspiele machen und dann wirds veröffentlicht.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 14, 2007 18:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Es ist fertig!

Hier gibts alle Infos, Screenshots und den knapp 30 MByte großen Download. Passende Newsmeldung ist hier.

Ein knappes Jahr hab ich jetzt dafür gebraucht und bin froh dass ich es dann doch endlich "fertig" bekommen hab, perfekt wirds wohl kaum sein aber dafür gibts ja Feedback. Wer Bugs, Probleme oder Ungereimtheiten z.B. bezüglich des Balancing findet einfach posten, ich werd dann Feedback für den ersten Patch sammeln.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Patchlog 1.1
BeitragVerfasst: Fr Aug 17, 2007 13:41 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Nachdem in finalen Relase also doch weitaus mehr Probleme/Fehler enthalten waren als ich dachte habe ich beschlossen so schnell wie möglich den ersten echten Patch zu veröffentlichen.

Vor der Veröffentlichung poste ich jedoch das bisherige Changelog, wer noch Probleme/Fehler entdeckt hat die hier nicht aufgeführt sind sollte die bitte im passenden Meinungsthread posten, damit ich diese noch in den Patch einfliessen lassen kann :
Code:
  1. Version 1.1 (Patch 1) :
  2.  * Fixes :
  3.    - [German] Fixed localization in army management window
  4.    - [German] Fixed localization in region detail window
  5.    - [Hotseat] Finished military units should no longer be display in news window of wrong player
  6.    - [Hotseat] Timer now works after loading a savegame
  7.    - [Hotseat] Player names are now stored in savegame and correctly restored when loading a game
  8.    - [Hotseat] Player no longer able to see information on last selected division by previous player
  9.    - [Hotseat] Whitespaces in turn duration on hotseat-setup no longer crash the game
  10.    - [Army] Fixed bug where stationed army was ignored when defending a region and local defense was used instead
  11.    - [Army] Can't assign more than one general to a single division, so generals no longer get rendered useless
  12.    - [Army] Disbanding a divison now also unassigns the general so he can be assigned to other divisions again
  13.    - [Army] Units are now correctly locked for one turn after e.g. assigning or unassigning them to or from a division
  14.    - [Army] After attacking a region only one of them is selected instead of both
  15.    - [Army] Empty divisions can't be moved anymore, this counters a crash when attacking with an empty division
  16.    - [Espionage] Firing a spy that has infilitrated a region no longer crashes the game
  17.    - [GUI] Edit boxes now also accept "umlaute" (ä,ü,ö)
  18.    - [GUI] Listboxes now can be correctly scrolled down to the last entry
  19.    - [Region] Status icons (building finished, building under construction) are now saved and loaded to and from savegames
  20.  
  21.  * Changes :
  22.    - [GUI] Pressing "Escape" now closes the active window
  23.    - [Army] Overtaking an enemy region will now select that region and show it's details in the regional window
  24.    - [Hotseat] Globe rotation and zoom for each player is saved and restored when switchting players
  25.  
  26.  * Balancing :
  27.    - [Army] Removing a unit from the building queue now returns 50% of it's cost
  28.    - [Region] Halved pollution increase from high population

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Version 1.1
BeitragVerfasst: Sa Aug 18, 2007 17:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Version 1.1 ist da!
Ich hoffe mit diesem Patch ists so spielbar wie von mir angedacht, und dank eures umfangreichen Feedback dürften die gröbsten Probleme behoben sein. Ausserdem gabs noch ein paar weitere Änderungen. Sollte von euch angesprochenes nicht mit eingeflossen sein so wird das evtl. mit einem der nächsten Patches geschehen. Hier der Changelog :
Code:
  1. Version 1.1 (Patch 1) :
  2.  * Fixes :
  3.    - [Hotseat] Finished military units should no longer be display in news window of wrong player
  4.    - [Hotseat] Timer now works after loading a savegame
  5.    - [Hotseat] Player names are now stored in savegame and correctly restored when loading a game
  6.    - [Hotseat] Player no longer able to see information on last selected division by previous player
  7.    - [Hotseat] Whitespaces in turn duration on hotseat-setup no longer crash the game
  8.    - [Army] Fixed bug where stationed army was ignored when defending a region and local defense was used instead
  9.    - [Army] Can't assign more than one general to a single division, so generals no longer get rendered useless
  10.    - [Army] Disbanding a divison now also unassigns the general so he can be assigned to other divisions again
  11.    - [Army] Units are now correctly locked for one turn after e.g. assigning or unassigning them to or from a division
  12.    - [Army] After attacking a region only one of them is selected instead of both
  13.    - [Army] Empty divisions can't be moved anymore, this counters a crash when attacking with an empty division
  14.    - [Army] Number of lost units for attacker and defender now shown in auto battle window
  15.    - [Army] Fixed rare bug that would crash the game after the battle has ended
  16.    - [Espionage] Firing a spy that has infilitrated a region no longer crashes the game
  17.    - [Region] Status icons (building finished, building under construction) are now saved and loaded to and from savegames
  18.    - [Region] Lighting for region's background enabled
  19.    - [Staff] Removed some redundant whitespaces of staff first names
  20.    - [GUI] An error that caused a modal dialog (most in-game warning) to not show up so the whole user interface was locked
  21.            has been resolved. This usually only happened after switching the global language in-game without restarting the game
  22.    - [GUI] Edit boxes now also accept additional characters (ä,ü,ö)
  23.    - [GUI] Listboxes now can be correctly scrolled down to the last entry
  24.    - [GUI] Hotseat menu no longer stays in background when viewing options or credits
  25.    - [GUI] Clicking on closing "X" of a window no longer closes this window if it's behind another window
  26.    - [GUI] Added prompt when closing the game while in-game (e.g. pressing ALT-F4)
  27.    - [GUI] Flags no longer rendered upside down in endgame highscore list
  28.    - [Localization:German] Fixed localization in army management window
  29.    - [Localization:German] Fixed localization in region detail window
  30.    - [Localization:German] Fixed missing localization of two buildings
  31.    - [Localization:German] Labels for unit's defense values no longer overlap actual values
  32.    - [Localzation:English] Changed "rebels" to "insurgents"
  33.  
  34.  * Changes :
  35.    - [GUI] Pressing "Escape" now closes the active window
  36.    - [GUI] Activating an edit box now places the carret at the last character of the edit's text
  37.    - [Army] Overtaking an enemy region will now select that region and show its details in the regional window
  38.    - [Army] Insurgents now have mobs equipped with RPGs to counter attacking aircrafts
  39.    - [Hotseat] Globe rotation and zoom for each player is saved and restored when switchting players
  40.    - [Staff] There will now always be at least 10 persons in each staff category
  41.  
  42.  * Balancing :
  43.    - [Army] Removing a unit from the building queue now returns 50% of it's cost
  44.    - [Army] Number of insurgent mobs when attacking uprisen regions raised
  45.    - [Region] Pollution increase from high population lowered
  46.    - [AI] Slight change to preferences for building military units earlier in the game


Link zum Patch (Installer, ~3.5 MBytes). Das komplette Setuppaket hab ich übrigens auch aktualisiert, wer jetzt also Projekt W runterläd bekommt die aktuelle Version.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 27, 2007 15:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hier ist der vorläufige Patchlog für die nächste Version. Ich hab versucht euer Feedback soweit wie möglich zu implementieren, und mit den neuen Änderungen sollte man nun mehr "Kontrolle" haben, solche Sachen wie beendete Forschung oder Regionsveränderungen sind nun leichter zu erkennen. Wie immer gilt : Wenn ich was vergessen hab bzw. noch jemand Bugmeldungen oder Verbesserungsvorschläge hat, bitte posten. Sofern nix dramatisches mehr gemeldet wird werd ich den Patch spätestens am Wochenende veröffentlichen.
Code:
  1. Version 1.2 :
  2.  * Fixes
  3.   - [Army] Fixed rare bug that would crash the game if attacker lost the battle
  4.   - [Research] Research window now shows correct remaining research times for selected and current research
  5.   - [Localization] Minor spelling errors
  6.  
  7.  * Changes :
  8.   - [Misc] The game now stores two territorial maps. There is a new button in the inforcentre that let's you switch
  9.            between the territorial map of the current and the last turn. This way you can easily see what nation
  10.            overtook what regions
  11.   - [Army] Divisions with only air units can't capture enemy regions anymore
  12.   - [Army] Generals are now also locked for one turn after being unassigned from their divisions
  13.   - [Army] Heavy infantry : doubled damage against air units
  14.   - [Army] If player looses/defends a region against the AI, double-clicking on the message in the news list brings up a
  15.            new window showing losses of attacking and defending division
  16.   - [Region] If no building spot is selected, trying to construct a new building now automatically selects the next free
  17.              building spot instead of hinting at a non-selected building spot
  18.   - [Region] Changed display of some values in the region's summary (e.g. pollution and loyality now shown as percentage values)
  19.   - [GUI] New "research finished"-notification window when research is done, instead of just an entry in the news list
  20.   - [GUI] Selected listbox can now also be scrolled using cursor keys
  21.   - [GUI] Most listboxes now have default functionality when doubleclicking or pressing return :
  22.            - Region construction : Construct building
  23.            - Unit construction : Add/Remove units to/from queue
  24.            - Army management : Assign unit/general to selected division, unassign unit from division
  25.            - Transfer market : Hire/fire selected staff member
  26.            - Load savegame : Loads selected savegame

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 28, 2007 23:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie im Meinungsthread bereits angesprochen wird der kommenden Patch nun doch ein In-Game Tutorial enthalten. Ursprünglich wollt ich sowas höchstens als PDF machen, aber das fast kaum Arbeit war eine entsprechende Funktionalität ins Spiel zu integrieren wirds nun direkt im Spiel ein Tutorial geben. Ablegen tue ich dies wie gewohnt als XML, jeder Schritt hat einen Text sowie eine Liste von auszuführenden Kommandos. Das Spiel öffnet also z.B. selbständig neue Fenster, selektiert Regionen und markiert angesprochene UI-Elemente, so dass man immer erkennt worum es geht. Technisch ists fertig implementiert, momentan schreibe ich am Tutorialtext.

Screenshot (anklicken) :
Bild

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 05, 2007 21:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Version 1.2 ist da!
Es hat zwar etwas länger gedauert, allerdings hatte dies auch nen driftigen Grund. Nachdem ich das ingame-Tutorial fertig hatte, hab ich nochmal einigen Abstürzen auf den Grund gehen wollen und hab dabei bemerkt wie fehlerhaft die KI und das Armeemangement doch waren. Es hat dann recht lange gedauert alle Bugs zu finden und zu beheben, aber nach mehreren Stunden KI-Dauerstresstest bin ich mir ziemlich sicher diese Bugs behoben zu haben. Zusätzlich hat das einen positive Effekt, denn die KI funktioniert nun korrekt und ist zusammen mit den Änderungen des neuen Patches nun fertiger und sollte eher eine Herausforderung sein.

Hier geht es zum Patchlog für 1.2!

Ich hoffe der Patch behebt soweit alle Probleme, und die Änderungen sollten das Spiel jetzt zu dem Spiel machen dass es von Anfang an hätte sein sollen. Viel Spaß also beim Spielen.

P.S. : Wer noch Bugs oder Probleme findet, bitte melden!

Komplettpaket Projekt "W" - Phase 1 - Version 1.2 (~34 MByte, Win32-Installer)
Patch von 1.11 auf 1.2 (~4 MByte, Win32-Installer)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 24, 2007 19:08 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Nach ner recht umfangreichen Promo-"tour" hab ich begonnen das Designdokument um die Elemente für "Phase 2" zu erweitern, danach gehts dann an die Implementation der neuen Features bzw. das Hinzufügen des neuen Contents.

Und da sich ja evtl. der ein oder andere hier für Statistiken interessiert, liste ich hier mal ein paar interessante Sachen um das Projekt herum auf :

Dokumentation :
Hinweis : Schreiben tue ich die Dokumente natürlich im fliessenden Layout, also nicht in Din A4!
  • Designdokument - 27 Seiten, ~11.000 Wörter
  • Brainstorming "Technologiebaum" - 9 Seiten, ~3.000 Wörter
  • Brainstorming "Gebäude" - 11 Seiten, ~4.500 Wörter
  • Englische Anleitung - 17 Seiten, ~4.600 Wörter
  • Deutsche Anleitung - 18 Seiten, ~4.000 Wörter
Da kommt also einiges zusammen, die kleineren Dokumente und Tabellen hab ich übrigens mal weggelassen, aber zusammen dürften das locker 100 Seiten Dokumentation usw. sein.

Dateien und Ordner :
  • Größe des Entwicklungsordner - 970 MByte
  • Größe des Entwurfsordners (Grafiken, Dokumente, usw.) - 430 MByte
  • Dateien im Entwicklungsordner - 1.970
  • Prototypen für diverse Ingamefeatures - 10
  • Quellcodezeilen der Kerndateien (nur dass was explizit für Projekt "W" geschrieben wurde) - 23.701

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 02, 2007 18:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Seit meinem letzten Update hier hab ich natürlich wieder an "Phase 2" weitergewerkelt, ich fass hier mal schnell die Updates die ich auf meiner HP gepostet hab zusammen :

Verschiedene UI-Themen :
An sich schon von Anfang-an eingeplant. Für "Phase 2" wird jede Nation ein eigenes UI-Thema haben, wodurch die Bindung des Spielers an die gewählte Nation noch weiter gestärkt wird. Hier zwei ältere Shots, inzwischen hab ich v.a. das asiatische Thema geändert, der Drachenkopf ist nicht mehr da und einem simpleren Block gewichen. Aber trotz des "Alters" sollten die Shots zumindest einen Eindruck zu diesem neuen Feature geben :
Bild Bild

Tag-Nacht Übergang :
Bisher waren die 3D-Hintergründe zwar schön anzusehen, allerdings (bis aufs Wasser) recht statisch. Mit "Phase 2" wird sich das ändern, denn es gibt nen animierten Tag-Nacht-Wechsel. Es ist auf nem Screenshot zwar sehr schwer festzuhalten, sieht in nature aber recht schön aus. Der normale Hintergrund fadet langsam in einen Sternenhintergrund, zusammen mit der Beleuchtung, und dann wieder zurück. Spielerisch hat dass zwar keinerlei Wirkung, trägt aber stark zur Atmosphäre bei und bringt Dynamik.
Bild

Rundenbasierte Hexkämpfe :
Endlich haben sie es aus meinem externen Prototypen (in dem ich den Hexkampf entwickle, das erleichtert die Arbeit natürlich immens) ins Spiel geschafft. Außerdem habe ich die Tage auch den A*-Suchalgorithmus eingebaut, so können KI-gesteuerte Einheiten nun ihren Weg zur feindlichen Einheit finden. Auch wenn der ermittelte Weg nicht immer der 100%-ig perfekte ist (die A*-Kostenbewertung ist wohl nicht die beste für Hexfelder, da muss ich noch eine andere suchen) so funktioniert es doch. Damit wären die Hexkämpfe programmiertechnisch also soweit (bis auf Kleinigkeiten) fertig.

Bild Bild Bild Bild Bild

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 10, 2007 19:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Unter folgendem Link habe ich mal eine vorläufige Roadmap für "Phase 2" hochgeladen. Dort kann man sehen welche Dinge ich geplant habe, welche davon ich bereits fertig habe, und welche noch offen sind. Ich werde versuchen die Roadmap regelmäßig zu aktualisieren, damit man den Fortschritt sehen kann.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 23, 2007 22:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Und wieder ein etwas kleineres Update : Ich habe mit dem Skinning der Militäreinheiten begonnen. In "Phase 1" sehen diese ja alle gleich aus, egal welche Nation man gewählt hat. Mit "Phase 2" wird sich dass ändern, hier wird jede Einheit eine zur Nation passende Textur bekommen. Jeder der schon mal ein Modell ge-UV(W)-mapped hat, weis dass dies nicht gerade wenig Aufwand ist und v.a. auch gelernt sein muss. Ich hab für den in den Shots gezeigten Skin aufgrund meiner mangelnden Erfahrung auf dem Gebiet daher fast nen ganzen Nachmittag gebraucht. Allerdings teilen sich alle Panzermodelle z.b. die gleiche Panzerwanne, so dass ich für die anderen Panzer nur noch die Türme neu mappen muss. Wie auf den Shots zu ersehen (ganz rechts das alte Modell) machts einen großen Unterschied, denn v.a. auf dem Hexschlachtfeld waren die Einheiten aufgrund der optischen Gleichheit schwer der jeweiligen Partei zuordbar.

Bild Bild Bild

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 16, 2008 22:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wer meine Homepage verfolgt, weis dass das letzte Update bezüglich Projekt "W" - Phase 2 recht lange her ist (Februar 2008), ich hab mir mal ne etwas länger Pause gegönnt und abseits von Delphi, OpenGL und Co. recht viel Guild Wars gespielt.

Die Tage hab ich die Arbeiten an "Phase 2" jedoch wieder aufgenommen und mich gleich dran gemacht die UI um eine neue Ansicht für die Auswahl der Kampfmethode zu entwerfen. Wer "Phase 2" verfolgt, hat wohl schon gelesen dass es ja auch eine manuelle Kampfmöglichkeit geben wird (die so gut wie fertig ist), und ich muss dem Spieler dann natürlich die Möglichkeit geben zu wählen ob er den Kampf simulieren will, oder ob er den selbst austragen will (in der Simulation wird übrigens einfach die Hexfeldschlacht in max. Geschwindigkeit berechnet, es wird also keine andere Methode zur Berechnung genutzt). Zuerst hatte ich dafür ein normales UI-Fenster mit zwei langweiligen Symbolen, dass hat mir jedoch absolut nicht gefallen und wurde direkt verworfen.

Ich hab mich dann mit Stift und Papier bewaffnet und (sehr) grob eine neue Ansicht entworfen, und diese dann im Photoshop weiterverarbeitet. Diese hat mir dann dank der passende Symbole (im 3D-Modeller gebastelt, oft braucht man für so etwas sogar sehr lang) direkt gut gefallen und ich hab die Sache ins Spiel integriert. Wenn man nun ne Region angreift sieht man diese neue Ansicht (erster Screenshot) und kann dort zwischen manuellem und simuliertem Kampf wählen. Der Schlachtausgang (Shot 2) wird dann mit einem schön einfliegenden Ausganssymbol (Sieg/Niederlage) und den jeweiligen Verlusten angezeigt. Mir gefällt das so bisher sehr gut, ist aber noch Work-In-Progress, Kleinigkeiten werden sich da sicherlich noch ändern.

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

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 26, 2008 19:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Als ich die Tage mal wieder an einigen Kleinigkeiten bzgl. "Phase 2" gewerkelt hab kam mir die Idee für ein neues Feature in "Phase 2". Bisher konnte Ressourcen nur über die Regionen gewinnen, stetig, aber ohne Risiko bzw. ohne die Möglichkeit schnell an neue Ressourcen zu kommen. Daher wird es in "Phase 2" einen Börsenmarkt geben. Den gibts zwar wohl in fast jedem Spiel dieser Art, aber trotzdem sollte er mehr Dynamik in das Spiel bringen.
Der Spieler kann dort Anteile an verschiedenen Unternehmen erwerben bzw. wieder verkaufen um so schnell an Ressourcen zu kommen, bzw. diese auch genauso schnell wieder zu verlieren. Oberflächlich hört sich dieses Feature nach nichts Besonderem an, unter der Oberfläche ist da aber ein wenig mehr Arbeit. Man kann nämlich schlecht hingehen und die Börsenwerte der Unternehmen einfach zufällig errechnen lassen, das würde unrealistisch wirken und würde es schwierig machen Wertpapiere einzuschätzen.
Von daher hat jedes an der Börse gehandelte Unternehmen einen aktuellen Trend (steigend, stagnierend, fallend) der immer eine gewisse Zeit lang andauert (und nach Ablauf gewechselt wird). Wie stark gewechselt wird hängt vom Risikofaktor des jeweiligen Unternehmens ab (dieser wird von mir im Editor festgelegt, der Spieler sieht den also nicht), ausserdem kann es bei einem Unternehmen mit niedrigem Risiko niemals passieren dass der Kurs explosionsartig nach oben geht, bzw. in den Keller fällt, sondern nur leichtere Trendänderungen. Niedriges Risiko bedeutet also moderate Kursschwankungen, aber man weis woran man ist. Hohes Risiko hingegen kann dem Spieler eine Menge an Ressourcen einbringen, genauso wie er diese schnell wieder verlieren kann.
Das Feature ist zwar noch nicht final (die Berechnungen werde ich wohl noch ein wenig anpassen), und die Liste der Unternehmen (jedes Unternehmen hat übrigens bestimmte Gebiete, z.B. Militär, Chemie) wird natürlich noch anwachsen.

Ausserdem kann man auf den Shots auch noch erkennen dass sich etwas am Kontrollzentrum geändert hat. Es gibt jetzt nämlich 8 Buttons (statt 6), neben dem neuen Button für den Börsenmarkt gibt es nun auch einen um direkt das Einheitenbaumenü öffnen zu können. Das wollt ich zwar schon mit "Phase 1" machen, aber dann hätt ich da ne krumme Buttonzahl gehab.t


Bild Bild

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 30, 2008 17:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Heute gibt es mal ein programmiertechnisches Update bzgl. Projekt "W", hauptsächlich da es hier mit Sicherheit den ein oder anderen gegeben hat (oder gibt) der die Situation kennt : Zirkuläre Referenz!

Projekt "W" ist nicht mein erstes Projekt, von daher hab ich es von Anfang an recht gut durchstrukturiert (ich mache zwar keine UML-Diagramme, oder schreib mir den Aufbau irgendwo nieder, aber intuitiv strukturiere ich meine Projekt recht gut und vorausschauend), aber mit "Phase 2" kommen nun einige neue Features hinzu, die im Grundkonzept nicht angedacht waren und daher u.U. dazu führen dass meine erstellte Projektstruktur nicht immer ohne weiteres angepasst werden kann. Die Klassen stehen, sind fertiggestellt und in passende Units verpackt, jede Unit greift auf verschiedene andere Units zu, und jetzt noch komplette Klassen umzubauen bzw. zu verschieben wäre nicht wenig aufwendig.

Das hat dann die Tage zu einem "Problem" geführt dass ich recht lange vor mir hergeschoben habe. Und zwar kann der Spieler in "Phase 2" ja auswählen ob er einen Kampf manuell austragen möchte, oder ob er diesen simulieren lassen will. Dazu schalte ich beim Angriff auf eine Region in den Kampfauswahlschirm (siehe vorletztes Posting) und lasse den Spieler dort seine Wahl treffen. Dieser Schirm wird von der Hauptklasse des Spiels (TGame, Unit ProjektWeltherrscher_Global.pas) initiiert, aufgerufen und verwaltet. Wenn der Spieler eine Region angreift ist das natürlich kein Problem, dies geschieht ja innerhalb der TGame-Klasse.
Die KI hingegen ist in ihre eigene Unit ausgelagert (ProjektWeltherrscher_AI.pas), und wird von der TGame Klase aufgerufen (ProjektWeltherrscher_Global.pas nutzt also die ProjektWeltherrscher_AI.pas).
Die KI in Projekt "W" arbeitet nun (wie wohl fast alle KIs, zumindest in diesem Genre) mit vielen Schleifen (und ist letztendlich eine State-Machine), darunter auch eine Schleife in der die KI prüft welche Regionen angegriffen werden und dies dann auch ggf. tut. In "Phase 1" ist ein Angriff kein Problem, denn da wird der Kampf dann simuliert (über die Klasse TBattleField, in ProjektWeltherrscher_Types.pas), und nur eine Meldung ins Nachrichtenlog des Spielers geschrieben.
In "Phase 2" soll der Spieler aber die Möglichkeit haben zu wählen ob simuliert wird, oder ob er den Kampf von Hand austrägt. Und zwar auch dann wenn die KI angreift (wenn der Spieler angreift ist dass kein Problem, denn das wird von der TGame Klasse initiiert). Wer aufmerksam mitgelesen hat wird nun schon die Krux erkannt haben : Für "Phase 2" muss die KI innerhalb einer Schleife eben diesen Kampfauswahlschirm initiieren, um dem Spieler die Wahl zu zeigen, ohne dabei jedoch aus der Schleife auszubrechen, und ohne auf die TGame Klasse (die sich um diesen Schirm kümmert) zugreifen zu können.

Letztendlich also eine zirkuläre Referenz!

Diese lässt sich jedoch erstaunlich schnell "auflösen", bzw. umschiffen. Und zwar mittels eines callbacks. Was ein Callback ist sollte man als Programmierer wissen, Erklärungen spare ich mir daher also. In der KI-Unit habe ich nun einfach einen solchen Callback deklariert :
In ProjektWeltherrscher_AI.pas :
Code:
  1.  
  2. TAIStartBattleCallback = function : String;
  3. ...
  4. AIStartBattleCallback : TAIStartBattleCallback;


Die TGame Klasse kann ja problemlos auf diese Unit zugreifen, und diesen Callback dann zuweisen :
In ProjektWeltherrscher_Global.pas :
Code:
  1. function StartBattleCallback : String;
  2. begin
  3. repeat
  4. if Game.Quit then
  5.  break;
  6. Game.Quit := False;
  7. Game.Draw;
  8. inc(Game.Frames);
  9. Application.ProcessMessages;
  10. until (Game.State = gsEarthView) or (Game.Quit);
  11. Result := '';
  12.  
  13. TGame.Create(...)
  14. begin
  15. ...
  16. AIStartBattleCallback := StartBattleCallback;


Und über den so zugewiesenen Callback kann die AI nun innerhalb der Schleife im Falle eines Angriffs auf einen menschlichen Spieler den Kampfauswahlschirm zeigen, und auf dessen Ergebnis warten :
In ProjektWeltherrscher_AI.pas :
Code:
  1. // Schleife für Angriffsevaluierung
  2. ...
  3. if not HexBattleField.DefendNation.AIControlled then
  4.  AIStartBattleCallback;
  5. ...


Hoffe mal der Beitrag war interessant zu lesen, und evtl. zeigt er dem ein oder anderen wie man mittels eines Callbacks einfach zirkuläre Referenzen umsegeln kann, ohne gleich was am Projekt umstellen zu müssen. Ich hätte natürlich auch hingehen können und die AI einfach in die selbe Unit wie die TGame Klasse packen können, aber das wäre unschön geworden und hätte der Programmstruktur doch arg geschadet.

_________________
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  [ 80 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6  Nächste
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 36 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.105s | 17 Queries | GZIP : On ]