Wirtschafts-Strategiespiele.

Übersicht Sonstiges Smalltalk

Gehe zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen

 

Matthias

Betreff: Wirtschafts-Strategiespiele.

BeitragFr, Sep 30, 2011 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Viele Tage habe ich im Internet nach Spielen gesucht die ähnlich wie Port Royal, Der Patrizier und Co sind.

Zur ernüchterung mußte ich feststellen das es kaum noch solche Spiele gibt. Wo sind sie denn geblieben?
Einfach nur ganz gemütlich vor sich hin spielen ohne Stress und Hektik. Ist einfach nicht mehr möglich.

Und da habe ich mir gedacht, das so ein Spiel ein Wunderbares Community-Projekt sein könnte.

Vorstellbar wäre folgendes Besispiel:
Anno 800.n.C. Riga an der Ostsee. Kann auch am Mittelmeer, Japan oder sonstwo sein.

Ein Sohn erbt von seinem Vater einen Bauernhof. Auf dem Scharfe weiden.
Nun beginnt er seine Wolle an den Meistbietenden Händler zu verkaufen.
Kauft/züchtet neue Scharfe und stellt Knechte ein. Baut für diese kleine Baracken.
Später baut er dann Weberein und verkauft die Kleidung an Händler oder an das Dorf.
Auch kann er Esel kaufen und Ställe für diese Bauen.
Somit ist es ihn möglich seine Kleidung zu anderen Dörfern transportieren zu lassen. Um diese dort verkaufen können.

Und erst ganz zum Schluß hat er genug Geld zusammen um ein Schiff kaufen zu können, mit dem er seine Produkte in der ganzen Welt verkaufen kann.

Auch könnter er eine Färberei bauen lassen um auch Luxuskleidung herstellen zu können.
Doch damit nicht genug. Er könnte in das Töpfergewerbe einsteigen wenn er eine Tongrube kauft.
Eine Schmiede, oder auch Luxuslebensmittel wie Honig usw produzieren und verkaufen lassen.

Besonders wichtig ist jedoch nicht nur Profit zu machen sondernt sich auch um die Angestellten zu kümmern. Der emotionale Aspekt ist mir dabei besonders Wichtig.

Der Sohn des Schäfers ist krank. Nun erscheint ein Text.
Maria Ehefrau von Schäfer Kahl fragt.
Herr XYZ mein Sohn ist krank. Mann hat nun drei Möglichkeiten.
1. Ist mir egal pech gehabt.
2. Maria bekommt Geld für Medizien.
3. Schäfer Kahl bekommt frei um sich um seinen Sohn zu kümmern.

Die Menschen im Dorf befundern einen für seine Menschlichkeit und es werden Plätze oder Straßen nach einen bennant.
Oder mann wird Bürgermeister oder ähnliches. (Schmeichelt das Ego Very Happy )

Die Umsetzung solte möglichst einfach sein. Isometriche Ansicht der Gebäude.
Kein 3D. Kein Online. Kein Lua oder sonstwas für ein Schnicknack.

Meine frage ist nun wie findet ihr die Idee. Und gibt es Forummitglieder die Interesse haben daran mitzuwirken? Für mich allein wäre es einfach zuviel Arbeit.

Xeres

Moderator

BeitragFr, Sep 30, 2011 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Spielidee ist nicht schlecht, aber ohne richtiges Konzept überlebt das Projekt die nächste Woche nicht.
Eine Sammlung von mehr oder weniger wichtigen Gameplay Elementen ist nichts, womit man arbeiten könnte - jedenfalls nicht in einem Team. Es braucht klare Spezifikationen von jedem Teilstück, damit man was dazu beitragen kann. Es braucht Meilensteine um den Fortschritt zu zeigen und die Moral des Teams hoch zu halten. Und du solltest super gut im organisieren sein.
Als Arbeitserleichterung für dich wird das nichts - da hast du allein weniger zu tun.

Ansonsten: Viel Erfolg!

Go Megaprojekt 2011!
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Matthias

BeitragFr, Sep 30, 2011 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
@Xeres.

Du hast volkommen Recht.
Ein Konzept werde ich natürlich entsprechend ausarbeiten. Wenn mann sich über die Eckdaten geinigt hat.
Vorausgesetzt Interesse besteht.

Es ist nur eine ganz grobe Richtung. Bei der noch viel platz für Ideen und Erweiterungen bleiben.
Wenn dann endlich alles halbwegs unter Dach und Fach ist, werde ich ein Detailtes Konzept ausarbeiten,
von dem dann auch auf gar keinen Fall abweichen darf, egal welche Ideen nachträglich noch entstehen.

Und ich bin davon überzeugt das ich es gut organisieren kann.

Habt einfach mal vertrauen!!!

