Hacker News new | past | comments | ask | show | jobs | submit login
OpenSC2K – An Open Source Remake of SimCity 2000 (github.com/rage8885)
294 points by LeoPanthera on Feb 5, 2018 | hide | past | favorite | 126 comments

I once "won" SC2K when all my launch arcologies took off. However, I was busy fixing the city's plumbing (the buildings are hidden so you can deal with the pipework) and I missed it. I tried switching mode but it wouldn't let me until it finished.

Haha that’s brutal :)

In a similar vain, check out Open Red Alert: http://www.openra.net/ At my previous job we used to play it every Friday, excellent remake of a great game.

Its very questionable to include the assets. The bottom of the readme says:

> Includes assets and graphics extracted from the original SimCity 2000 Special Edition CD. These assets are NOT covered by the GNU General Public License used by this project and are copyright EA / Maxis. I'm including these assets in the hope that because the game has been made freely available at various points in time by EA, and because it's 24 years old as of publishing this project that no action will be taken. Long story short, please don't sue me! Long term, I plan to add functionality to extract assets from the original game files within this project.

The normal way for these open-source engines work is to insist that the users get the artwork from another source.

I once wrote a building generator that could create SC2k pixel art buildings based off a simple floor plan and some settings. It could be used to generate a lot of assets in a hurry.

Yes, we'd love to see it!

Cool, got a link for it?

Unfortunately it was quite a long time ago when I was into game development as a hobby, two MacBooks ago. I’d have to see if I still have the hard drive it was on. I never thought it would be useful for anything.

In any case I wouldn’t be surprised if someone is inspired to write a similar tool, it’s really just laying down pixels and shapes in an isometric perspective, and a few other decorative touches.

You've got my wheels spinning. Go's image processing libraries are calling to me.

EA is actively selling SimCity 2000 at least on GOG.com. With that in mind, I think there can be no real gesture of goodfaith on the author's part.

It's lazy, maybe just the "easy way" to do it in the beginning, but when the game is being actively sold, it's also slimy.

I don't think "bad faith" and "slimy" should really apply to 24 year old game assets.

I value useful creation much higher than dated intellectual property. Or in other words, I do not support long-tail profit and control of any creative work.

> should

I suspect virtually all of us here agree that copyright terms are too long, but this still looks like wilful copyright infringement.

Not that it would make any difference if EA stopped selling it on GOG. The idea of 'abandonware' has absolutely zero legal standing, as far as I'm aware.

Other games companies have been very unaccommodating about this kind of thing before, even when game assets weren't used - https://en.wikipedia.org/wiki/Chrono_Resurrection

I agree with you in sentiment, but this is not a form of protest -- just laziness. Even if it were some sort of protest against copyright laws, it would be a pretty terrible one.

That's fine, but when you get sued into oblivion don't come complaining that you didn't know it wasn't OK.

Lobby for law changes if you don't like the law.

I don't think anyone here is claiming that the author is legally in the right. This is a moral question and labels like "slimy" and "bad faith" are moral labels, not legal ones.

"bad faith" actually is a legal label, and the author of this almost certainly qualifies.

> Lobby for law changes if you don't like the law.

Then you'll have two problems!

You already have those problems. You'll be trying to fix two problems instead of just one.

I think it's absurd for a private citizen to try to change a law by lobbying.

I meant more trying to reduce/remove lobbying.


> If powerful corporations or special interests want to influence legislation, make them convince the people that something is a good idea and have the people contact their representatives.

(1) A "special interest" is any strict subset of the population. There is no necessity that it be nefarious, as you imply.

(2) A republic, by definition, doesn't require the constant approval of the population for each action. That would be a democracy, which we in the USA don't have and never did. In fact, our founding fathers explicitly ruled out the idea of governance by "the mob".

(3) The problem with "powerful corporations and special interests" is that they have receive concentrated benefits with diffuse costs. The solution is for every elected representative to always vote "no" to every change to the status quo unless it meets a very high bar for diffuse benefits. That kind of government would get even less accomplished than the "Do Nothing Congress".

