3 Punkte von GN⁺ 2024-06-17 | 1 Kommentare | Auf WhatsApp teilen
  • Micropolis Web, basierend auf dem ursprünglichen SimCity Classic von Maxis, wurde in einer im Browser lauffähigen Form veröffentlicht, sodass sich die klassische Städtebausimulation ohne separate Installation erleben lässt
  • Das Projekt ist eine von Don Hopkins portierte Version des von Will Wright entworfenen Spiels und befindet sich weiterhin in einem experimentellen, noch nicht fertigen Zustand
  • Zusammen mit dem GitHub-Repository, Demo-Videos sowie Chaim Gingolds Buch und Diagrammen lässt sich Implementierung und Geschichte von SimCity eingehender betrachten
  • Die Bedienung erfolgt per Mausziehen und -rad, Pfeiltasten, Buchstabentasten und Zahlentasten; möglich sind Bewegung, Zoom, Laden von Städten, Geschwindigkeitsanpassung, Änderung des Steuersatzes und Wechsel des Tilesets
  • Der Name „Micropolis“ wird gemäß den Bedingungen der Micropolis Public Name License verwendet; zusätzliche Funktionen und Easter Eggs sind noch in Vorbereitung

Micropolis Web im Browser

Bedienung und verbleibende Hinweise

  • Mausbedienung

    • Mit gedrückter linker Maustaste lässt sich die Ansicht verschieben
    • Mit dem Mausrad kann hinein- und herausgezoomt werden
  • Tastaturbedienung

    • Mit den Pfeiltasten wird die Ansicht bewegt
    • Mit der Komma- und Punkt-Taste wird gezoomt
    • Mit Buchstabentasten werden verschiedene Städte geladen
    • Mit der \-Taste wird etwas erzeugt
    • Mit den Zahlentasten wird die Geschwindigkeit eingestellt
    • Mit der 0-Taste wird Pause umgeschaltet
    • Mit den eckigen Klammern wird der Steuersatz gesenkt oder erhöht
    • Mit - und = wird das Tileset gewechselt
    • Durch Drücken der „X“-Schaltfläche oben kann das Hinweisfenster ausgeblendet werden
    • Zusätzliche Funktionen und Easter Eggs sind in Vorbereitung
    • Der Warnhinweis beginnt mit der Aufforderung, nicht die Leertaste zu drücken, aber in dem bereitgestellten Text ist die anschließende Erklärung nicht vollständig

