mmofacts.com

Ein Winterprojekt beginnt...

gepostet vor 13 Jahre, 2 Monate von MrMaxx

HiHo...

Nachdem die Diskussion im "Ein Winterprojekt" Thread ausser heisser Luft und bisher leeren Zugeständnissen nicht viel gebracht hat, machen wir jetzt Nägel mit Köpfen.

Da das ganze nicht versumpfen oder technologisch in einer Sackgasse landen soll braucht es eine Person, die sich um die generelle Architektur verantwortlich fühlt....das werde ich sein. Damit ist auch der Technologiestack für den Prototypen festgelegt:

  • Java
  • maven fürs Bauen
  • Spring für die Middleware
  • Quarts zum Job-Scheduling
  • MongoDB für die Persistenz
  • Stripes in der Präsentationsschicht
  • JSP in den views
  • JQuery als JavaScript Framework
  • CAAT als Szenegraph Render/Manager

Das ist alles nicht in Stein gemeisselt. Sollte sich jemand finden, der sich verantwortlich fühlt, kann gerne darüber diskutiuert werden. Es geht hier nicht darum eine Technologiestudie aufzustellen, sondern ein Spiel, dass hoffentlich Spass macht.

Bisher sind TheUndeadable und ich die einzige, die darauf Lust haben....ach ja...worauf eigentlich?

Hier der erste Happen Hintergrundstory:

Dieser Planet hört auf den schönen Namen “Alcatrutz”.
Im Jahr 2191 wurde Alcatrutz zum Gefängnisplaneten umfunktionert. Was sollte man auch sonst mit einem Planeten machen, auf dem ausser kargem Wüstengrass und von Sandstürmen glattpolierten Steinen nichts existiert...sieht man mal von den Überlebenskünstölern der Wüste ab. Denn die eigentlichen Herrscher der Wüste sind riesige Sandwürmer und Wüstenspinnen, die gestandene Männer mit ihre chitinbepanzerten Beinen einfach aufspiessen um sie dann genüsslich einzuwickeln.
 
Alkatrutz ist also der perfekte Gafängnisplanet...niemand will hier aus den Verwahrungstrakten ausbrechen. Leider jedoch wurden Wüstenspinnen und Sandwürmer immer wieder von den Wasserabscheidungen der Anlagen angezogen und verwüsteten sie, so dass sich das Bewchungspersonal alsbald weigerte weiter DIenst zu tun.
Diese Revolte des Ungehorsams resultierte darin, dass die Insassen sich irgendwann selbst überlassen wurden. Die Bewachung wude in den Orbit verlagert und auf der Planetenoberfläche begannen die Insassen sich langsam selbst zu organisieren...jedenfalls diejenigen, die die anfänglichen Unruhen und Kämpfe um Wasser und Nahrung überlebten.
Mit den Jahren gelang es einigen Schmugglern Nachschublinien aufzubauen, die die Bewohner des Planeten mit Werkzeugen und allgemeinen Ressourcen versorgten. Wie sich herausstellte gab es etwas wertvolles, dass der Planet hergab... Methanvorkommen / Erdöl / Gold / Spinnenbeinchitin (oder etwas anderes sinnvolles, dass sich plausibel erklären lässt)...und so stellte sich der technologische Fortschritt ein, bis es Alkatrutz auf etwas brachte, dass sich am besten mit Low-Tech beschreiben lässt.
 
Fraktionen:

  • Planetenbewohner (Gefängnisinsassen) … die Spieler
  • Schmuggler Händler-NPCs
  • Gefängniswärter Gegner-NPCs
  • Ureinwohner (Sandwürmer und Wüstenspinnen) Gegner-NPCs

