|
Assignment 0: Creating a Game |
You will familiarize yourself with the Godot game engine by building a game using C# scripting after downloading the Godot engine with .NET support. This game demonstration will show several basic aspects of a 2D game. At minimum: a playable character, an interactable level, win-lose conditions, and a GUI system.
Your demonstration will contain a minimum of the following objects:
The character must take at least 3 forms of unique input. For example, in a platformer, you would have at minimum move left, move right, and jump. In a dungeon crawler, you would have at minimum cursor targeting, move to target, and attack.
The level should have at least two forms of interactivity. This could be collidable objects that provide traversable geometry and collectable objects for a platformer, or a traversable board with interactable pieces for a board game.
The game should have some form of win and loss conditions. You will need to manage the state of the game to determine if the player has won or lost. If you are creating something like an infinite runner, there may not be a win condition per-se, but you should have some system to measure success as a substitute (i.e. a point system).
The game should have at least one form of heads-up display (HUD) that is rendered during gameplay, and at least one out-of-game menu such as a pause screen or a main menu to start the game. Both GUI systems should reflect changes in the game state as necessary.
The are several opportunities for extra credit in this assignment if you'd like to add the features below, but note that extra credit points will only be available after completing the minimum requirements.
Include some form of animation in the game. This could be done using SpriteFrames, or 2D skeletons as best suits your game. You can include animated 3D elements in the game, but the gameplay itself should remain 2D for simplicity.
Add sound effects and/or background music to the game. Both sound effects and background music should be context sensitive (e.g. a sound effect plays every time the character jumps, and the background music stops when the player loses).
Add non-playable characters (NPCs) to the game. These can be enemies, or allies, and you can choose how the player should interact with them, but they should exhibit some form of "intelligent" behavior. This can be as simple as moving back and forth along a platform or targeting the player with projectiles.
If you are working from the lab machines, you may skip this step. If you want to develop on your own machine, you must first download the Godot game engine version 4.3 with .NET to your development machine. If you'd like to build from source, you can, but it will involve more setup. The guides for building to Linux, Windows, and Mac are all here. Since you'll need to use C#, you'll need to modify these instructions to compile for .NET. You will need Python and SCons to successfully build, and you may need to take additional steps if you'd like to work with an IDE such as Visual Studio or XCode.
I would recommend looking through their documentation on starting in Godot as well.
Please put your project into a private GitLab repository, and add me and the TA (thesharkcs and Jmedich2). Make sure both of us are added as Developer or higher so that we can access the code. Create a branch called code-freeze within the repository that contains the following:
You'll be graded on how well you met the requirements of the assignment. D quality work is project compiles but features are not working. C quality work is features have been implemented in a way that is mostly working, but the project may be buggy or not scalable. B quality work is features are working, but the project may have scaling issues, or lack consideration for tuning and iterating, include difficult to read code. A quality work is features have been implemented in a robust, polished way that demonstrates consideration for tuning and scaling, including well-written code.