Go Miniprojekt 2011! Laughing

das wurgel

BeitragFr, Sep 30, 2011 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich werde mich eventuell daran beteiligen. Welche Sprache solls denn sein? Ich wäre dafür wir machen das in BlitzMax und versuchen es möglichst objektorientiert zu machen. Dann lässt sich das Konzept besser auffassen und es können leichter Teilaufgaben vergeben werden. Die Bilder können wir uns von hier holen, da gibts Gebäude, Menschen, Tiere, alles freeware, alles im isometrischen Format, oder wir finden einen Grafiker.
1 ist ungefähr 3
 

Matthias

BeitragFr, Sep 30, 2011 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
@das wurgel

Natürlich BlitzMax. Und natürlich möglichst objektorientiert. Das mit der Grafik ist schonmal echt super.

Hast du noch ergänzende Ideen die du einbringen willst?
Bestimmte Systemprogrammierungen die du besonders gerne machen willst.

zum Beispiel:
Isometriches Grafik-System.
Benutzeroberflächensystem. (GUI)
Wirtschaftssystem. (Preiskalkulationen)
Speichersystem.

Sind jetzt nur die wichtigsten Systeme die benötigt werden.

ZaP

Betreff: Re: Wirtschafts-Strategiespiele.

BeitragFr, Sep 30, 2011 16:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Matthias hat Folgendes geschrieben:
Zur ernüchterung mußte ich feststellen das es kaum noch solche Spiele gibt. Wo sind sie denn geblieben?


Der Durchschnittsgamer (also die Gruppe mit der meisten Kohle, im Grunde die Verantwortlichen für das sinkende Niveau von Videospielen im letzten Jahrzehnt) hat nicht die Geduld dafür. Innerhalb Deutschlands mögen sich solche Spiele verkaufen, z.B. Anno und Die Siedler. Es gibt ja auch den Begriff "German Wuselfaktor" Smile
Viel Erfolg für das Projekt!
Starfare: Worklog, Website (download)
 

Matthias

BeitragFr, Sep 30, 2011 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok dann Oute ich mich als solch ein "German Wuselfaktor" Freak.
Und ich bin mir sicher das es noch viel mehr meiner dritten Art gibt. Laughing

Und ja ich würde sogar 30 bis 50 Euro ausgeben, für ein Spiel mit Langzeitspielspass.
Aber nicht für ein Spiel mit 10 Level, wo mann irgendwelche Alliens abknallen muß und wenn mann gut genug war ist das Blut plötzlich Rot anstatt Grün. Twisted Evil
  • Zuletzt bearbeitet von Matthias am Fr, Sep 30, 2011 16:59, insgesamt einmal bearbeitet

M0rgenstern

BeitragFr, Sep 30, 2011 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Communityprojekt, hm?
Um einer Enttäuschung vorzubeugen: Geh lieber davon aus, dass es nicht klappt.
ABER: Mich würds schon interessieren. Bei uns an der Uni war grade Sopra und die sollten ein "Siedler von der Saar" programmieren. Fand ich eigentlich recht interessant.
Ich würd dir aber raten:
-Entweder das ganze Konzept weiter auszubauen und dir dann ein Team zu suchen
Oder
-Dir ein Team zu suchen um mit ihm das Konzept zu erarbeiten.

In jedem Fall muss dir klar sein (das hat Midimaster neulich irgendwo geschrieben und da gebe ich ihm Recht), dass es eine Projektleitung geben muss, die die Verteilung der Aufgaben etc übernimmt.

Lg, M0rgenstern
 

Matthias

BeitragFr, Sep 30, 2011 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
@M0rgenstern.

Ohne anmaßend zu sein.
Ich übernehme die Projektleitung, und die Verantwortung.
Ich erstelle das Spielkonzept. Die Menüführung sowie den zeitlichen Ablauf.
Ich übernehme die Planung und die Kontrolle über das Projekt.
Und ich teile ein wer was bis wann zu tun hat. Ohne ihn/ihr zu überfodern.

Ideenfindung.
Welche Betriebe, Rohstoffe, Produkte soll es geben.
Grobkonzept Was soll der Spieler alles machen können. Ohne ins Detail hinein zu gehen.
Detailtes Konzept. Welche Systeme werden benötigt. Und mit welchen Datenstruckturen kann mann
dies erreichen.
Welche Abhängigkeiten haben einzelne Systeme untereinander.
Und wie wirken diese zusammen.
Das sind alles sachen die ich übernehmen werde.

Das einzigste was Demokratich ist, ist die Idenfindung.
Alles andere wird von mir hierarisch delegiert.

das wurgel

