Game Programming in Pascal - Pong

Game Programming in Pascal - Pong

Why do these programming talk-throughs?

In these programming talk-throughs you will learn how to create your very own Pong game using the FreePascal compiler and Lazarus integrated development environment (IDE). You will also learn many useful programming concepts that can be applied to any computer language.

History of Pong

The history of Pong, and a web implementation in Adobe Flash can be found at www.ponggame.org

Resources

Before you get started, you will need to install the FreePascal compiler and Lazarus Integrated Development Environment. Instructions to do this are here.

This is what we will be building in these talk-throughs: Pong working program for Windows.

Pong sound files (*.wav files) used in talk-through #19: Pong sound files

Pong source code (FreePascal) you will have written by the end of the talk-throughs: Pong source code.

Talk-through #1 - Create the Empty Application

  • Create a directory to store the game
  • Create an empty application
  • Save the application & main form with good name
  • Run the application to check all is working

 

Talk-through #2 - Set the Look and Feel

  • Make main form black
  • Set the size
  • Set the position on the screen
  • Set the border - none

 

Talk-through #3 - Catching the Escape Key to Exit

  •  Close game when ESC key is hit

 

Talk-through #4 - Draw a Ball (Rectangle) on the Screen

  •  Draw the ball

 

Talk-through #5 - Move a Ball (Rectangle) on the Screen

  •  Move the ball on the screen

 

Talk-through #6 - Simplify the Move Ball Code

  •  Simplify the Move Ball code

 

Talk-through #7 - Move the Ball in Response to the Keyboard

  • Make ball respond to user commands
  • Move Right - L key
  • Move Left - J key
  • Move Up - I key
  • Move Down - M key

 

Talk-through #8 - Computer to move ball around the screen

 

Talk-through #9 - Bounce ball at edge of the screen

 

Talk-through #10 - Move the ball on an angle

 

Talk-through #11 - Bounce the ball when its moving on an angle

 

Talk-through #12 - Add bats to game and move them in response to key board

 

Talk-through #13 - Limit the bats to the screen

  • Limit the bats to the screen
  • Tidy up code by using constants

 

Talk-through #14 - Bounce the ball on the bats

 

Talk-through #15 - Keep score

  • Declare variables to store the score
  • Initialize variables when game starts
  • Detect a miss and inc the correct score
  • Display the score on the screen
  • When score reaches x, announce the winner

 

Talk-through #16 - Draw some nets

 

Talk-through #17 - Ball damaging bat, net & score

 

Talk-through #18 - Instruction on the screen

 

Talk-through #19 - Sounds when the ball bounces

 

 Talk-through #20 - Tidy up the code

  • Fix the pause when the ball bounces
  • Make the game harder to play
  • Smaller game area
  • Make bats smaller
  • Make the ball faster

 

Toggle menu