Jump to content
IGNORED

Atari in the News - Cool BBC Article!


hizzy

Recommended Posts

Sorry if this was already posted, but here is a cool story about some scientists studying the game Entombed. 

 

Here is an excerpt:

 

You and your team of archaeologists have fallen into the ‘catacombs of the zombies’.” A miserable situation, to be sure. But this was the chilling trial that faced players of Entombed, an Atari 2600 game, according to the instruction manual.

The catacombs were an unforgiving place. A downward-scrolling, two-dimensional maze that players had to navigate expertly in order to evade the “clammy, deadly grip” of their zombie foes. An archaeologist’s nightmare.

Released in 1982, Entombed was far from a best-seller and today it’s largely forgotten. But recently, a computer scientist and a digital archaeologist decided to pull apart the game’s source code to investigate how it was made.

 

There was always something intriguing about Entombed, recalls John Aycock at the University of Calgary, in Alberta, Canada. And because it had fallen into obscurity, it hadn’t been pulled apart and analysed in depth before – one the main reasons Aycock and his co-author Tara Copplestone at the University of York, UK, were drawn to Entombed as a subject to study over the other 500 games made for the Atari 2600 console.

 

 

Link to the full article:

 

http://www.bbc.com/future/story/20190919-the-maze-puzzle-hidden-within-an-early-video-game

Edited by hizzy
  • Like 2
Link to comment
Share on other sites

That is an interesting article.  The big part is that these two researchers are baffled by the logic behind Entombed's maze generating algorithm.

 

Have any of the homebrew authors or anyone else who disassembles 2600 games taken a look at Entombed's code?  If so, is it doing anything special when it generates the maze?

 

 

Link to comment
Share on other sites

11 hours ago, hizzy said:

I would love to see Andrew Davies or Thomas Jentzsch chime in. I'm sure the programmers on the forums would be able to "crack" this mystery!

 

Well, I was having a think about it.  Think about generating a maze "as you go... left to right, top to bottom".  Basically what you'd like to have is some context about the current position. Do you make it black, or white?  So the algorithm has info about 5 surrounding squares. Those two to the immediate left on the current line, and the three above the current position. From those you form a 5-bit index into the "magical mystery table".  That table gives you the next white/black (or random).  Now consider if your index was zero - that is, NO walls anywhere. You definitely don't want to generate another blank because that's all the maze would be - blank. So I predict that entry 0 is a 1.  Likewise for entry 31 - it will be blank because you don't want a completely solid maze.  Now the rest of it is basically "instructions" on what to do in certain situations. When there are clear blocky corners, you'd want to put in a blank. When there are clear blanky bits, perhaps you'd want to put in a solid. I suspect this is just sort of trial-and-error hardwired, with 1's and 0's put in for situations where you need to make a deifinite decision - and where it really doesn't matter - then put in a random block/blank.  I may be missing something but I don't think it's much more than what I have described.  Basically a sort of state machine that "responds" to particular patterns by generating a block, a blank, or a random block/blank.  The programmer would have fine-tuned it by generating mazes and where the result became too "blanky" then he would adjust one of those 0's to a 1. And vice-versa. And you'd try to have as many randoms in there as you could fit and still generate good mazes. By analysing the generated maze and looking at those 5 context squares around any position, you could decide if the table entry was doing the right thing or not, and adjust it. With not too many iterations, you'd have the result used in the cartridge. That's my take on it.

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Emtombed was developed by Western Technologies.  Steve Sidley programmed the game but the finished product apparently used a simplified version of a more complex maze algorithm that had been developed by Paul Allen Newell (programmer of Towering Inferno).  Newell had assistance from Duncan Muirhead, a fellow WT programmer and math grad student from UCLA who I'm told spoke with a thick Scottish accent, smoked like a chimney, and would code in long marathon sessions before disappearing for days at a time.  Muirhead wasn't around WT very long (most employees weren't) and seems to have left to pursue an interest in sailing vessels.  He'd probably be the one to talk to but he may be difficult to get a hold of.

Relevant reading for those interested...

http://www.ataricompendium.com/archives/interviews/paul_allen_newell/interview_paul_allen_newell.html

https://prism.ucalgary.ca/bitstream/handle/1880/51724/2016-1090-09.pdf

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

This sort of reminds me of the algorithm the Telengard uses to generate it's maze. It uses a algorithm based on your current location in the maze and three hard coded constants. They must have had to hand tune those constants until they got acceptable mazes. You can read the details here:

 

http://atarihq.com/danb/Telengard.shtml

Link to comment
Share on other sites

On 9/25/2019 at 7:51 AM, Thomas Jentzsch said:

After briefly looking into the code, I am not 100% sure that they did understand it correctly.

 

However, the code is really not easy to understand, so I could be wrong too. :)

Where did you find the code? I'd love to look through it.

Link to comment
Share on other sites

On 9/24/2019 at 8:49 PM, Andrew Davie said:

 

Well, I was having a think about it.  Think about generating a maze "as you go... left to right, top to bottom".

Pretty sure one of the schoolkids on Scratch has posted an algorithm like that.  It'll be in this collection of maze generators:

 

  https://scratch.mit.edu/studios/403013/

 

Look for "Ellers algorithm" http://weblog.jamisbuck.org/2010/12/29/maze-generation-eller-s-algorithm

 

Here's another one... http://people.cs.ksu.edu/~ashley78/wiki.ashleycoleman.me/index.php/Sidewinder_Maze.html

 

(there are others that work similarly, can't remember the names right now.  You can read about maze algorithms in general at https://www.astrolog.org/labyrnth/algrithm.htm )

 

Just keep scrolling down, the page refreshes with more when you hit the bottom. 

(All those Scratch programs have source available, just select it and click "See inside")

Edited by gtoal
added link
Link to comment
Share on other sites

It also reminds me of how Battletech:  Crescent Hawk's Inception generated its terrain.  It begins with a grid about 1/256 the size of the total map, then uses a generated table of random numbers to fill in inbetween terrain values, and finally uses a fixed table of terrain tiles to generate each 8x8 square (which itself is doubled each direction, and also modified for elevation).  This allows it to procedurally generate any part of the terrain as you move over it, though in their case they want to create the same overall map.  You'll notice those common patterns in the final product, but the overall terrain does have a more naturally-evolved feel.

Link to comment
Share on other sites

I just had a chance to read the article with the maze generation algorithm explained as Drunken Monkey Programming Kung-Fu ...

 

DrunkenMonkeyKungFu.jpg.48912971e9c1c7aa319bbad6858776f2.jpg

 

Modern computer scientist often posture and stike a pose like Madonna when they don't understand, inviting non-programmers to play a game of Emperors new clothes because they understand even less:

Anybody can be a programmer today writing kiddy script to call libraries like the computer scientist in the article identifying drunken monkey kung-fu coding as the transcendential path to amazing code

 

Researcher should stop vogueing long enough to turn down the pomposity and take a retro programming course; many are available online on AtariAge. Ian Bogost, a professor at Georgetown and the author of Racing the Beam has an excellent study curriculum that could bring the scientist up to speed if they have the potential.

 

Not everybody does and that's why there are only a few of us today writing low level drivers, kernels and database cores professionally.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...