1 Kommentare

 
GN⁺ 2024-06-17
Hacker-News-Kommentare
  • Es macht Spaß, alte Spiele ins Web zu portieren. Viele sind heute sogar kleiner als normale Webseiten, laden also schnell und laufen gut.
    Ich habe gerade Quake 3 portiert und spiele damit herum: https://thelongestyard.link/

    • Der Grund, warum ich Browser beim Spieleentwickeln nicht mag, ist genau Eingabeverzögerung. Trotzdem großartige Arbeit
    • Ich frage mich, wo man am besten anfangen sollte, um so etwas besser zu machen. Vor allem beim Portieren alter Spiele nach Wasm
  • Micropolis Web Demo 1: https://www.youtube.com/watch?v=wlHGfNlE8Os
    Micropolis Web ist die Browser-Version von Micropolis, der Open-Source-Version von SimCity, und nutzt WebAssembly, WebGL und SvelteKit. Es basiert auf dem ursprünglichen SimCity-Classic-Code, den Will Wright entworfen und Don Hopkins portiert hat; in der ersten Demo laufen der WebAssembly-Simulator und die WebGL-Kachelanimationen, aber der Großteil der Benutzeroberfläche ist noch in Arbeit
    Live-Seite: https://MicropolisWeb.com
    Quellcode und Dokumentation: https://github.com/SimHacker/MicropolisCore
    Chaim Gingolds Buch "Building SimCity": https://mitpress.mit.edu/9780262547482/building-simcity/
    Chaim Gingolds "SimCity Reverse Diagrams": https://smalltalkzoo.thechm.org/users/Dan/uploads/SimCityRev...
    Micropolis Web Space Inventory Cellular Automata Music 1: https://www.youtube.com/watch?v=BBVyCpmVQew
    Die Musik stammt von Juho Hietala, Blamstrain, und Space Inventory Cellular Automata wurde von Don Hopkins umgesetzt: https://blamstrain.com/

    • Erstaunlich, dass Chaim Gingolds Building SimCity gerade erst am 4. Juni 2024 erschienen ist. Ich mochte die Diagramme zu den SimCity-Algorithmen früher sehr und meine, auch eine Dissertation gelesen zu haben, die das Innenleben von SimCity detailliert behandelt
      Gingold, Chaim. “Play Design.” Ph.D. thesis, University of California Santa Cruz, 2016. https://www.proquest.com/docview/1806122688
      Die Wasm-Portierung von Micropolis könnte wie eine neue Entwicklungsphase wirken. SimCity Classic auf dem Macintosh hat meine Denkweise über Computer und Software in meiner Kindheit stark geprägt, und es freut mich, diesem Projekt neues Leben eingehaucht zu sehen.
  • Ich bin kein Gamer, aber ich erinnere mich daran, als Kind SimCity gespielt zu haben. Ich weiß nicht, ob sich das Gameplay in den letzten etwa 25 Jahren geändert hat oder ob der Browser kaputt ist, aber es sieht so aus, als würde gar nichts funktionieren.
    Man kann eine Stadt laden und ihr beim Laufen zusehen, aber ich meine mich zu erinnern, dass man in früheren SimCity-Versionen die Stadt selbst bauen konnte. Sollte es nicht eine Möglichkeit geben, dass der Spieler tatsächlich spielen kann?

  • Von Mobile hatte ich mir nicht viel erhofft, aber in Firefox auf Android hat diese Seite den Browser komplett zum Stillstand gebracht. Ich musste den Prozess beenden, und so etwas kommt selten vor
    Zur Einordnung: Ich habe ein kleines Spiel, das ich selbst direkt in den Browser portiert habe. Es zum Laufen zu bringen war dank der Kombination aus Emscripten+SDL2 sehr einfach, aber ehrlich gesagt hat die meiste Arbeit darin gesteckt, es auf dem Handy wirklich vernünftig spielbar zu machen: https://play.neverball.org/

    • Mobile-Unterstützung will ich auf jeden Fall umsetzen. Ich habe bereits einen Bug behoben, der die Ausführung in Firefox unter Ubuntu verhinderte, dank eines gut geschriebenen Bug-Reports mit Stacktrace. Versuch es bitte noch einmal, und falls es weiterhin nicht funktioniert, wäre es gut, wenn du einen Bug meldest und dabei Stacktrace und Plattforminformationen angibst
      https://github.com/SimHacker/MicropolisCore/issues/1
      Ich wollte es lieber so früh wie möglich veröffentlichen, damit andere es ausprobieren können, statt zu warten, bis alles fertig und perfekt ist. Deshalb gibt es noch viel zu tun bei Benutzeroberfläche, Stabilität, Cross-Platform-Unterstützung, Mobile usw.
      Sobald Simulator und Tile-Renderer liefen, habe ich ein minimales Interface für Zoomen/Verschieben, Tastatursteuerung und ein Hinweisfenster eingebaut, das sich mit dem "+"-Button oben rechts schließen lässt
      Worauf ich mich wirklich freue, ist die Integration mit visuellen Programmiersprachen wie Snap!, damit man alternative Interfaces für Live-Coding, Plugin-Zonen, Roboter, Monitoring- und Steuerungssysteme, Datenvisualisierung und -export sowie Grafana-Dashboards bauen kann
      Android-Handys kann man per USB-Kabel mit Mac oder PC verbinden, iPhones mit dem Mac, und dann mit Chrome oder dem Safari-Debugger auf dem Mac die Remote-Konsole ansehen, debuggen und sogar Live-Coding machen. Unter den richtigen Bedingungen könnte es auch über Wi‑Fi gehen, aber Google hat die Funktion vielleicht entfernt oder Apple hat sie von Anfang an blockiert
    • Ich bin überrascht, dass auf Firefox auf einem vier Jahre alten günstigen Android-Handy die Framerate hoch ist und es kaum ruckelt. Es hat zwar nicht extrem viele Texturen oder Polygone, aber solche Leistung in einem Browser auf diesem Handy bin ich nicht gewohnt
    • Bei mir ist es auch in Firefox auf Android nicht eingefroren. Ich habe allerdings gesehen, dass manche neueren Firefox-Versionen bei der PDF-Verarbeitung nicht besonders gut sind; vielleicht hängt es mit Versionsunterschieden zusammen
  • Ich habe früher einmal den RuneScape-Client ins Web portiert
    https://play.rsps.app/
    Verwendet Wasm, TypeScript und WebGL

  • Quell-Repository: https://github.com/SimHacker/MicropolisCore

  • Was passiert, wenn man die Leertaste drückt, ist wirklich erstaunlich. Das Fraktal ist großartig

    • Space Inventory wurde von der World Quester 2-Review von Game Helpin' Squad inspiriert, und ich möchte, dass auch die Menüs und die Benutzeroberfläche von Micropolis genauso großartig werden wie bei World Quester 2
      https://www.youtube.com/watch?v=0Gy9hJauXns
  • Ich frage mich, ob ein großes Sprachmodell solche Spiele sofort portieren kann

  • Warum gibt es in fast jedem Häuserblock eine Feuerwache?

  • Nichts lässt sich bedienen, und sobald der Browser irgendetwas lädt, springt der CPU-Lüfter an. Ist das wirklich sicher kein schlampiger Krypto-Miner? Falls nicht, verstehe ich nicht, warum man etwas veröffentlicht, das nicht funktioniert.

    • Das Ziel ist, Feedback zu erhalten, wie es auf verschiedenen Systemen läuft, auf die ich keinen Zugriff habe. Ich denke, bei Software, besonders Open Source, ist es besser, möglichst früh im Entwicklungsprozess Feedback zu bekommen, statt alles zu verstecken, bis es vollständig fertig und perfekt ist.
      Ich habe weder das Geld, um alle möglichen Computer und Handys zu kaufen, noch hätte ich selbst dann die Zeit, alles direkt zu testen. Niemand bezahlt mich dafür, aber wenn du möchtest, kannst du mich über Patreon unterstützen: https://www.patreon.com/DonHopkins
      Trotzdem ist dieses Projekt keine Einnahmequelle, sondern ein Herzensprojekt. Derzeit gibt es sogar ein besonderes Angebot, bei dem ich für einen Monat lang 5 Minuten zu einem Thema deiner Wahl die Klappe halte.
      Den gesamten Quellcode kann man auf GitHub ansehen, Bugs melden oder selbst Builds erstellen. Im Browser gibt es außerdem Debugging- und Reverse-Engineering-Tools, mit denen man das WebAssembly-Binary und das kompilierte JavaScript untersuchen kann. Die WebGL-Shader liegen als Klartext vor, sodass man auch prüfen kann, ob sie mit dem Quellcode im Repository übereinstimmen.
      https://github.com/SimHacker/MicropolisCore
      Wenn du Belege für schlampige Mining-Software findest, kannst du das dem FBI, Interpol und GitHub melden. Ich veröffentliche Quellcode und Binärdateien unter meinem Namen, meinem GitHub-Konto und meiner Domain, daher ist die Herkunft leicht zurückzuverfolgen.
      Ein Beispiel für einen hilfreichen Bug-Report enthielt Systeminformationen und einen Stack-Trace, identifizierte das Problem und ermöglichte mir, es in wenigen Minuten zu beheben: https://github.com/SimHacker/MicropolisCore/issues/1
      Mich würde auch interessieren, ob du die Zifferntasten zur Geschwindigkeitssteuerung ausprobiert hast. Bezogen auf die Zahlenreihe oben auf der Tastatur verlangsamt "1" auf 1 Frame pro Sekunde mit 1 Simulator-Tick pro Frame, und "9" läuft mit 120 Frames pro Sekunde und 50 Ticks pro Frame. In Chrome auf meinem M1 Mac läuft es flüssig und die Oberfläche reagiert ziemlich gut.
      Es wäre gut zu wissen, was genau sich nicht bedienen lässt, welche Hardware, welches Betriebssystem, welcher Browser und welche GPU du hast und ob es Fehler in der Entwicklerkonsole des Browsers gab. Hilfreich wäre es, wenn der Bug-Report den Konsolen-Stack-Trace enthält.