TheoTown - The 2D Iso Cityprojekt

Kommentare anzeigen Worklog abonnieren
Gehe zu Seite Zurück  1, 2, 3, 4

Worklogs TheoTown - The 2D Iso Cityprojekt

Speicherprobleme...egal

Dienstag, 5. Februar 2008 von theotheoderich
Leider bekomme ich die Speicherprobleme nicht in den Griff Embarassed
ich verwende einfach zu viele Types und Dim-Felder.
Und alles umzustellen habe ich momentan nicht die rechte Lust zu.
Wie gesagt, ich bin lieber Pixelgrafiker als Programmierer.

Dann hat das Spiel halt einen Speicherbedarf von rund 140 MB bei einer 256x256 Felder grossen Karte...hauptsache es läuft. Der Speicherbedarf erhöht sich ja bei grösseren Städten nicht mehr.

Allerdings habe ich einige Funktionen anders gestaltet und konnte somit rund 15 MB einsparen. Immerhin etwas Very Happy

Momentan pixel ich neue Gebäude und erweitere das Spiel dann auf eine neue maximale Gebäudegröße von 5x5 Feldern. Bisher war 4x4 das Maximum.

Arbeitsspeicher und andere Probleme

Donnerstag, 24. Januar 2008 von theotheoderich
Nachdem ich gestern abend TheoTown auf zwei anderen Rechnern ausprobiert habe kam die grosse Ernüchterung. Confused

So etwas passiert, wenn man auf einem Rechner mit zwei GB Hauptspeicher programmiert....

Der Speicherbedarf meines kleinen Städtebauspieles ist absolut enorm. Heute habe ich dann auch rausgefunden warum.

Ich verwende sehr viele DIM-Felder in Verbindung mit Types und das zieht richtig Speicher.
Einmal die Kartendaten (z. B. map(256,256)) und dann habe ich den Fehler gemacht meine so genannten "ActionHandler" für Rauch-, Feuer- und andere Effekte an die Kartengrösse zu koppeln.
Dann passieren solche Dinge wie folgender DIM-Eintrag:
Dim actionhandler(4,mapsize,mapsize,64)

