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

Aktuelle Zeit: Do Mär 28, 2024 19:17

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
Autor Nachricht
 Betreff des Beitrags: Re: Projekt "W"
BeitragVerfasst: Fr Mai 04, 2012 21:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Mal wieder ne aktuelle "Ladung" Screenshots :
Bild Bild Bild

Nachdem mich Lossy ja vor Kurzem drauf hingewiesen hat dass die Schriftart für "Phase 2" schlecht lesbar war, v.a. aufgrund der Tatsache dass Kleinbuchstaben keine echten sind, sondern einfach nur runterskalierte Großbuchstaben, und ich dass nach genauer Betrachtung auch so empfand, hab ich mich mal hingesetzt und dutzende Fonts durchprobiert. Nach langer Suche hab ich dann eindlich einen passenden gefunden und eingebaut, der meiner Meinung nach auch gut passt. Sieht zwar etwas verspielt aus, ist aber scharf, gut lesbar, hat normale Kleinbuchstaben und passt durch seinen leicht futuristischen Look auch irgendwie gut zum Spiel. Ich denke mal für "Phase 2" werd ich bei diesem Font bleiben.

Ansonsten erkennt man hoffentlich dass langsam alles (zumindest von der UI her) in Richtung einer verteilbaren Version geht. Es gibt zwar noch einige Baustellen, aber das Gro ist in einem schönen (fertigen!?) Zustand, die Ansichten für fertige Projekte / Forschung hab ich auch fertig, es gibt jetzt nen Laufticker für aktuelle Rundennachrichten (auf Spielerbasis deaktivierbar) und einige Usabilityverbesserungen an der GUI.

Langsam aber sich wirds also...

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Projekt "W"
BeitragVerfasst: So Jun 24, 2012 12:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Es ist (mal wieder) Zeit für ein Update zu "Phase 2"!

Bild Bild Bild Bild

Es geht nämlich stetig voran. Zwar nicht mit einer unglaublichen (oder wahnsinnigen ;) ) Geschwindigkeit, aber über die letzten Wochen hinweg hab ich diverse Baustellen geschlossen, und der aktuelle Build ist schon recht nah an einer Version die man veröffentlichen könnte!

So hab ich diverse UI-bezogene Baustellen geschlossen, die dafür sorgten dass man teilweise garkeine Partie durchspielen konnte, oder gar das Hauptmenü (Shot 4), das in Teilen seit Monaten unfertig war.

Ausserdem sind die manuelle Kämpfe nun codetechnisch fertig. Man kann jetzt sogar direkt auf dem Schlachtfeld speichern und das Spiel dann dort auch wieder aufnehmen, man hat passende Hintergrunduntermalung (statt Musik Kampfgeräusche), Simulation und Aufgabe bringen das Spiel nicht mehr zum Absturz und die Ergebnisse werden korrekt angezeigt. Was allerdings noch fehlt ist jede Menge Content, also 3D-Modelle, mehr Karten, etc. was für ein erstes Alpha/Beta-Release aber zweitranging ist.

Ansonten hab ich die Regionsübersicht leicht überarbeitet. Sie sieht etwas schlanker aus, bedient sich besser und hat Buttons mit denen man direkt durch die Region "tabben" kann. Zusätzlich hat man jetzt mehr Infos wenn man eine Zuweisung macht, also z.B. eine Division stationieren oder einen Agenten zuweisen. Jetzt wird neben dem Cursor dazu eine Box mit Details angezeigt, statt wie früher nur ein statisher Hinweistext.

Ansonsten hab ich (mal wieder) an der Performance der GUI geschraubt. "Phase 2" hat über 1000 lokalisierte Strings (Englisch und Deutsch), die über entsprechende Lokalisierungs-Identifikatoren zugegriffen wurden, also z.B. ID = "HintDivisionMove", wurde dann im deutschen Spiel zu "Division bewegen" und im englischen Spiel zu "Move division". Das hatte ich bisher alles über hashed Stringlisten gemacht. Grob gesagt hat man dann einen solchen Lokalisierungs-Identifikator übergeben und die passenden Klasse hat dann je nach Sprache aus der entsprechenden Stringliste den passenden String herausgesucht. Das hab ich so bereits in "Phase 1" implementiert, und dort waren es sehr viel weniger Strings, sprich es war auch deutlich schneller. In "Phase 2" hat sich das nun gerächt, denn dei GUI, die eh schon recht CPU-limitiert war wurde somit sehr stark CPU-limieriert.
Deshalb generiert mein Dateneditor (WeltEdit) nun nicht mehr nur noch die XML mit den Lokalisierungsstrings, sondern auch direkt eine Dlephiunit mit Variablen für alle Identifikatoren, die dann diese aus der XML befüllt. So greif ich im Spiel dann nicht mehr mit z.B. LocalStr('HintMoveDivison') auf einen lokalisierten String zu, sondern mit Localized.HintMoveDivision[LangID] direkt auf die befüllte Variable. Das bringt je nachdem wie viele Fenster geöffnet sind bis zu 25% Performance, und allein im Hauptschirm hab ich auf meinem Rechner jetzt 10 fps mehr.

