"Sprint 1" Project preparation - task tracking, source code/version control, and team building

Complete before your team starts Sprint 2

Objectives:

For the project in this course, you will be required to use task tracking software to coordinate with your teammates and document your progress on the project. Ideally, you will summarize your work at the end of each sprint by creating a burndown chart. Examples: using ZenHub and in AzureDevOps. You will also be required to use source/version control for your code. Your team may use either GitHub or AzureDevOps. There are a few factors that may influence your teams' decision. First and foremost, AzureDevOps supports two different flavors of version control, one like subversion (which was taught in Software II) and one like Git whereas GitHub only supports Git. At some point in your undergrad education you should learn Git, but it takes longer to learn and we've limited time to spend on it in class. Second, AzureDevOps is limited to 5 free accounts on a project. Lastly, there's a slight difference in how much documentation I have for each toolset, but I hope you're confident enough in your own research skills that this doesn't sway your decision.

Learning the tools (AzureDevOps version)

Learning the tools (GitHub version)

Github resources:

Team building

Depending on whether or not you have preselected a full team you will likely need to do most of the following during the first few days of Sprint2.

Big Picture Project Notes:

Starting with Sprint2 your team will begin a semester long project developing a 2D game engine. Currently, the standard project is an implementation of a 2D top-down adventure game, styled as the first dungeon of The Legend of Zelda (1986) with your own custom features added at near end of the semester. Teams may petition the instructor to implement a different 2D game, including ones from other genres such as a 2D platformer, but this will take more effort on planning, documentation, and communication of your project's functional requirements. If you do not have experience playing The Legend of Zelda or other 2D top down adventure games, please look into the resources here. Aside from playing the game itself, the most useful resources for requirements gathering are the game's user manual and videos of gameplay footage (useful search terms being: NES legend of zelda longplay speedrun).

You will be expected to read your teammates' code, and by the end of the project you should be able to reimplement the entire project given enough time. However, since you'll only be implementing a subset of the game you should start to think about which parts you would prefer to work on and discuss that with your teammates. Near the end of the project you'll be adding new custom features of your choice, so if there are particular options you want to try (Sprint5 page lists some), you should be make sure to be involved in the most closely related part of the project to ensure time and effort is spent on using abstractions and designing for ease of maintenance of it. This discussion on interests can also help in making sure critical features are assigned to someone with more experience or more time available to work on the project during the busier times of the semeseter.

Assessment:

Once your team has finished creating and tracking tasks as well as making code commits, contact your instructor during in-class team meeting time or during office hours to have your work checked. You may still ask to have your work for this activity checked during Sprint2. While this assignment is not graded with a numeric score, it is a sanity check on your usage of these project tools - be sure to ask for help if you're unsure on whether or not you're using the tools correctly.