(4) It's simply unwieldily for elected representatives to talk to their entire constituency on any regular basis. The only time this does happen is when we have some sort of panic. Those with means figured this out and hired people that specialized in getting the attention of legislators, executives, and regulators.

(5) I'm all for rooting out corruption and eliminating it. I'm not for hanging people for doing something that is perfectly legal under current US law.

The intellectual property in this case does not stand in the way of useful creation.

Thanks for the link to gog.com - drm free classics ;)

Yeah there's still copyright on Simcity 2000 for 50 years and Simcity itself is trademarked.

Doesn’t it seem ridiculous to anyone else that the copyright on most software will outlast the existence of any computer the software was designed to run on? Part of the intellectual property “bargain” is that the right will one day return to the public, who can finally benefit. The extreme length of time appears to circumvent that end of the bargain.

That's what openttd.org has been doing.

When they grew in popularity they gathered to completely redraw new assets from scratch.

It's a good way to kick start an MVP.

Also the technology choice doesn't really matter, there's a sweet spot where the new features outbalance the nostalgia of running the original game. At least that's what I think when I play OpenTTD

On the other hand, OpenTTD was originally decompiled from a binary of TTD, where as this is being written from scratch.

OpenTTD didn't actually include the assets, you had to use ones from the real game (until their project to draw their own had enough).

That's what the dude just said

Phrasing made it seem like OpenTTD bundled the original assets. stuaxo was pointing out that they did not.

OpenRA is reimplementation of the Red Alert game engine that support multiples games. They have their way to deal with the assets issue but I forgot what exact solution it is. At least RA is available for download for free for EA so its help too.

Edit: « OpenRA is 100% free, and comes bundled with three distinct mods. When you run a mod for the first time the game can automatically download the original game assets, or you can use the original game disks. »

The full games were released for free back in 2010. The assets are probably being downloaded under that freeware.

Reminds me of Forge, which is a fanmade computer implementation of Magic: The Gathering. It doesn't come with any card art, but after you start it up there's a menu item that'll let you download all the card art from a server.

(honestly, that probably isn't totally legal either, though)

How do these types of projects get around the fact that the new source code is clearly a derived work of the old game? I’m not saying they copied code, but they must be copying the design or the game would be a different game.

I'm not sure the design of the game is covered by copyright, otherwise you couldn't have clones of neither games nor applications.

Also, code that replicates the functionality of other code is not the definition of derivative work.

It can get dicey if you end up copying actual machine code, even if you translate it in to something higher level. One way round this is clean room design: https://en.wikipedia.org/wiki/Clean_room_design

Many EULAs state that there will be no attempt by the user to reverse engineering the workings of the program. How would that fit with clean room implementations?

EULAs are just EULAs, not laws.

Although this clone is clearly not the case, and I'm not aware any (high profile) cases, it is actually possible to patent the design of a game.

There is a very interesting read about a video game patent:


titled (drum roll) "Video game in which a host image repels ravenous images by serving filled vessels".

That's patent, not copyright. Any patent on SimCity would have run out by now, as they last only 20 years.

SimCity 2000 even has a demo that includes most of the graphics assets. It wouldn't put much of a burden on the user.

They could do what many propiratary software developers do and simply write a wrapper that download and extract the assets on the users side during installation and have the user do the "compiling". If that work to avoid creating a derivative gpl program, or simply put the legal responsibility on the user, then surely it will work here too.

That's the plan here. Short term, it will include the ability to select and parse out the original assets - long term I'd like to do something similar to the approach that OpenRA has taken (in game asset downloader that makes it seemless to the user).

I agree, but wanted to get something working out there first. I'm finishing up some code over the next day or two that will import the original assets from the game files without needing to include the assets within the repository.

who cares? intellectual property law in the united states is irrational and immoral. i strongly support evading the law or fully exploiting gray areas / unenforced copyrights.

That's easy to say if you are not the one who gets hit with a C&D plus some claim for x billion damages or whatever the going rate is these days. Life's too short to sit in courts and fight for something which is a hobby.

Which part of a law against for giving away someone else's art for free immoral?

simcity's IP is owned by EA, which is a multibillion-dollar publicly-traded company. this isn't just "someone's art". the only ones who benefit from strict enforcement of 25-year-old IP are EA's shareholders, not the artist, and certainly not the public.

It's available online if you add 'abandonware' into the search. Not sure what the legal status is though.

Unless the copyright holders donated it into the public domain (fat chance), it's still under copyright for at least another 70 years.

Abandonware is nearly always technically illegal (after all, if it wasn't, and was formally released by the copyright holder, it would be freeware). As mentioned elsewhere in this thread, the game is still sold, so I'm not sure it even qualifies as "abandoned".

Most of these sites depend on the copyright owner no longer caring or being hosted in countries that may have shorter copyrights or aren't subject to the DMCA.

This is why copyright laws are terrible in the US. It is a game that came out in the 90s, copyright protection for it should be over at this point.

Personally I pretty much just ignore copyright. I don't have a bootleg factory, but at the same time I am not concerned about downloading a file like this

Copyright is pretty straight forward in the US. https://www.copyright.gov/help/faq/faq-duration.html This game is still under copyright and including the assets for public consumption is considered illegal, unless otherwise specified by the rights holder

Interesting approach, looks like a map renderer for the moment.

There's a cool dosbox emulated version here, payable in the browser: https://www.myabandonware.com/game/simcity-2000-1nf/play-1nf

It’s also available at the Internet Archive: https://archive.org/details/msdos_SimCity_Classic_1994

No, that's the original SimCity, the predecessor to SimCity 2000.

My favourite game of that era is Transport Tycoon which also has an open source remake https://github.com/OpenTTD/OpenTTD

Not free or open source but you should check out Jan Zelenys Mashinky on Steam if you want a more modern OpenTTD.

I enjoyed the first SimCity and I really enjoyed SimEarth. However, at some point I really stopped enjoying SimCity... and I'm not sure if it's that the game got more obsessively micro-managing or I just grew out of that style of game play entirely.

Classic, SC2K and SC3K were Will Wright games and didn't stress too much on the city micromanaging gameplay. They were plain and simple city builders. Things changed with SC4. Weirdly SCS and the last failed SimCity are probably closer in gameplay design and feel to the older titles than SC4 but the community hated them.

How do these official Sim City games compare to the newer game Cities: Skylines. That appears to be the spiritual successor. I like that that doesn't require an always-on connection, it also seems to have good reviews (87% on Steam) but how does it compare to the official Sim City games?

I'm not big on Skylines. It looks very pretty, but the agent-simulation model has a lot of issues versus how the older SimCity games worked. To work around the quirks of the "every sim is independent" aspect you have to do weird things with city design that feel counter intuitive for various reasons... for example, who does a city of 50K need a mass transit system? Garbage management has issues too.

I will say this though, a more experienced Skylines user should comment. I bought it early on, played it for a little bit and went back to SC3K and SC4... dusted it off again and played for a little bit more but went back to SC3K again. Some of these issues may have been addressed by now.

> for example, who does a city of 50K need a mass transit system?

I think that has more to do with the fact that the game is developed by a European studio (Finnish, IIRC), and in Europe even smaller cities have decent mass transit systems, so it makes perfect sense to them that you should put mass transit in a city of 50K.

Edit to add: Doing a SimCity-style fixed grid layout with two-lane roads is a disaster in Skylines because it's a disaster in real life. There's a reason why real downtown areas are horribly congested. If you set up a proper street hierarchy with arterials, collectors, and local streets, you'll have much better traffic flow, just like in real life. The SimCity games never really cared much for letting you build different types of streets (SC4 came close, but not to the extent of Skylines), and the game itself made you place everything on a grid where every tile matters, diagonals are a waste of space, and curves are close to impossible. But Skylines has several different street types built in, and the game itself uses a more flexible layout engine that doesn't penalize you for doing curves and diagonals.

Also, the traffic AI is just poorly coded, and there are mods to replace it with better, such as Traffic Manager: President Edition. It's not a problem with the agent system; it's a problem with poor AI programming.

Here's a video I stumbled on comparing the vanilla traffic AI with the TMPE AI across various different types of intersections: https://www.youtube.com/watch?v=yITr127KZtQ

The first thing that jumped out at me is that the vanilla AI just doesn't know how to handle traffic lights. Some mods might as well be requirements for playing the game, and TMPE is one of them.

You can get better experiences by adding mods like "Rush Hour", "Realistic Population and Consumption", and "Traffic Manager: President Edition". General consensus though is that Skylines prioritizes "pretty" over "realism", which I'd agree is generally true. It's still the best current city builder, doubly so with mods.

> for example, who does a city of 50K need a mass transit system?

There's 2 reasons for this I'd say. The first and most significant, is simply people suck at planning traffic layouts, and this game is much more punishing than other city builders exactly because it simulates every citizen. One bad driver merging can back up literally thousands of other vehicles, which propagates it's way to other exits and intersections, just like real life.

This is made worse by citizens just being shitty drivers (even more so than reality) and not following traffic logic very well (merging across 3 lanes at the last second over and over!) and the inability to customize intersections. Traffic Manager: President Edition is an amazing overhaul of this system. The UI is a bit clunky, but you can set individual turning lane rules, timed traffic and pedestrian crossing lights (even timing rules that span several intersections!). Adding well timed traffic lights has turned huge messes of downtown areas of mine into very reasonable looking traffic, without needing to rework the roads or buildings.

The top post on the game's subreddit is a guide by a traffic engineer [0] and their city has an amaaaaaziiiing traffic flow.

But secondly, it's still a game and so it can't perfectly capture real life. A big part of why traffic is so much worse than real life is the time scale. A real world city may have 50x more people going to and from work than Cities Skylines, but they also have 50x longer to get there. I can't find specific numbers, but if a citizen doesn't reach their destination in just a few minutes they are either reset or may lose that job (or both). I know people who have a 90 minute commute, this is longer than an entire Skyline's citizen's day.

The traffic system by default also isn't tied into the day/night cycle (day/night was added to the game in a later patch and fleshed out more with an expansion). So citizens leave for work/school at all times of day making the traffic feel more active than it should be. The Rush Hour mod fixes this, for example, and at 9am you'll have disgusting backed up traffic and 3am an ambulance can cross your city in seconds because streets are barren.

Still, a good rule of thumb from C:S communities is to multiply your population by 10x and that's how large of a real-world city matches yours. (For example my 250k city runs more like a real-world 2.5million city).

> Garbage management has issues too.

My biggest problem here is that services like garbage and police don't seem to give a crap how close something is to them. My current "city" is a mountain valley with a busy downtown and dozens of little satellite towns in the mountain ridges. Constantly I run into problems like a fire in a small town, but instead of sending a firetruck from the local station, one comes in from downtown, and all the local trucks are sent to deal with some downtown emergency. It seems to get worse as time goes on, and leaving my city up and running for over a day or so leads to a complete failure of my garbage system as trucks service houses which are miles away, yet adjacent to another landfill (which is also servicing houses miles away rather than nearby).

The Rush hour mod has a setting to make Cims only search for jobs and goods locally, which works great but doesn't seem to affect the services in any way. I'd love some way to enable that, or set a max-distance-from-base for service vehicles, or not allowing cross-district service usage. Anything really.

[0 - content post] https://imgur.com/a/WdJim

[0 - reddit thread] https://www.reddit.com/r/CitiesSkylines/comments/2zfx70/if_y...

> or not allowing cross-district service usage

There's a mod for that. It's called "Geli-Districts" [0]. There's also the more aptly-named "District Service Limit", but it's no longer maintained.

[0] https://steamcommunity.com/sharedfiles/filedetails/?id=92729...

THANK YOU!! An upvote just isn't enough.

If you enjoy SimCity then definitely check out skylines. It's maybe not as realistic in some ways, and I think it's too easy, but there are lots of mods available so the possibilities really open up.

I was a Maxis geek as a kid, playing everything they put out right from SC2K. SC4 killed it for me when I began to get good at it, and ran into the infamous traffic bug. Above a certain population level, there was an inevitable scenario of traffic chaos, no matter the mitigations you attempted.

Funnily enough, Cities:Skylines also runs into trouble with big cities and traffic. It's hard to make a game about civil engineering playable for people who aren't civil engineers

Hmm - cool project. Don't want to be a buzzkill, but copyright?

Should probably remove the assets to avoid a takedown.

> Includes assets and graphics extracted from the original SimCity 2000 Special Edition CD. These assets are NOT covered by the GNU General Public License used by this project and are copyright EA / Maxis. I'm including these assets in the hope that because the game has been made freely available at various points in time by EA, and because it's 24 years old as of publishing this project that no action will be taken. Long story short, please don't sue me! Long term, I plan to add functionality to extract assets from the original game files within this project.

That looks like thin ice. Basically they're hoping to remain too small for EA to bother with.

IIRC, the usual workaround for asset licensing is to make an automated extractor for people who have the original game. This buys you time while you work on drop-in replacements.

Certainly bad practice. If developers want automation it's better to suggested to download assets (or even do it automatically) from Web Archive. They're exempt from DMCA and it's trustworthy source.


I actually got 7/9th's of the way through doing this for the FMOD dependency of http://www.bay12games.com/ww1medic.

Specifically: http://web.archive.org/web/20070806010730/http://www.fmod.or...

Frankly, I'm somewhat amazed that this is on archive.org. They may have a DMCA exception, but it's a bad look considering the game is still actively being sold on GoG and under copyright.

I wouldn't argue about this exact file since it's might be a bit more recent, but that game is about 25 years old. Do you seriously think keeping it on archive.org is bad?

It's very likely to not work on modern systems anyway (dosbox will work of course) and version from GOG likely wouldn't be installable on let's say DOS or Windows 95. And there is plenty of people who might want to run old games on some ancient PC for personal fun or for museum-like purposes.

Another option for open source projects it's to just use demo version which is 100% legit way to get assets. Though it's not always possible because some demo versions don't contain whole assets that fully-featured engine would depend on.

As an alternative, perhaps an artist could create new free assets for use with the engine, which is what happened with OpenTTD.

And as happened in OpenRedAlert and OpenDune.

Remaking sprites and game assets in a more open format - while also supporting the original game assets.

OpenTTD did this, eventually. But for years it used the original assets. But it was your responsibility to get the game.

This is something I'm actively working on - I wanted to get an initial release out there but didn't expect this much attention so quickly! Hoping to have something out there to parse out the original game assets within a day or two.

I immediately cloned it for this reason just in case. Wanted to make sure I didn't miss the opportunity to play this game again in case they did a take down. Still have the old games, but I haven't had the willpower to learn how to use Wine.

Sim City 2000 is on GOG, where it is playable on modern computers. They also sell Sim City 3000 and 4, without DRMs.

> Still have the old games, but I haven't had the willpower to learn how to use Wine.

Maybe check PlayOnLinux? It provides a front-end to Wine and automatizes game installations via custom scripts. Basically, you select your game in a list, it installs it, then puts a launcher on your desktop.


Most SimCity 2000 discs come with the DOS version, the Windows 3.11 version, and the Windows 95 version. The DOS version runs just fine under DOSBox if you don't want to get into Wine too deeply.

openage http://openage.sft.mx/ Free (as in freedom) open source clone of the Age of Empires II engine (work in progress)

Aside: I think this is the first game, or at least proto-game, I've ever seen written in Electron.

It's pretty trivial to run the original in DOSBox or Wine too... an open source remake has some appeal but when it requires many gigabytes more of memory to run when the original can do with 1MB, it's really a bit of a showstopper.

It's a bummer—I don't know about showstopper, though. The usual first goal for remakes like these is to get around the limitations from DOS and whatnot. Things like resolution and map size are easy targets and improve gameplay a bunch.

Perhaps some tools and ideas from this project will spark interest in a native OSS remake.

Early versions of CityBound[0] were written in Electron until the author had a re-think and restarted the project C++, then a few months later, again in Rust.

[0] http://cityboundsim.com/devblog

So its just Javascript? Why run it on Electron? Does it not work in a normal browser?

Would be great if it could use SQLite and Electron already installed in the system instead of downloading/building them from the Internet sources unless that's really necessary (I actually find it strange node/electron still don't take care of this by integrating SQLite int their standard APIs anyway).

The window just shows an empty brown field and nothing else, I could find no "start new scenario" or anything like that in the menu.

Otherwise the idea is amazing. Surely SimCity 2000 is one of the greatest games ever and I can't wait for it to be implemented and extended as far beyond what it originally was as possible.

> Would be great if it could use SQLite and Electron already installed

I don't understand what this means. These are usually application building components, not installable libs/applications. What do you mean be use the ones already installed? How do you install either of those "in the system" for use by multiple apps? Or do you mean the NPM cache which I figured it did leverage? Maybe I'm misunderstanding your statement?

I mean I already have sqlite3 executable in /usr/bin and the libraries wherever they are meant to be located. AFAIK Windows 10 comes with SQLite within $PATH too. I don't really code JavaSctipt so I am not sure but I think it probably is not really hard and probably is a more "right way" to detect SQLite binaries already available this way and use them than download/compile it for every new application using it. Of course it doesn't really matter but it would feel good for "unix way" perfectionists at least :-)

