CIVILIZATION-1 auf dem C64 möglich?

  • Öhm, schwierig, noch nie gemacht.
    Aber fangt doch erstmal an ne Karte darzustellen auf der man ein paar Einheiten hin und herschieben kann.
    Dann den Siedler der ne Stadt baut.
    Forschung rudimentär implementieren.
    Der Stadt ein paar Bauten geben.
    Ab hier kann man sich solangsam gedanken über die KI machen.
    SELECT signatur FROM dummesprueche WHERE forumsbezug > 0
    0 rows returned.
  • civilization im ein-spieler-modus ;)

    man kann ja auch eine reine multiplayer-version erstellen... wird lustig überhaupt zwei leute in einen raum zu bekommen die einen c128 besitzen *g*

    ich werde mir wohl nochmal intensiv civ1 auf'm amiga zu gemüte führen, hab jahrelang nur civIII gespielt...
  • Ich habe das Gefühl, die KI könnte das Schwierigste von allem sein, ohne Computergegner wäre Civilization aber nicht Civilization.

    Bis zu einem gewissen Punkt könnte man zwar mit relativ einfachen Entscheidungsregeln arbeiten, z.B.:
    - Wenn der Computergegner einen "kriegerischen" Charakter hat, dann wird er gezielt solche Themen beforschen, die es ihm erlauben, bessere Kampfeinheiten zu bauen. Und beim Einheiten-Bauen wird er natürlich ebenfalls eine hohe Priorität auf Kampfeinheiten legen.
    - Es wird nach einigen logischen Kriterien für jede Stadt eine Art Schnelldiagnose erstellt (gibt es irgendein Problem das gelöst werden muss? Welche Boden-Ressourcen gibt es und wie lassen sich die am besten ausnutzen? -- äquivalent zu den Tipps, die Civilization den menschlichen Spielern gibt). Wahrscheinlich stösst man mit solchen einfachen Regeln aber irgendwann an gewisse Grenzen...

    Und dann geht es erst richtig los:
    Jeder Computergegner bräuchte wahrscheinlich eine oder mehrere "gedankliche Weltkarten", in denen Dinge gespeichert sind wie:
    - Ist das Feld bereits bekannt/erforscht?
    - Wie stark ist der militärische Einfluss, den andere Spieler auf das Feld haben (abhängig davon wie weit bekannte gegnerische Einheiten entfernt sind und wie stark sie sind)
    - Wie "attraktiv" ist das Feld i.S.v. "strategischer Wichtigkeit" und Bodenschätzen?
    - Etc.
    Diese "Gedankenkarten" fressen natürlich recht viel Speicher, ausserdem kann es einige Rechenzeit kosten, sie zu aktualisieren. Eventuell lässt sich Speicher sparen, indem man z.B. für die militärischen Kräfteverhältnisse und die Attraktivität dieselben Byte-Arrays für alle KI-Gegner nimmt, und die werden dann jeweils für jeden KI-Gegner neu berechnet.

    Auf rein taktischer Ebene könnte jeder Computergegner dann seine Erkundungs- und Militäreinheiten dort hinschicken, wo es am "attraktivsten" ist und gleichzeitig die höchsten Siegchancen bestehen bzw. wo es am dringensten erscheint, sich besser zu verteidigen. Nebenbei bräuchte es natürlich einen "Pathfinder"-Algorithmus, der jeweils erkennt, wie der kürzeste Weg zwischen zwei Punkten ist (in Abhängigkeit von Terrain und Vehikel).

    Und dann bräuchte es natürlich noch eine Art strategischen Überbau dafür, damit die KI z.B. an einem bestimmten Ort gezielt aufrüstet und seine Streitkräfte konzentriert, um gezielte Attacken fahren zu können -- denn sonst wären alle Bemühungen der KI sehr "kurzsichtig" und würden sich ausschliesslich auf unmittelbar erzielbare Gewinne konzentrieren. Die KI würde also niemals irgendwelche Durststrecken in Kauf nehmen um dann später triumphieren zu können.

    Auch sollte die KI für diese strategischen Berechnungen irgendwie erkennen können, welche Absichten die Gegner verfolgen (in welche Richtung bewegt sich der Gegner, wo rüstet er mit welcher Intensität auf -- dafür wiederum könnte eine zusätzliche "Gedankenkarte" nötig sein). Eventuell müssten auch einer oder mehrere Züge vorausbrechnet werden.

    Nicht umsonst gibt es z.B. bei Advanced Space Battle nur im Classic-Modus einen Computergegner, weil es ein Vielfaches an Ressourcen (Zeit, Speicher) gebraucht hätte, um solche Algorithmen für den komplexeren Advanced-Modus zu programmieren. Selbst im simplen Classic-Modus sind nicht alle von diesen Punkten enthalten, denn jede kleine Zusatzanforderung an die KI kann schnell dazu führen, dass sich Rechenzeit und Speicherbedarf multiplizieren, und die Ressourcen sind eben schnell erschöpft...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MorGor ()

  • Civ auf dem Cevi! Wäre auch für mich ein Traumthema (aber keine Zeit zum selbstbauen ;) )

    Ein paar gesammelte Daten (zur DOS-Version. aus verschiedenen Quellen):
    -Weltkarte ist 80x50
    -Es passen nur ca 126 Städte ins Save-File
    -KI schummelt (Wunder ohne Vorrausetzungen, teleportierende Zivilisten,etc)
    -Speicherstände haben eine feste Größe von 37.856+9.455=47.311 Bytes. Man braucht also "nur" 47 KB für die volle Civ-Welt ohne Abstriche.
    -Die DOS-Version hat 2.2 MB an Dateien gesamt; wenn man das Lexikon und die Schlossgrafiken weglässt und die Berater und Könige auf je eine Grafik reduziert ist man schon bei 1 MB (300kB Exe). Die sind zwar gepackt, sollten sich auf C64-Grafikniveau aber noch weiter abspecken lassen

    Ich denke was sich auf jeden Fall realisieren lassen sollte:
    -Eine "reine" C64-Version mit 40x25 Karte, 4 statt 8 Gegnern mit reduzierten Grafiken und ohne Zwischensequenzen
    -Man könnte dann per Support für Speichererweiterungen (Reu,Geo/Neoram) bis zum vollen Umfang der PC-Version "upgraden" (vor allem DTV-Version mit 256 Farben ;) )

    KI und Geschwindigkeit müsste man mal schauen. Ich habe keine Erfahrungen mit KIs dieser Größe, aber ggf. könnte die KI durch mehr schummeln vereinfacht werden, ohne daß der Spielspaß leidet. Man muss ja nicht 100% das Originalverhalten kopieren.
    Gerade kleinere Karten und Einheitenlimits würden sich hier positiv auswirken.
  • Originally posted by Ace
    Mmmm, so viele Wünsche und so wenige Umsetzer. Vielleicht können die Konsumenten inforn von Spenden hier die talentierten Coder für solch ein Projekt gewinnen. Ich wäre da jedenfalls dabei.


    Beim Spenden oder beim Coden? :)

    Wenns Mitte 2008 noch keiner in Angriff genommen hat und mein DTV bis dahin noch lebt versuche ich mich mal dran ;)
  • also eine c128-version fänd ich am interessantesten. ist am nahesten an der original-maschine von vor 20 jahren. wenn ich für moderne hardware programmieren wollte würde ich anfangen für intel/amd zu coden.

    wenn man da eine lauffähige version zaubert die nicht so speicher- und rechenintensiv ist wäre es wohl ein leichtes das dann noch nach c64 zu portieren.
  • Original von Ace
    Der C128 ist szenenmäßig tot. Weiss auch nicht warum nicht schon längst was umgesetzt wurde.


    Original von Gobbo
    ein grund mehr ihn mal wiederzubeleben... is doch schade den gutsten nur im cevi-modus laufen zu lassen...
  • Originally posted by Gobbo
    also eine c128-version fänd ich am interessantesten. ist am nahesten an der original-maschine von vor 20 jahren. wenn ich für moderne hardware programmieren wollte würde ich anfangen für intel/amd zu coden.


    Eine Commodore REU ist keine moderne Hardware, die wurde gleichzeitig mit dem C128 angekündigt (1985). Die GeoRam ist etwas neuer, von 1991, war aber nur ein billiger REU-Ersatz ;)

    Insofern ist ein C64 mit Speichererweiterung genauso eine Original-Maschine wie ein C128.

    Bei der Super-CPU würde ich dir zustimmen, die halte ich auch für Overkill. Optionale Unterstützung von moderner Extra-Hardware fände ich aber grundsätzlich nicht verkehrt :)

    Kurzer Blick auf meine Umfrage in der Hardware-Rubrik sagt übrigens daß REUs und C128s hier etwa gleich oft vertreten sind, die GeoRams kommen dann noch zusätzlich dazu ...
  • Es geht nicht ob modern sondern wie Effektiv die Hardware ist. Die Reu ist mit ihren DMA Chip ein sehr interessantes Teil und Software dafür gibts auch heutzutage noch. Egal was für Software heutzutage in der Enrwicklung steckt, diese nicht zu unterstützen wäre fatal. Zudem ist die Reu recht günstig.
    :winke: Wie C64 an TFT? :winke:
    :king: Fulgore ist President! :king:
  • vielleicht ist es allgemein schwierig sich auf "eine version" zu beschränken... da heißt das stichwort wohl tatsächlich "optionale hardwareunterstützung".

    also ein abgespecktes grundgerüst mit erweiterbarkeit für die jeweilige spezielle hardware...