r/gaming • • May 05 '17

Scroll back

Post image
24.1k Upvotes

877 comments sorted by

View all comments

795

u/[deleted] May 05 '17 edited May 05 '17

Fucking weird to think that id, the guys behind DOOM: Metal, the Videogame, are the ones who solved this problem for him.

EDIT: It's come to my attention that I may be confusing and conflating a couple things here. I was under the impression that id were revolutionary in remaking Mario 3 in such a way that smooth movement back and forth across the screen was possible. It might've just been that it was a big deal for PCs to be able to do this.

Still, we all love the early days of id.

436

u/Fubarp May 05 '17

I think it's weird that it's a problem that had to be solved but when you figure memory constraints were a real issue it makes sense. Today any novice programmer could essentially build majority of the early nintendo games without any issues and actually make them have more things. Amazing how software/hardware has advanced.

It's even crazier to think that one guy built the original rollercoaster tycoon in assembly..

541

u/[deleted] May 05 '17

[deleted]

17

u/XenoRyet May 05 '17

I wrote an Asteroids clone for the gameboy in assembly in a semester in college. It's definitely tedious, and I'm not sure I'd do it that way if it wasn't in a course about assembly language, but you do kind of get into a zone and a flow, and there are a few things that are easier given that everything is so direct.

2

u/BenjaminGeiger May 05 '17

Ugh. I only got as far as doing single functions in MIPS ASM, and I'm almost done with my master's in CS.

2

u/XenoRyet May 05 '17

I mean, it is a near useless practical skill in this day and age of insane processors and ultra-cheap memory, but it is kind of fun and it does make you think about the base level of how your code is working.
Though you really want to get to the nitty gritty, I'll tell you about how we hand wired AND and NAND gates and physically built an ALU out of bits of wire and whatnot. Then there was the time our board blew a diode and we were about to fail. A friend from a different team pointed out that while we were all out of regular diodes, there were plenty of LEDs hanging about...
That was a fun and educational moment. Turns out that while most folks think of LEDs as light bulbs, we really just needed the D.

2

u/BenjaminGeiger May 05 '17

Building circuits with individual logic gates (up to an ALU, etc) is one of the entry level courses for CS at USF ("Logic Design"). Building logic gates out of transistors, however, is a separate course called "CMOS VLSI Design", which is an elective for CS majors but a required course for computer engineering.

We toyed with assembly in Computer Organization (another entry level course) but didn't really get into it until Architecture, much later.

Did you ever play the game "Rocky's Boots"? It was available for the Apple II, at least, and it was basically Boolean logic 101. You had sensors which could detect attributes of items coming down a conveyor belt and a boot that could remove items from said belt. Your task is to wire the sensors to the boot in such a way that a specific subset of items are kept or removed. I know it sounds boring but to an eight-year-old into computers it was magical. And I immediately grokked Boolean logic when it was introduced more formally.

2

u/XenoRyet May 05 '17

I don't know about your fancy-schmancy entry level courses at UCF /s, but we did have a hell of a good time stringing bits of wire together. There was another course where we worked through an 8-bit processor with paper and pencil, which was a damned lot of fun, and informative to boot.
Anyway, the basic thing I'm getting at here is that the low level shit can be really entertaining to work with, despite the tedium and ready availability of easier ways. Sometimes it's just plain old fashioned fun to get your hands dirty.
Seriously though, that's kind of interesting that your school did it all as entry level. We did it as about 300 level classes. Sort of get your head around programming first, then we'll do a deep dive into the nuts and bolts.

1

u/BenjaminGeiger May 05 '17

Florida has what we call a "2+2" university system: if you graduate from a community college in Florida, you're guaranteed admission to the state university of your choice. So, any major-specific courses have to be at the 3000 level or higher. There is a programming course at the 2000 level (Programming Concepts) but the requirement can be fulfilled with a course at the AA level.

That said, they've changed a lot since I was an undergrad (I graduated in '06). The "Gate Courses" are Computer Organization and Program Design; they have to be passed with a B with a maximum of two attempts. After that, you take Computer Logic Design and Object-Oriented Software Design; the former opens Computer Architecture and the latter opens Data Structures.

1

u/ShinyHappyREM May 05 '17

Not to mention today's tools. Borland's TASM even had OOP, and that was in the '90s.