BeitragFr, Sep 30, 2011 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich könnte den Teil für die isometriche Grafik programmieren. Ich hab mir außerdem Gedanken macht, wie man das Spieltechnische (z.B. Bewegung von Spielfiguren, Abläufe, Kollision) vom Zeichentechnischen trennen kann und wie man bewerkstelligen könnte, die Bilder dynamisch zu laden und dann einen groben Entwurf gemacht. Ist aber nur ein Vorschlag, wir können es ja noch ändern oder es komplett anders machen.

Gehen wir mal von diesen Spielobjekt Typen aus:
Code: [AUSKLAPPEN]
Type TSpielobjekt abstract
   Field zeichner:TSpielobjektZeichner
   
   Method update() Abstract

   Method draw(){
      If zeichner Then zeichner.draw()
   }

   Function Create:TSpielobjektZeichner() abstract
End Type

Type TKarte extends TSpielobjekt
   Field kartenrelevante dinge z.B. tilemap

   Field kartenObjekte:Container<TKartenobjekt>   

   Create(){
      zeichner=TKartenZeichner.Create(Self)
   }
End Type

Type TKartenobjekt extends TSpielobjekt Abstract
   Field x, y, z   
   Field frame   
End Type


Jeder Typ von Spielobjekten hat seinen eigenen Zeichner-Typen:
Code: [AUSKLAPPEN]
Type TSpielobjektZeichner abstract
   Global view_x, view_z   
   Global initialized=False   

   Method new(){
      If Not initialized Then Init()
   }

   Method draw() abstract

   Function Create:TSpielobjektZeichner() Abstract

   Function Init() Abstract 'zum Bilder laden
End Type

Type TKartenZeichner extends TSpielobjektZeichner
   Global TImage-Objekte, die zum zeichnen benötigt werden

   Field karte:TKarte

   Method draw(){
      
   }

   Function Create:TKartenZeichner(karte:TKarte){
      self.karte=karte
   }

   Function Init(){
      bilder laden
   }
End Type

Type TKartenobjektZeichner extends TSpielObjektZeichner Abstract ' Für Objekte, die sich auf der Karte bewegen
   Field kartenobjekt:TKartenobjekt
   
   Field image:TImage
   Field imagePlaceholder:TImagePlaceholder

   draw () {
      'objekte mit den Informationen von kartenobjekt zeichnen
      'falls zum zeichnen weitere Informationen benötigt werden,
      '   wird sie vom erweiterten Type überschrieben
   }

   Method getImage:TImage(){
      If image=Null Then image=imagePlaceholder.getImage()
      return image
   }

   Function Create:TKartenobjektZeichner(kartenobjekt:TKartenobjekt) {
      self.kartenobjekt=kartenobjekt
   }

   Function Init() Abstract 'Bilder laden
End Type


TKartenobjektZeichner zeichnet bereits bilder an den Koordinaten des Kartenobjekts mit dem gewünschten Frame.

Mit diesem Type könnte man das Bilderladen umsetzen:
Code: [AUSKLAPPEN]
Type TImagePlaceholder
   Global all:Container<TImagePlaceholder>

   Field path:String
   Field image:TImage
   
   Method new(){
      all.add(self)
   }

   Method getImage:TImage(){
      If image=null Then load()
      return image
   }

   Method load(){
      image = LoadImage(path)
   }

   Function Create:TImagePlaceholder(path:String){
      
   }

   Function LoadAll(){

   }
End Type


Und das jetzt angewendet auf das Beispiel einer Färberei:
Code: [AUSKLAPPEN]
Type TFaerberei extends TKartenObjekt
   Method update() {

   }

   Function Create:TFaerberei(){
      zeichner=TFaerbereiZeichner.Create(Self)
   }
End Type

Type TFaerbereiZeichner extends TKartenObjektZeichner
   Function Init(){
      imageplaceholder=TImagePlaceholder.Create(dateiname)
   }
End Type


Wie wär das?
1 ist ungefähr 3

Midimaster

BeitragSa, Okt 01, 2011 9:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Mensch toll! Das wäre ja genau sowas, wie ich mir in diesem Beitrag vorgestellt hatte: https://www.blitzforum.de/foru...hp?t=37695

Damit das Ganze eine Chance hat, sollte man sich von vorn herein über den zeitlichen Rahmen im Klaren sein. Lieber erst mal eine kleine Version 1 und später eine Vergrößerung, als gleich zu Beginn das Projekt zu umfangreich anlegen.

Wurgels Vorschlag mit Trennung von Spieltechnik von Zeichentechnik ist unbedingt einzuhalten. Bevor aber die erste Code-Zeile geschrieben ist, sollte eine Story stehen:

Wer handelt? Was? Wann? Mit Wem? Warum? Welche Faktoren wirken erwartungsgemäß mit? Welche Ereignise könnten "unerwartet" für Spannung sorgen. Gewaltfrei? 2D,3D?

