You are on page 1of 7

DUSK

A Mini-Project Report
Submitted
ubmitted in partial fulfillment of the requirements
for the degree of

Bachelor of Technology
in
Computer Science & Engineering
by

Sushant Singh, 2101610100220


Shivam Saxena, 2101610100204

Under the Esteemed Guidance of


Ms. Surbhi Verma

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Krishna Engineering College, Ghaziabad


Ghaziabad- 201007
Affiliated to

Dr. A.P.J. Abdul Kalam Technical University, Lucknow


2023-24
Content

S.no Title Page no.


1. Introduction 1
2. Software & hardware requirement 2
3. Methodology 3
4. Deliverables 4
5. Stakeholders 5
6. References 5
KRISHNA ENGINEERING COLLEGE
(Approved by AICTE & Affiliated to Dr. APJ Abdul Kalam Technical University (Formerly UPTU), Lucknow)
Department of Computer Science and Engineering (Artificial Intelligence)

Mini
Mini-Project Lab (KCS-554)

1.1 Introduction:

1.1.1 Motivation:
To create a straightforward Python
Python-based FPS game named “DUSK”,, because of deep passion
for game development.Our motivation is rooted in the belief that by using a widely accessible
and easy-to-understand
understand programming language like Python, we can open the doors of game
development to a broader audience.

Additionally, this project


ct is fueled by the desire to demonstrate the potential of Python in
tackling complex gaming concepts, such as ray casting.

Ultimately, the motivation behind this project is to provide a stepping stone for individuals
interested in game development, using Python as a vehicle to bridge the gap between game
design enthusiasts and the captivating world of FPS games.

1.1.2 Project Objective:


The core objective of this endeavor is to create a functional first-person
first shooter (FPS)
game in Python, utilizing ray casting techniques for 3D projection.This project aims to
provide a tangible demonstration of the application of ray casting principles within a
game and utilizing the fundamentals of 3D projection and game development.

1.1.3 Scope of the Project


Project:
The scope of this pro
project
ject encompasses the creation of a basic first-person
first shooter (FPS)
game in Python, employing ray casting as the method for achieving 3D projection. The
project includes the development of essential game mechanics and functionalities
necessary for a playab
playable
le FPS experience.The project does not extend to the development
of a full-featured
featured FPS game with advanced gameplay elements, extensive level design, or
complex enemy AI. While it introduces ray casting for 3D projection, it does not explore
advanced rendering
ring techniques or sophisticated graphics.

In conclusion, the project's scope focuses on creating a foundational FPS game using
Python and ray casting, targeting simplicity and accessibility, with basic game
mechanics.
1.2 Software and Hardware requirements:
The hardware prerequisites for developing and running the Python-based FPS game utilizing
ray casting for 3D projection are kept to a minimum to ensure accessibility and ease of use.
The key hardware components needed include a standard computer system with a compatible
operating system (e.g., Windows, macOS, or Linux) and basic input and output peripherals.

1) Computer System: A standard personal computer or laptop with a compatible operating


system that supports Python development and execution. The specific hardware
specifications can be quite modest, including a processor, RAM, and storage sufficient for
running the chosen operating system and Python development environment.

2) Input Devices: Basic input devices, including a keyboard and mouse, are necessary for
both game development and gameplay. These input devices will enable users to interact
with the game during development and to play the FPS game once it's completed.

3) Output Display: A monitor or screen capable of displaying Python applications and games
is required. The display should support the chosen operating system's resolution
requirements to ensure proper rendering of the game.

4) Audio Output: If the game includes sound effects or background music, a system with
audio output capabilities, such as built-in speakers or external headphones or speakers, is
necessary to experience the audio components of the game.

These hardware requirements are intentionally kept basic and straightforward to ensure that the FPS
game can be developed and enjoyed on a wide range of computer systems, promoting accessibility and
inclusivity in the gaming experience.
1.3 Proposed Method:
1) Conceptualization and Planning:
Creation of a basic first-person shooter (FPS) game in Python, employing ray casting as the
method for achieving 3D projection. The project includes the development of essential game
mechanics and functionalities necessary for a playable FPS experience.The project does not
extend to the development of a full-featured FPS game with advanced gameplay elements,
extensive level design, or complex enemy AI. While it introduces ray casting for 3D
projection, it does not explore advanced rendering techniques or sophisticated graphics.

2) Environment Setup:

Editor: For the development of the project “PyCharm” a python IDE(integrated


development environment) was used.

Libraries: The python game development library “pygame” was used for the development
of the project. Other libraries that were utilized in the development process were math and
os. The math library was used to perform trigonometrical calculations for 3D projection
using raycasting.

3) Basic Game Framework:

Game Loop:

The game loop is at the heart of the framework. It controls the flow of the game by
repeatedly executing essential functions such as updating game state, rendering graphics,
and handling player input. A properly structured game loop ensures smooth gameplay.

Rendering Window:

The rendering window provides the visual canvas where the game world and its elements
are displayed. It defines the dimensions, resolution, and aspect ratio of the game screen.
This window is where ray casting techniques will be applied to create the 3D projection
effect.

Player Input Handling:

Handling player input is vital for player interaction with the game. This includes capturing
keyboard and mouse input to control the player's movement, aiming, and other actions
within the game world.

Player Character:

The player character is the central entity within the game. It encompasses the player's
representation, health, ammunition, and other attributes. The framework sets up the player
character and its initial properties.
Collision Detection:

To create a responsive and immersive game world, collision detection is necessary. The
basic framework should include collision detection mechanisms to detect interactions
between the player and the game environment, as well as any oth
other
er entities.

4) Ray Casting Implementation


5) Testing and Debugging
6) Optimization

1.4 Deliverables
Deliverables:

Output of Raycasting 3D projection:


1.5 Stakeholders:

1) Developers and Creators:

The developers and creators of the FPS game, including programmers, designers, and artists, are
deeply involved in the project. They are responsible for the conceptualization, design, and
implementation of the game.

2) Players:

Players, both potential and existing, are the primary customers and end-users of the FPS game.
Their experience, enjoyment, and feedback are crucial to the success of the project.

3) Educational and Tutorial Platforms:

Platforms that provide educational content and tutorials on game development may be affected
by the project. The FPS game's potential use as a learning tool could attract the attention of these
platforms.

4) Potential Sponsors or Investors:

If the project seeks financial support or sponsorship, individuals or organizations interested in


supporting educational or innovative game development initiatives may be stakeholders.

1.6 References:

1) Python Documentation:
https://www.pygame.org/docs/
The official Python documentation, including the Python Standard Library and
Python language reference, serves as a fundamental reference for understanding
Python programming concepts, syntax, and functions.

2) Ray Casting Tutorials:


https://youtu.be/ECqUrT7IdqQ?si=oG5zMLdgXqR-itmf
Various online tutorials like youtube channel named “ Coder Space” and articles
related to ray casting algorithms, 3D projection, and rendering techniques have
been referenced to implement the core mechanics of the game.

You might also like