# Requirements Medienprojekt - User Driven Game Development ## Abstract In this project Seref Güngör, Jan-Robin Aumann and Jan Larisch will create a Tower-Defense Game. Before the start of the main phase we will create the first version until the 2nd of December. The first version will be the minimal portrayal of the project. During this time we will also develop the website, which will host the game and allow users to create an account and vote for new ideas. When the website and the first version are done, Pascal Lessel, will send us four feature requests within two days to make sure that our implementation allows us to create features in such a short amount of time. This is the client phase. After the client phase we will start the testing phase, in which six people will put forward new features over the course of five days. We will implement two features each day. When the testing phase concludes, we will start the main phase in which between 30 to 50 people will play the game daily for three weeks and suggested new features. Each one of us, will recruit between 10 to 17 friends to take part in the study. It's important to make sure, that the people who took part in the testing phase won't take part in the main phase. Every day we will add two new features to the game at 7pm. Both new features will be picked each day, one at 9am and one at 7pm. <div style="page-break-after: always;"></div> ## First Version "First Version" refers to the state of the game and website at the beginning of the main phase / test phase. This description represents the bare minimum of features that have to be implemented before the other phases start. ### Game ![](https://i.imgur.com/I0tpCYL.jpg) *{Mock-Up Screenshot. Final Version will differ.}* * Player tower * The player tower is at the end of the walkway * It does not shoot automatically, the player has to aim the shots by clicking on enemies or in their direction with the left mouse button * The shots fly in a straight line until they hit an enemy or leave the screen * The player can shoot one bullet at once, they can shoot again if the bullet either hits an obstacle, leaves the screen or an enemy * It can't move * Infinite range * Autonomous towers * The player has the ability to place three autonomous towers on the screen * Creating an autonomous tower has a 10 second cooldown * Autonomous towers have a limited range * You can't change the position of an autonomous tower afterwards * Enemies * 50 enemies spawn in multiple waves at the start of the walkway * Enemies move slowly along the walkway * When an enemy reaches the player tower the game is over * When all enemies are killed, the game is won <div style="page-break-after: always;"></div> * Map * Consists of a curved walkway on which the enemies must walk * Towers can be placed around the walkway but not on it * If a user tries to place a tower on a walkway, a red X will appear to show them that this action is not possible * At the end of the walkway the player tower is placed * GUI * A timer that measures the time passed since starting the game in the upper right corner (e.g.: 01:34 minutes) * A counter that shows how many enemies were killed and how many remain in the upper right corner (e.g.: 23/50 Enemies) * A counter that shows how many waves were defeated and how many remain (e.g 3/5 Waves) * Button for placing autonomous towers (the button is greyed out if all autonomous towers are placed) * Aesthetics * Player tower is represented by a large red square with a small "barrel" to indicate the direction it's currently looking at * Autonomous towers are represented by small blue squares with a small "barrel" to indicate the direction it's currently looking at * Enemies are represented by green triangles * Shots are represented by black rectangles * "Peng" sound when towers shoot * Enemies make a sound when they die * Game Over * The end screen appears after an enemy reaches the player tower or all enemies are killed * The end screen shows the stats in case of a win or a game over in case of loss, a replay button and a suggest feedback button ![](https://i.imgur.com/LZcuxzW.jpg) *{Mock-Up Screenshot. Final Version will differ.}* <div style="page-break-after: always;"></div> ### Website * Users * Users will be able to register and create an account * Website * We will take screenshots and make videos of the entire website as well as the game, whenever a new version gets released * Questionnaires * Users will be presented with questionnaires * We only need to integrate questionnaires, the questions will be provided by Pascal Lessel * Game * Users will be able to play the current version of the game * Users will only be able to read textual descriptions of older versions * Below the Web-Version of the game a small written tutorial will be displayed, that explains how to play the game (e.g.: How to shoot with the player tower, how to place autonomous towers, how to win and how you can lose) * Suggestions * Users will be able to suggest new features * A suggestion will consist of a title and a main body * Users will be able to upvote and downvote as many suggestions of other users as they want * A user can only upvote or downvote a suggestion once, but they can take back their vote or change it * We will be able to comment on suggestions of users * The website will have a timer to show when the next feature will be picked * Users will be able to search for old suggestions and filter/sort them by version number * The website will always show which features we are working on right now and which ones will be released next * Data-Logging * The game will transmit data to our server for tracking purposes (on a per user basis) * The exact logged data will be decided before the test phase will start * History * Users will be able to look at a history that showcases the new features in the different game versions <div style="page-break-after: always;"></div> ### Game: First Version Requirements | Requirement Type | Feature | Priority | Estimated Time | Required Time | Complete Until | Completed | Name | | ---------------- |:----------------------- | --------- |:-------------- | ------------- |:-------------- |:--------- |:-------- | | Gameplay | Player Tower | Must-Have | 2 Hours | ~1 Hour | 02.12 | Yes | Seref G. | | Gameplay | Autonomous Tower | Must-Have | 2 Hours | ~2.5 Hours | 02.12 | Yes | Seref G. | | Gameplay | Enemies | Must-Have | 6 Hours | ~6.5 Hours | 02.12 | Yes | Seref G. | | Gameplay | Map | Must-Have | 6 Hours | ~5.5 Hours | 02.12 | Yes | Jan L. | | GUI | Timer | Must-Have | 1 Hour | ~1 Hour | 02.12 | Yes | Jan L. | | GUI | Counter | Must-Have | 1 Hour | ~1 Hour | 02.12 | Yes | Jan L. | | GUI | Autonomous Tower Button | Must-Have | 4 Hours | ~5.5 Hours | 02.12 | Yes | Seref G. | | Aesthetics | Sound and Textures | Must-Have | 2 Hours | 1 Hour | 02.12 | Yes | Jan L. | | Aesthetics | Game Over Screens | Must-Have | 2 Hours | ~1.5 Hours | 02.12 | Yes | Jan L. | | Fixing Bugs | Various Bugs | Must-Have | 4 Hours | 4 Hours | 0912 | Yes | Jan L. | | Fixing Bugs | Various Bugs | Must-Have | 4 Hours | 10 Hours | 0912 | Yes | Seref G. | <div style="page-break-after: always;"></div> ### Website: First Version Requirements | Requirement Type | Feature | Priority | Estimated Time | Required Time | Complete until | Completed | Name | | ---------------- |:---------------------------- | --------- |:---------------- | ------------- | -------------- |:--------- |:------------ | | Data-Logging | Deaths, Time-Played, etc | Must-Have | 2h per datapoint | 6h | 16.12. |yes | Jan-Robin A. | | Questionnaire | Integrate Questionnaires | Must-Have | 4h | 18h | 16.12. |yes | Jan-Robin A. | | Game Server | Server Structure | Must-Have | 8h | 28h | 16.12. |yes | Jan-Robin A. | | Suggestions | Upvote, Downvote | Must-Have | 8h | 16h | 16.12. |yes | Jan-Robin A. | | Suggestions | Comments | Must-Have | 6h | 8h | 16.12. |yes | Jan-Robin A. | | Suggestions | Feature-Suggestions | Must-Have | 4h | 16h | 16.12. |yes | Jan-Robin A. | | Suggestions | Current chosen suggestion | Must-Have | 2h | 6h | 16.12. |yes | Jan-Robin A. | | Suggestions | Search, Filter, Sort | Must-Have | 4h | 12h | 16.12. |yes | Jan-Robin A. | | History | Showcase version differences | Must-Have | 4h | 6h | 16.12. |yes | Jan-Robin A. | | User | Account Creation | Must-Have | 16h | 26h | 16.12. |yes | Jan-Robin A. | Additional time spent: * Database setups: 8h * Security Fortifications: 4h * Legal Information: 6h * Redesign Website: (included in Sections About Suggestions/History/Users) <div style="page-break-after: always;"></div> ## Client Phase The Client Phase of the study refers to two days in which Pascal Lessel will send us two new features on both days to test our implementation. This phase will help us learn how to develop new features in a single day, to prepare us for the following two phases. The client phase will take place on the 5th of December and the 6th of December. | Requirement Type | Feature | Priority | Estimated Time | Required Time | Complete until | Name | |:---------------- |:---------- | --------- |:-------------- | ------------- |:-------------- |:------------ | | Development | Daily Work | Must-Have | 2 x 4 hours | | 06.12 | Seref G. | | Development | Daily Work | Must-Have | 2 x 4 hours | | 06.12 | Jan L. | | Development | Daily Work | Must-Have | 2 x 4 hours | | 06.12 | Jan-Robin A. | <div style="page-break-after: always;"></div> ## Testing Phase In the testing Phase of the study, which will last from 16th of December to 21th of December, six people that will not be allowed to take part in the main phase, will suggested two features each day that we will have to implemented in a single day. The goal of the testing phase is to simulate the main phase as close as possible to test our feature creation workflow. The testing phase will also allow us to to collect new ideas for features that will probably be suggested during the main phase. Since we expect very similar feature suggestions in the main phase and the testing phase, the expected features list of the main phase can also be considered to be part of the testing phase. | Requirement Type | Feature | Priority | Estimated Time | Required Time | Complete until | Name | |:---------------- |:---------- | --------- |:-------------- | ------------- | -------------- |:------------ | | Development | Daily Work | Must-Have | 5 x 4 hours | | 21.12 | Seref G. | | Development | Daily Work | Must-Have | 5 x 4 hours | | 21.12 | Jan L. | | Development | Daily Work | Must-Have | 5 x 4 hours | | 21.12 | Jan-Robin A. | <div style="page-break-after: always;"></div> ## Main Phase In the Main Phase of the study, 30 to 50 players will suggest multiple features each day over the course of three weeks and vote for the two best. Both of them have to be implemented by us in a single day. In the following part of the document we collect some ideas of features that will probably be suggested during the course of the main phase. We try to implement as much of these features as possible before the start of the main phase. The Main Phase will take place in the beginning of January after the winter break. ### Game: Main Phase Expected Features * Player tower * Health-Bar to show how many hits the tower can take before being defeated * Autonomous towers * Health-Bar to show how many hits the tower can take before breaking * Different types of towers * Strong and slow shooting * Weak and fast shooting * Moving towers * High range * Poison towers * Enemies * Health-Bar to show how many hits the enemy can take before dying * Different types of enemies * Strong and slow movement * Weak and fast movement * Shooting enemies * Flying enemies * Explosive enemies * Map * Obstacles for enemies and player * Map events that change the map, or damage some structures * Volcano eruption * Meteor hitting the map * Lightning strike * GUI * Aesthetics * Textures/graphics for: * Player tower * Autonomous tower * Enemies * Map * Obstacles * Sounds * Background music * Game-Over music <div style="page-break-after: always;"></div> * General Gameplay * Progression systems * Shop to buy new items and weapons * Experience Points and talent trees to upgrade abilities * Difficulty Levels * Spawns more/less enemies * Higher/lower cost for building structures * Earn more/less experience and money * Multiplayer * Co-Op multiplayer * Asynchronous multiplayer * Various * To test our first Version, a client will send us four features that have to be implemented in two days <div style="page-break-after: always;"></div> ### Game: Main Phase Expected Requirements | Requirement Type | Feature | Priority | Estimated Time | Required Time | Complete Until | Completed | Name | | ---------------- |:----------------------- |:--------- |:-------------- |:------------- | -------------- |:--------- |:-------- | | Player Tower | Health-Bar | Must-Have | 2 hours | | 16.12 | | Jan L. | | Autonomous Tower | Health-Bar | Must-Have | 2 hours | | 16.12 | | Jan L. | | Autonomous Tower | Slow and strong tower | High | 4 hours | | 16.12 | | Jan L. | | Autonomous Tower | Weak and fast tower | High | 4 hours | | 16.12 | | Jan L. | | Autonomous Tower | Moving tower | Low | 4 hours | | 16.12 | | Jan L. | | Autonomous Tower | High Range | Low | 4 hours | | 16.12 | | Jan L. | | Autonomous Tower | Poison Tower | Low | 4 hours | | 16.12 | | Jan L. | | Enemies | Health-Bar | Must-Have | 2 hours | | 16.12 | | Seref G. | | Enemies | Slow and strong enemies | High | 4 hours | | 16.12 | | Seref G. | | Enemies | Weak and faste enemies | High | 4 hours | | 16.12 | | Seref G. | | Enemies | Flying enemies | Mid | 4 hours | | 16.12 | | Seref G. | | Enemies | Shooting Enemies | Low | 4 hours | | 16.12 | | Seref G. | | Enemies | Exploding Enemies | Low | 2 hours | | 16.12 | | Seref G. | <div style="page-break-after: always;"></div> | Requirement Type | Feature | Priority | Estimated Time | Required Time | Complete Until | Completed | Name | | ---------------- |:------------------- |:--------- |:-------------- |:------------- |:-------------- | --------- |:------------ | | Map | Obstacles | Must-Have | 2 hours | | 16.12 | | Jan L. | | Map | Event: Volcano | Low | 4 hours | | 16.12 | | Seref G. | | Map | Event: Meteor | Low | 4 hours | | 16.12 | | Seref G. | | Map | Event: Lightning | Low | 4 hours | | 16.12 | | Seref G. | | Aesthetics | Tower Design | Must-Have | 4 hours | | 16.12 | | Jan L. | | Aesthetics | Enemy Design | Must-Have | 4 hours | | 16.12 | | Seref G. | | Aesthetics | Map Design | Must-Have | 4 hours | | 16.12 | | Jan L. | | Aesthetics | Obstacle Design | Must-Have | 4 hours | | 16.12 | | Seref G. | | Aesthetics | Background Music | High | 1 hour | | 16.12 | | Jan L. | | Aesthetics | Game Over Music | Low | 1 hour | | 16.12 | | Jan L. | | General Gameplay | Progression Systems | Must-Have | 10 hours | | 16.12 | | Seref G. | | General Gameplay | Difficulty Setting | Mid | 6 hours | | 16.12 | | Jan L. | | General Gameplay | Multiplayer | Must-Have | 15 Hours | | 16.12 | | Seref G. | | Requirement Type | Feature | Priority | Estimated Time | Required Time | Required Time Until Now | Complete Until | Completed | Name | | ---------------- |:---------- |:--------- |:-------------- |:------------- | --- |:-------------- | --------- |:------------ | | Development | Daily Work | Must-Have | 23 x 4 hours | | 6 hours | 07.02 | | Seref G. | | Development | Daily Work | Must-Have | 23 x 4 hours | | 6 hours | 07.02 | | Jan L. | | Development | Daily Work | Must-Have | 23 x 4 hours | | 24 hours | 07.02 | | Jan-Robin A. | <div style="page-break-after: always;"></div> ## Various Requirements | Requirement Type | Feature | Priority | Estimated Time | Required Time | Complete Until | Completed | Name | | ---------------- |:------------------------------ |:--------- |:-------------- |:------------- | -------------- |:--------- |:------ | | Various | Creating Requirements Document | Must-Have | 10 hours | 10 Hours | 11.11 | Yes | Jan L. | | Various | Recruit Friends (Mainphase) | Must Have | 4 Hours | 3 hours | 05.01 | | All | | Various | Daily Screenshots | Must-Have | 1 hour | | 31.01 | | Jan L. | | Various | Daily Videos | Must-Have | 1 hour | | 31.01 | | Jan L. | | Various | Classify User Suggestions | Must-Have | 4 hours | | 31.01 | | Jan L. | | Various | Final Video | Must-Have | 6 Hours | | 31.01 | | Jan L. | <div style="page-break-after: always;"></div> ## Overall Estimated Time | Team member | Estimated Time | Required Time Until Now | Required Time Overall | |:---------------- |:-------------- |:----------------------- | --------------------- | | Jan-Robin Aumann | 170 hours | | | | Seref Güngör | 199 hours | | | | Jan Larisch | 192 hours | | | | All Members | 561 hours | | | <div style="page-break-after: always;"></div> ## Timeline | Phase | Start | End | | ------------- |:------------ |:---------- | | First Version | ------------ | 02.12.2019 | | Client Phase | 05.12.2019 | 06.12.2019 | | Test Phase | 16.12.2019 | 21.12.2019 | | Main Phase | 11.01.2020 | 02.02.2020 | <div style="page-break-after: always;"></div> ## Future Work | Future Work | Our Assessment | |:---------------------------------------------------------------------------------------------------------------------------------------------------- |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Daily release cycle of the same features as the main study but without voting. Is it as enjoyable for a new group of participants as the main study? | Seems like something that could be easily done after the main phase and would not require a lot of time. We suspect that people would be less engaged but experimental evidence could still be useful. | | Users generate ideas but developers choose which ones to implement. | Would certainly be easier for us, but it could promote laziness and railroading. On the other hand it could turn feature requests into a competition and would lead to a lot of strange/interesting ideas with more thought put into. We could even promote the competitive aspect by giving "prize money" to the person who suggested the best ideas / the most implemented ideas. | | Developers provide ideas but users vote on it | Users are probably a lot more creative than developers (especially because there are ten times more users). Would also lead to laziness and have less invested users. | | Developers choose highest voted game-idea and highest voted non game-idea | We like this idea, but this would require users to always have an idea for the website which wouldn't always be the case, especially when they are happy with the content of the website. | | Simulate Playerbase and vote for contradicting features (e.g.: Make the game harder/easier) | Would lead to a lot of back and forth (readding and removing features) which would lead to less overall progress. | | Longer Study to test if enjoyability is only part of the novelty | We all believe that most of the enjoability of the concept comes from the novelty and that it would probably die in a hand full of months. A bigger user group or making the game available on the public internet would increase its lifespan. | | Multiple shorter studies in different genres to find out about specific features a game in this genere needs to realize | We don't think this is a good way to find out about required features in a genre. Comparing the features of dozens of fully developed games in a single genre will probably lead to better results. | | Should idea lengths be limited, because shorters ideas were more popular in Crowdjump? | Shorter ideas would allow the developers more freedom in designing features which would lessen the influence of the community. |