OpenSC2K – An Open Source Remake of SimCity 2000
github.com
github.com
> 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.
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 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.
Lobby for law changes if you don't like the law.
Then you'll have two problems!
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
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
Also, code that replicates the functionality of other code is not the definition of derivative work.
There is a very interesting read about a video game patent:
http://www.kmjn.org/notes/tapper_videogame_patent.html
titled (drum roll) "Video game in which a host image repels ravenous images by serving filled vessels".
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. »
(honestly, that probably isn't totally legal either, though)
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.
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
There's a cool dosbox emulated version here, payable in the browser: https://www.myabandonware.com/game/simcity-2000-1nf/play-1nf
https://archive.org/details/msdos_SimCity_2000_-_CD_Collecti...
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.
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.
> 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...
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...
Should probably remove the assets to avoid a takedown.
Remaking sprites and game assets in a more open format - while also supporting the original game assets.
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.
https://archive.org/details/SimCity2000_Special_Edition_Maxi...
Specifically: http://web.archive.org/web/20070806010730/http://www.fmod.or...
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.
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.
Perhaps some tools and ideas from this project will spark interest in a native OSS remake.
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.
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?
(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)
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.
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.
> 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.
Anyone who knows more care to enlighten? Thanks in advance.
In this case I would say the advancement of libraries and tools make efforts like this substantially easier than back then.
ardo
ardo
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.
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.
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.
SimCity is real-time, not turn-based.
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.