r/SimCity • • 7d ago

Other Another Sim Copter remake engine

Post image

I showed someone a passion project of mine, and they asked if I was the person who made the other SimCopter remake engine that was posted here a couple of years ago. I said no, because I wasn't even aware that project existed. I was then accused of ripping it off.

I genuinely had no idea there was another project, and honestly, I didn't even know there was much interest in something like this. I've actually been working on my own implementation for a couple of years, mostly in secret. So after that encounter, I decided it was probably time to polish mine up and actually show people what I've been doing.

My goal is to make the underlying game behavior work as closely to the original as possible. I disassembled the original executable and use it as an oracle for how things actually work. Collisions, helicopter performance, the bucket and rope, mission behavior, etc. are being reproduced from the original behavior rather than approximated from memory. There are some bug fixes, but the goal is to preserve the original game's behavior.

Technologically, however, I'm absolutely not trying to keep it in 1996.

I've gone completely overboard with modernization.

For example, I invented a whole new approach to ambient lighting for the game. It's volumetric, locally based ambient lighting that comes into effect at night, so dense areas of a city are more illuminated than low-density areas or wilderness. It also takes the actual developed city into account rather than simply treating every zoned area as illuminated. It's a little difficult to explain in words, so I've included a screenshot.

The building windows can have ray-traced reflections if you enable them, and individual windows turn on and off throughout the night. This is handled almost entirely in a shader, so I'm not keeping track of every window on the CPU. The building geometry itself doesn't even need to change: a building face can remain just two polygons rather than needing separate geometry for every window.

Most of the world uses the same shader and is submitted to the GPU in only a few draw calls, which keeps performance surprisingly high even with ray tracing enabled.

There's also:

• An optional day/night cycle.
• A context-sensitive action button that handles most actions automatically, while still allowing manual control.
• Environmental effects that respond to air pollution, including subtle lit volumetric fog.
• Fully simulated sound propagation, with sounds having a wavefront so you don't hear them until the sound actually reaches you. Yes, the speed of sound is simulated.
• A dynamically changing night sky. The number of visible stars depends on where you are, so the wilderness can show the full glory of the Milky Way while heavily illuminated parts of the city show only a handful of stars.
• The Moon is positioned according to the player's current system date.
• The celestial sky is oriented according to the current date, Earth's axial tilt, and the solar system's orientation in the galaxy.

Which means that, if Neil deGrasse Tyson were to play SimCopter using this engine, the only notes he'd have for me would presumably be that I haven't represented the planets yet and the stars don't twinkle.

I may fix that.

You can also choose to play as any NPC figure except Nessie. Yes, even the child model. The child model is, for extremely obvious reasons, excluded from participating in either side of the yumm animation.

I've even included a permanent implementation of THAT FEATURE, if you get what I mean. Wink wink, nudge nudge, say no more, say no more.

There's considerably more in the engine than I can reasonably explain or show in one post.

More information about the project and a download to it is here:

http://moonbunny.foo/simcopter

There's also a link to my Discord on the site. The Discord has information about this project as well as some of the other remake engines I've made.

Gameplay video:
https://www.youtube.com/watch?v=JIE1HF-U8VY

49 Upvotes

14 comments sorted by

4

u/brrrrrr0_0 7d ago

It was awful. I managed to find all the files, but I was missing two and couldn't continue. Anyway, in the end, I created the WAV files with the missing names and was able to continue.

2

u/Ghost_Alice 7d ago

Try archive.org it should have what you need

9

u/KalElReturns89 7d ago edited 7d ago

Wow, we worked on the same thing! I made the other recent port to Unreal 5.8.

No harm in having options.

Funny enough, I almost stopped development on mine when I realized late last year someone else recreated Sim Copter on Steam (called Sky Savior). But I decided to push forward.

Glad you did too.

4

u/Ghost_Alice 7d ago

Jolly competition!

I actually only found out about Sky Savior two days ago and it doesn't bother me. Competition is a good thing, it drives innovation.

From the gameplay videos I've seen, you did good work btw.
Mine's made with Unity 6

1

u/KalElReturns89 7d ago

Thanks! Yeah I debated between Unreal and Godot, Unity is a good choice too.

Who wants to do Streets now?

2

u/Ghost_Alice 7d ago

I'm going to integrate SC2K into mine so you can build cities and fly around solving fires and whatnot yourself.

then I intend to integrate Streets...

1

u/KalElReturns89 7d ago

Nice! I may leave it to you then! I got a bit burned out on it.

I'm currently making a 3D port of the original XCOM (dos version).

1

u/Ghost_Alice 7d ago

Awesome! I only ever played that on my Amiga...
SO MUCH SWAPPING FLOPPIES!

1

u/Ghost_Alice 7d ago

Also it'll be a while because I'm currently going to apply all the skills I've learned in the last 7 years to an old engine I did for MechWarrior 2 that was a load of hot garbage. A clever load of hot garbage, but a load all the same. It was reverse engineered by hand via trial and error so I was held back a lot by not being able to understand assembly. I can now. Plus there's Ghidra now too. Maybe it existed back then, but if it did, I didn't know about it.

So that project is also being tracked on my discord server.

1

u/KalElReturns89 7d ago

That sounds like a lot of fun!

4

u/MaddyMagpies 7d ago

I wish that instead of three developers all separately doing their own versions of the same project and competing against each other, they would collaborate and perfect one project together instead.

With that said, I know that collaboration and communication can be hard.

3

u/Ghost_Alice 7d ago edited 7d ago

You get less innovation that way. Also I'm not sure what you mean by 3... I only know of one other, and also somebody who made a clone and is selling it on Steam.
Also imagine if nobody made their own first person shooter and only ever worked with Id Software to improve Doom.

There's this thing called the Mythical Man Month which says that the more people you add to a project, the slower it takes for the project to complete because of all the lines of communication that have to be open.

I'm on Unity, the other person is on Unreal. I can do a lot more with Unity than I can with Unreal because it's my bread and butter. So that's another point.

Then there's the innovation. The things I did with my version, all the over engineering of the environment... I might not have been able to do that if someone else were telling me what to do and driving the direction of the project.

Then there's the fact that I have AuDHD... I do NOT work well in a team...

And then there's the fact that I started this project, really, about 18 years ago and worked on it on and off the whole time, but only really earnestly worked on it for the last 2 years, which predates the other project. And I was working on it in secret, it was just a personal passion project. So if the eldest project gets the priority, it's unfair to the other person because he didn't know about me. And I only found out about him this last Sunday.

There's just so many reasons that "you should have worked together" just doesn't work.

2

u/bulltank 7d ago

Not sure why someone downvoted you for you sharing your opinion on why you rather work on this alone.

best of luck to you homie!

2

u/hypespud 7d ago

Thanks for being so passionate and interested in porting such old school games, really appreciate it! Would love to try this out soon