0% found this document useful (0 votes)
71 views20 pages

IT 238 Project SRS

Uploaded by

Ang Pinaka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views20 pages

IT 238 Project SRS

Uploaded by

Ang Pinaka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Software Requirements

Specification

for

ZombieZAP!
Final Version

Prepared by
Carl Angelo G. Angcana
Carlos L. Camar
Jayson A. Castro

Institute of Computer Science


College of Arts and Sciences
University of the Philippines Los Baños

January 11, 2024


Table of Contents
1. Introduction
1.1 Purpose
1.2 Document Conventions
1.3 Intended Audience and Reading Suggestions
1.4 Product Scope
1.5 References
2. Overall Description
2.1 Product Perspective
2.2 Product Functions
2.3 User Classes and Characteristics
2.4 Operating Environment
2.5 Design and Implementation Constraints
2.6 User Documentation
2.7 Assumptions and Dependencies
3. External Interface Requirements
4. System Features
5. Other Nonfunctional Requirements
5.1. Ability to play with peers online
5.2. Ability to play in your home with friends
Appendix A: Screenshots
Revision History
Name Date Reason For Changes Version
Initial October Additional requirements are amended 1.0
presentation 5, 2023
Final presentation Decemb Minor changes on the EC2 implementation 2.0
er 18, are amended
2023
1. Introduction
1.1 Purpose

The primary objective of this SRS is to outline the key features and functional requirements for the
development of ZombieZap, a Peer-to-Peer(P2P) Massively Multiplayer Online (MMO) Game
game. This proposal focuses on the design of an 8-bit peer-to-peer game.

We recognized that the need to integrate these lessons into a cutting-edge gaming experience was
not just an opportunity but a responsibility. This SRS will serve as our roadmap, guiding us toward
the realization of this extraordinary project.

1.2 Document Conventions

We used Google Document headings to emphasize the important key points in this document. Our
document may contain images, illustrations, and tabular information, each of which we have
labeled as figures and tables. Superclasses and subclasses are also defined as such.

The succeeding sections are arranged as follows: Section 2 starts the functional requirements
which represents the architectural design of this game. Section 3 shows the user cases, data flow
diagrams, and other logical representations of this project such as algorithms and flow charts. In
section 4, are the system features, which will preview our game, In section 5 are the other
nonfunctional requirements. Some other requirements are described in Section 6 and beyond.

1.3 Intended Audience and Reading Suggestions

This document is intended to propose an interactive and multiplayer game developed using
Python, PyGame, and other proposed libraries. It is intended for developers, testers, code readers,
and gaming enthusiasts.

1.4 Product Scope

We are developing a third-person shooting game similar to Contra. The story unfolds as three
soldiers enter a zombie-contaminated campus, where students have turned into zombies, and the
staff have become monsters. To prevent the virus contamination from spreading throughout the
city, the soldiers must complete the first four levels, each of which features a designated boss
monster. The final, fifth level is located at the top of the campus in the Science Laboratory. The
soldier's mission is to prevent the final explosion and conclude the game.
We will implement the game using Python, PyGame, and other game networking libraries with the
goal of making a peer-to-peer application. We aim to make our players share a consistent
experience across the network, similar to how they interact with the real world.

1.5 References

[1] What every programmer needs to know about game networking.


https://gafferongames.com/post/what_every_programmer_needs_to_know_about_game_networki
ng/

[2] Python-to-JavaScript Multimedia Framework https://www.pygame.org/project-Pyjsdl-2888-.html

[3] PyGame https://www.pygame.org/docs/

2. Overall Description
2.1 Product Perspective

The main characters of this story are the three soldiers: one is a marksman, one is a shooter, and
the last soldier is a nurse. They have been deployed from the Health Conservation and Protection
division of the Ministry of Health and are now prepared to battle against the zombies.

2.2 Product Functions

Functional requirements

● It will be 2D open-world.
● You will be able to customize your character.
● You will be able to play with another player
● You will be able to upgrade your weapon through power ups.

Nonfunctional requirements

● The user must experience a strong story.


● The game must be fun.
● The game must be atmospheric.
● The game must not crash.
● The game must be accessible for all user servers.
2.3 User Classes and Characteristics

2.3.1. Use Case Diagram

A. Creating and joining a session: Users can access the application when the game master
creates the session. The server time is defined by the game master, and once the game
master logs out of the game, it will still persist until the last user logs out.

Figure 1: Use case realization for the session.


