1135
(page 2) 50 comments
sorted by: hot top controversial new old
[-] mtchristo@lemm.ee 124 points 20 hours ago

Roller coaster Tycoon is one of a lifetime game.

Now everything is electron or react shit. Gone are the times of downloading fully featured software under 10mb.

[-] tomalley8342@lemmy.world 24 points 19 hours ago

But the modern OpenRCT, written in an actual language, is better in every way.

[-] otp@sh.itjust.works 39 points 17 hours ago

Probably not as optimized though.

RCT could run on a toaster from the 90's (ok, maybe early 2000's) and looked amazing for the time.

OpenRCT can run on a toaster from the 2010's and looks great because of the timeless art style of the original.

It's still an incredible feat, though!

load more comments (3 replies)
load more comments (24 replies)
[-] einlander@lemmy.world 122 points 21 hours ago
  • Programming was never meant to be abstract so far from the hardware.
  • 640k is enough ram for everybody.
  • The come with names like rust, typescript, go, and python. Names thought up by imbeciles.
  • Dev environments, environmental variables, build and make scripts, and macros, from the minds of the utter deranged.

They have played us for fools

load more comments (2 replies)
[-] Valmond@lemmy.world 61 points 20 hours ago

try writing it it in Assembly

Small error, game crashes and takes whole PC with it burning a hole in the ground.

[-] Agent641@lemmy.world 49 points 20 hours ago

Just don't make any errors. Not one.

[-] Gestrid@lemmy.ca 19 points 19 hours ago

It dis-assembled the computer!

[-] fsxylo@sh.itjust.works 11 points 20 hours ago

Back into the fiery pit of hell, where it belongs!

load more comments (2 replies)
[-] MonkeMischief@lemmy.today 116 points 22 hours ago

I love Roller Coaster Tycoon. It's absolutely crazy how he managed to write a game in a way many wouldn't even attempt even in those days, but it's not just a technical feat, it's a creative masterpiece that's still an absolute blast to play.

It still blows my mind how smoothly it gives the illusion of 3D and physics, yet it can run on almost anything.

OpenRCT brings a lot of quality of life and is often the recommended way to play today, but the original RCT will always deserve a spot on any "Best Games of All Time" list.

[-] dai@lemmy.world 14 points 19 hours ago

It was even ported to the original Xbox. I remember the total games file size being incredibly small - compared to most other titles on that system.

[-] Wilzax@lemmy.world 126 points 23 hours ago

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.

[-] dejected_warp_core@lemmy.world 44 points 22 hours ago

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)

load more comments (5 replies)
[-] Valmond@lemmy.world 20 points 20 hours ago

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

[-] Wilzax@lemmy.world 29 points 16 hours ago

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

[-] 0x0@lemmy.dbzer0.com 11 points 13 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

load more comments (2 replies)
load more comments (1 replies)
[-] lugal@lemmy.world 139 points 1 day ago

I don't know if everyone gets the reference: RollerCoaster Tycoon is in fact writing mostly in assembly to use the hardware more efficiently

[-] Lemjukes@lemm.ee 56 points 23 hours ago* (last edited 6 hours ago)

It also makes it really portable which is a big part of why all the ports to modern systems are so close to the original. Obligatory OpenRCT2 shoutout.

edit: This is not entirely correct, I was mistaken about my understanding of some things. Still check out openrct2

[-] visor841@lemmy.world 7 points 13 hours ago* (last edited 13 hours ago)

OpenRCT2 ditched assembly tho. They wrote it entirely in C++.

load more comments (1 replies)
[-] Faresh@lemmy.ml 42 points 20 hours ago* (last edited 19 hours ago)

Writing it in assembly would make it pretty much the opposite of portable (not accounting for emulation), since you are directly giving instructions to a specific hardware and OS.

load more comments (3 replies)
[-] fubbernuckin@lemmy.world 19 points 23 hours ago

Started playing openrct2 multiplayer with a friend yesterday. Some of the best fun I've had.

[-] Imgonnatrythis@sh.itjust.works 13 points 21 hours ago

Damn this post. This is really going to f up my weekend plans.

[-] DogWater@lemmy.world 6 points 19 hours ago

My friend and I created MONORAIL LAND

[-] fubbernuckin@lemmy.world 2 points 9 hours ago

We created the world of monorail 1. Everything exists to bring more people to monorail 1. What is monorail 1? It is a 4 car monorail that takes the shortest possible path back to the start of the station. We have several other attractions at the park such as: The Pit; Memento Mori; Install CSS, but none of them are the main attraction.

load more comments (1 replies)
[-] misk@sopuli.xyz 158 points 1 day ago

To be fair, assembly lines of code are fairly short.

/ducks

[-] timeslip1974@lemmy.world 37 points 1 day ago

Back in the day we wrote everything in asm

[-] addie@feddit.uk 44 points 23 hours ago

Writing in ASM is not too bad provided that there's no operating system getting in the way. If you're on some old 8-bit microcomputer where you're free to read directly from the input buffers and write directly to the screen framebuffer, or if you're doing embedded where it's all memory-mapped IO anyway, then great. Very easy, makes a lot of sense. For games, that era basically ended with DOS, and VGA-compatible cards that you could just write bits to and have them appear on screen.

