Final Game Project

Capybara Cafe

Final Game Project: Your own game



Project Description

For the final assignment, you are free to leverage whatever you've done in previous assignments (or something entirely different) to create a game of your own choosing. You may reform teams, work with your current team, or work in pairs (the scope of your final game should reflect the size of this team). Your team will then propose a final game project to work on for the remainder of the semester.

There are not particular constraints on what type of game it can be, but please build it in Unreal as it's what we've primarily worked with during the semester. You will also need to have at least one "advanced" feature where you explore one or more of the UE4 subsystems in greater detail (for example, looking into shaders or particle systems, or creating more extensive network functionality or AI). You can also think about building plugins if you are interested in making tools for the editor or packages to use in games. Regardless of what you create, aim to have a "full" game done by the end of the semester: win/lose conditions, basic menu functionality, a clear game loop, etc.

Getting Started

Be careful not to get too ambitious! You should have a feel for what is reasonable scope, but there's still a danger of biting off too much. Make sure your proposal has a fail-safe capability built in. That is, make sure there is a base game that isn't risky to implement, and augment from there, so you'll be sure to have something working. It is much, much more important to have a simpler game finished than a too ambitious game that doesn't work.

Since we are allowing reorganization of teams, we hope members of each team will share a common vision for their game. You should take some time to discuss this early on to ensure everyone is working toward the same final product. Also teams will need to work with me during the first week of the project period to ensure we agree on team members, size, and scope.

Requirements

Your game can be in any genre you choose, but it must have all the features in place that constitute a "full" game. That includes: The final feature your game must include is an "advanced" feature. This just builds on top of everything you've already learned, or allows you to explore sub-systems we haven't had time to look into during the class. Some examples of things to potentially create as advanced features are:

As part of your writeup, highlight what you consider to be your significant extensions to current capabilities and the core technology you are focusing on.

  • Try to make sure that this one is a true game -- it should be playable and winnable without being excessively difficult due to crude gameplay elements or excessively easy due to poor design. As with previous projects, this requirement is intended to ensure you spend at least some of your time thinking about gameplay and implementing and tuning it rather than devoting all of your efforts to making a bag of special effects that is in no interesting sense a "game." As before, it does not mean that we'll be grading you on the quality of your game design beyond these basic requirements.
  • Technical Document

    1. Documentation: You will turn in a document with the following information:

      • Overall design of your game. What game genre are you implementing? How does the advanced feature you're looking into relate to your gameplay? What other systems will you need to implement to support this?
      • Software architecture and plan. How will you implement the game and its supporting systems? What sorts of classes will you build on? UML diagrams will work well here if you care to make them.
      • Division of labor. In terms of the delivered capabilities, who is responsible for which parts of the code, and what is your plan for meeting up? My experience is that teams, who meet up and code together on a regular basis create a more cohesive, functional project than teams where everyone works autonomously and tries to come together at the end. Keep this in mind during your planning stage.

    Alpha

    1. Project Demo: Each team must turn in short video demonstrating the current state of the game. This should show that you have at least classes created/partially implemented for any core features needed to make it functional, and have placeholders for any unfinished features. You should also include a report detailing what you have built, which teammates have contributed to which compontents, if your time is on schedule, and if not, what the setbacks are and how you intend to proceed to overcome them.

    Final Submission

    1. Completed Project: At the end of the project, you'll turn in a working game submitted via GitLab in the branch codefreeze along with a final report, README, and, separately, evaluations of each team member. In addition, for this final project, you will need to make a 30-60 second long video trailer to show off your game and illustrate how it is played. You may use any tools you like to help in the production of this video.

    Grading

    As with the other assignments, your primary grading criterion is to turn in a working game on time. As you progress in the project, you may need to scale up or down your original plans. Prepare a strategy for that in your proposal, as we've previously recommended. And remember that a good game is always better than a technology demo, so if you have to sacrifice some glitz for playability, do it.


    Last modified: 11/15/20 by Sarah Abraham theshark@cs.utexas.edu