Bei der Code-Struktur würde ich das Ganze nicht unnötig kompliziert gestalten. Je "abgefahrener" Euer Code ist (z.b. Wurgels C-Beitrag?), desto weniger Freiwillige werden mitmachen! Erste Maxime: Hautsache es läuft! Zweite Maxime: Hauptsache es läuft ausreichend schnell! Das soll heißen: Optimierungen nur das wo sie angebracht sind. Man verwendet best. Code-Technologien (Abstract, Reflections, Rekursionen, etc) immer nur, wenn es nicht anders geht und nie um ihrer selbst Willen!

Timing: Die Spielfunktionen-Funktionen von 1msec auf 0.5msec zu drücken ist schlichtweg Unsinn. Die Grafikausgabe zu optimieren meist sinnvoll, etc... Zu klären wäre auch, wie alt ein Rechner sein darf, dass das Spiel darauf noch läuft. Auch hier schießen viele Coder oft über das Ziel hinaus und schränken so den Kreis der User ein.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

Matthias

BeitragSa, Okt 01, 2011 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
@das wugel

Ich freue mich sehr über deine Interesse.
Auch auf das Risiko hin das ebend diese verloren gehen könnte, muß ich leider sagen das du schon zu voreilig warst.

Wie Midimaster schon schrieb OOP ist gut aber nur wenns sein muß. Der Code solte dennoch vereinfacht sein, auch auf das Risiko hin das sich dies letzendlich als zu kurz gedacht herausstellen solte.

Ich finde es super das du dir gerade einer der schwersten abschnitte zutraust.

Für das Isometriche Grafiksystem habe ich schon sehr genaue vorstellungen wie die Datenstrucktur sein müßte.
Schematich.
Code: [AUSKLAPPEN]

------Mainloop-------
     TWorld.Update()
     TWorld.Draw()
     .......
     .......
-----End Mainloop----

Type TWorld
Global BuldingDummys:TList
Global SelectTown:TTown     
     
     Function Setup() /Init()
           GebäudeDummys Laden (.ini oder .txt Datei)
           Zu GebäudeDummy-Liste Hinzufügen.       
     End Function 
 
     Function Update()
           Alle berechnungen für jede Stadt jedes Haus jede Figur
           werden durchgeführt.
             
           Warenproduktion/Verbrauch ect.
     
     End Function

     Function Draw()
            SelectTown.Draw()
     End Function
End Type         

Type TTown
Global AnzeigeListe
Field GebäudeListe
Field BaumListe     
      Method AddBullding(GebäudeTypName$,X,Y)
         
            Gebäudedummy suchen und kopieren
            Instance zu GebäudeListe Hinzufügen
   
      End Method
 
      Method Draw()
            Alle Gebäude die im sichtbaren Bildschirmbereich sind
            zur AnzeigeListe Hinzufügen.
             
             Alle Bäume die im Sichtbaren Bildschirmbereich sind
             zur AnzeigeListe Hinzufügen.
             
             AnzeigeListeSortieren()
             
             Nun die AnzeigeListe Durchgehen und die Bilder Anzeigen.
             +Zoomen  +Bezugspunkt  (evt später drehen 4 Richtungen) 
             AnzeigeListe löschen.
      End Method

      Function AnzeigeListeSortieren()
            Las dir was einfallen.
      End Function
End Function     

Type TBulldings
Field Player,Name$,X,Y,Typ usw     
End Type

So in etwa sieht das Grundgerüst für die Welt aus.
Später folgen dann noch die Figuren (evt Pfadfinding für diese)
Sowie Schiffe/Esel.
Ramspeicher ist hierbei unerheblich deshalb kann auch jedes Gebäude
obwohl gleichen Types unterschiedliche Verarbeitungsgeschwindigkeiten besitzen.

@Midimaster.
Du hast volkommen Recht. Die älteren sind wie schon gesagt im Beruf oder Studium
und habe deshalb auch besonders wenig Zeit.
Und wenn sie noch Programmieren dann natürlich richtig. BMax OOP usw.

Ich denke BlitzMax ist schon zu komplieziert. Mit den ganzen OOP, Methoden, Ableitungen usw.
Es bietet deutlich mehr Möglichkeiten durch Komplexheit.
Doch die jungend von heute steckt viel zu tief in WOW-Welten fest.

Ein Spiel mit Emotionalen Wusel-Carakter wäre genau das richtige.

das wurgel

BeitragSa, Okt 01, 2011 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
@Matthias
Da ich mit dem Grafikkram ja eh noch alleine bin, kann ich meinen Teil doch so Objektorientiert machen wie ich will. Solange wir ein fest definiertes Interface haben macht es von außen her betrachtet eh keinen Unterschied.

