The goal of this project was to create a 2-D Pong game using Rust, a modern systems programming language known for its speed, safety, and low-level control. The game was built using the Nannou game engine, which was chosen for its simplicity and ease of implementation.
- Project Member: Hieu Vu
- Email: hv5@pdx.edu
The project was initially planned as a personal blog built with Rust and a web framework. However, considering the effort required to implement a blog with features like MVC architecture, a PostgreSQL database, and both front-end and back-end web pages, the decision was made to change the project to a game development project.
The new project involved creating a 2-D Pong game using the Rust programming language and the Nannou game engine. Nannou was chosen due to its simplicity and the ease of understanding its codebase.
- User Interaction: Players control the game using the left and right arrow keys on the keyboard to move the paddle.
- Scoring: Each time the paddle hits the ball (preventing it from falling below the paddle), the player's score increases by 1.
- High Score: The highest score achieved by the player is stored and updated at the end of each game.
- Difficulty Levels: The game features three difficulty levels based on the player's score. As the level increases:
- Level 1: The ball speed increases, and random obstacles appear on the screen.
- Level 2: The ball speed doubles.
- Level 3: The ball speed increases gradually over time.
- Ball Direction Control: The player can change the direction of the ball by hitting the left or right arrow key when the ball hits the paddle. This helps redirect the ball towards a desired movement direction.
- Additional Obstacles: Implement different shapes for obstacles, such as circles, triangles, and ellipses, to increase gameplay variety and challenge.
- 3D Gaming Upgrade: Explore possibilities for enhancing the game's visuals and adding a 3D element to the gameplay.
- Mouse Control: Add support for controlling the paddle using the mouse, providing players with an alternative input method.
The final project involved creating a 2-D Pong game using Rust and the Nannou game engine. The game features user-controlled paddles, scoring, high score tracking, and multiple difficulty levels. Future improvements include adding additional obstacle shapes, exploring 3D enhancements, and incorporating mouse control for paddle movement. Overall, the project achieved its goal of developing a playable game using Rust and demonstrating proficiency in game development concepts.