IT 238 Project SRS
IT 238 Project SRS
Specification
for
ZombieZAP!
Final Version
Prepared by
Carl Angelo G. Angcana
Carlos L. Camar
Jayson A. Castro
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.
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.
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.
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
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.
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
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.
On our class diagram, we defined game connection as the initial entry point and is the super class
of the interface.
The game is designed to operate on standard hardware configurations capable of running Python
and Pygame. Specific hardware requirements include:
2.4.2.1 Operating System: The software is compatible with the following operating
systems:
● Windows
● macOS
● Linux
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.
2.4.3 Dependencies
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.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.
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.
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.
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.1. Introduction
● Welcome to ZombieZap!
● ZombieZap! offers an immersive multiplayer gaming experience filled with excitement and
challenges.
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.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.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.2. Dependencies
Description: The main interface where players interact with the game environment.
Elements:
● Player characters
● Zombies
● Score display
● Timer
3.2.2 Display
3.4.1 Networking
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
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