Ich finde dein Modell übrigens gut. Ich würde dann alle Methoden bis auf TWorld.update() ausprogrammieren und das restliche Zeichengedöhns in eine Extra-Datei packen, die nur ich allein verstehen muss.

Matthias hat Folgendes geschrieben:
Natürlich BlitzMax. Und natürlich möglichst objektorientiert.

Matthias hat Folgendes geschrieben:
Ich denke BlitzMax ist schon zu komplieziert. Mit den ganzen OOP, Methoden, Ableitungen usw.
Es bietet deutlich mehr Möglichkeiten durch Komplexheit.
Doch die jungend von heute steckt viel zu tief in WOW-Welten fest.

Das verwirrt mich aber allerdings schon ein biscchen. Ich weis auch nicht so ganz was du damit sagen willst. Meinst du die Jugend von heute kann kein OOP, weil sie zu viel WOW spielt?
Meiner Meinung nach ist OOP für Team-Arbeit wie geschaffen. Natürlich sollte man damit nicht übertreiben, aber untertreiben sollte man es auch nicht. Ich fände es klug, wenn wir es so strukturieren, dass nicht mehrere Personen an einem Type basteln.

Ich fände es außerdem toll, wenn du Mal deine groben vorstellungen vom Spiel preisgibtst, bevor wir uns hier in irgendwelchen fitzelkram verheddern. Alles was ich bis jetzt weis ist, das es ein Wirtschaftsimulator mit emotionalen Faktor sein wird. Steuert man eine bestimmte Person? In wie weit kann man Einfluss auf die Infrastruktur geben, hat eine Stadt schon von Anfang an Gebäude oder müssen sie von Grundauf vom Spieler gabaut werden? Gibt es NPCs? Sind Händler NPCs oder sollen diese nur in Form eines Handelsdialogs existieren? Gibt es Feinde/Konkurrenten? Existieren Rohstoffe nur als Zahlen oder haben diese einen Ort an dem sie angezeigt werden? Hat das Spiel eine Storyline, oder sollen nur Zufällige Ereignisse im Zusammenhang mit dem was man tut auftreten?
1 ist ungefähr 3

BladeRunner

Moderator

BeitragSo, Okt 02, 2011 9:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Wurgel, wenn Du in Bmax entwickeln willst, warum stellst Du dann Monkey(?)-Code ein. Templates unterstützt Max nicht, so ist der Code sinnlos als Ansicht.

Mathias: Ich schliesse mich Midimaster an. Bevor Du auch nur ansatzweise über Code und andere Spässe nachdenkst solltest Du ein exaktes Bild des Spieles formuliert haben. ansonsten wird das dein nächstes MegaProjekt.

Zudem, als persönliche Anmerkung:
Wenn Du schon einen geschichtlichen Kontext wählst würde ich darauf achten dass er korrekt ist. Warum Riga zu einer Zeit als die Hanse noch fern war, und von einem geordneten Marktwesen nicht zu sprechen war? (und wo Riga *hust* noch nicht mal gegründet war?)

Natürlich ist das nur ein Detail, aber wer solche Spiele liebt wird sich an solchen Details enorm stören.
Daher: nimm ein Phantasieszenario, gestalte es frei, oder aber halte dich zumindest grob an das tatsächliche Geschehen. Glaubwürdigkeit ist ein großer Punkt bei einer WiSim.
Und wenn es Dir ernst mit Projektleitung und co. ist solltest Du Dir angewöhnen deine Texte durch eine Rechtschreibeprüfung zu jagen und auf eine weitestgehend fehlerfreie Grammatik zu legen. Eindeutigkeit und Verständlichkeit der Aussagen ist essentiell für den Erfolg.
Niemand erwartet perfektes Hochdeutsch, aber eine Fehlerwüste wird dich in deiner Position als Teamleitung in Frage stellen. (Wenn der sich nicht die Zeit nimmt ordentlich zu schreiben, warum soll ich auf ihn hören / ihn ernst nehmen?)

EDIT:
Zitat:
@Matthias
Da ich mit dem Grafikkram ja eh noch alleine bin, kann ich meinen Teil doch so Objektorientiert machen wie ich will. Solange wir ein fest definiertes Interface haben macht es von außen her betrachtet eh keinen Unterschied.


Und mit solch einer einstellung leitet sich der Tod des Projektes ein. Entweder es gibt Maßgaben, und an die wird sich gehalten, oder man sucht sich was wo man seine eigenen Massgaben durchsetzen kann. Teamarbeit ist keine Demokratie Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

konstantin

