Mit ‘Jungfrauenspiel’ getaggte Artikel

Erweiterte Facebook-Integration

Sonntag, 18. April 2010

Dem Jungfrauenspiel wurde nun eine Fan-Page hinzugefügt.

@[WEBX:<FacebookFanPage shownconnections="0" />]

führt zu

image

Die dazugehörige WebControl

BTW: Heute abend startet eine neue Runde.

Enzyklopädie geht voran

Mittwoch, 24. März 2010

image

Die linke Navigation wird ebenfalls per AJAX aus folgender Xml-Datei aufgebaut:

<?xml version="1.0" encoding="utf-8" ?>
<toc>
  <entry url="encyclopedia:///start" title="Start" />
  <folder title="Forschungen">
    <entry url="encyclopedia:///researches/fountainofyouth" title="Jungbrunnen" />
    <entry url="encyclopedia:///researches/flying" title="Fliegerei" />

    <entry url="encyclopedia:///researches/education" title="Ausbildung" />
    <entry url="encyclopedia:///researches/flying" title="Fliegerei" />
  </folder>

</toc>

Der Inhalt der Datei selbst sieht folgendermaßen aus:

<?xml version="1.0" encoding="utf-8" ?>
<document title="Brauereiwesen" folder="/researches">
  <h1>Das Brauereiwesen</h1>
  <p>
    Diese Forschung erhöht die Produktion Eurer
    <a href="encyclopedia:///buildings/brewery">Brauereien</a>.
  </p>
</document>

Das Enzyklopädie-Plougin liest diese Dokumente beim Start des FBK ein und wandelt die Encyclopedia-Links automatisch in das korrekte JavaScript um. Diese Art des Parsers möchte ich in Zukunft auch auf alle Links erweitern, die irgendwie im Spiel auftauchen.

Dazu ist aber eine neue Parser-Engine notwendig.

Enzyklopädie im Jungfrauenspiel

Mittwoch, 17. März 2010

In der aktuellen Entwicklungsversion des Jungfrauenspiels wird momentan eine Möglichkeit zur Einbindung von Spielerklärungen und Kommentaren eingebaut.

image

Die Anzeige und das Holen der Inhalte wird über AJAX gesteuert, so dass ein Öffnen und Schließen der Spielbeschreibungen ohne Unterbrechung des Spielflusses möglich ist.

Da die Enzyklopädienkomponente als Plugin eingebunden wird, ist sie danach auch im Spiel Another Spacegame verfügbar,

Dashboard für das Jungfrauenspiel

Sonntag, 17. Januar 2010

image
(Klick mich)

Das Jungfrauenspiel hat ein größeres Update erhalten. In diesem Update wurde da sogenannte Dashboard eingeführt, wie man es auch aus Facebook oder anderen Portalen kennt.

Im Großen und Ganzen ist es folgendermaßen technisch gelöst:

  • Es gibt verschiedene Infogeneratoren. Diese registrieren sich beim Start des Jungfrauenspiels
  • Jede dieser Infogeneratoren wird auf alle Informationen abgefragt. Da der FBK zu 100% im RAM läuft, geht dieser Vorgang schnell.
  • Die Dashboard-Logik führt verschiedene Operationen aus um die Einträge zu filtern, zu sortieren und nur eine begrenzte Anzahl von Einträgen auszugeben.
  • Ist all dies abgeschlossen, erhält der benutzerdefinierte Vorlage die Dashboard-Objekte und wandelt sie in Html-Code um.

Ein paar Quellcode-Schnipsel des schwarzen Bretts des Allianzsystem (Das Allianzsystem ist als reines Plugin konzipiert):

1) Registrierung von einem neuen Dashboard-Item

