VertexDon GoldinMark Sullivan, IIIAbstractThe goal for this project was to create a game loosely inspired by Asteroids, or, more recently, Geometry Wars. The player’s avatar is a ship, with which the player has two primary ways of interacting. The ship is able to move and shoot, but is able to do so in independent directions. Movement and shooting will each be accomplished through joysticks communicating with the labkit. The player’s goal is to survive as long as possible while a variety of enemy ships, each type having its own simple AI, spawn and try to destroy the avatar.Graphically, the goal is to create visuals reminiscent of vector graphics. That is, all in-game objects would be treated as 2D wireframes. This should permit an interesting aesthetic experience as well as permitting transformations such as scaling and rotation of game objects with a fair amount of ease compared to sprite based graphics.iTable of Contents1 Overview………………………………………………………………………………. 12 Description…………………………………………………………………………….. 32.1 Interface Module……………………...………………………………………. 32.1.1 Input Module………………………………………………………… 32.1.2 Rumble Module……………………………………………………... 42.2 Game Module……………………...…………………………………………. 52.2.1 Game Logic Module………………………………………………… 82.2.2 Movement Module…………………………………………………... 102.2.3 Collision Module…………………………………………………... 122.2.4 Random Number Module…………………………………………... 132.2.5 Arctangent Module…….…………………………………………... 132.3 Graphics Module………………….....………………………………………. 142.3.1 Shape Module……………………………………………………… 142.3.2 Bresenham Module………………………………………………… 152.3.3 Double-buffer Module……………………………………………… 152.4 Timing Modules……………………………………………………………… 153 Testing and Debugging………………...……………………………………………… 164 Conclusion……………………………………………………………………………... 18A Appendix………………………………………………………………………………. 19A.1 Top Level Verilog…………………………………………………………… 19A.2 Game Verilog……………….……………………………………………… 24A.3 Input Verilog……………………….………………………………………… 26A.4 Rumble Verilog……………….……………………………………………… 29A.5 Game Logic Verilog………….………………………………………………. 30A.6 Movement Verilog……………………………………….………………….. 40A.7 Collision Verilog…………………..………………………………………… 48A.8 Random Number Verilog……………………………………………………. 52A.9 Arctangent Verilog…..……………………………………………………… 53A.10 Base graphics Verilog…..………………………………………..………… 54A.11 SVGA Verilog…..………………………………………………………… 56A.12 Double buffer Verilog…..………………………………………………… 57A.13 Bresenham Verilog…..…………………………………………………… 59A.14 Shape module Verilog…..………………………………………………… 62A.15 Shape lookup table Verilog.…..…………………………………………… 64A.16 Ramclock Verilog…..……………………………………………………… 87iiList of FiguresFigure 1: PmodJSTK used for user input ………………………………………………… 3Figure 2: Implementation of SPI protocol ………………………………………………... 4Figure 3: Block Diagram of Input Module ……………………………………………… 4Figure 4: Modified Nintendo Gamecube controller, with new joysticks and working rumble……………………………………………………………………………. 5Figure 5: Block Diagram of Game Module…………………………………………… 7Figure 6: Communication with movement module……………………………………… 9Figure 7: Communication with collision module………………………………………… 10Figure 8: ID Convention…………………………………………………………………. 11Figure 9: Shape Module lookup table contents…………………………………………… 14Figure 10: Vertex in action!……………………………………………………………… 18iii1 OverviewAsteroids is name many people associate with the dawn of gaming. The player has the ability to spin, shoot, and accelerate forward. The player’s goal is to avoid colliding with the asteroids on the playing field. Shooting an asteroid caused it to break apart into several smaller ones. Video games have evolved a lot since then, and the ideas of Asteroids have been all but abandoned.As with most classic games, Asteroids remakes are in no short supply. However, one comparatively recent game has successfully expanded on this formula. This game is called Geometry Wars, appropriately subtitled Retro Evolved. Similar to Asteroids, the player controls a ship, is able to shoot at any angle, and must avoid being hit by on-screen obstacles. Also, a 2D wireframe art style mimics the true vector graphics of the original. There are several differences, however, which distinguish Geometry Wars. The player is able to move and shoot at independent angles. The player’s input controls the player’s velocity, instead of in the original where the input controlled the force and the ship kept its momentum. All enemies have different AI, whereas in the original most “enemies” were merely floating asteroids. This fresh take on an old formula was greeted
View Full Document