• FEATURED

View more

View more

View more

Image of the Day Submit

IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Did the first pong game use continuous collision detection?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

6 replies to this topic

Posted 25 December 2011 - 03:58 AM

The title says it all, I've been wondering how did the old pong game calculate collision detection, as the ball can move so fast but I never experience a collision miss as I play the game. What technique did it use back then? I don't believe it used continuous collision detection as the machine was way too limited in all aspect IMHO
the hardest part is the beginning...

Posted 25 December 2011 - 04:53 AM

What makes you think so? It's a simple line-vs-line test with one line being static and screen aligned, making the calulation even simpler.
That being said, I have actually no idea how they did it. ;)

Posted 25 December 2011 - 05:22 AM

line vs line test...but for the old pong isn't it too overkill? I mean I thought they used a simpler approach, but I don't know what it is so I ask you guys hehe..
the hardest part is the beginning...

Posted 25 December 2011 - 05:30 AM

actually I just read that it wasn't even programmed, but hardwired in an electronic circuit. =)

#5Waterlimon  Members

Posted 29 December 2011 - 02:51 PM

Well they could just calculate the time it takes for the ball to reach the next obstacle every time it changes direction and then check whether to make it bounce or let it continue along the path right?

o3o

#6EVIL_ENT  Members

Posted 29 December 2011 - 04:32 PM

actually I don't know how they did it but something like this should work:

//ball is an object with velocity (vx and vy) and a position (x and y)

while (gameIsRunning){
ball.x += ball.vx
ball.y += ball.vy
if (ball.x < leftPaddel.x || ball.x > rightPaddel.x){
//move ball back so it won't penetrate the paddels
ball.x -= ball.vx
ball.y -= ball.vy
//"collision response code"
ball.vx = - ball.vx
}
}


this will look like it froze for one frame every time it hits a paddel but nobody will notice

#7Narf the Mouse  Members

Posted 30 December 2011 - 10:34 PM

There's no reason it couldn't be continuous collision. 2D capsule vs AABB; pick the AABB based on the direction of the ball. Old games weren't necessarily simple; look up "Elite" some time.

#8boogyman19946  Members

Posted 05 January 2012 - 08:04 PM

There's no reason it couldn't be continuous collision. 2D capsule vs AABB; pick the AABB based on the direction of the ball. Old games weren't necessarily simple; look up "Elite" some time.

On topic of complicated games, iirc I've read an article about Pac-Man's AI. Turns out, that the behavior of the monsters wasn't all that random. I always thought they were random and the fact that they ganged up on me so quickly (not to mention that they followed me everywhere) was just a terrible fate of luck, but as I found out, I think one of the monsters was programmed to chase you directly and two would try to cut you off. The fourth one was more of a wild card. To me it seemed like a fairly complex AI at the time.

#9Snarkerd  Members

Posted 06 January 2012 - 02:52 AM

If you mean the really old one, then the game was analog. No processor, no algorithms. Collision was detected with comparator circuits comparing voltages representing the positions of the ball, paddles, and the field. Check this page for a circuit and description of an analog pong game. Fun stuff!

#10Tachikoma  Members

Posted 06 January 2012 - 03:43 AM

Some of the early games used some sort of sprite collision algorithm. It might been a simple AND operation between two opacity bit masks, representing each respective sprite. These were relatively fast, because you could test 8 pixels in a single AND instruction.
Latest project: Sideways Racing on the iPad

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.