/// <summary>
/// This method is called, when logic core will be started
/// </summary>
/// <param name="logic">Logicinterface which created this state</param>
/// <param name="session">Current logic session</param>
public void Start(ILogic logic, ILogicSession session)
{

[…]

    // Gets the dashboard state
    var dashboardState = logic.GetLogicState<IDashboardState>();
    var source = new AllianceDashboardItems();           
    dashboardState.AddSource(source);

}

2) Erzeugung von Dashboard-Items (in der AllianceDashboardItems-Klasse)

/// <summary>
/// Gets the dashboarditems by the dashboard logic
/// </summary>
/// <param name="dashboardLogic">Used logic of the dashboard</param>
/// <returns>Enumeration of items</returns>
private IEnumerable<DashboardItem> GetDashboardItems(
    IDashboardLogic dashboardLogic)
{
    var allianceSystem =
        dashboardLogic.LogicSession.GetLogicHandler<IAllianceSystem>();
    var languageHandler =
        dashboardLogic.LogicSession.GetLogicHandler<ILanguageHandler>();
    var playerId = dashboardLogic.PlayerLogic.PlayerId;

    foreach (var alliance in allianceSystem.GetAlliancesOfPlayer(
        playerId))
    {
        foreach (var item in alliance.GetPinboardEntries(playerId)
            .Select(x => new DashboardItem(
                languageHandler["/dashboard/alliance_pinboard/title"],
                x.Content,
                "alliance_pinboard",
                x.Created)))
        {
            yield return item;
        }               
    }
}

3) Sammlung von Dashboard-Items

/// <summary>
/// Gets the dashboarditems of the player
/// </summary>
/// <param name="amount">Number of items to be returned</param>
/// <returns>Enumeration of Dashboarditems</returns>
public IEnumerable<DashboardItem> GetDashboardItems(int amount)
{

    // Now add items of all sources 
    return messages
        .Union(
            this.LogicState.Sources.SelectMany(x => x.Source(this)))
        .OrderByDescending(x => x.Created)
        .ThenBy(x=>x.Title)
        .Take(amount);
}

Start der zweiten Alpha des Jungfrauenspiels

Sonntag, 25. Oktober 2009

image Nach einer recht turbulenten, bugreichen und unbalancierten ersten Runde habe ich nun die zweite Runde des Jungfrauenspiels gestartet. Ziel dieser zweiten Runde ist es das Balancing der einzelnen Einheiten und Aktionen zu verbessern. Insbesondere soll ein Konzept erschaffen werden, bei dem starke Spieler stärker geschwächt werden, so dass aufholende Spieler eine Chance haben. Gegebenenfalls wird es auch eine Art Handelsbarriere geben, so dass die Möglichkeit des Pushens innerhalb der Allianz abgeschwächt wird.

Das Einbinden einer schnellen Feedback-Möglichkeit hat sich auch bei dieser ersten Runde wieder bewährt und hat zu einer hohen Zahl qualitativ mittel- und hochwertiger Fehlerberichte geführt, die mir geholfen haben die schwersten Bugs zu beheben.

Auch wenn ich nicht mit einer so intensiven zweiten Runde rechne, gehe ich davon aus, dass ich weitere Erkenntnisse zum Balancing der Spielregeln erhalten werde.

Cloc

Montag, 12. Oktober 2009

Ein schönes Programm zum Zählen der Quellcode-Zeilen (LOC)

http://cloc.sourceforge.net/

C:\Users\mbrenn\Desktop>cloc-1.08.exe --exclude-dir=.svn d:\Projekte\Klassenfram
ework\Framework\Applikationen\Jungfrauen\FBK-Port\code
    2149 text files.
    1478 unique files.
    3354 files ignored.