Die Planetenoberfläche besteht hauptsächlich aus sehr feinem Wüstensand.
Normale Bodenfahrzeuge graben sich augenblicklich um mehrere Meter ein.
Hover-Fahrzeuge blasen mit ihren Düsen soviel Sand davon, dass die Rese zum Mittepunkt des Planeten vermutlich sehr schnell gehen würde...wäre da nicht der Umstand, dass sie sich irgendwann selbst zuschütten.
Die einzige Transportmöglichkeit sind daher Flugzeuge aller Art...seien es nun langsame Zeppeline, flinke Aufklärer, leichte Segelflugzeuge mit riesiger Reichweite oder motorisierte Abfangjäger...
Im Bereich der früheren Haftblöcke ist die innere Zone entstanden. Dies ist ein Bereich in denen viele neutrale Basen/Dörfer existieren, die unter dem Schutz der orbitalen Wachtruppen stehen. Niemand wagt es gegen die hier geltenden Regeln zu verstossen, denn einem orbitalen Bombardement entgeht man nicht so leicht.
Anders sieht es ausserhalb der neutralen Zone aus.
Hier regiert nur eine Macht und das ist die des Geldes...
Hier versprechen Basen für den Resourcenabbau eine Aussicht auf Wohlstand...
Hier liefern Wasserabscheider, die der Luft ihre Feuchtigkeit entziehen die Lebensgrundlage, die Lebensgrundlage.
Aber jeder Reichtum zieht auch Neider an und Menschen, die das schnelle Geld suchen. Du wirst also nicht umher kommen deine Basen zu verteidigen.

Vielleicht nicht das einfallsreichste, aber Flugzeuge sind halt sexy :)

Das Spielprinzip folgt dann später...

Maxx

gepostet vor 13 Jahre, 2 Monate von MrMaxx

Spieprinzip:

Das Spielprinzip ist nicht so festgelegt, wie es hier viele vermutlich erwarten. Wir werden mit einer bestimmten Grundfunktionalität starten und darauf aufbauen das Spiel erweitern. Es ist also noch nicht festgelegt, was eigentlich genau den Spielspass erzeugen wird. Wird man seine Flugzeuge leveln?...wird man immer mehr Flugzeuge bauen können?...werden Spieler eigene Basen bauen?...wird es viele unterschiedliche Flugzeuge geben?...werden Flugzeuge individuell ausrüstbar sein?...wir wissen es nicht...

Was wir wissen ist, dass wir einen Prototypen erstellen wollen, der voll Spielbar ist....und hoffentlich auch Spass macht.

Das Spielgeschehen ist das eines Strategiespiels, in dem die Spieler ihrem/ihren Flugzeuge/Flugzeugen Aktionan zuweisen können. Das kann z.B. sein:

  • Fliege (von der aktuellen Position) nach Town
  • Greife an Town für Minuten<20>
  • Setze ab Building an Position<23,76>
  • Fange ab Plane

Diese Aktionen werden serverseitig aufgenommen und validiert. Die Serverseitige Gameloop berechnet daraus die Resultate, die an die Clients gesendet werden. Diese Resultate werden vorberechnet in Intervallen von 5 Minuten. Eine einmal gesendete Aktion kann also erst mit 5 Minuten Verzögerung wieder abgebrochen werden. Über diese Verzögerung wird das Spiel Skaliert...je nachdem wie viele Spieler teilnehmen kann dieses Intervall auch verlängert oder verkürzt werden.

Das Spielgeschehen ist also eher das eine Kommandeurs,der auf einer Karte seine Einheit/en verschickt...und diese reagieren mit einer gewissen verzögerung.

Diese serverseitige Gameloop berechnet also die Client-Resultate und stellt sie den Spielern zur Darstellung im Client zur Verfügung:

  • Type, startPos<23,65>, endPos<23,69>, startsAt<8:45:52>, endsAt<8:47:12>
  • Type,takenDamagePer10Seconds<14>, givenDamagePer10Seconds, startsAt<8:47:12>, endsAT<8:59:10>
  • Type, at<8:47:12>
  • Type,Town,arrival<8:46:12>
  • Type,Town,departure<8:46:12>
  • Type,Position<23,69>,Buildingtype

Der Spieler bekommt in der Darstellung also von den Runden nichts mit, da seine Kartenansicht ohne Pause gerendert wird...sein Flugzeug ist also konstant in Bewegung...jede Aktion wird dargestellt...auch wenn ein Feindliches Flugzeug seinen Weg passiert und losgeballert wird.

Das ganze wird natürlich nicht auf einmal implementiert, sondern in vielen Iterationen.