BeitragSo, Okt 02, 2011 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sehe das Projekt schon zum scheitern verurteilt, weil ihr ernsthaft das Ziel verfolgt, den Codestil (sowohl syntaktisch als auch inhaltlich) auf den kleinsten gemeinsamen Nenner zu druecken. Wenn ihr das tut habt ihr euer Vorhaben bereits in den Sand gesetzt, weil ihr um einen komplexeren Code so oder so nicht herum kommen werdet.

Ihr braucht jemanden, der die Gesamtaufsicht ueber den Code hat, kontrolliert, wer was macht und hinterher die einzelnen Teile zusammenfuegt. Idealerweise ist das natuerlich der mit der meisten Ahnung, weil er den Kram der anderen Leute verstehen und integrieren muss. Um diese Arbeit um ein vielfaches einfacher zu machen, bietet es sich an, dass ganze objektorientiert zu gestalten.

Sicherlich, objektorientierte Programmierung zwingt euch zu Blitzmax und verlangt von den Programmierern ein gesundes Maß an Erfahrung und Intelligenz, aber alles andere waere einfach nur daneben und der Sache nicht dienlich.

Wenn das im Endeffekt bedeutet, dass nicht jeder Dreizehnjaehrige mit zwei Wochen BlitzBasic-Erfahrung bei eurem Projekt mitwirken kann, dann ist das zwar traurig, aber ohne derartige Massgaben kann man ein solches Vorhaben ueberhaupt nicht bewerkstelligen. Mal ganz davon abgesehen, dass ein objektorientierter Code ideal fuer euch ist: Jeder kann an seinem Modul herumbasteln und braucht sich um den Code der anderen keine bzw. kaum Gedanken machen, was bedeutet, dass jeder entsprechend seines Horizontes wirken kann.

Midimaster

BeitragSo, Okt 02, 2011 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine Tipps:

Eine Iso-Engine ist sicherlich der leichsteste Teil eines solchen Spiels. Dafür gibt es auch schon unendlich viele Beispiele. Anspruchsvoll wären da schon eher die vielen Zeichnungen, die zu machen sind. Hier würde ich höchstens während der Testphase auf bereits bekannte Tiles setzen. Nur eigene Zeichnungen setzen Dein Spiel von den Kokurrenzprodukten ab.

Alle Spielelemente (z.b. Figuren, Städte, Resourcen, Maschinen) sollten einen individuellen Input-Channel haben, der auf Änderungen reagiert und eine Output-Channel, der daraufhin wieder andere Spielelemente beeinflusst. So entsteht ein Regelkreis, in dem die Akteure mit ihrer Umwelt interagieren, ohne das man als Programmierer noch viel dazu schreiben muss.

Die Eigenschaften der Spiel-Elemente und ihre "Reaktionslust" auf Interaktionen könnten tatsächlich mit einem Text-Editor geschrieben werden. So könnte eine unabhängige "Interaktionsgruppe" am Feintuning der Spielelemente arbeiten. Die Engine greift dann in einer TYPE-Methode auf diese Scripte zu und verändert die Werte in den bereits existierenden Objekten.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

Matthias

BeitragSo, Okt 02, 2011 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
@das wugel.
OOP ist ein zweischneidiges Schwert. Es ist für dieses Projekt unabdingbar das Functionen, Methoden usw. möglichst gut gekapselt sind.
Wiederum darf ich nicht verlangen das jemand hundertprozentiges OOP beherrscht.
Dadurch würden genau diejenigen abgeschreckt werden die zwar Interesse haben aber noch keine Profies sind.
Mir geht es da um ein Mittelmaß. Soviel OOP wie nötig so wenig wie möglich.
Natürlich kannst du in dem TWorld Include/Modul walten und schalten wie du möchtest.
Wichtig ist mir dabei das im Mainloop TWorld.Update und TWorld.Draw als einzigsten Schnittstellen sind.


Zu dem Spiel selbst. Ich habe sehr genaue Vorstellungen!!!
Wollte nur vorher die Interessenlage sondieren, und mögliche Interessenten die Möglichkeit geben ihre
eigenden Ideen in das Konzept aufzunehmen.

@Midimaster.
Hört sich interessant an mit den verschiedenen Schnittstellen.
Wie kann ich mir das Konkret vorstellen. Schema, Beispiel

Auch wenn ich nun die Ideenfindungsphase überspringe und evtl Interessenten damit abschrecke werde ich jetzt konkrete Rahmenbedingungen setzen.

Anno 1300. Ostseeraum.
Es gibt eine Zoombare Worldmap. Auf denen die einzelnen Städte als Icons zu sehen sind.
Nebenan steht der Name der Stadt.
Es gibt 8 Verschiedene Icons die die Größe der Stadt angeben. ca 20 Städte.
Wenn man nun mit der Maus über das Stadticon fährt wird der Warenpreis der einzelnen Produkte auf einem Panel angezeigt. Klick man nun mit der Maus auf das Stadticon gelangt man in die Stadt. Isometrische Ansicht der Gebäude, Bäume usw. Später kann man dann Lagerhäuser, Krankenhäuser usw in verschiedene Städte bauen.