B. The approach in the development of the application: Our application will adhere to the
principles of the Model-View-Controller (MVC) architecture, ensuring a clear separation of
concerns between the logic tier, interface view, and model. This approach will guarantee
well-organized code and the comprehensive implementation of all essential components
and features of the game.

Figure 2: MVC Approach

2.3.2. Class Diagram

On our class diagram, we defined game connection as the initial entry point and is the super class
of the interface.

Editable version: https://app.diagrams.net/#G14P-jbsmSQ1hJioKuGMs3CesL1KgJu3p


Figure 3: Class Diagram of ZombieZap
2.3.3. Network Diagram
2.4 Operating Environment

2.4.1 Hardware Requirements

The game is designed to operate on standard hardware configurations capable of running Python
and Pygame. Specific hardware requirements include:

● Adequate CPU and memory resources.


● Graphics card supporting Pygame's graphical demands.

2.4.2 Software Requirements

2.4.2.1 Operating System: The software is compatible with the following operating
systems:

● Windows
● macOS
● Linux

2.4.2.2 Development Platform: The development environment should include:

● Python Interpreter (3.x recommended)


● Pygame Library
● Standard Python Libraries (e.g., socket, random)

2.4.4.3 Networking: The game relies on networking capabilities and requires stable
network connectivity. Ensure that the specified port is available for communication.

● Cloud Computing with AWS EC2 Server


○ 1 EC2 Instance
○ 1 Amazon Linux on the EC2 Server
○ 1 static IP from AWS

2.4.3 Dependencies

The following dependencies must be satisfied:

Python: Compatible with version 3.x


Pygame: Installed via pip install pygame
This section of the Software Requirements Specification outlines the hardware and software
requirements, including the supported operating systems, development platform components,
networking considerations, and dependencies. Developers and stakeholders should ensure that
the specified operating environment is met to guarantee the proper functioning of the game.

2.5 Design and Implementation Constraints

3.5.1 Hardware Constraints

The game's performance is subject to the capabilities of the underlying hardware. While the
requirements are designed to be compatible with standard hardware configurations, constraints
may arise if the hardware lacks sufficient resources, particularly in terms of CPU, memory, and
graphics processing capabilities.

3.5.2 Software Constraints

3.5.2.1 Pygame Compatibility: The game heavily relies on the Pygame library for graphics
and event handling. It is crucial to ensure that the installed version of Pygame is compatible
with the code. Incompatibilities may arise if the Pygame version is outdated or if there are
conflicts with other installed libraries.

3.5.2.2 Python Version Compatibility The code is developed using Python 3.x syntax.
Compatibility issues may occur if an older version of Python is used. It is recommended to
use Python 3.x for executing the code.

3.5.3 Networking Constraints

The multiplayer functionality of the game relies on network communication. Design and
implementation constraints include:

● Stable Network Connection: The game requires a stable network connection for seamless
communication between the server and clients. Unstable connections may result in lag and
disrupt the gaming experience.

● Port Availability: The port (e.g. 54321) must be available for communication. Conflicts with
other applications using the same port may lead to connection issues.

3.5.4 Asset Availability

The game utilizes image assets located in the 'assets' folder. Constraints may arise if these assets
are missing or if the paths are not correctly specified. Developers should ensure the availability of
these assets for the proper rendering of game elements.
3.5.5 Security Considerations

While the current implementation focuses on functionality, security considerations, such as secure
communication protocols and authorization mechanisms, have not been extensively addressed.
Future iterations should include enhanced security features to protect against unauthorized access
and data breaches.

3.5.6 Development Environment

The development environment should include a suitable Integrated Development Environment


(IDE) that supports Python development, Pygame, and networking programming. Developers are
encouraged to use a Python virtual environment to manage dependencies and avoid conflicts with
other projects.

3.5.7 Error Handling

The code includes basic error handling mechanisms, but additional enhancements may be
necessary to provide more robust error reporting and logging. Improvements in error handling will
facilitate easier debugging and troubleshooting.

2.6 User Documentation

2.6.1. Introduction

● Welcome to ZombieZap!
● ZombieZap! offers an immersive multiplayer gaming experience filled with excitement and
challenges.

2.6.2. Getting Started

2.6.2.1 Installation: Make sure Python is installed. Run pip install pygame for Pygame.

2.6.2.2 Running the Game: Open a terminal, navigate to the game directory, and run
python game_script.py.

2.6.3. Game Controls

2.6.3.1 Player 1 Controls


Move: Arrow keys
Zap: Spacebar

2.6.3.2 Player 2 Controls (if applicable)


Move: WASD
Zap: Spacebar

2.6.4. Gameplay
Objective: Navigate, avoid zombies, and score points.
Scoring: +10 points per successful zombie hit.
Zombies: Move horizontally, avoid collisions.
Zap: Use spacebar to launch projectiles.

2.6.5. Troubleshooting
Ensure Python and Pygame are installed.
Check image assets in the 'assets' folder.
Verify port (e.g. 54321) availability.

2.6.6. Technical Support: For assistance, contact the developers

2.7 Assumptions and Dependencies

2.7.1. Assumptions

2.7.1.1 Hardware Platform: The game assumes users have access to a standard
computer system with a functional CPU, sufficient memory, and a capable graphics
card.

2.7.1.2 Operating System: ZombieZap! is assumed to be compatible with common


operating systems such as Windows, macOS, and Linux.

2.7.1.3 Network Connectivity: Stable and uninterrupted network connectivity is


assumed for a seamless multiplayer gaming experience.

2.7.2. Dependencies

2.7.2.1 Python and Pygame


The proper functioning of ZombieZap! relies on the availability and compatibility of
Python (version 2.7.3.x) and the Pygame library.

2.7.2.2 Image Assets


The game assumes that the required image assets are present in the 'assets' folder
relative to the game script.

2.7.2.3 Port Availability


The specified port should be available for communication to ensure proper
networking functionality.

2.7.2.4 Development Environment


Developers are assumed to have a suitable Integrated Development Environment
(IDE) for Python development.

2.7.2.5 Technical Support


For technical assistance, users are assumed to have access to email
communication.

3. External Interface Requirements


3.1. User Interfaces

3.1.1 Game Window

Description: The main interface where players interact with the game environment.

Elements:
● Player characters
● Zombies
● Score display
● Timer

3.2. Hardware Interfaces

3.2.1 Input Devices

Description: Devices used to control player characters.


Supported Devices: Keyboard

3.2.2 Display

Description: Hardware capable of displaying graphics.


Recommended Resolution:
Minimum: 1024x768

3.3.1 Python and Pygame

Description: Programming languages and libraries used for game development.


Versions: Python 3.x
Pygame library: Pygame

3.3 Operating Systems

Description: Platforms where the game can be executed.


Compatible Systems:
Windows
macOS
Linux

3.4. Communications Interfaces

3.4.1 Networking

Description: Communication between server and clients in multiplayer mode.


Port: Default: 54321

3.5. Other Interfaces

3.5.1 Image Assets

Description: Image files used for game graphics.


Location: 'assets' folder relative to the game script.

These external interface requirements define how users and systems interact with ZombieZap!,
specifying elements such as the game window, supported input devices, hardware and software
compatibility, networking details, and image asset locations. Developers and users can refer to this
section for a comprehensive understanding of the game's interface requirements.

4. System Features
4.1. Socket Networking: The game incorporates peer-to-peer network capabilities through socket
programming to create a seamless connection between players, currently, on our demonstration
we can accommodate up to 2 players including one server.

4.2. Login: The login feature is a minor but secure feature that requires players to state their
names upon entry point in the game, ensuring a unique gaming identity. This feature may be used
to help generate analytics in the future of ZombieZap!

4.3. Scores: The scores feature tracks and displays player performance within the game, this
includes all the achievements like the number of zombies successfully slapped.

4.4. Timer: The timer feature introduces time constraints to the gameplay where players need to
achieve specific objectives within a limited time frame.
5. Other Nonfunctional Requirements
5.1. Ability to play with peers online

5.1.1 Cloud implementation


When the server is running on our AWS cloud, the peer only requires the knowledge of the
IP address and port associated with the EC2 instance to establish a connection. From that,
they’ll be able to play with their peers online.
5.1.2 Secure connection
Players can register their names in the game and engage in gameplay with online peers, a
feature that is visually manifested on the game screen. The connection is secured, as the
EC2 instance server is accessed using the necessary IP address and port. To run the
server, a private key is also required.

5.2. Ability to play in your home with friends

5.2.1. Lightweight implementation with PyGame

The game only necessitates its potential users to install lightweight requirements,
specifically, a programming compiler and the gaming framework installed via Pip.
Appendix A: Screenshots

Figure 1: Main game screen with our official logo


Figure 2: Game Proper
Figure 3: Stage 1 backgrounds
Figure 4: EC2 Instance Server

You might also like