Remix.run Logo
Show HN: Micropolis/SimCity Clone in Emacs Lisp(github.com)
65 points by vkazanov 5 hours ago | 14 comments

This is a little game implemented over a week of tinkering and targeting Emacs.

The point is both to have fun with this kind of simulations, and also explore the "functional core / imperative shell" approach to architecture. I also developed a tile and tile effect definition DSL, which makes this even easier to extend. From this point of view it's a success: easy testing, easy extension,

Gameplay-wise the simulation is too simplistic, and needs input from people interested in this kind of toys. The original Micropolis/SimSity is the last time I built a virtual city.

yuppiepuppie 31 minutes ago | parent | next [-]

Amazing! I have added this to the HN Arcade https://hnarcade.com/games/games/micropolis-simcity-clone-in...

michaelanckaert 3 hours ago | parent | prev | next [-]

This is great! We need more ASCII games/simulations and it's only a bonus if it's in Emacs :-)

DonHopkins 36 minutes ago | parent | prev | next [-]

Fantastic! Can you make Emacs shake the screen by scrolling vertically and horizontally whenever there's an earthquake?

Finally RMS can play SimCity.

brimtown 2 hours ago | parent | prev | next [-]

This is wonderful. Consider decoupling the core from Emacs, or packaging in a way that doesn’t require it as heavily.

I’ve been doing my own exploration of terminal ASCII games via Dwarf Fortress instead of SimCity. I’ve learned that letting a coding agent play is an interesting way to get feedback as well :)

https://github.com/brimtown/claude-fortress

larsbrinkhoff an hour ago | parent | next [-]

How would it be run without Emacs?

You might point out that there are things like elisp.lisp that purports to run Emacs Lisp in Common Lisp, but I'm not sure that's viable for anything but trivial programs. There's also something for Guile, but I remain unconvinced.

notpushkin an hour ago | parent [-]

Maybe a Common Lisp core with an Emacs frontend running it in https://www.gnu.org/software/emacs/manual/html_mono/cl.html?

internet_points 28 minutes ago | parent | prev | next [-]

> Consider decoupling the core from Emacs, or packaging in a way that doesn’t require it as heavily.

but then we'd have to write an interface package to run it from emacs

hrmtst93837 2 hours ago | parent | prev [-]

I tried something similar with a roguelike I was prototyping last year. Ended up being more useful for finding edge cases than actual gameplay feedback - the agent would do things no human would ever try, like walking into walls repeatedly or hoarding useless items. Still caught a bunch of bugs I never would have found otherwise.

morkalork an hour ago | parent | prev | next [-]

Congrats on your Seventh Sally!

boxed 5 hours ago | parent | prev [-]

You should have a screenshot.

jdboyd 3 hours ago | parent [-]

There is a screenshot in the README, and according to the github timestamp, the project hasn't been changed since you write this to add such a screen shot.

Search for the section labeled: Visual Demo

Tiberium 38 minutes ago | parent | next [-]

It seems like it was added by an LLM since it says "This is a simplified snapshot to show the general layout."

Notice how it says "simplified snapshot","general layout". I don't think this is the actual representation of how the game looks like :)

agumonkey 3 hours ago | parent | prev | next [-]

I thought it was a ssh key fingerprint at first

PurpleRamen an hour ago | parent | prev [-]

Is this technically a screenshot? I mean its text, not a picture, so more of an output-example.