Jump to content

Photo

Question for 1970s-1980s vintage console / computer homebrew developers


6 replies to this topic

#1 Major_Tom_coming_home OFFLINE  

Major_Tom_coming_home

    Chopper Commander

  • 169 posts

Posted Sat Jul 28, 2018 8:07 AM

I'm curious to know what kind of advantages / disadvantages modern programmers have when it comes to developing games for the 2600 and other older systems. For example you have computing power at your disposal that could have only been dreamed about in 1981 as well as solid state media, but you don't have Gary Kitchen working in the next cubicle. I'm under the impression that between 1977 and 1992 there must have been lots of programming tricks dreamed up to take full advantage of the 2600s limited, difficult to work with, yet flexible hardware.  I have always found it fascinating how Atari 2600 Combat would have looked right at home on a dedicated home pong type console in 1977, while Solaris could almost pass as an early NES title in 1987 and seems like it should have been manufactured with heat sinks integrated into the cartridge. Thanks!!!

 

PS (actually, I think the Atari 2600 does some things with Solaris that would cause the NES to slowdown, flicker, choke, crash, and catch fire. IMO that game is bat shit insane in the graphics department like a Sega Genesis running Halo LOL :) )



#2 Osgeld ONLINE  

Osgeld

    Quadrunner

  • 5,500 posts
  • Location:Nashville, TN

Posted Sat Jul 28, 2018 8:32 AM

Yea power storage tools maybe starting off one would write out code and hand assemble it

By the end a low cost computer had a hard drive better compilers and tools to make graphics and whatnot

(Start and end of the 2600s life that is)

Edited by Osgeld, Sat Jul 28, 2018 8:33 AM.


#3 tokumaru OFFLINE  

tokumaru

    Moonsweeper

  • 259 posts
  • Location:Rio de Janeiro - Brazil

Posted Sat Jul 28, 2018 11:54 PM

One thing that makes full screen animations easier on the 2600 is that the game program is responsible for drawing the entire picture every frame, meaning that with a few tweaks, a video frame can look completely different from the previous one. The NES, on the other hand, has a certain amount of video memory whose contents define what will be displayed on the screen, and changing large amounts of this memory from one frame to the next is usually not possible. All the dynamism of the 2600 comes at a cost though: not only are the graphics more limited, but a huge portion of the CPU time is spent on video generation and can't be used for actual game logic, so the complexity of the gameplay is affected as well.

As a programmer, I really enjoy working with 8-bit consoles because the constraints help define the scope of the software you write for them. If I code a simple platformer for modern PCs, I'll feel like I'm underutilizing all the resources that are available to me, and I don't find that fun. But on machines that have well defined limits that even a single programmer can easily reach, playing around those limits can be really fun, and if you're creative and/or clever enough to come up with something that was previously considered unlikely or even impossible on a specific platform, that comes with a really cool sense of accomplishment.

Working with retro computers, as opposed to consoles, isn't as fun for me, because the limitations aren't as well defined. Computers have different configurations, peripherals, add-ons, expansions, upgrades... Because of this, just the name of a machine doesn't convey a specific set of limitations your software has to respect.

#4 Jinroh OFFLINE  

Jinroh

    Dragonstomper

  • 656 posts
  • Catgirl Maid Lover

Posted Sun Jul 29, 2018 12:08 AM

I feel the same as Tokumaru, it is way more fun developing games for retro consoles than modern PCs and the like. Coming up with a great idea that pushes the hardware and figuring out the puzzle of how to implement it with limited resource is the best challenge.

 

As for modern advantages, definitely writing modern tools to convert graphics and things is very nice. No longer do you need graph paper or something similar to make sprites, but you can easily design them. (Though there are many editors for the A8 and other PCs which are nice.)

 

However like my personal A8 level editor, you can load images of levels and automatically convert them to A8 levels, and the program will subdivide and create the tileset. That would have taken forever or have been impossible on older PC hardware.


Edited by Jinroh, Sun Jul 29, 2018 12:08 AM.


#5 vidak OFFLINE  

vidak

    Moonsweeper

  • 445 posts
  • Location:Sydney, Australia

Posted Sun Jul 29, 2018 6:27 AM