Now, you have to display things on the screen by telling the graphics driver to do it, and so a lot of your assembly is just going to be arranging all of your data according to your platform's C calling convention and then making syscalls, plus other tedious-but-essential requirements like making sure the stack is aligned whenever you make a jump. You might as well write macros to do that since you'll be doing it a lot, and if you've written macros to do it then you might as well be using C instead, since most of C's keywords and syntax map very closely to the ASM that would be generated by macros.

A shame - you do learn a lot by having to tell the computer exactly what you want it to do - but I couldn't recommend it for any non-trivial task any more. Maybe a wee bit of assembly here-and-there when you've some very specific data alignment or timing-sensitive requirement.

[-] henfredemars@infosec.pub 19 points 23 hours ago

I like ASM because it can be delightfully simple, but it’s just not very productive especially in light of today’s tooling. In practice, I use it only when nothing else will do, such as for operating system task schedulers or hardware control. It’s nice to have the opportunity every once in a while to work on an embedded system with no OS but not something I get the chance to do very often.

On one large ASM project I worked (an RTOS) it’s exactly as you described. You end up developing your own version of everything a C compiler could have done for you for free.

load more comments (1 replies)
[-] IMNOTCRAZYINSTITUTION@lemmy.world 24 points 20 hours ago

petah please what's this mean

[-] ayyy@sh.itjust.works 66 points 20 hours ago

The game Roller Coaster Tycoon was famously hand written in raw CPU instructions (called assembly language). It’s only one step removed from writing literal ones and zeros. Normally computers are programmed using a human-friendly language which is then “compiled” into CPU instructions so that the humans don’t have to deal with the tedium and complication of writing CPU instructions.

[-] IMNOTCRAZYINSTITUTION@lemmy.world 18 points 19 hours ago
[-] ericbomb@lemmy.world 8 points 12 hours ago

To send the point home even more, this is how in python you make a line of text display:

print("Hello World")

This is the same thing, in assembly (According to a blog I found. I can't read this. I am not build better.)

  org  0x100        ; .com files always start 256 bytes into the segment

    ; int 21h is going to want...

    mov  dx, msg      ; the address of or message in dx
    mov  ah, 9        ; ah=9 - "print string" sub-function
    int  0x21         ; call dos services

    mov  ah, 0x4c     ; "terminate program" sub-function
    int  0x21         ; call dos services

    msg  db 'Hello, World!', 0x0d, 0x0a, '$'   ; $-terminated message

But python turns that cute little line up top, into that mess at the bottom.

I like python. Python is cute. Anyone can read python.

[-] pivot_root@lemmy.world 6 points 11 hours ago

That assembly is for a DOS application. It would be more verbose for a modern Linux or Win32 application and probably require a linker script.

But python turns that cute little line up top, into that mess at the bottom.

Technically, not quite. Python is interpreted, so it's more like "call the print function with this string parameter" gets fed into another program, which calls it's own functions to make it happen.

load more comments (1 replies)
load more comments (1 replies)
load more comments (5 replies)
[-] Fox@pawb.social 57 points 23 hours ago

I want to get off Mr. Bones' Wild Ride

[-] Maultasche@lemmy.world 13 points 21 hours ago

The ride never ends!

[-] Strobelt@lemmy.world 5 points 18 hours ago

I was looking for this comment. Brings back so many good memories of the early internet.

[-] UnderpantsWeevil@lemmy.world 50 points 1 day ago

Step 1: Begin writing in Assembly

Step 2: Write C

Step 3: Use C to write C#

Step 4: Implement Unity

Step 5: Write your game

Step 6: ???

Step 7: Profit

[-] Maalus@lemmy.world 33 points 1 day ago
[-] henfredemars@infosec.pub 30 points 23 hours ago

Step 6 extort developers

load more comments (6 replies)
[-] Kolanaki@yiffit.net 25 points 23 hours ago

They call me the Programmer and I speak to the metal,

Now check out this app, that really shows off my mettle!

load more comments (1 replies)
[-] bjoern_tantau@swg-empire.de 37 points 1 day ago

I mean, I'm pretty sure it would be a good learning experience so I would really not regret it.

[-] capt_wolf@lemmy.world 30 points 1 day ago

I tried decades ago. Grew up learning BASIC and then C, how hard could it be? For a 12 year old with no formal teacher and only books to go off of, it turns out, very. I've learned a lot of coding languages on my own since, but I still can't make heads or tales of assembly.

[-] Dubiousx99@lemmy.world 23 points 1 day ago

Assembly requires a knowledge of the cpu architecture pipeline and memory storage addressing. Those concepts are generally abstracted away in modern languages

load more comments (2 replies)
load more comments (5 replies)
[-] Gork@lemm.ee 25 points 1 day ago

Shifts bit to the left

Um what am I doing

Shifts bit to the right

program crashes

[-] Duamerthrax@lemmy.world 15 points 22 hours ago

Not Assembly, but HROT was written in Pascal by one person and runs buttery smooth.

load more comments (1 replies)
load more comments
view more: ‹ prev next ›
this post was submitted on 17 Oct 2024
1135 points (98.9% liked)

RetroGaming

19341 readers
1511 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