Jede Stadt besitzt Anfangs nur jeweils eine Produktionskette. Die sich nach einer der vorhandenen Rohstoffquellen richtet. Zum Beispiel Ton,Eisenerz,Gold, besonders guter Boden für Weideflächen oder auch besonders hohes Fischvorkommen.

Mann kann sich anfangs eine Stadt aussuchen. Und Erbt zufällig eine Scharffarm, eine Tongrube, eine Eisenerzmiene. Die man dann ausbauen kann.

Da man zu Beginn über keine Schiffe, Esel usw verfügt ist man abhängig von Händler mit denen man Handelverträge schließen muß. Für mehrere Jahre bei gleichbleibenden Abnehmerpreis.

In anderen Städten sind natürlich andere KI-Spieler am Werk die die Konkurrenz darstellen.
Wiederum kann man diese auch Kredite anbieten um diese zu fördern. Oder auch die Farmen, Fabriken usw. abkaufen.

Das Spiel wird natürlich eine emotionale Geschichte haben. Doch diese wird niemanden dazu zwingen bestimmte Sachen in einer bestimmten Zeit erfüllen zu müssen.
Es wird keine Gefechte mit Piraten auf hoher See geben.
Und auch keine Armeen oder sonst was. Krieg ist komplett Tabu.
Es wird Seuchen, Ratten die alles weg fressen, schwere Winter mit Hungersnöten geben.

Es werden keine Figuren auf den Straßen umherlaufen. Vielleicht später
Die sind anfangs alle in den Baracken oder in den Fabriken.
Mann kann die Arbeitzeit mit einem Schieberegler einstellen oder auch Sonntagsarbeit erzwingen.
Auch das Geld kann eingestellt werden.
Wenn man sehr Menschlich ist was letztendlich denn Profit mindert spricht sich das rum.
Und immer mehr Bettler kommen in die/deiner Stadt und bitten dich um eine Ausbildung.
Die natürlich kostet. Zum dank verpflichten diese sich für dich 7-15 Jahre zu einem gleichbleibenden Preis zu arbeiten.

Wenn man allerdings zu streng ist (Sonntagsarbeit, 14 Std tägl.) ist die Chance das die Arbeiter an Krankheit sterben deutlich größer. Es bewerben sich keine Bettler mehr und man hat keine Arbeiter mehr um zu expandieren.

Arbeitszeiten, Löhne, Optimierungen werden direkt in den Farmen, Fabriken, eingestellt.
Die Finanzübersicht, Handelsverträge, Kredite usw von einem Holztisch aus.
Der in einer kleinen Hütte steht. Je nach Status kann man eine neue Unterkunft für sich selbst kaufen.
Je nachdem wie Prunkvoll die Unterkunft ist macht man Eindruck auf Händler, die mehr vertrauen dadurch bekommen.
Wenn sie allerdings zu Prunkvoll ist, im Verhältnis der Arbeiterunterkünfte.
Kann es schonmal passieren das sie abbrennt. Was die Händler wiederum abschreckt.

Ja es hört sich alles sehr kompliziert an. Doch im Grunde geht es darum ein Mittelmaß zu finden zwischen
Menschlichkeit und Profit.
 

MasterK

BeitragSo, Okt 02, 2011 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine meinung:

Schon die herangehensweise lässt nur einen schluss zu: das projekt wird scheitern bevor es richtig beginnt. Nicht, dass ich hier alles mies machen möchte, das sind einfach die fakten. Dafür fehlt dir, Matthias, auch einfach die erfahrung was die "projektleitung" angeht.

Backt lieber kleine brötchen.
+++ www.masterk.de.vu +++
Lila FTW!

Midimaster

BeitragSo, Okt 02, 2011 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir nicht so sicher, ob ein generell aufgerufenes TWorld.Update() der Komplexität der Interaktionen, die zwischen den Teilnehmern auftrten können gerecht werden kann....

Input, Output, Eigenschaften