I enjoy the Atari 2600 because it is very well engineered. The 6502 processor has a wonderful instruction set, and the TIA is an ingenious solution to drawing video graphics with such a small number of transistors. I have been developing video games in the Unity game engine, which uses a high level language called C#, and it is fun to do incredible things with so few lines of code, but it honestly doesn't feel special. I spend a lot of time on the Atari because it has such a big community. I know Unity also has a community, but it's much more corporate. For me, the Atari 2600 /is/ a challenge, but I don't develop almost exclusively on it because it is such a challenge. For instance I am very annoyed that the system only has 128 bytes of RAM, and there are only 76 CPU clock cycles per scanline. I am also very frustrated that the maximum size your cartridge banks can be are 4 kilobytes. If the 2600 had a faster processor, more RAM, and a bigger address space, I honestly don't think I'd ever leave it. The fact it only has 2 hardware sprites is not an issue for me. I find modern consoles and platforms to be very unparsimonious and inefficient with their resources and architectures. Like Hennessey and Patterson (?) of the RISC-V processor foundation say, right now, because Moore's Law doesn't apply anymore, we have to return to a lot of the design priorities that were manifested in computer systems like the Atari 2600 which are Domain Specific - they have a very specialised architecture which does a small number of things /very well/. I suppose that's the reason why the 2600 is so special to me. It only tries to do one thing very well, and it really succeeds at that. The more I work on the 2600, the more beautiful I think it is. It's so easy to use and its architecture helps you achieve what you want to do. I feel like the dawn of the era of the minicomputer, say, the mid-1960s, up until say... the early 1980s is my favourite era of engineering, both at the mainframe/minicomputer and microcomputer level. There are so many beautiful processors and computer architectures that were realised during that time. The DEC minicomputers like the PDP-8 and PDP-11, the Commodore VIC-20 and Commodore 64, the Atari 2600, and the Z80 processor, as well as the Motorola 680X series of microprocessors were all such beautiful beautiful inventions. I look at processors today and they're just churned out for making money instead of being carefully and beautifully engineered. I also like the education and 'hope' for computers that characterise the culture of the mid-60s to early-80s. You had to prosecute an /argument/ for the introduction of computers into everyday life, and it wasn't always taken for granted (why get the newest phone? Honestly: why?). Entire documentaries and TV series were invented for explaining the purpose and need for computers, and a lot of this culture was reflected in the applications towards which computers were put, like the Atari 2600. We have none of that now. I feel very passionately about the Atari 2600, but I still haven't really discovered the /essence/ of that passion, so I'm still working away at my stupid game, and maybe the next game, until I really try and grasp the core of what is driving me.

#6 JeremiahK OFFLINE  

JeremiahK

    Chopper Commander

  • 178 posts
  • Location:Indiana, USA

Posted Mon Jul 30, 2018 10:55 PM

Very well-put, vidak, I 100% agree.  I haven't played with Unity yet, mostly because I haven't learned C# (C++ seems to be the highest level language I enjoy coding in), but I mucked around in Blender's game engine awhile ago which uses Python for scripting.  It's pretty average I would say, and my biggest issue with it was that it doesn't let you control every little detail in realtime.  (They are planning on releasing a new game engine soon which will be much more powerful).

The Atari 2600, on the other hand, while being extremely primitive, gives extreme power to the programmer.  The limits of what the system is capable of are fairly known, although coders are constantly pushing the hardware to the max and doing things nobody thought possible.

I think the most beautiful thing about the system is the fact that the designers spent a lot of time adding inexpensive "features" to keep the manufacturing costs down while still allowing Pong and Tank to be possible, not realizing that they were creating an enormous (albeit delicate) universe of possibilities to be discovered.

For example, the VDEL registers.  Because the CPU is so slow, the VCS designers realized that many games would need a 2-line-kernel (where the CPU uses 2 scanlines to update the graphics instead of 1).  More specifically, they expected Player 1 to be updated on one line, and Player 2 on the next.  This would mean they could never be exactly side-by-side, which would be annoying.  To solve this, they added simple delay registers, that could delay the graphics of a player/missile/ball by a single scanline.  (Actually, it's more complicated than that, but this was the way it was intended to be used.)  And because they decided to add this feature, the 6-digit score and 48-pixel sprite are possible.  All because the CPU was too slow.  And this is just one of many examples.  Magic?  No, beauty.


Edited by JeremiahK, Mon Jul 30, 2018 10:56 PM.


#7 Mr SQL OFFLINE  

Mr SQL

    Stargunner

  • 1,946 posts

Posted Tue Jul 31, 2018 7:06 AM

I'm curious to know what kind of advantages / disadvantages modern programmers have when it comes to developing games for the 2600 and other older systems. For example you have computing power at your disposal that could have only been dreamed about in 1981 as well as solid state media, but you don't have Gary Kitchen working in the next cubicle. I'm under the impression that between 1977 and 1992 there must have been lots of programming tricks dreamed up to take full advantage of the 2600s limited, difficult to work with, yet flexible hardware.  I have always found it fascinating how Atari 2600 Combat would have looked right at home on a dedicated home pong type console in 1977, while Solaris could almost pass as an early NES title in 1987 and seems like it should have been manufactured with heat sinks integrated into the cartridge. Thanks!!!

 

PS (actually, I think the Atari 2600 does some things with Solaris that would cause the NES to slowdown, flicker, choke, crash, and catch fire. IMO that game is bat shit insane in the graphics department like a Sega Genesis running Halo LOL :) )

 

Writing a game that must race the beam in a small footprint is far more challenging for modern programmers than it was in the 70's and 80's.

 

The biggest disadvantage is that they can't optimize the way we could bitd for having had (relatively) tremendous computing power at their disposal.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users