cis3296s23 / applebaum-software-design-section-704-projects-spring-23

Project Proposals for Prof. Applebaum Section 704
0 stars 1 forks source link

Tetris #5

Open son2005 opened 1 year ago

son2005 commented 1 year ago

Tetris

https://github.com/son2005/tetron

Project Abstract

This document proposes a modified version of the classic arcade game, Tetris. Tetris is a puzzle video game created by Alexey Pajitnov in 1984. The game has a simple goal of destroying lines of blocks before it reaches the top. This modification version offers several additional modes and features. The four game modes include classic, sprint, marathon, and survival. The classic mode remains unchanged from the original game. In the sprint and marathon modes, the goal is to clear a set number of lines, 40 and 150 respectively, within the shortest amount of time. These two modes are scored based on the quickest completion time. Survival mode is more challenging, with random blocks appearing every 15 or 30 seconds and players aiming to survive as long as possible by clearing the lines and making as many combos as they can. The game will follow the standard Tetris Guideline and some aspects of gameplay may be customizable. Link to Tetris Guideline: https://tetris.wiki/Tetris_Guideline

Conceptual Design

This game development project will utilize the GDScript programming language and the Godot Engine framework. Godot Engine is a comprehensive, cross-platform, and open-source game engine that offers a wide range of features and tools for game development. GDScript, being a high-level language that resembles Python, offers a robust set of libraries and tools to support the game development process. The combination of these two technologies will result in a strong and feature-rich game. The game will be deployed on Windows and Web Browsers, and support for mobile devices may also be considered. Link to Godot Engine: https://godotengine.org/

Proof of Concept

Link to the tutorial: https://gdscript.com/projects/tetron/ Link to the repository: https://github.com/andrew-wilkes/tetron Andrew Wilkes created a version of the game Tetris using GDScript and the Godot Engine framework. The tutorial link explains the process of building a simple version of Tetris step by step. The code for the project can be accessed at the repository link. To run the project, the Godot Engine must be installed on the system. It can be downloaded from the provided link or through the Steam platform. Once the engine is installed, simply double-click on the "project.godot" file to launch the project. Here is a screenshot of the game, compiled and run using the Godot Engine.

image

Background

This game development project will build upon the basic version of Tetris created by Andrew Wilkes. The goal is to improve upon the existing version and add additional features to enhance the user experience. The main menu screen will be designed to allow users to choose from four game modes: Classic, Sprint, Marathon, and Survival. A separate option screen will be created to allow users to configure game settings such as music and sound. The playing screen will display the current game mode and provide users with the option to select a level. The existing source code can be used as a starting point for the classic mode, but modifications will be necessary to incorporate the additional features.

To improve the gameplay, the game will follow the Tetris Guideline, which includes the addition of several new features. These include a block preview queue, which will show preview of the next blocks to enter the playfield, a hold piece function that will allow users to switch the active block to the hold space and vice versa, a ghost block that will represent where a block will land if allowed to drop into the playfield, a lock delay mechanism that resets whenever the block is moved or rotated, a wall kick function that will handle the rotation of a block with no available space, and animations to be displayed when rows are removed.

Required Resources

The resources required for this project include familiarity with game development using Godot Engine, which can be acquired through the tutorial link provided. Familiarity with Python is an advantage as GDScript is similar to Python. Godot Engine can be easily obtained through the provided link or through the Steam platform.

trau3 commented 1 year ago

I like the ideas you suggested for different game modes of Tetris. This proof of concept is a great base for the project and it looks like it will be fun developing the game. There are a lot of fun features to add and a lot to learn about along the way. I don't have any experience with Godot Engine, but I am interested in learning it. I have experience with Python, so I think I would be able to learn GDScript quickly. Maybe getting a multiplayer setup for the game would be interesting too.

ruuffian commented 1 year ago

This project is interesting to me because I've never written anything in GDSCript- rather, I've never even heard of GDScript in the first place. On top of that, Tetris is such an iconic game that the instant name recognition makes it easy to explain to people- I can finally explain what my "tech degree" is to my parents! I would be excited to learn another language, and game programming is always something that has interested me but been too scary to break into on my own time.

I have a decent amount of Python experience, as well as experience in other scripting languages, so learning GDScript shouldn't be too much of a hurdle. This project looks like it is run locally, so an interesting feature that could be incorporated could be to host the game online for people to access in a browser. I'm not sure how well GDScript would handle in a browser, but it could be something to explore! As well as this, a lot of online Tetris clones have added a multiplayer "survival" mode as well, where players compete to see who can last the longest. This could also be an interesting route to go if the initial project goes well, but will likely take a lot of work.