Kleiner Nachtrag für alle Statistiker unter uns : Der Entwicklungsorder von "Phase 2" (ohne SVN, Backups, History, etc.) ist aktuell 1.107.703.496 Bytes groß und beinhaltet 2.695 Dateien in 75 Ordner. Da ist über die Jahre ganz schön was zusammengekommen, und das ohne den ganzen Kram den ich verworfen hab.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Projekt "W"
BeitragVerfasst: Sa Jul 28, 2012 20:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Kein Monat ohne Update (mal sehen wie lange das klappt ;) ) :

(Thumbs, Screenshots diesmal in 1920x1200 mit 4xAA)
Bild Bild Bild

Ja, ich werkle immernoch an "Phase 2", und zwar fast jeden Tag. Manchmal sogar morgens bevor ich mich auf den Weg zur Arbeit mache, und ganz selten dann sogar noch in der Mittagspause. Soll ja endlich mal fertig werden :twisted:

Zuerst hab ich mich endlich mal um das Intro gekümmert. Das stand schon von ganz am Anfang der Entwicklung von "Phase 2" an auf meiner Todo-Liste, hab mich bisher aber nie dazu durchringen können. Das "Intro" von "Phase 1" hat mir nie so wirklich gefallen, zumal das Intro ja quasi daß Erste ist was ein Spieler so direkt vom Spiel sieht (Ausnahme Ladeschirm), und dementsprechend sollte es doch zumindest stimming sein und optisch auch gut aussehen. Nachdem ich mir explizit nochmal das alte "Intro" angesehen hab musste hier was getan werden. In "Phase 2" gibts nun ein Intro vor neuer Kulisse, mit langsam einblendenden Schriftzügen und einer schönen atomaren Explosion. Passt irgendwie sehr gut zum Spiel und sieht optisch auch toll aus.

Ansonsten hab ich die meiste Zeit in den letzten Wochen (mal wieder) mit dem Spionagebereich verbracht. Der ist nunmal sehr umfangreich, und man könnte fast ein eigenes Spiel daraus machen. Da die Spionage und Sabotage in fremdem Regionen fast fertig ist (bis auf die Optik, da muss ich noch etwas dran werkeln, so viele Infos in einem Fenster unterzubringen ist nicht so ohne), ging es diesmal um die Gegenspionage.
Die ist in "Phase 2" neu, und erlaubt es dem Spieler einen Agenten in seiner eigenen Region unterzubringen. Dort kann er dann gegenerischen Agenten (je nach Ergebnis komplexer Berechnungen anhand des Fertigkeitsdeltas und Zufallszahlen) falsche Gebäude- oder Divisionsdaten unterjubeln, fremde Agenten entedecken und diese sogar festsetzen.
Das Vorgaukeln falscher Informationen ist ein interessantes Feature dass v.a. im Hotseatmodus gerne genutzt werden dürfte. So kann man damit vorgaukeln dass eine unbewachte Region mit einer unglaublich Starken Division besetzt ist, oder dass eine komplett ausgebaute Region mit starker Division unbewacht oder komplett leer aussieht. So kann man andere Spieler in eine Falle locken, oder von wichtigen Regionen ablenken.

Ansonsten hab ich wie gewohnt an der GUI gewerkelt, so hab ich z.B. die Dropbox (siehe Shot 2 und 3) aufgebohrt (und gefixt). Man hat jetzt eine Iconvorschau und kann jedem Item einen Mouseover-Hilfetext zuweisen. Besonders praktisch z.B. im Hauptmenü für die Auswahl der Spielmodi, da sieht man dann direkt was die Modi so machen. Ausserdem hab ich den Code mal wieder richtig aufgeräumt und einige der größten Units (teilweise > 20k Zeilen) aufgesplittet.

Und ich hab die Tage sogar mal ein Release fertig gemacht, weil ich v.a. sehen wollte ob alle Codestellen im Spiel mit dem VFS funktioniere. Und ja, das hat geklappt, hätts so sogar hochladen können ;) Sprich, soweit ists von nem Alpha/Beta-Release nicht mehr entfernt.

Außerdem gibs auch neue Musik und ein paar Soundsamples mehr. Alles Kleinkram, der für nen Perfektionisten für mich aber trotzdem immer in stundenlanger Arbeitet endet.

P.S. : Über 116.000 Zeilen Quellcode in 51 Quellcodedateien. Seit Mai fast 30.000 neue Quellcodezeilen :shock:

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Projekt "W"
BeitragVerfasst: Sa Aug 04, 2012 20:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich hab dieses Wochenende mal wieder ein wenig Content für den manuellen Kampfmodus gebastelt :