Übersetzt:
Dim actionhandler(
4=max. Anzahl eines Grafikeffektes auf dem Feld, z. B. vier qualmende Schornsteine
mapsize=z. B. 128 oder 256
64=max. vorgesehene Anzahl für verschiedene Grafikeffekte

Das summiert sich schon bei einer Variablen (Integer=4 Byte), die gespeicher werden muss:
4 x 256 x 256 x 64 = 16777216 x 4 (Integer) = 67108864 Byte Hauptspeicher, die alleine für "Grafikeffekte" usw. draufgehen.
67108864 / 1024 / 1024 = 64 Megabyte Shocked

DA habe ich bis gestern leider nicht drauf geachtet Embarassed

Im Spiel sind leider noch mehr solcher "Speicherfallen" drin, und eigentlich soll es ja ein Spiel hauptsächlich für Kinder sein. Leider haben Kinder nicht immer die neusten Rechner Confused

Aber ich werde mir noch etwas einfallen lassen, bzw. den Code weiter überarbeiten und sparen wo ich kann Smile

Momentan benötigt das Spiel bei einer 256x256 Felder grossen Karte ca. 150 MB Hauptspeicher (und läuft auf einem Athlon 1400 Thunderbird mit 70-80% Rechenleistung, beim scrollen ruckelt es schon etwas)....
...Sim-City 2000 kam 1994 mit knapp 5 MB Arbeitsspeicher aus......

Fehlerbehebungen und Baugerüste

Mittwoch, 23. Januar 2008 von theotheoderich
In den letzten zwei Tagen hat sich wieder etwas getan:

- Das Abbreissen von Strassen funktioniert nun korrekt, die umliegenden Strassenstücke werden nun automatisch an die neue Strassensituation angepasst.

- Ampeln werden nun auch berechnet, wenn sie sich nicht im sichtbaren Bildschirmausschnitt befinden...hatte ich zuvor einfach übersehen Embarassed

- Am Kartenrand kommt die Darstellung ausserhalb des Kartenbereiches nicht mehr "durcheinander".

- Gebäude werden nun nicht mehr sofort einfach in die Landschaft gestellt, sondern haben eine gewisse Bauzeit. Während dieser Bauzeit ist dann ein Baugerüst zu sehen.
Hohe Gebäude (höher als 32 Pixel) werden mittels eines Stahlgerüstes erbaut. Nach Abschluss der Bauarbeiten steht an der Aussenseite des neuen Gebäudes noch ein Baugerüst, dass bis zur entgültigen Fertigstellung zurückgebaut wird.

user posted image

Stahlgerüste (erscheinen, solange das Gebäude noch nicht errichtet wurde und "wachsen" in der Höhe, sofern das Gebäude ein Hochhaus ist)
user posted image

Baugerüste (erscheinen nach dem Bau und werden nach unten hin abgebaut, ist kein Gerüst mehr vorhanden, ist das Haus fertig)
user posted image

Die Baugerüste passen natürlich nicht zu jedem Gebäude, sondern werden unabhängig vom zu errichtendem Gebäude angezeigt.
Das kann später bei grösseren Gebäuden etwas eigenartig aussehen, wenn das Baugerüst nicht zum Haus passt, das dann errichtet wird....aber ganz so eng sehe ich das nicht. Ist halt nur ein grafisches Gimmick, um die Bauzeit zu überbrücken.

Momentan funktionieren die Baugerüste nur mit 1x1-Gebäuden, weil ich die schon gezeichnet habe. Im Programm funktioniert es natürlich mit beliebigen Gebäudegrössen.
Die Gebäudehöhe ist dabei auch egal, die Stahlgerüste werden automatisch in der Höhe angepasst.

-------------------------------------------------------------------------------------------------

Leider habe ich ein ziemliches Speicherproblem mit meiner Stadt.
Grössere Karten ziehen unglaublich viel Speicher (nein...Mediadaten werden nicht in Schleifen geladen!)

Auf meinem Athlon Thunderbird 1400 mit 256 MB Speicher war die 256x256 Felder grosse Karte nicht mehr spielbar (FPS so um die 15).
Die 128x128er Karte lief völlig problemlos mit 30 FPS (auf diese Zahl beschränkt!).

Die Stadt belegt unbebaut bei 256x256 Feldern rund 250 MB Hauptspeicher Confused ...irgendwas mache ich falsch...aber ich bin halt eher Pixelgrafiker als Programmierer Sad

-------------------------------------------------------------------------------------------------

Der Projekttitel heisst nun "TheoTown - The 2D City Project" Very Happy

T-Kreuzungen und Grafiken Optionsmenü

Sonntag, 20. Januar 2008 von theotheoderich
Autos können nun auch an T-Kreuzungen abbiegen, allerdings noch ohne irgendwelche Vorfahrtsregeln zu beachten.
Leider entstehen so schnell chaotische Situationen an den T-Kreuzungen, da die Fahrzeuge noch nicht überprüfen, ob die Felder vor ihnen frei sind....aber die Programmierung geht ja langsam weiter Wink

Auch das Zeichnen von Grafiken für das Optionsmenü gehen langsam voran:

user posted image

Projektvorstellung

Mittwoch, 9. Januar 2008 von theotheoderich
Projektbeginn: Sep. 2007

Mein Cityprojekt soll ein Stadtaufbauspiel in der Art von SimCity 2000 werden, aber ohne dessen Komplexität zu erreichen.
Erarbeitet wird das Spiel auf Wunsch meines 5 jährigen Sohnes, da er die Spieltiefe von SC2000 noch nicht ganz versteht. Von der Seite her wird das Spiel auch nicht äusserst realistisch, sondern ist für Kinder ausgelegt.

Fast alle Grafiken sind selbst erstellt (die Fahrzeuge nur zum Teil) und leider auch nicht immer genau maßstabsgetreu.

Im Gegensatz zu SC2000 werden auch keine Baugrundstücke ausgewiesen, sondern die Gebäude einzeln errichtet; mein Sohn liebt es sich seine Städte selbst zusammenzubauen.


Folgender Projektstand ist bisher erreicht:
- Scrollen auf der Karte möglich (bisher mit gedrückter rechter Maustaste, wird noch geändert)
- Bau von Wohn-, Geschäfts- und Industriegebäuden möglich
- Strassenbau eingeschränkt möglich (mit Pathfinding um Häuser herum)
- Autoverkehr wird teilweise angezeigt
- Laden/Speichern der Karte inkl. Vorschaubild
- Abreissen von Gebäuden und Strassen
- feste Bildauflösung von 640x480, da bei höheren Auflösungen die gepixelten Gebäude zu klein sind
- Gebäude können momentan leider nur quadratisch sein (bis 5x5 Felder Größe)

Es ist bisher noch so gut wie keinerlei Spiellogik eingebaut, sondern man kann einfach nur Gebäude und Strassen bauen.

Alle Gebäude lassen sich über Textdateien konfigurieren.

user posted image

Industrieanlagen können seit Mitte Dez. nun qualmende Schornsteine haben
user posted image

Lade/Speicherbildschirm
user posted image


Anbei ein kurzes Video, dass zeigt wie das Programm so aussieht und die Autos fahren.
Immer bedenken, es ist noch kein Spiel, man kann nur Häuser und Strassen bauen und halt auch noch Autos manuell setzen.

Das Video ist ca. 22 MB gross und geht etwa dreieinhalb Minuten (es muss vor dem Anschauen runtergeladen werde, da es kein Stream ist).

http://www.familie-wiegel.de/b...4_mpg4.avi

Das Video ist Stand Anf. Dez. 2007 und mittlerweile können Autos auch an Kreuzungen korrekt abbiegen und achten auf Ampeln.

Gehe zu Seite Zurück  1, 2, 3, 4