Select Page

 

Scope

Problem Statement

Using all the available resources and functionality that LabView provides at our disposal, we are initially tasked with creating a simple game akin to Pong and encouraged to build upon it, adding mechanics and features that is not only an opportunity to use and demonstrate the practices and principles we have learned thus far, but to make something new or better from the simple Pong game foundation. For this reason, this project is going to revolve around the construction of an arcade style game that is a mixture of the games Centipede and Pong.

Game Objective

This objective of this game is to use the paddle to hit and reflect a ball in the effort to destroy the “centipede”. This centipede is made up of partition of 10 bodies, each body can be destroyed by the ball upon contact. The player must destroy all 10 bodies of the centipede or it’s regenerations before they get to the paddle to win the game. The centipede crawls across the screen closer to the paddle over time, and the player must use strategy to time the reflections exactly right off the boundaries, the paddle, or even remnants of destroyed partitions which may help or hinder you, to destroy the centipede entirely.

 

Game Outline

The starter Pong game was creating using an array of round LEDs to act like pixels on the screens, and the manipulation and status of each of those pixels determined the position of all elements of the game, such as the ball and the paddle, along with defining the boundaries of the game. In this application, in lieu of utilizing LED array, we have opted to use Picture Control instead. Picture Control lets us create 2D images of various geometric shapes and lines that follow a pixel coordinate system, akin to how the LED arrays were used in the past.

Because the core components of the game are Picture-based, many, if not all elements in the game are created and interconnected in some way or form within this pixel coordinate system. Some basic object sizes are fixed while object position and mechanics are determinant on other objects or boundaries in the game space, such as when the ball is reflected off the paddle, a wall, etc. There are also many core elements of the game in which object positions are continuously variable with the help of shift registers to keep track of, store, and pass new pixel location values to objects such as the paddle and ball. These forms of collision detection are determined by a mixture if Boolean comparison and logical gates, with aid from simple arithmetic and data structures based on the pixel location of each object in relation to each other, as well as those objects and the boundaries of the game screen.

This game VI is composed of closely interconnected subsystem which concern themselves with the core mechanics and features of the game. This includes the creation of each object, their positional values as pixel values, object collision detection, and other features such the scoring system, end-game conditions, and game pace timing, among others. A video demonstration of this game with live gameplay can be seen in YouTube here, or down below: