Freitag, 25. Oktober 2013

Das eigentliche Spiel angefangen

Hallo zusammen,

wie der Titel schon sagt, haben Hendrik und ich das eigentliche Spiel angefangen. Es stehen zwar erst ein paar Zeilen Code, aber die funktionieren wenigstens schon ;)

Beginnen tun wir mit dem Hauptmenü, da wir damit dann schon wichtige Klassen ( ScreenManager ( s.u. ), WindowManager ( s.u. ), etc. ) gleich mit einbringen können.
Danach machen wir dann das laden der Map und die einzelnen Menüs ( Einstellungen, Laden, Neues Spiel, etc. ). Hendrik arbeitet während dessen am Hauptmenü selbst. Ich habe soweit schon mal den ScreenManager ( s.u. ) gemacht und hänge mich momentan hinter den WindowManager ( s.u. ).

ScreenManager???
Der ScreenManager sorgt dafür, dass immer passende "Fenster" im Spiel gezeichnet werden. So sorgt er z.B. dafür, dass, wenn man auf "Spiel laden" im Hauptmenü klickt, nicht mehr das Hauptmenü gezeichnet wird, sondern dann der passende Dialog zum laden eines Speicherstandes.
Hier ein Beispiel-Code, wie das ganze funktioniert:
( Achtung, der Code ist unvollständig und somit nicht lauffähig! )


namespace Arengu
{
 public class Arengu : Microsoft.Xna.Framework.Game
 {
  public ScreenManager Screen;
  
  public Arengu()
  {
   Screen = new MainMenu();
   Screen.game = this;
   Screen.graphics = graphics;
   Screen.Content = Content;
  }
  protected override void Initialize()
  {
   Screen.Initialize();
  }
  protected override void LoadContent()
  {
   Screen.spriteBatch = spriteBatch;
   Screen.LoadContent();
  }
  protected override void UnloadContent() { }
  protected override void Update(GameTime gameTime)
  {
   Screen.Update(gameTime);
   base.Update(gameTime);
  }
  protected override void Draw(GameTime gameTime)
  {
   Screen.Draw(gameTime);
   base.Draw(gameTime);
  }
 }
 public class ScreenManager
 {
  public Game game;
  public GraphicsDeviceManager graphics;
  public SpriteBatch spriteBatch;
  public ContentManager Content;
  public int width, height;

  public virtual void Initialize() { }
  public virtual void LoadContent() { }
  public virtual void UnloadContent() { }
  public virtual void Update(GameTime gameTime) { }
  public virtual void Draw(GameTime gameTime) { }
 }
 public class MainMenu : ScreenManager
 {
  public MainMenu() { } // Konstruktor Stuff
  public override void Initialize()
  {
   base.Initialize();
  }
  public override void LoadContent() { } // Lädt benötigte Objekte   
  public override void UnloadContent() { }
  public override void Update(GameTime gameTime) // Abfragen, etc.
  {
   base.Update(gameTime);
  }
  public override void Draw(GameTime gameTime) // Alles zeichnen
  {
   spriteBatch.Begin();
   spriteBatch.End();
  }
 }
}

WindowManager???
Der WindowManager sorgt dafür, dass einzelne Elemente eines Fensters bereitgestellt werden und gezeichnet, sowie abgefragt werden ( auf Tastendruck oder Mausklick ).
Geplante Elemente:
  • Buttons
  • Input-Felder
  • Checkboxen
  • Label
  • Evtl. Listen ( wahrscheinlich erst am Ende )

Das momentane Hauptmenü von Arengu.
Im Hintergrund sieht man eine der
vielen Nebelschwaden, die vorbeifliegen

Eine herunter zu ladende Version wird es dann geben, wenn man die ersten Maps laden kann, was jedoch noch ein wenig dauern könnte. Bis dahin, werde ich euch auf dem laufenden halten, was die Funktionen etc. angeht.

mfg
Hauke

Samstag, 19. Oktober 2013

MapEditor Beta: 0.1.4 Erster BugFix

Das fängt ja gut an!
Die manuelle Positionierung von Texturen funktionierte nicht richtig.
Habs schnell behoben und neu für den Blog und auf SourceForge hochgeladen.

