Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I am very eager to know how TV video games (which we all used to play in our childhood) were developed and on which platform.

I know how games are developed for mobile devices, Windows PC's and Mac but I'm not getting how (in those days) Contra, Duck Hunt and all those games were developed. As they have high graphics and a large number of stages. So how did they manage to develop games in such a small size environment and with lower configuration platform?

share|improve this question
3  
Jordan Mechner released the sources of Prince of Persia for the Apple II a few monthes ago: check it out here if you're interested. –  Laurent Couvidou Aug 3 '12 at 16:51
    
@lorancou thanks for sharing nice reference. –  Mihir Aug 4 '12 at 10:43

3 Answers 3

up vote 15 down vote accepted

The really old games - written for NES, Game Boy, SNES, and even older systems like the Atari family - were usually written in assembly language. This was necessary because C compilers of the time were either non-existant or not up to the task of generating sufficiently efficient code.

They were able to squeeze all of that stuff into small cartridges - for NES, even 256KB was a lot of data (though larger games existed) - because they used clever tricks, such as tile-based and low-color graphics, enabling a lot of data to be stored in very little space. Additionally, specialized chips for video and audio made it possible to handle these things more efficiently, without having to do everything in software.

Over time, C compilers became more efficient and devices became more powerful - N64, GBA and later devices all used C or even C++ by default - and assembly was reserved for small pieces of code where extra optimization was necessary in order to consistently meet the 60FPS target (or whatever framerate the game runs at).

share|improve this answer
4  
@Mihir old games weren't flawless by any means. But part of why they seem to run better than some recent games is because they are also far, far less complex than their modern counterparts. –  chaosTechnician Aug 3 '12 at 14:11
1  
@AndroidCoader, what you're looking for is called an emulator. They exist for many platforms, emulating the function of old systems on modern machines, but there are often a lot of legal issues/grey area associated with using them to play games. –  chaosTechnician Aug 3 '12 at 14:13
    
I believe that "Gran Turismo", when it first came out on the PS, had large amounts of code written in assembly because of the physics involved. –  casperOne Aug 3 '12 at 16:39

I remember writing simple games for the Commodore 64/Vic20 back in the early 80's. Some BASIC(believe it or not - some games were completely BASIC encoded - BASIC was on the machine's ROM so was a freebie) - but mostly assembler. Assembler was not consistant either - most machines had several commercial assemblers available (though like most back then, I wrote my own). Graphics on the C64 was very advanced for the time with raster hardware sprites (only 8 allowed on screen at a time - but these could be duplicated in software with some tricks, giving hundreds but only 8 varieties on screen at a time). They were 16 colour (palette - which could be changed at run time as could the sprite). Sprites were 2D of course.

The first "home computer" I played with (ignoring earlier scientific and business machines) was a ZX81 (my school had a ZX80 - but it was locked in a glass box like a museum exhibit - no one knew how to use it!). Imagine writing a game in 1/4 of a K (that's 256 bytes!) - now that's skill!

share|improve this answer

The video game systems or first generation consoles (before they were called consoles) from the late 1970s and still today are developed much like any embedded computer system.

An embedded computer is a computer (i.e. a microcontroller or microprocessor) in an electronic system that does not resemble a personal computer, or larger multi-user computer system (e.g. time-sharing system, mini-computers, and mainframes); one major difference being they typically lack of the now standard input/output via a video terminal and keyboard.

The development is done on another computer, these days typically a developer PC or workstation using a cross-platform development environment which produces executables for the target system - the video game system in this context, which is often be a different microprocessor architecture versus the development system's own (or host) CPU.

Two examples of current video game systems are the for Sony's Playstation 3 which is based upon the Sony, Toshiba and IBM's Cell processor, and for mobile devices (smart phones, tablets) which are often ARM based microprocessors.

As Michael Madsen indicated the majority of the programming was done in assembly rather than a high level compiled language, such as C or Pascal. This was necessary to fit the game's entire content within the confines of the highly constrained system (very little RAM and limited cartridge ROM capacity), as well as to access co-processors such as the Atari 2600's TIA.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.