3D City
Übersicht

![]() |
theotheoderichBetreff: 3D City |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen,
ich hatte vor einiger Zeit mal die Frage gestellt, ob es möglich ist in BlitzBasic eine Art Sim-City Clone zu erstellen. Ich habe schon einige Zeit an einer 2D Variante gebastelt die ich nun auf 3D umstelle. Die Screenshots davon wollte ich Euch nicht vorenthalten. Sind übrigens 100 und 120 kb gross, nur vorab zur Info. ![]() ![]() Das Spiel ist in einem ganz frühen Stadium. Man kann wie in SimCity Grundstücke ausweisen und Strassen bauen. Abhängig von der jeweiligen Umgebung werden die Grundstücke dann bebaut. Die Screenshots sind gestellt (aber komplett aus meinem Spiel), da das Spiel an sich noch nicht ganz funktioniert. Es gibt z. B. noch keine Industriegebäude sondern nur Wohn- und Gewerbegebiete. Für die Screenshots habe ich Baugrundstücke ausgewiesen und Gewerbegebiete angelegt, die Häuser wurden dann vom Programm errichtet. Ich habe aber noch viel Arbeit vor mir. -Himmelstextur mit Sonne ist in Vorbereitung -Autoverkehr habe ich erst mal zurückgestellt, bis ich Pathfinding eingebaut habe -Flüsse und Brücken kommen auch noch -Die ersten Industriegebäude sind fast fertig -Bäume kommen auch noch -Wenn die Framerate es erlaubt, baue ich auch noch Ampeln und Laternen ein Die Framerate ist momentan mein größtes Problem aufgrund der vielen kleinen Häuser. Die Tilemap ist je nach Wunsch 64x64 (werde ich auch für die Demo wohl verwenden), oder 128x128 Tiles groß. Die Demo werde ich frühstens im Juli anbieten, wenn das Programm auch ein Spiel ist. Leider habe ich noch nicht viele Gebäude, die Texturen habe ich entweder selbst fotografiert, oder aus dem Internet (hoffentlich sind die auch frei!). Die Kamera ist übrigens nicht frei sondern in 4 verschiedenen Höhen und 4 verschiedenen Blickwinkeln einstellbar (ach ja, auch in 45 Grad Schritten drehbar). So, schreibt einfach was Ihr davon haltet. Ich freue mich über jede Kritik, jedes Lob und jede Anmerkung. Vielen Dank! TheoTheoderich [img][/img] |
||
Affje |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sieht doch schonmal ganz gut aus! wenn du wirklich all dein vorhaben verwirklichst, freue ich mich auf ein tolles spiel ![]() |
||
www.drachengarde.tk
Guckst da Hier |
![]() |
joKe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Find ich sieht sehr cool aus und da ich ( mehr oder weniger ) ein Fan der SimCity Reihe bin freu ich mich auf deine Variante des Spiels
ICh weiss zwar nicht was ich unter "gestellt" verstehen soll sieht doch sehr cool aus ... Zu dem Verkekr : Muss doch kein Pathfinding sein , da in SimCity auch immer nur die Bereiche verkehr haben , die stark davon belastet sind , also immer nur so stellenweise andeuten würd doch reichen !!! Was coll wäre wenn man ( nur auf den Strassen natürlich ) durch seine Stadt cruisen könnte =) mfg j0k3 |
||
Projekt: Pollux Renegades Coop
[Maschine: Intel DualCore2 2x 3Ghz | 4096 DRR2 | GeForce GTX 260 Ultra] |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr schön ![]() Das Menu am unteren Rand könnte man irgendwie interessanter gestalten |
||
![]() |
theotheoderich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die Antworten.
Das die Bilder "gestellt" sind, heißt einfach nur, das die Gebäude im Spiel noch nicht mit allen Variablen berrechnet werden, soweit ist das Spiel noch nicht fertig. Bei der abgebildeten Stadt, könnten in fertigen Spiel niemals Bürohochhäuser so nah am Stadtrand gebaut werden. Sie würden in der Innenstadt, dort wo der Landwert sehr hoch ist errichtet werden. Das mit dem Auto durch die Stadt cruisen ist eine gute Idee. Da bin ich noch gar nicht drauf gekommen. Vieleicht baue ich es ein, wenn ich "fertig" bin, wird aber dann nur sehr simpel sein (nix mit perfekter Fahrphysik und so!). Pathfinding wird auch nicht für die Autos benötigt, sondern um zu prüfen, ob ein Wohnhaus auch Zugang zu z. B. einer Fabrik die Arbeitskräfte benötigt hat, die Strasse dorthin bekommt dann einen erhöhten Wert, je mehr Häuser von ihr Gebrauch machen. Auf diesem Wert wird der Verkehr berechnet. Ich hoffe doch sehr, das ich irgendwann damit fertig werde. Habe über ein Jahr an einer 2D Variante gearbeitet (siehe Homepage Rubrik TheoTown/Historie) ist aber nie fertig geworden und in BB3D hat man einfach mehr möglichkeiten. Gruß TheoTheoderich |
||
![]() |
theotheoderich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Menü ist noch lange nicht fertig. Fast alle Optionen werden noch über die Tastatur aufgerufen, weil ich noch nicht dazu gekommen bin, entsprechende Buttons zu erstellen.
Gruß TheoTheoderich |
||
Roseman |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das sieht schon mal suppi interesant aus!
Nur eine Frage hab ich: Hast du bis jetzt schon die eigentliche Spielmechanik integriert (halt das Ganze mit Steuern, Umweltverschmutzung, Bedürfnissen der Bewohner, Abhängigkeiten zwischen den ganzen Gebäuden etc.) oder ist das bis jetzt nur eine Grafikdemo? Deine Post sind da irgendwie nicht ganz eindeutig, obwohl du ja mit dem Pathfinding Problem schon ein Teil der Spielmechanik andeutest. Auf deiner HP läßt sich in deiner "was schon drin ist" und "ToDo" Liste auch nichts davon erblicken. |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
alle achtung - sieht gut aus... nur ganz schön viele objekte.... Es wird nicht langsam, weil du viele polys hast (hast ja nur paar polys pro haus) - sondern es scheitert an der Anzahl der Objekte. Wenn du genausoviele poys in ein entity oder surface machst, dann wird die framerate steigen - aber dann ist es etwas schwerer...
mach Iso-Ansicht rein |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
theotheoderichBetreff: Spielmechanik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Spielmechanik ist noch am Anfang. Bin noch nicht allzuweit.
Zu Beginn des Spieles gibt es eine Grundnachfrage nach industriellen Gütern. Die sorgt als Start dafür, das sich einfache Industrie ansiedelt. Jetzt müssen schleunigst Wohngebiete gebaut werden, damit die neue Industrie nicht wieder verschwindet. Die Industrie sorgt für Arbeitskräfte und produziert Güter. Sobald die Einwohnerzahl steigt, werden auch Geschäfte für die Einwohner benötigt. Es entstehen also Läden und Büros, die gewerbl. Waren produzieren und Arbeitskräfte schaffen. Das alles wird jeden Monatsende berrechnet, für eine Liveberrechnung von max. 128x128 Tiles reicht selbst mein Athlon 64 3200+ mit Radeon 9700Pro nicht aus ![]() Das ist alles mehr oder weniger funktionierend eingebaut. Steuern kann man schon festlegen, aber sie haben noch keinen Einfluss auf die Einwohner. Baugrundstücke und Strassen kosten natürlich auch Geld. Ich glaube nicht, dass ich das alles so komplex wie in SimCity hinbekomme. Hauptsache es macht ein wenig Spass. Es ist ein Hobbyprojekt und ich bastel so lange daran rum, wie ich Spaß daran habe ![]() Gruß TheoTheoderich |
||
![]() |
Paul |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht super aus, saubere Einstellung.
Ich freu mich drauf! Paul |
||
Stratocaster black - Roland MicroCube
User posted image Girgl-World, wer's nich kennt, is' blöd! |
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Sieht wirklich super aus. Kompliment an den Macher (*g*) ! | ||
![]() |
joachim_neu |
![]() Antworten mit Zitat ![]() |
---|---|---|
du könntest es mit dem verkehr ja so machen, dass die autos da am warscheinlichsten entstehen, wo am meisten verkehr ist, dann die straße in eine richtung abfahren und bei einer kreuzung in die straße biegen, in der mehr traffic ist. wenn sie dann außerhalb der kamera sind kannste sie verschwinden lassen... und den traffic errechneste indem du jedem gebäudetyp (kleines Industriehochhaus usw.) eine "Id" zuordnest und dann für jedes Straßenfeld den traffic aus den umherliegenden häusern berechnest... dass muss dann nur noch in ein array... kannste vielleicht mal die 2D-Variante in BB zum download anbieten? | ||
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zu den FPS ,
in BB kann man auch diverse optimierungen vor nehmen ![]() 19 FPS finde ich auch sehr wenig , da geht noch einiges denke ich da die Häuse eh mehr oder weniger aus Würfel bestehen . Nur nen paar Tips : Zuerst wäre da LinePick und Camerapick . Linepick nicht gleich auf große distance benutzen . CameraPick nur wenn man auch die Maus klickt . Pickmode nur setzen wenn nötig , am besten eine Funktion die das steuert schreiben . AutoFade für die Objekte nutzen . Eine Funktion die EntityInView abfragt in kombination mit EntityDistance das alles was nicht sichtbar ist HideEntity bekommt und anders herum wieder ShowEntity . Sparsam mit Texturen umgehen die 256x256 groß sind . So wenig Surfaces benutzen wie geht . Bei den Häusern falls die echte Fenster haben sollen keine Schnitttestfunk. dafür nehmen sondern selber die Polygone erzeugen wegen LowPoly (geht z.B. mit C4D easy) , diese dann auch nicht überlappen sondern z.B. vorher eine Fläche unterteilen , Fenster abtrennen als neues Objekt und alle Punkte und Flächen die zu viel sind als neue Polygone anlegen und die alten Flächen vorher löschen . Ist sehr Zeitaufwendig aber lohnt sich . Ich sage mal so 15000-20000 Polys sind grob das Limit im Moment für das was du vor hast . Die Camera würde ich lieber frei haben und z.B. auch über Waypoints steuern das man durch die Straßen fliegen kann 8) Dein Projekt gefällt mir auch sehr gut ![]() |
||
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast dir ja viel mit dem Projekt vorgenommen. Sieht jedenfalls schonmal gut aus, über die fps Zahl braucht man glaube ich garnicht zu Diskutieren, sowas sollte man keinem Spieler antuen. Wen du willst kannst du dir mal über den folgenden Vorschlag gedanken machen dessen Funktionalität ich weitgehend überdacht und ausgetestet habe.
Die Blitz3D Engine schaltet wie TheShadow schon ansprach trotz Optimierungsvorschlägen (siehe Markus) zu früh auf Stur bei zu vielen einzelnen Objekten. Und wen ich mir die fps Zahl und deine Hardware anschaue, sehe ich Zero fps bei leuten ohne High End Hardware. Dazu folgendes : In B3D gibt es den Befehl AddMesh mit denen du mehrere Häuser zu einem Objekt verschweißen kannst, aber aufpassen, positionierung der Häuser unbedingt mit Position"Mesh" durchführen, ansonsten werden die Positionen nicht beachtet nach AddMesh. Du könntest also jeweils für jede Hausart ein Mehs anlegen wo du die Häuser anhängst. Das entlastet die fps schonmal enorm. DAS führt aber zu dem Problem das du die verschiedenen Häuser in einem ganzen Mesh ja schlecht Picken bzw verschiedene Mesh einstellungen erfahren kannst, denn jede Hausgruppe ist ja nun 1 einziges Mesh. Deshalb legst du einfach für jedes Haus als Entity ein Pivot an und Arbeitest mit EntityBox/Radius. So hast du das gleiche wie vorher, nur deine fps Zahl wird in die höhe Klettern. Deine Häuser sind also dann feste Riesen Mesh Dekos. DAS führt aber zu einem neuen Problem ![]() Was ist wen ein Haus abgerissen/Verändert werden soll wie es ja in Sim City spielen so üblich ist. Zugreifen auf einzelne Häuser ist ja nun nicht mehr. So hart es auch klingt, wen sich eine Haus Einstellung ändert, wird das ganze große Mesh gelöcht und neu Erstellt mit den neuen Einstellungen von den gewünschten Häusern. Ich habe dazu einen Test gemacht. Wen ich Pro Schleifendurchlauf 10.000 Entitys erstelle und wieder löche fängt B3D erst das mucken an. Ich denke mit solchen Werten kommst du locker hin. Ansonsten gibt es noch die möglichkeit die großen Häuser Meshs wiederrum in kleine Sub Quadranten zu unterteilen um die Rechenarbeit ein wenig zu verteilen. Somit hättest du die möglichkeit je nach System an die 100.000 bis 300.000 Polys verschwenden zu können mit annehmbarer fps Rate und das ganze noch weitgehend Flexibel gehalten. Natürlich kann da noch irgendwas sein was ich nicht beachtet habe, soll nur als Denkanstoss dienen. Den wen die fps runter geht fängt das Programmieren erst an. Freue mich schon auf dein Spiel, weiter so. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
theotheoderichBetreff: FPS |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Suco-X und @Markus2
Hallo und danke für Eure Vorschläge. Ich habe mir jetzt auch mal einige Gedanken dazu gemacht. Im Spiel ist es so, dass auf einem Wohngrundstück mit niedriger Bebauungsdichte max. 8 kleine Häuser entstehen können (bei 3x3 Tiles großen Feldern, wobei das mittlere Feld dann nie bebaut wird). Ist ein bissel viel. Ich erstelle jetzt also für jede mögliche Kombination dieser max. 8 Häuser ein Mesh, das dann jeweils aufgerufen und unterschiedlich texturiert wird. Auch die Gebäudehöhe kann so variabel gestaltet werden. Hat im Test gut funktioniert. Ein grosses Problem ist noch die Kartengröße. Zuerst hatte ich sie bei 64x64 Tiles. Ist zu wenig, wenn Baugrundstücke schon 3x3 Tiles groß sind. Sim-City 1 hatte 100x120. Bei mir sind es jetzt 128x128, das reicht für eine ordentliche Stadt. So, jetzt zum Problem. Jedes dieser Tiles soll einzeln anklickbar/auswählbar sein. Ich habe das folgendermassen gelöst (ist wahrscheinlich nicht optimal): - Ein Type-Array mit der Tileanzahl - Jedem Feld einen Mesh zugeordnet, der mit EntityPickMode auswählbar ist - Da das zu langsam ist, habe ich mit EntityAlpha alle Tiles unsichtbar gemacht - Dann habe ich eine Plane mit einer Rasentextur versehen und die so scaliert, dass es ein Raster ergibt - Fertig Alles zusätzlichen Gebäude und Strassen werden dann über die Plane als zusätzliche Meshes gebaut. Ich werde zur Optimierung jetzt das Tilemesh, das zum Auswählen benötigt wird und nicht sichtbar ist löschen und verschmolzen mit dem Gebäude als ein Objekt erstellen. Es ist auch mit 15-20 Frames gut spielbar (Geschmackssache), da schnelle Bewegungen nicht nötig sind. Wenn das Spiel zu langsam wird, muss man die Kamerahöhe eine Stufe absenken, man kann dann zwar nicht mehr so weit gucken, aber die FPS erhöhten sich. Eine freie Kamera werde ich nicht erstellen, da sich die Stadt monatlich verändert (andere Gebäude und so) und dadurch relevante Orientierungspunkte verloren gehen (z. B. ein Hochhaus das durch ein kleineres Gebäude ersetzt wird). Ausserdem ist die Grafik nicht so detailiert, als das man z. B. einen Fahrsimulator einbauen könnte. Echte Fenster gibt es für die Gebäude nicht, wird alles mit Texturen gemacht. Werde mich am Wochenende evtl. mal wieder aufs Fahrad schwingen und ein paar Fotos für Texturen für Industriegebäude machen. Habe gestern noch ein bissel dran gebastelt. Die einzelnen Bereiche Wohn-, Gewerbe- und Industriegebäude stehen jetzt in einfachen Abhängigkeiten. Industrie (sollte zuerst gebaut werden) schafft Arbeitskräfte, die Arbeiter wollen wiederum auch irgendwo wohnen und erzeugen Nachfrage nach gewerblichen Gütern. Die Gewerbegebäude schließlich steigern die Nachfrage nach Industriegütern und der Kreislauf beginnt von vorne. Jetzt müssen noch die "Störfaktoren" wie Umweltverschmutzung, Kriminalität usw. eingebaut werden. Ich habe also noch viel vor mir ![]() Heute morgen habe ich eine Kopie des Spiele als Exe mit zur Arbeit genommen (P4 2Ghz, 512 MB und Intel 82845G Grafikchip). Es startet zwar aber sobal ich Strassen baue oder einen Spielstand lade kommt "Memory Access Violation", Baugebiete lassen sich interessanterweise ausweisen. ![]() Da ich zu Hause nur einen PC habe ist das mit dem Testen immer so eine Sache, und auf meinen beiden Amigas läuft es leider nicht ![]() So, Ihr habt mich auf jeden Fall auf gute Ideen gebracht. Nochmals vielen Dank für Eure Vorschläge. Sobald ich wieder einen grossen Schritt weiter bin, poste ich es natürlich wieder. Gruß TheoTheoderich |
||
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
die simulation sieht schon ganz fein aus.
zu deinen problemen jede mögliche kombination von meshes im vorhinein erstellen stelle ich mir ziemlich speicheraufwändig vor. zumindest wenn es mal mehr als 30 verschienden häuser gibt. ich würd dir vorschlagen es so zu machen. du teilst das gebiet in ein raster ein und bei änderung eines objektes in einem raster aktualisiert du einfach dieses gebiet. jeder rasterteil besteht genau aus EINEM objekt und kann z.b.: 3*3 häuser umfassen dazu würde ich eine lösch und verschmelzungsroutine schreiben für deine rastereinträge. sowas wie cleanraster(x,y) um den raster an stelle von x,y von objekten zu befreien. und addraster(x,y, u,v, entity) um ein objekt an der rasterposition x,y und zwar ganz genau an der stelle u,v einzubinden. sozusagen das objekt mit seinen surfaces und vertices aufteilen und an das kernobjekt des rasters binden. damit kannst du gebiete schnell aktualisieren und alle gebiete gemeinsam bestehen doch nicht aus zu vielen objekte. des weiteren sollte eine fps von 20 kein prob. sein wenn die restlichen vorgänge nicht vom geschwindigkeitverfall betroffen sind. dafür würde ich die renderworld und flip routinen von den kernberechnungen lösen und mit timer versehen. mfg stfighter |
||
Denken hilft! |
cavebird |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist doch mal ein sehr sehr geiles Projekt ![]() |
||
MegaUpload.de -- Uploade bis zu 2MB pro Bild !!DEIN PARTNER IN SACHEN UPLOAD --bitte weiterempfehlen, nur so können wir bekannt werden... |
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nicht schlecht, hoffentlich wird es feritg :) | ||
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mhhh...
Auf seiner Internetseite hatter noch nichts neues geschrieben ![]() Ob er nicht doch das Projekt eingestellt hat? Ich hoffe nicht ![]() edit: Hab dem "Typen" gerade eine e-mail geschrieben,bin mal gespannt wanner hier was posten wird... |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group