Bild Bild

Und beim Livetest im Spiel hat mir v.a. der erste Shot so gut gefallen dass ich ihn dann schnell hochgeladen hab um ihn mit der Öffentlichkeit zu teilen ;)

Zum Thema Schlachtfelder hab ich ja schon so einiges geschrieben, und während die technisch eigentlich schon recht lange fertig sind, fehlts immernoch am Content. Es gibt ja diverse Settings, die je nach attackierter Region (wird im Editor WeltEdit festgelegt) geladen und dargestellt werden. Angefangen bei normalem mediterranem Setting, Wüsten, schneebedeckten Landschaften, bis hin zum Dschungel (vor ein paar Monaten warens noch fast doppelt soviele, da hab ich aber mal aufgeräumt, sonst wärs zu viel Arbeit geworden.
Und jedes dieser Settings braucht eigenen Content, zumindest was natürliche Objekte angeht. Son Dschungelbaum in der Wüste, oder ne Palme im Schnee würden ja irgendwo doch doof aussehen. Also hab ich mich dieses Wochenende mal (wieder) hingesetzt und ein wenig Content für die Schlachtfelder gebaut. Darunter auch der Baum den man da oben im Screenshot so schön sieht (mit dem Farn runderum). An sich nix spezielles, aber da steckt ewig viel Arbeit dahinter. Wer 3D-Modelle baut, weiß ja das organische Sachen schwer zu modellieren sind, v.a. wenn man auf den Polycount achten muss, und der finale Baum da in den Screenshots ist geschätzt die sechste komplett neue Version des Baums für das Setting.

Und wenn man bedenkt dass es bei den meisten anderen Modellen ähnlich ist, dann hab ich dutzende (ich schätze mal so an die hundert) 3D-Modelle gebastelt, die auf keinem Screenshot zu sehen sind, und niemals das Licht der Welt erblicken.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Projekt "W"
BeitragVerfasst: Di Aug 14, 2012 18:32 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ja, momentan gehts recht gut voran, was sich auch auf die Zahl der Updates auswirkt :

Lange war mir die Umgebung der Schlachtfelder ein Dorn im Auge. Wer die Entwicklung von "Phase 2" verfolgt hat, dre wird gesehen haben das ich hier seit längerem die Schlachtfelder komplett mit Wasser umgeben, was aber weder sonderlich toll aussieht, noch (je nach Szenario) realistisch ist. In der Wüste macht dies z.B. keinen Sinn und sieht absolut doof aus. Lange hab ich hier rumprobiert und nach einer schönen Lösung gesucht. Die Tage hab ich mich dann hingesetzt und die Schlachtfelder mit echtem 3D-Terrain umgeben. Zwar nicht sonderlich detailliert, aber trotzdem wirkt es ganz ordentlich, wobei ich momentan noch an den Nebelparametern schraube :
Bild Bild

Schaut man sich die Shots genau an, so sieht man dass die Schlachtfelder ebenenbündig zum Level des Terrains sind (eigens erstellte Heightmap, Terraintexturen mit meinem eigenen TerrTexGen), dies zu erreichen erfordert jedoch ein wenig Aufwand, denn es ist z.B. möglich Hexfelder unter Normalniveau abzusenken, z.B. für Wasserflächen. Also habe ich mal wieder Gebrauch vom Stencilbuffer gemacht um das zu erreichen.

Beim Erstellen des Schlachtfeldes erstelle ich eine simplifizierte Dispalyliste des Schlachtfelds für den Stencilbuffer, und rendere dies entsprechend in den Buffer :

Bild Bild

Quellcode sieht so aus, dort wo die Liste in den Stencil kommt eine 1 schreiben, und Alphia, Tiefe und Farbpuffer unangetastet lassen :

Code:
  1. glDepthMask(False);
  2. glColorMask(False, False, False, False);
  3. glEnable(GL_STENCIL_TEST);
  4. glStencilFunc(GL_ALWAYS, 1, 1);
  5. glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
  6. glCallList(HexBattleField.StencilListID);


Wenn ich nun das Terrain mit folgendem Stencilsetting rendere :
Code:
  1. glColorMask(True, True, True, True);
  2. glStencilFunc(GL_NOTEQUAL, 1, 1);
  3. glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
  4. glEnable(GL_STENCIL_TEST);
  5. glDepthMask(True);
  6.  

Dann wird es dort wo im Stencil die Hexfelder liegen ausgeschnitten, und ich kann mein Terrain direkt einbetten, ohne das irgendwo was vom Terrain durchscheint :

Bild Bild

Auch wenn das Terrain etwas detaillierter sein könnte, sieht es jetzt schon viel atmosphärischer und v.a. realistischer aus als die einfach Wasserfläche die das Terrain vorher umgab.

_________________
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
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

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