generell ist es doch so: Bei jedem neuen Spiel-Element z.b. "Weizenfeld" gibt es genau vorher festzulegende "Eigenschaften", die können Ist-Zustände beschreiben, z.b. "Eigentümer", "Größe", "Image", "Qualität". Aber eben auch Input-Bedürfnisse darstellen wie "Wasserbedarf", "Pflegebedarf", "Sonnenbedarf". Soche Input-Bedürfnisse reagieren auf Ereignisse von außen. Dann gibt es Evolutionseigenschaften, wie "Wachstum" , "Alter", die pro Runde aktualisiert werden und sich wieder auf andere eigene Eigenschaften auswirken. Als drittes gibt es aber auch Emmisisonen, die sich vielleicht auf andere Teilnehmer auswirken werden "Ernte" oder "Verkaufserlös". Der einzelne Teilnehmer kann aber nichts von der Existenz der Anderen wissen. Daher emiitiert er diese Emmisionen einfach als EVENT in eine EVENT-Schleife. EVENTS können sich auf das ganze System oder einen Bereich oder auf einen Teilnehmer auswirken. Dort sehen sich alle anderen Teilnehmer die anstehenden Events durch und reagieren wieder darauf.

Die Frage ist hierbei immer, wie komplex man das System auftröselt. Wächst der Weizen einfach 100 Tage vor sich hin, oder soll er auf Umwelteinflüsse reagieren können?

Wie seht ihr eine Umsetzung? Hat jemand schon Ahnung von so einer Simulation?
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

das wurgel

BeitragSo, Okt 02, 2011 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu der Simulation:
Auf jeden Fall Events. Aber wieso kann TWorld.Update() dem nicht gerecht werden? TWorld.Update() ruft einfach die Update-Funktionen der Spielelemente auf (Märkte, KIs, Weizenfelder). Die wiederum fangen Events ab, ändern ihren Zustand und senden aufgrund ihres Zustandes wieder Events aus. Mir müssen allerdings darauf aufpassen, dass ausgesendete Events erst in der nächsten Schleifenrunde empfangen werden, um das ganze unabhängig von der Reihenfolge zu machen, in welcher die einzelnen update()s aufgerufen werden.

Eine einfachere Möglichkeit das umsetzen sehe ich nicht, Matthias, du bist doch sicher damit einverstanden oder?

Das auslagern in Textdateien halte ich für weniger sinnvoll, da die verschiedenen Einflüsse und Reaktionen zu komplex werden könnten, so dass man da schon eine eigene Scriptsprache entwickeln müsste. Da ist es doch wesentlich einfacher, codedateien auszulagern, mit denen sich eine finetuning Gruppe ja auch beschäftigen könnte.


BladeRunner hat Folgendes geschrieben:
Wurgel, wenn Du in Bmax entwickeln willst, warum stellst Du dann Monkey(?)-Code ein. Templates unterstützt Max nicht, so ist der Code sinnlos als Ansicht.

Das hat wohl überhaupt niemand vertanden, was ich damit darstellen wollte. Das ist weder C noch Monkey. Das sollte nur ein grobes Schema darstellen, wie man das Spielmechanische von dem auf-den-Bildschirm-bringen trennen kann. Und so, dass es rein mit dem OOP von BlitzMax umsetzbar ist. Was sind Templates?

BadeRunner hat Folgendes geschrieben:

Zitat:
@Matthias
Da ich mit dem Grafikkram ja eh noch alleine bin, kann ich meinen Teil doch so Objektorientiert machen wie ich will. Solange wir ein fest definiertes Interface haben macht es von außen her betrachtet eh keinen Unterschied.


Und mit solch einer einstellung leitet sich der Tod des Projektes ein. Entweder es gibt Maßgaben, und an die wird sich gehalten, oder man sucht sich was wo man seine eigenen Massgaben durchsetzen kann. Teamarbeit ist keine Demokratie Wink

Ja natürlich muss es äußere Maßgaben geben, und natürlich muss sich jeder daran halten.

Aber wozu braucht man äußere Maßgaben wo eh nur einer was von mitkriegt? Beispiel: Person A will eine Funktion, die zwei Zahlen zusammen addiert und sagt der Person B, die für Mathe zuständig ist, ich will die Funktion addiere(zahl1, zahl2). Ob Person A jetzt "Return zahl1+zahl2" schreibt, oder "Return zahl2 + zahl1", kann Person A doch egal sein, denn für sie macht es keinen Unterschied.

Und so lässt es sich auch auf uns anwenden: Matthias sagt mir jetzt z.B., ich will eine "Funktion draw(anzeigeListe)" und die soll alle Objekte in anzeigeListe zeichnen. Wie sie das macht wird, kann ihm und anderen, die vielleicht noch dazukommen werden, volkommen egal sein, solange es auf dem Bildschirm so aussieht, wie es vorgegeben war.

@Matthias:
Dein Konzept ist schonmal nicht schlecht, du müsstest es nur noch ein bisschen ausarbeiten und dich mit einzelnen Fragen beschäftigen, damit das ganze nicht so viel Interpretationsfreiheit lässt. Umso mehr sich die Vorstellungen der Teilnehmer unterscheiden, umso schwieriger wird es.
1 ist ungefähr 3

Gehe zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group