Im trying to work on a startup right now ... and you just nerd sniped me for the next 6 months! Thanks!

(Seriously, this is amazingly awesome work. Thank you for the nostalgia. I think that I learned basic EVERYTHING by playing that game in my youth)

How does SimCity2000 render the terrain? I know it's 2d isometric but any good article on the actual data structure/algorithm?

I'm also actually working on an unreleased to-be-open-source SimCity 2000 clone in C++ (which I am planning to call 21st Century Micropolis, after the existing, official open-source SimCity Classic release called Micropolis), so I've looked into how SC2K renders the screen. I'll describe it for drawing the whole map, since it's simpler, but you'd want to modify it to draw only the visible parts in an actual game.

Directions are relative to the screen, not the grid.

10 Clear the screen and set a pointer to the top corner of the map

20 If the pointed tile belongs to terrain or the leftmost tile of a building, draw it on top of what we already have on screen. (Note that for tiles that belong to a building, but aren't the leftmost tile, we do nothing) (1x1 buildings always count as a leftmost tile)

30 If we are at the last row, exit

40 If we are at the end of the row, go to the leftmost tile of the row below, and jump to 20

50 Otherwise step one tile to the right, and jump to 20

That's it.

One wrinkle in getting the exact same output as the original has to do with the magic eraser tool, which basically hacks the map and forcibly resets a tile to it's blank state, even if it's supposed to belong to a building. If the leftmost tile of a 2x2, 3x3, or 4x4 building has been magically erased, the entire building disappears. If you magic erase a tile below the leftmost tile, or to the right of it, you will draw ground tiles over the building. Erasing tiles above the leftmost tile's waterline has no visible effect. Magically erased tiles can also have things built onto them. This algorithm gets these cases correct.

Thanks! How do you handle different terrain heights?

Terrain height just changes the Y position when where you draw. Draw order is still the same. The formula for tile map space to screen space is:

scrx = mapy16 - mapx16;

scry = mapx8 + mapy8 - GetSurfaceHeight(mapx,mapy)*12;

IIRC, this assumes origin is in top most tile, with increasing Y going down. So each step the terrain increases, you move the tile you draw up 12 pixels higher from the lowest point.

It reticulates splines

I'm sort of stunned at just how few lines of code are necessary for this remake to work. It's just a couple thousand.

It's not a complete remake yet, right now it can just load and display cities.

> Currently a lot remains to be implemented but the basic framework is there for importing and viewing cities. Lots of stuff remains completely unimplemented such as the actual simulation, rendering of many special case tiles and buildings, support for zoom levels and anything else that exists outside of importing and viewing.

Ah, I see. Indeed, I didn't read closely and missed that. Thank you.

Did you ever see Elite? That ran on my Acorn electron with its whopping 32Kb of memory. My CV takes up more disk space than that these days.

I love the revival of these classic games, they're so cool and awesome! I remember I had this SimCity 2000 CD somewhere, imagine now being able to install it everywhere is so great for the creators of these games, these guys should be proud of making such a thing!

SimCity 2000 is one of the few original discs that I kept from when I was a kid. It came in handy when I built a Windows 98 machine a few years ago.

I was actually making an open source sim city clone in JS myself a while ago. Didn't get this far at all, but I was mostly in it to test if I could get async updating from the simulation portion. Essentially doing threading in JS. Which I was somewhat successful in using Web Workers and shared buffer arrays, would be interested in helping with this project. Unfortunately in my research I didn't find any concrete documentation on how the simulation algorithm actually works, so I doubt this would end up a direct clone on SC2K.

This may be a dumb question: How is it that in recent years small groups of programmers, sometimes just one, are able to recreate games that used to take a whole studio? Is it the availability or power of new open source tools? Did hardware advancements help (you can be more inefficient)? Is it the spread of knowledge and skills?

Anyone who knows more care to enlighten? Thanks in advance.

This is lacking any simulation... and a number of other important features (as the author state very clearly BTW... so I am not diminishing their work).

In this case I would say the advancement of libraries and tools make efforts like this substantially easier than back then.

Sometimes they don't ship the artwork, like tiles, but "just" the engine. Not that this lessens the achievement, it is still impressive.

is there source code to SC2K anywhere? If not, won't it be really hard to even approximate the simulation behavior?

There is no source code anywhere, unfortunately. I'm planning to approximate it the best I can based on information available online over the years and observing game behavior. In a lot of ways it's a fairly simple game but still has quite a lot of depth. My priority right now is getting rendering and some basic interactions (plopping buildings, networks, etc..) working and then move to implementing the simulation on top of that.

It could be reverse-engineered from the original binary, although that's very time-consuming.

Ah dang. SC3K would've been more interesting.




Gotta say 21 FPS not very pleasant to game with.

Is it really that noticeable? I don't remember ever watching a 24 fps film thinking 'this is jerky'. Is it more about the lag between input and response than any jerking?

In a low-fi "turn based" game like SC, it'd be pretty tolerable as long as the cursor still moves at a normal speed.

Anything with more animation or especially real-time input like in a first person game, if run at < 60FPS is immediately noticeable, and below 30FPS quickly becomes entirely unplayable.

Additionally, in the past I didn't think 24FPS movies were jerky, but now that I've started looking, there are lots of scenes that definitely look stuttery to me. In particular, watch for "smooth" panning shots and see how the farther background elements will jump and stutter across the screen. Excessive motion blur helps to hide some of the problem, but there's a limit to what the filmmakers can really do. There's a lot of cinematography rules to reduce or hide the problem, but that comes with cutting yourself off from lots of things you might otherwise want to do with the camera.

On the subject of movies, I remember hearing somewhere that Bruce Lee had to slow himself down for the cameras because if he moved like he actually fights, the 24fps cameras would just pick him up as a blur.

I'd love to see a martial arts movie shot at 60fps. That sounds like it would be the perfect use case for 60fps.

On a similar note, I understand that a lot of sports are broadcast in 60fps for this reason too.

> In a low-fi "turn based" game like SC

SimCity is real-time, not turn-based.

This is true, thank you. I seem to conflate SimCity and the Civ games, for some reason, they seem to occupy a lot of the same spaces in my head.

That said, the fact that you can always pause at any time and there's never much time pressure to respond quickly to events does mean that the low framerate doesn't have much impact on the gameplay.

> Is it really that noticeable?

Oh yes, it sure is.

> Is it more about the lag between input and response than any jerking?

In this example - Yes. In 3d games it would be visible jerking.

If you've got a minute, you should check out https://www.testufo.com/ just to see a comparison of different framerates.

It does run fairly slow with some of the debug overlays on, but with the overlays off I get a solid 60fps - it's averaging about 4-5ms per frame draw without enabling the overlays. What kind of machine are you running it on? There's a ton of room for improvement still, this is just an initial release.

This is a city simulator, not an FPS.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact