Skip to content

Latest commit

 

History

History
251 lines (160 loc) · 10.9 KB

srs.md

File metadata and controls

251 lines (160 loc) · 10.9 KB

Neverending Awesome Pdungeon

Software Requirements Specification

Version 1.0

Revision History

n/a

Table of Contents

1. Introduction
Purpose
Scope
Definitions, Acronyms, and Abbreviations
References
Overview
2. Overall Description
3. Specific Requirements
Functionality
3.1.1 GUI
3.1.2 Endless, procedurally generated dungeon
3.1.3 Themes
3.1.4 Enemies
3.1.5 Items
3.1.6 Combat System
3.1.7 Movement System
3.1.8 Different Terrains
3.1.9 Base
3.1.10 Character Creation
3.1.11 Skills
Usability
3.2.1 Accessability
3.2.2 Settings
3.2.2 Deployment
3.2.2 Required Training Time
Reliability
3.3.1 Bugs
Performance
3.4.1 Ressource utilization
Supportability
Design Constraints
3.6.1 Language
On-line User Documentation and Help System Requirements
Purchased Components
Interfaces
3.9.1 User Interfaces
3.9.2 Hardware Interfaces
3.9.3 Software Interfaces
3.9.4 Communications Interfaces
Licensing Requirements
Legal, Copyright, and Other Notices
Applicable Standards
4. Supporting Information
Software Requirements Specification

1. Introduction

1.1 Purpose

The SRS fully describes the external behavior of the application or subsystem identified. It also describes nonfunctional requirements, design constraints, and other factors necessary to provide a complete and comprehensive description of the requirements for the software.

1.2 Scope

The scope of this project consists of two parts - the "Dungeon Crawler" part and the base-building aspect.

1.3 Definitions, Acronyms, and Abbreviations

NAP [studio name]: Nightmare Adventure Productions
NAP [game]: Neverending Awesome Pdungeon
HP: Hitpoints (Health)
MP: Manapoints (Used to activate skills)
XP: Eperience Points GUI: Graphical User Interface

1.4 References

UC - Open doors

UC - Interacting with loot containers

1.5 Overview

Our Vision is to create a game, that combines features of a dungeon crawler game with those of a base-building system. Not only are you going to crawl through the dungeon and explore a new world, but you will have to buy upgrades at your base to gain access to more advanced equipment.

With „Neverending AWESOME Pdungeon – We needed a name edition“, we want to promote the players‘ curiosity and ambition by facing them with increasingly difficult challenges.

Technologies:

  • Our Project will be realised with Unity.
  • For Project Management we will use TeamCity.
  • IDE: VisualStudio

Planned subtasks / features:

  • creating the GUI
  • the dungeon part
  • endless, procedurally generated dungeon
  • implement different enemies
  • combat system (weapons)
  • random items for players to find
  • movement system
  • upgrade system / skill points
  • different terrains
  • skill tree
  • character creation
  • base
  • upgrades
  • build workshops to craft your own gear

2. Overall Description

3. Specific Requirements

3.1 Functionality

3.1.1 GUI

The Graphical User Interface of the game will show the most important information at a glance, without overwhelming the user by containing to much information. The GUI will contain Hit Points, Mana Points, and the item/the items the players character is currently using. To minimize the required training time for experienced players, the elements of the GUI are color coded with the same colors used in other games of the genre (eg. red for Hit Points, blue for Mana points).

3.1.2 Endless, procedurally generated dungeon

Each floor is generated by first randomly choosing a theme, placing different rooms and defining an entrance (staircase from the floor before) and an exit (staircase to the following floor). For each room, a path leading to all doors is defined, afterwards all enemies, terrain, items and obstacles are randomly placed in the rooms. Obstacles can not be placed on the paths between doors, which ensures the player can reach all adjacent rooms.

3.1.3 Themes

Floors have different Themes, which are assigned randomly on creation of the floor. The theme has influence on the terrain, enemies and items the player can find on the floor. The themes are visually represented by using different graphics for each theme.

3.1.4 Enemies

While exploring the dungeon, the player will encounter enemies which are trying to stop the player from progressing further by attacking them and reducing their HP to zero. Enemies will use different fighting styles (melee attacks, ranged attacks, magic) and have different vulnerabilities. This means the player has to change their strategy depending on the enemies they are fighting. The kind of enemies the player is going to encounter depends on the theme of the floor and the difficulty level. Killing enemies provides Experience Points (XP) and Gold to the player, which can later be used for upgrades.

3.1.5 Items

In the dungeon, players can find items that enhance their capabilities or give them new skills. These items are randomly placed when generating the dungeon, the items themselves are taken from a pre-defined pool of items and are not randomly generated. The items are classified by how powerful and how useful they are. The more powerful an item, the lower the propability to find it in a dungeon. Items found in dungeons can later be stored in the players base or can be sold.

3.1.6 Combat System

Both players and enemies can utilize different weapons and fighting styles in combat. Those fighting styles are melee, ranged, and magic. The player will be able to find different weapons for each fighting style. Magic is going to be the most powerful and versatile fighting style, this is going to be balanced by limiting the usage of spells with mana points.

3.1.7 Movement System

The game is going to use an 8-axis movement system. Movement speed can be enhanced or decreased by using items or spells.

3.1.8 Different Terrains

Depending on the theme, a floor can contain patches or consist entirely of terrain with different properties from the default terrain (eg. increasing or decreasing movement speed, healing or damaging the player). These properties can be both beneficial and harmful for the player. Different terrain is clearly marked by using different graphics.

3.1.9 Base

With the gold the player has found in the dungeon, they are able to build and upgrade their base. The players base consists out of different rooms. Each room has its own level and can be upgraded individually. Building and upgrading a room gives new options to the player.

3.1.10 Character Creation

The player is able to change the visual appreance of their character. The characters apprearance does not change its capabilities, but it helps the player to engage in the game and make it their own.

3.1.11 Skills

Skills are used to represent the characters capabilities and their specialization. After earning a certain amount of XP, the player is awared a skill point, which they can invest in one of their skills, further enhancing their capabilities. The skills are spread out in different skill trees, investing enough points in a skill tree unlocks new skills of that tree.

For a certain amount of gold, the player is able to retrain their character. Retraining a character means reallocating all of their skill point. Being able to retrain means players are not locked in into playing the game in one specific style. They can try out new stratigies easily, and mistakes in allocating skill points only have minor consequences instead of permanently ruining the players fun.

3.2 Usability

3.2.1 Accessability

The game should be playable on most modern desktop computers by being ressource-efficient and cross-platform. A keyboard/mouse-combo or a standard XBox or PlayStation controller should be sufficient.

3.2.2 Settings

The user should be able to customize different settings, such as ...

  • Volume
  • Controls

3.2.3 Deployment

The game will be published as a free download on our blog. Automatic updates will be available if published via game distribution platforms like Steam or the Google Play Store.

3.2.4 Required training time

The controls will be simple, intuitive and easy to remember. Mastering the game, however, requires a lot of practice and strategy.

3.3 Reliability

3.3.1 Bugs

The game should be as bug-free as possible. Any game-breaking bugs will be fixed as soon as possible, even after the release.

3.4 Performance

3.4.1 Ressource utilization

The game will be arguably ressource-efficient and should run on most computers that can run Unity at all - see https://unity3d.com/unity/system-requirements.
An internet connection will not be required for any purpose other than initially downloading the game or subsequently updating it.

3.5 Supportability

n/a (yet)

3.6 Design Constraints

3.6.1 Language

Due to Unity being the utilized game engine, we will be using C#. Javascript would be possible as well, but C# is more powerful.

3.7 On-line User Documentation and Help System Requirements

There will be a tutorial and a manual.

3.8 Purchased Components

Unity Personal is free to use for up to 100.000$ yearly income. Since we'll be publishing the game for free, this will not be an issue. Even if we someday publish paid DLCs, we're unlikely to cross this threshold.

3.9 Interfaces

3.9.1 User Interfaces

The game will feature a GUI.

3.9.2 Hardware Interfaces

The game requires access to a keyboard and mouse or a game controller, as well as some way to be displayed.

3.9.3 Software Interfaces

The only software that our game interacts with is Unity itself.

3.9.4 Communications Interfaces

n/a

3.10 Licensing Requirements

The game will be published under the MIT license.

3.11 Legal, Copyright, and Other Notices

Unity will be used for the game.

This list will be expanded as necessary.

3.12 Applicable Standards

We will adhere to common standards in game controls, such as using WASD-keys for movement.

4. Supporting Information

n/a