http://cloc.sourceforge.net v 1.08  T=90.0 s (12.8 files/s, 1846.6 lines/s)
-------------------------------------------------------------------------------
Language          files     blank   comment      code    scale   3rd gen. equiv
-------------------------------------------------------------------------------
C#                  900     14122     44587     68988 x   1.36 =       93823.68
XML                  48       310      1133     16133 x   1.90 =       30652.70
HTML                124       400       802     12994 x   1.90 =       24688.60
MSBuild scripts      14         0        91      3660 x   1.90 =        6954.00
Javascript           48        51       189      2143 x   1.48 =        3171.64
NAnt scripts         14        13        13       530 x   1.90 =        1007.00
make                  1         6         0        25 x   2.50 =          62.50
ASP.Net               1         0         0         3 x   1.29 =           3.87
-------------------------------------------------------------------------------
SUM:               1150     14902     46815    104476 x   1.53 =      160363.99
-------------------------------------------------------------------------------

Kampfsystem gedeiht weiter

Mittwoch, 07. Oktober 2009

Nach der Korrektur eines mittelschweren Bugs, können beim Jungfrauenspiel nun auch Jungfrauen und alte Schachteln von Drachen geraubt werden. Damit ist ein wichtiger Schritt zu einem bugfreien Spiel getan.

In den nächsten Tagen werden die Kampfberichte noch weiter aufgeräumt und es kann an die vielen kleinen Fehler gehen, die das Spielen des Jungfrauenspieles momentan etwas erschweren.

image

Erste Bugrunde für das Jungfrauenspiel

Sonntag, 20. September 2009

Soeben wurde die neue Version des Jungfrauenspiels hochgeladen. Diese enthält folgende Korrekturen:

  • 20.09.2009 [BUG]: Der Prinz ist bei genügend Jungfrauen glücklich.
  • 20.09.2009 [BUG]: Textverbesserungen aller Art
  • 20.09.2009 [BUG]: NullReferenceException bei Rangaktualisierung und fehlenden Rängen aktualisiert.
  • 20.09.2009 [SECURITY]: Allianzsystem
  • 20.09.2009 [BUG]: Allianzname in Kartenübersicht
  • 20.09.2009 [BUG]: Sortierung der Allianzen in der Bestenliste nun korrekt
  • 20.09.2009 [BUG]: Allianz wird in der Bestenliste angezeigt.
  • 20.09.2009 [DESIGN]: Dropdown bei Adressauswahl: Schwarze Schrift auf schwarzem Hintergrund
  • 20.09.2009 [BUG]: Rangpunkte kleiner als 0
  • 20.09.2009 [BUG]: Leere Spalte ‚Spieler‘ bei Bewerbungen
  • 20.09.2009 [BUG]: In der Shoutbox wird nun der Spielername angezeigt.
  • 20.09.2009 [RULES]: Bricht man eine Ausbildung ab, so werden die Frauen wieder rückgebucht.
  • 20.09.2009 [BUG]: Spielervervollständigungsdialog kann nun auch mit Spielernamen mit Html-Tags umgehen.

Insgesamt bin ich mit den ersten Tagen sehr zufrieden, ich habe über 50 Bug- und Korrekturmeldungen mittlerer bis hoher Qualität erhalten. Das in der Website integrierte Feedback-Fenster hat sich wie auch beim letzten Spiel wieder ausgezahlt.

In den nächsten Tagen werde ich den FBK und das JFS von Subversion auf Mercurial versuchen zu portieren. In dieser Zeit können keine weiteren Korrekturen erstellt werden, ich hoffe, dass ich das Wichtigste bis zu den ersten Kämpfen und Spionagen korrigiert habe.

Die Testphase ist gestartet

Freitag, 18. September 2009

Wie eben angekündigt, ist die Testphase des Jungfrauenspiels nun gestartet und ihr könnt unter http://www.jungfrauenspiel.de/ daran teilnehmen.

Die Testversion kann morgen starten

Donnerstag, 17. September 2009

Wie versprochen wird morgen die Testversion des Jungfrauenspiels starten.

Diese Testversion soll die Grenzen und Probleme des FBK aufdecken und mir einen ersten Überblick über die Qualität der Implementierung verschaffen.

image