Der erste Milestone beinhaltet bisher:

  • Der Spieler soll sich registrieren können.
  • Der Spieler soll sich anmelden können.
  • Die Karte soll angezeigt werden.
  • Der Spieler soll ein Flugzeug besitzen.
  • Das Flugzeug soll folgende Befehle annehmen können:
  • Fliege zur Koordinate X,Y
  • Fliege zurück zur Basis
  • Der Spieler soll auf der Karte das Flugzeug beobachten können.
  • ACHTUNG: Falls du Lust hast an diesem Projekt mitzumachen....melde dich im Galaxy News IRC Channel bei mir oder Undead :)

    So long...

    Maxx

    gepostet vor 13 Jahre, 2 Monate von Todi42

    Fein, ich wäre dabei. Ist andere Kommunikation als irc vorgesehen? Ansonsten würde ich unit-tests und CI noch gerne auf der Liste sehen. Die Idee finde ich lustig. Ich denke man sollte versuchen, dass man die Code-Basis so agil wie möglich zu halten, damit man schnell mal neue Ideen ausprobieren kann und auch mal viel umstellen kann, ohne dass danach wochenlang nichts mehr funktioniert.

    mfg  Todi

    gepostet vor 13 Jahre, 2 Monate von MisterTom

    Da fehlen noch die Fremen ;) - Sorry für den Spam :D

    gepostet vor 13 Jahre, 2 Monate von Redrick

    Die story ist lustig, man riecht einen dune-fan, bewegung nur über aircraft ist seltsam aber sonst top.

    ich kam mit dem vorgeschlagenen techs bis auf java, jQ und JSP  höchstens nur als begriff in berührung. Kann mir aber vorstellen hier und da vielleicht was anzupacken. am besten könnte das wahrscheinlich klappen, wenn jemand ein core schreibt oder wenigstens eine core-base und den rest feingranular in als todo-tickets oder sonst wie ausschreibt. ist zwar etwas verwaltungsaufwand, dafür bleibt das ganze überschaubar und organisiert. habt ihr an projektverwaltung gedacht (redmine etc)?

    gepostet vor 13 Jahre, 2 Monate von BlackScorp

    Also Ich könnte da Höchstens mit jQuery unter die Arme Greifen, und einer Isometrischen Karte. Man müsste halt absprechen welchen JSON Array der Server erwartet und was ich dann als Antwort erhalte

    gepostet vor 13 Jahre, 2 Monate von buhrmi

    VON DEN TECHNOLOGIEN HAB ICH NULL PLAN!!!

    BWAAAAAAAAAAHH ICH LES NUR QUARTS UND STRIPES??!? WTF IS DAS AAAH ICH HAB ANGST

    Sobald ihr ein Prototyp oder etwas anderes auf dem man drauf aufbauen kann habt, und ein Wiki existiert, in dem beschrieben steht, wie JSP Neulinge und DAUs das Projekt lokal zum laufen bringen, und ein gescheites VCS benutzt wird, werd ich mitmachen :) Allerdings eher clientseitig.

    gepostet vor 13 Jahre, 2 Monate von MrMaxx

    Das ist ja schonmal schön, dass es potentiell helfende Hände gibt.

    Ich habe bereits ein Grundgerüst aufgesetzt, dass allerdings noch auf Hibernate und Mysql als Persistenz setzt. Da funktionert Login, Registrierung, AutoLogin und Zugriffsschutz per Annotation. Im Moment baue ich diese Funktionalität um auf MongoDB...ach ja und HTML-Templates für das Seitengrundgerüst existieren ebenfalls...ich habe ein altes Design von mir wiederverwendet, dass nie richtig verwendet wurde...das passt solange niemand etwas besseres zur Hand hat.

    Unittests sind eh fester Bestandteil jedes Maven Builds...und werden mit JUnit und Mockito realisiert. Ich benutze hier meistens als Aufsatz noch BDDMockito.

    Ich werde die Tage mal ein trac aufsetzen und ein SVN (okok...das sag ich dem Undead schon ne Weile)...ansonsten PM ich euch meinen Skypenamen, wenn ihr IRC verabscheut.

    Ansonsten würde ich es begrüssen, wenn wir Diskussionen über Implementierungsdetails hier raushalten...das interessiert eh kaum jemanden...

    So long...

    Maxx

    gepostet vor 13 Jahre, 2 Monate von neit

    Warum Trac und kein GitHub? Soll der Source closed bleiben? 

    gepostet vor 13 Jahre, 2 Monate von MrMaxx

    Das ist eine Frage, die man sich stellen kann, wenn klar ist, wer überhaupt wirklich etwas an dem Spiel macht...

    gepostet vor 13 Jahre, 2 Monate von BlackScorp

    naja kannst es ja bei githup hochladen und wer lust hat, forkt es einfach und macht da sein eigens ding

    gepostet vor 13 Jahre, 2 Monate von Todi42

    Ich wäre auch für GitHub. Da hätten wir wahrscheinlich auch schon einiges an Infrastruktur, die nicht erst aufgesetzt werden müsste.

    gepostet vor 13 Jahre, 2 Monate von TheUndeadable

    Original von BlackScorp

    naja kannst es ja bei githup hochladen und wer lust hat, forkt es einfach und macht da sein eigens ding

    Das nennt sich dann Projekt ;-)

    Ein Projekt ist ein einmaliges Vorhaben, das aus einem Satz von abgestimmten, gelenkten Tätigkeiten mit Anfangs- und Endtermin besteht und durchgeführt wird, um unter Berücksichtigung von Zwängen bezüglich Zeit und Ressourcen (zum Beispiel Geld bzw. Kosten) ein Ziel zu erreichen.
    gepostet vor 13 Jahre, 2 Monate von Dunedan

    Original von MrMaxx

    Ich werde die Tage mal ein trac aufsetzen und ein SVN (okok...das sag ich dem Undead schon ne Weile)

    Nehmt Redmine statt Trac. Da spart ihr euch die Nachteile von Trac & Github. Support für verschiedenste Versionsverwaltungssysteme ist inklusive. Ich würde an eurer Stelle auch statt subversion ein DVCS wie git oder mercurial nehmen. Macht die Entwicklung, gerade unterwegs ohne Internetzugang, um einiges entspannter.

    gepostet vor 13 Jahre, 2 Monate von neit

    Grad auf Twitter gesehen: Redmine in cool aber leider auch in Rails. :)

    http://gitlabhq.com/

    gepostet vor 13 Jahre, 2 Monate von buhrmi

    Alles auf Github packen und gut is :)

    gepostet vor 13 Jahre, 2 Monate von Lunikon

    Definitiv GitHub...da würde ich mich dann evt. auch mal zu einem Pull-Request hinreißen lassen :)

    gepostet vor 13 Jahre, 2 Monate von tector

    sry wenn es offtopic ist: geht github auch mit closed source? ich weiß dass es nicht ganz dem grundgedanken entspricht.. aber vielleicht kann man ja das einsehen nur bestimmten github nutzern erlauben?

    gepostet vor 13 Jahre, 2 Monate von BlackScorp

    Original von tector

    sry wenn es offtopic ist: geht github auch mit closed source?

    nur wenn man ein Premium account hat. Alternativ kann man das Projekt zb auf der Dropbox hosten und halt jedem, der interesse hat, lese/schreibe rechte zu dem Ordner geben.. das kann man mit SVN nicht:D

    gepostet vor 13 Jahre, 2 Monate von TheUndeadable

    > und halt jedem, der interesse hat, lese/schreibe rechte zu dem Ordner geben.. das kann man mit SVN nicht

    Auch bei einem SVN-Server kann man Lese- und Schreibzugriff nach Belieben verteilen, dies haben wir auch soweit vor, sobald die Basis im Front- und Backend steht. Ergo man ein Kompilat hat, bei dem man sich stumpf anmelden/registrieren kann und man ein leeres Spielfenster sieht. Dies kann schon in den nächsten Tagen/Wochen der Fall sein.

    Es völlig freizugeben ist momentan weniger geplant, wir laden aber jeden ein, der wirklich Interesse an Mitarbeit hat. Es wäre schön, wenn das Winterprojekt ein Projekt der Zusammenarbeit und nicht des Zuschauens wird.

    Und ob man github, bitbucket, svn oder hg nutzt, sehe ich als völlig nebensächliches Schlachtfeld an. Wenn das Projekt gestartet ist, ist eine Migration in jede Richtung bei Bedarf möglich.

    Tools interessieren mich nicht.

    gepostet vor 13 Jahre, 2 Monate von BlackScorp

    gut, aber wie buhrmi schon sagte, wenn man eine anleitung hat, wie man es als laie auf windows oder linux lokal zum laufen kriegt, könnte man da auch mitmachen:D weil bis auf jQuery habe ich keine ahnung von dem ganzen zeugs und bestimmt nicht nur ich:D

    gepostet vor 13 Jahre, 2 Monate von TheUndeadable

    Original von BlackScorp

    gut, aber wie buhrmi schon sagte, wenn man eine anleitung hat, wie man es als laie auf windows oder linux lokal zum laufen kriegt, könnte man da auch mitmachen:D weil bis auf jQuery habe ich keine ahnung von dem ganzen zeugs und bestimmt nicht nur ich:D

    Ich habe es auch hinbekommen ;-)

    Ich werde vielleicht eine Anleitung schreiben... Zumindest bin ich jetzt gezwungen unter Linux zu arbeiten... *Kotz*... :-)

    gepostet vor 13 Jahre, 2 Monate von MrMaxx

    Ich kann mir nicht helfen, aber ich sehe das als persönlichen Verdienst an...undead...linux...und ich habe meinen kleinen Teil daran...muhahahHAHAHA

    gepostet vor 13 Jahre, 2 Monate von BlackScorp

    Original von MrMaxx

    Ich kann mir nicht helfen, aber ich sehe das als persönlichen Verdienst an...undead...linux...und ich habe meinen kleinen Teil daran...muhahahHAHAHA

    Undead Linux? .... undead installier die MonoDevelop :P

    gepostet vor 13 Jahre, 2 Monate von Todi42

    Haben wir schon irgend wo eine Wiki / Forum oder ähnliches, um an dem Game-Design weiter zu spinnen?

    gepostet vor 13 Jahre, 2 Monate von MrMaxx

    HiHo...

    Falls du sowas besitzt schick mir einfach deinen GoogleAccount, dann gib ich dir die google-docs frei.

    Hier ein kleines Mockup...in die Richtung geht es bisher...

    Maxx

    gepostet vor 13 Jahre, 2 Monate von MrMaxx

    Wie sieht es bisher aus?

    Bisher haben es TheUndeadable, Rederick und MrMaxx auf den SVN Server und auf die google-docs geschafft...was ich als aktive Mitarbeit sehe :D

    Was bisher funktionert:

    • Register, Login, Autologin
    • Grundfunktionen des GameClient
    • rudimentärer Textrenderer des GameClients

    Was kann man machen (bisher nur textuell über TextRenderer):

    • Jeder Spieler hat ein Flugzeug
    • MoveActions (Fliege nach x,y) erstellen und löschen

    Was fehlt für den ersten Milestone:

    • Berechnungen in der serverseitigen Gameloop (Berechen der Routen)
    • graphischer Renderer für den Cliient (Canvas sollte es bisher sein)

    Bisher hat sich der Sonntag als Tag rauskristallisiert, an dem die meisten (von Undead und mir weiss ich es) Zeit haben. Solltest du also Interesse daran haben an dem Projekt mitzumachen...oder mal reinzuschauen...dann meld dich doch einfach im IRC irc://irc.gamesurge.net/galaxynews oder http://galaxynews.de/portal/chat.html bei uns.

    In einem Browsergame gibt es immer viiiiiele Dinge, die gemacht werden müssten...und nie genügend Leute, um sie wirklich zu machen..daher hier mal eine Liste von Sachen, um die sich noch niemand kümmert:

    • UI Design im allgemeinen (was wird wo angezeigt...ich will ne Minimap...hehe)
    • Eingabe und Visualisierung von Aktionen
    • Grundüberlegungen zum Kampfsystem und dessen Visualisierung
    • Grafiken (jaja...das sucht jeder, ich weiss)
    • Webdesign
    • ...

    Also...falls ihr Lust habt mit motivierten Menschen Spass beim Entwickeln zu haben, dann meldet euch einfach per PM oder im IRC.

    So long...

    Maxx

    gepostet vor 13 Jahre, 2 Monate von buhrmi

    Bin dabei sobald die Entwicklung offen ist und auf Github stattfindet :)

    Edit: Also vermutlich nie :D

    Auf diese Diskussion antworten