Tut mir leid wegen eventueller Frustration :(

mfg
Hauke

Freitag, 18. Oktober 2013

MapEditor Beta: 0.1.4 Zoom und Sprachdateien

Hallo ihr alle da draußen,

schon nach neun Tagen hab ich die neue Version des Map-Editors fertig. Die Fülle an neuen Funktionen hält sich jedoch dementsprechend in grenzen.
Die neuen Features sind:

  • Zoom im Test-Modus implementiert
  • Zoom im Collision-Manager implementiert
  • Sprachdateien implementiert ( momentan nur Deutsch und Englisch )
  • Einstellungsdialog für die Umstellung der Sprache

Sprachdateien erstellen:
Wenn ihr eine andere Sprache außer Englisch und Deutsch könnt, dann wäre es super, wenn ihr eigene Sprachdateien erstellt, das geht relativ einfach. Dadurch können wir ein möglichst breites Publikum ansprechen um viele Leute für unser Projekt zu begeistern. ( hier geht zur Anleitung )

Wie es weiter geht:
Erstmal müssen wir ein wenig planen, wie wir einzelne Sachen genau umsetzen. Dabei geht es vor allem um Interaktionen mit der Spielwelt, also von Quests über einfache Gespräche mit Leuten bis hin zu Kleinigkeiten wie das öffnen einer Truhe oder ähnliches.
Das alles muss geplant werden und dementsprechend der Map Editor angepasst werden. Das ganze werden Hendrik und ich machen, während Sebastian und schöne neue Grafiken macht, die wir dann auch noch in den Map Editor einbringen werden.
Es steht uns also eine Menge Planerei bevor, aber ich werde hoffentlich dran denken immer mal wieder Infos zu posten ( guckt da auch öfters mal bei Twitter nach, da ich dort öfters was poste ).

mfg
Hauke

Mittwoch, 9. Oktober 2013

MapEditor Beta: 0.1.3 Erleichterte Bedienung, mehr Kollisionen, weniger Bugs

Hallo liebe Leute,

endlich ist es mal wieder so weit, die nächste Version des Map-Editor ist da!

Was bietet 0.1.3 an neuen Features?
Zunächst wurden viele Bugs behoben, die in 0.1.2 noch auftraten, was so ziemlich die meiste Zeit in Anspruch genommen hat. Des weiteren habe ich die Bedienung (hoffentlich ;) ) vereinfacht, dadurch, dass ich viele Dinge schneller erreichbar gemacht habe ( z.B. zum löschen einer Textur, kann man sie anwählen und dann einfach "ENTF" drücken, schon ist sie weg ).
Hier ist eine Liste mit allen neue Features ( die Bugs habe ich mal lieber nicht gezählt ;) ):
  • Bedienung
    • Texturen auswählen ( Rechtsklick ) und mit ENTF entfernen
    • Nach Eingabe von Manuellen Verschiebungs-/Skalierungswerten kann man einfach mit ENTER bestätigen ( vorher nur über "OK"-Button )
    • Nachfrage nach dem Drücken des RESET-Buttons ( Ja/Nein Nachfrage )
    • Eingabe von Kommas im Edit-Feld sind möglich
    • Der "Collision: ON/OFF"-Button im "Eigenschaften" Bereich funktioniert endlich
    • Kein Zoom im Test-Modus mehr ( vorläufig, da es nicht richtig funktionierte :( )
  • Anzeige
    •  Im TEX-Modus wird bei verschobenen Texturen der Ursprungsort angezeigt
  • Daten
    • Mehr Kollisionsdaten ( für alle Bäume, das Zelt und den Grabstein )
Das kommt in der nächsten Version:
In der Version 0.1.4 kommen Sprachdateien, das heißt man kann den MapEditor auch in anderen Sprachen anbieten, da ich als Fremdsprache nur Englisch habe ( und nur Englisch und Latein gelernt habe ;) ), biete ist lediglich eine englische Version an. Beschreibung zum erstellen eigener Sprachdateien lege ich jedoch bei, bitte schickt mir die Dateien dann, damit ich sie dann zum Download bereitstellen kann, bzw. sie in der nächsten Version gleich mit einbinden kann!
Des weiteren behebe ich die Fehler beim Zoom im Test-Modus, sodass ihr da wieder Zoomen könnt.
( mehr/aktuellere Infos findet ihr unter "Downloads" bei der jeweiligen Version ).


Zum Downloadbereich
Direktkdownload
Zur SourceForge Seite

Bitte schriebt mir, was nicht funktioniert / was ich besser machen kann ( s. "Kontakt" ).

mfg
Hauke