this post was submitted on 17 Oct 2024
1007 points (99.0% liked)

RetroGaming

19338 readers
1642 users here now

Vintage gaming community.

Rules:

  1. Be kind.
  2. No spam or soliciting for money.
  3. No racism or other bigotry allowed.
  4. Obviously nothing illegal.

If you see these please report them.

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 121 points 18 hours ago (3 children)

Your game will actually likely be more efficient if written in C. The gcc compiler has become ridiculously optimized and probably knows more tricks than you do.

[–] [email protected] 38 points 17 hours ago (1 children)

Especially these days. Current-gen x86 architecture has all kinds of insane optimizations and special instruction sets that the Pentium I never had (e.g. SSE). You really do need a higher-level compiler at your back to make the most of it these days. And even then, there are cases where you have to resort to inline ASM or processor-specific intrinsics to optimize to the level that Roller Coaster Tycoon is/was. (original system specs)

[–] [email protected] 1 points 47 minutes ago (1 children)

I might be wrong, but doesn't SSE require you to explicitly use it in C/C++? Laying out your data as arrays and specifically calling the SIMD operations on them?

[–] [email protected] 1 points 9 minutes ago

There’s absolutely nothing you can do in C that you can’t also do in assembly. Because assembly is just the bunch of bits that the compiler generates.

That said, you’d have to be insane to write a game featuring SIMD instructions these days in assembly.

[–] [email protected] 18 points 15 hours ago (1 children)

Yep but not if you write sloppy C code. Gotta keep those nuts and bolts tight!

[–] [email protected] 24 points 11 hours ago (1 children)

If you're writing sloppy C code your assembly code probably won't work either

[–] [email protected] 11 points 8 hours ago

Except everyone writing C is writing sloppy C. It's like driving a car, there's always a non-zero chance of an accident.

Even worse, in C the compiler is just waiting for you to trip up so it can do something weird. Think the risk of UB is overblown? I found this article from Raymond Chen enlightening: https://devblogs.microsoft.com/oldnewthing/20140627-00/?p=633

[–] [email protected] -4 points 15 hours ago

Write it in Rust, and it'll never even leak memory.