Does anyone know any good books or websites or the like where I can look at some of the source code for old pulbic domain games? Or perhaps just know enough about it to discuss the topic?
Or perhaps anything about the history of game programming.
I'm mostly curious because I've been playing a lot of Sega Genesis and I'm rather amazed by the rapid and steady progression of things like frame rates and graphics over the course of the systems lifespan.
Sorry I can't be of more help. It's not really my forte, but looking into Z80 chip programming would be a good start (since that's the gameboy/NES'/MSX's main processor). Here's the wiki to the Z80: http://en.wikipedia.org/wiki/Zilog_Z80
If I can find the site with tile/sprite explanations, I'll post it here.
Bartholamue on
Steam- SteveBartz Xbox Live- SteveBartz PSN Name- SteveBartz
The Atari 2600 predates C++ by about 6 years, so it's safe to say that nobody was writing Atari games in C++.
I believe Atari 2600 games were limited to something like 4kB and ran on a processor clocked at something like 1MHz. They were written in assembly because anything else was too inefficient to provide performant games. They also didn't have engines at that point. I imagine there was a fair amount of code re-use by SNES games, and probably on NES for companies that put out several similar titles, but Atari games had to be so tightly coded that you simply couldn't use boilerplate engine code.
If you skip ahead to the Playstation era, games were primarily written in higher-level languages. You're going to find a lot of assembly and not much else throughout the Atari, NES, and SNES eras. Even by the time that the Playstation rolled around, most 3d games had graphics engines either written in assembly from the ground up or else written in some higher level language, compiled to assembly, and then hand-optimized to enhance performance. Nowadays consoles are beefy enough and rendering engines so complicated that it is just not worth the effort to optimize at that scale.
I'm mostly curious because I've been playing a lot of Sega Genesis and I'm rather amazed by the rapid and steady progression of things like frame rates and graphics over the course of the systems lifespan.
A lot of this was developers really pushing things down to the metal as they learned more tricks about the architecture. In addition, cartridge-based games started getting special chips included in the cart for even fancier stuff.
The Sonic Retard made some pretty interesting threads on this forum where talked about some of the cool bits of the Sonic source code. Lemme see if I can dig some up. Hmm, this is the only one I could find. It's kinda long and stuff but I'm pretty sure I recall there being parts in there where he got into the nitty gritty of how they were moving their sprites and stuff.
Posts
If you are interested in Mega Man's main code, here's the website:
http://bisqwit.iki.fi/jutut/megamansource
Sorry I can't be of more help. It's not really my forte, but looking into Z80 chip programming would be a good start (since that's the gameboy/NES'/MSX's main processor). Here's the wiki to the Z80: http://en.wikipedia.org/wiki/Zilog_Z80
If I can find the site with tile/sprite explanations, I'll post it here.
Of course I'd be getting more out of this if I was proficient in things other than BASIC, C++, and Java.
When did game coding move past assembly language?
Just search some Atari and Sonic The Hedgehog game code. It'll color it well for you. A lot of it is available online.
I believe Atari 2600 games were limited to something like 4kB and ran on a processor clocked at something like 1MHz. They were written in assembly because anything else was too inefficient to provide performant games. They also didn't have engines at that point. I imagine there was a fair amount of code re-use by SNES games, and probably on NES for companies that put out several similar titles, but Atari games had to be so tightly coded that you simply couldn't use boilerplate engine code.
If you skip ahead to the Playstation era, games were primarily written in higher-level languages. You're going to find a lot of assembly and not much else throughout the Atari, NES, and SNES eras. Even by the time that the Playstation rolled around, most 3d games had graphics engines either written in assembly from the ground up or else written in some higher level language, compiled to assembly, and then hand-optimized to enhance performance. Nowadays consoles are beefy enough and rendering engines so complicated that it is just not worth the effort to optimize at that scale.
A lot of this was developers really pushing things down to the metal as they learned more tricks about the architecture. In addition, cartridge-based games started getting special chips included in the cart for even fancier stuff.