Mimor Project Final
Mimor Project Final
1
Vivekananda Institute of Professional Studies
Technical Campus(Affiliated to Guru Gobind Singh
Indraprastha University)
CERTIFICATE
This is to certify that Parth of BCA 5th Semester from Vivekananda Instituteof
entitled “Platform 2d”, a web platform designed to streamline the deployment and
guidance.
Date:
Signature of guide:
2
ACKNOWLEDGEMENT
Campus and teachers of the institute for providing me with the opportunity to
avail the excellent facilities and infrastructure. The knowledge and values
infrastructure at VSIT.
for their astute guidance, constant encouragement and sincere support for this
project work. Sincere thanks to all my family members, seniors and friends for
Parth
(06317702021)
3
TABLE OF CONTENTS
Certificate…………………………………………………………………………………….2
Acknowledgment…………………………………………………………………………….3
Synopsis………………………………………………………………………………………5
1. Introduction………………………………………………………………………….9
2. Theoretical Background…………………………………………………………...14
3. Requirement Analysis……………………………………………………………...16
4. System Planning……………………………………………………………………19
5. Life Cycle…………………………………………………………………………...26
7. Testing………………………………………………………………………………48
8. Conclusion…………………………………………………………………………..51
9. References………………………………………………………………………………….53
4
Synopsis
Problem Statement:
Objectives:
5
Official Requirements:
Platform 2d adheres to stringent official requirements to guarantee optimal performance,
compatibility, and reliability throughout its operation. These requirements encompass various
facets:
• User Compatibility :
The executable file should be compatible for users currently the file can only be used by windows users
• Unreal Engine :
Utilizing the latest version of the Unreal Engine to ensure efficiency and scalability.
Following official Unreal Engine guidelines for Game development practices.
• Itch.io:
For accessing free and compatible tiles , texture and sprites to be used in the project.
6
Future Scope:
Platform 2d envisions a future marked by continuous enhancement and expansion, aiming to
further solidify its status as a valuable resource for developers. The future scope of Platform
2d includes:
• Advanced Mechanics :
Implementing additional features for advanced mechanics. Enabling usersto play
complex applications seamlessly.
• AI Integration:
Investigating possibilities for integrating Artificial Intelligence capabilities. Providing
userswith intelligent insights into container performance and optimization.
• Community Collaboration:
Facilitating community collaboration for shared container configurations. Creating a
platform where developers can exchange best practices and container setups.
7
• Expanded Compatibility:
Ensuring compatibility with a broader range of development tools and platforms.
Collaborating with other industry-standard tools to enhance interoperability.
Submitted on:
Ms.Alpna Sharma
8
Chapter 1 Introduction
The project involves setting up a 2D game development environment using Unreal Engine.
Specific steps include creating folders for assets and maps, organizing pixel art assets into
subfolders, and ensuring pixel accuracy through the application of a 'paper2d' texture filter.
Tilesets are then generated from imported textures, and tilemaps are created to lay out game
levels. The system includes features for off-screen buffers and parallax scrolling backgrounds. In
addition to level design, the project covers the setup of a basic 2D character using pixel art assets.
The character blueprint includes sprite extraction, animation flipbooks, player controller and
game mode blueprints, camera setup, and collision handling. The tutorial also demonstrates
adding decorative objects, setting up player input and movement, and addressing collision issues
in the level assets. The comprehensive guide provides a foundation for creating functional 2D
games with pixel art in Unreal Engine, covering both environmental and character aspects.
The objectives of the 2D game development system are multi-faceted, aiming to create an
engaging and visually appealing gaming experience while providing a comprehensive framework
for both environmental and character aspects. The key objectives include:
1. Engaging Gameplay:
- Develop gameplay mechanics that are dynamic, innovative, and capable of creating an
immersive experience for players.
2. Visual Appeal:
- Utilize cutting-edge graphic design principles to create visually stunning 2D assets,
animations, and environments that enhance the overall aesthetic appeal of the game.
9
5. User Interface (UI) Design:
- Create an intuitive and responsive user interface to enhance the overall user experience,
providing clear navigation and presentation of information.
6. Character Development:
- Set up a robust system for character development, including sprite extraction, animation
flipbooks, player controller, and game mode blueprints, enabling the creation of dynamic and
visually appealing characters.
1. Engaging Gameplay:
- The system's incorporation of advanced AI algorithms, dynamic storytelling, and procedural
content generation can result in more engaging and immersive gameplay experiences.
- Players may find the adaptive NPC behaviors, interactive storylines, and varied game
environments to be compelling, increasing their overall enjoyment.
2. Visual Appeal:
- Leveraging cutting-edge graphic design principles contributes to the creation of visually
stunning 2D assets, animations, and environments.
- Aesthetic enhancements can attract players, making the game more visually appealing and
competitive in the market.
11
5. Responsive User Interface:
- The implementation of an intuitive and responsive user interface enhances the overall user
experience.
- Players benefit from easy navigation, clear information presentation, and interactive UI
elements that contribute to a smoother gaming experience.
7. Player Retention:
- The combination of engaging gameplay, visual appeal, and innovative features contributes to
increased player retention.
- Satisfied players are more likely to continue playing and recommend the game to others,
positively impacting the game's success in the market.
8. Competitive Advantage:
- The incorporation of advanced technologies and design principles can give the game a
competitive edge in the gaming industry.
- Standing out with unique and high-quality features increases the game's chances of success
and recognition.
13
Chapter 2 Theoretical Background
3. Dynamic Storytelling:
Exploring narrative structures and interactive storytelling techniques, including branching
narratives, dialogue systems, and player choice impact on the game world. This involves a study
of player psychology and the creation of meaningful, player-driven narratives.
14
7. Testing and Quality Assurance:
Understanding software testing methodologies, including unit testing, integration testing, and user
acceptance testing. This involves creating test plans, identifying edge cases, and implementing a
systematic testing process to ensure a high-quality, bug-free game.
15
Chapter 3 Requirement Analysis
1. Functional Requirements:
1.1 Game Engine Core:
- Develop a game engine core that handles rendering, input, and resource management.
- Implement a robust game loop to ensure smooth gameplay.
- Support for 2D physics and collision detection.
1.2 AI Mechanics:
- Integrate AI algorithms for NPC behavior, decision-making, and adaptive responses to
player actions.
- Implement pathfinding algorithms for intelligent NPC movement.
- Create mechanisms for NPC interactions with each other and the player.
16
- Support for various screen sizes and resolutions.
2. Non-functional Requirements:
2.1 Performance:
- Ensure optimal performance on target platforms, minimizing lag and load times.
- Implement efficient memory management to prevent resource leaks.
2.2 Scalability:
- Design the game engine and architecture to scale with the addition of new features or
content.
- Support for future updates and expansions.
2.3 Compatibility:
- Ensure compatibility with popular desktop and mobile operating systems.
- Optimize the game for different screen sizes, resolutions, and aspect ratios.
2.4 Security:
- Implement security measures to protect against potential exploits or cheating.
- Safeguard player data and ensure secure communication for online features.
2.5 Documentation:
- Create comprehensive documentation for developers, including API references and design
decisions.
- Provide user documentation for players, explaining game mechanics and controls.
18
Chapter 4 System
Planning
PERT Chart
A PERT (Program Evaluation and Review Technique) chart is a valuable project management
tool designed to visually represent the tasks involved, their dependencies, and the overall
timeline of a project. In the context of Platform 2d development, the PERT chart plays a
pivotal role in planning, organizing, and scheduling tasks to ensure a systematic and efficient
workflow.
In this chart, each node represents a specific task, and the arrows indicate the dependencies
between tasks. The numbers assigned to the tasks correspond to the week in which they are
scheduled. This visual representation aids in understanding the project's critical path, highlighting
key tasks and potential bottlenecks. The PERT chart serves as a roadmap, ensuringa structured and
organized approach to the development process, ultimately contributing to thesuccessful and
timely delivery of Platform 2d
19
Defining System Boundaries
Defining the system boundaries is a critical step in the system planning phase of DocHost
development. This process involves establishing clear delineations that outline the extent and
scope of the system, ensuring a comprehensive understanding of its functionalities and
limitations.
1. Inclusions:
1.1 Game Engine:
- Core components responsible for rendering, input processing, and resource
management.
- AI subsystems for NPC behavior and decision-making.
- Procedural content generation modules.
20
1.6 Documentation:
- Internal documentation for developers, including design documents, code comments,
and technical guides.
- External documentation for players, explaining game mechanics and controls.
2. Exclusions:
2.1 External Libraries:
- Third-party libraries and frameworks used for specific functionalities (unless heavily
modified).
- Operating system-dependent components (e.g., file handling, input/output) that are not
developed as part of the project.
Defining these system boundaries helps manage expectations, allocate resources effectively,
and provide a clear understanding of the project's scope for both the development team and
stakeholders. It also serves as a reference point for making decisions about feature
prioritization and project management throughout the development lifecycle.
1. Critical Features:
1.1 Game Engine Core:
- Rendering, input processing, and resource management are foundational and should be
prioritized.
- Ensure a stable and optimized game loop for smooth gameplay.
1.6 Documentation:
- Initial documentation for developers outlining the game engine architecture and essential
APIs.
- Basic user documentation explaining the core game mechanics and controls.
2. High-Priority Features:
2.1 Gameplay Mechanics:
- Expand NPC behaviors and interactions for more engaging gameplay.
- Implement additional game mechanics such as scoring or basic progression systems.
2.5 Documentation:
- Expand developer documentation to cover more advanced features and subsystems.
- Provide more detailed user documentation for an in-depth understanding of the game.
3. Nice-to-Have Features:
3.1 Gameplay Mechanics:
- Implement advanced gameplay mechanics and features that enhance player engagement.
- Introduce more complex AI behaviors and decision-making processes.
3.5 Documentation:
- Provide in-depth documentation for advanced features and customization options.
- Create tutorial guides for players interested in exploring advanced game mechanics.
This prioritization allows the development team to deliver a minimum viable product with
essential features, gradually incorporating more advanced and polished elements as the project
progresses. It ensures that the core gameplay is solid and functional before investing time in more
complex features. Adjustments can be made based on project constraints, stakeholder feedback,
and changing priorities during development.
23
1. Human Resources:
1.1 Game Developers:
- Game programmers skilled in the programming languages relevant to the chosen game
engine
- AI developers with expertise in implementing intelligent NPC behaviors.
- Graphics programmers for rendering, lighting, and visual effects.
1.3 Artists:
- 2D artists for creating character sprites, environment assets, and other visual elements.
- Graphic designers for UI and promotional materials.
2. Technological Resources:
2.1 Development Tools:
- Integrated Development Environment (IDE) suitable for the chosen game engine.
24
- Version control systems (e.g., Git) for collaborative development.
2.3 Hardware:
- High-performance development machines for game programmers and artists.
- Test devices for different target platforms (desktop, mobile).
3. Financial Resources:
3.1 Development Budget:
- Allocated budget for salaries, equipment, software licenses, and development tools.
- Contingency budget for unforeseen expenses.
These resource requirements are flexible and should be adjusted based on the scale and specific
needs of the 2D game development project. Regular monitoring and adjustments may be
necessary throughout the project lifecycle to ensure optimal resource allocation and project
success.
25
Chapter 5 Life Cycle
UML Diagrams
Actors:
• Developer: Responsible for system administration and management. Interacts with
functionalities related to user and the working of the application
• User: Represents individuals using platform 2d . Engages in actions in the Game to
control the player
26
Data Flow Diagram (DFD)
External Entities:
Game Player (A): Represents the end-user who plays the game.
Game Distribution Platform (B): Represents the platform where the game is distributed (e.g.,
app store, online platform).
Processes:
Game Development (C): Encompasses the entire game development process, including
designing, coding, and testing.
Testing (D): Involves quality assurance and testing activities.
Distribution (E): Involves deploying the game to a distribution platform.
Data Stores:
Data Flows:
Arrows indicate the flow of data between processes, data stores, and external entities.
For example, the Game Player (A) plays the game, which involves a data flow to the Game
Development process (C). The Game Development process utilizes Game Assets (F) and Game
Source Code (G), and the Testing process (D) generates Testing Reports (H). The finalized game
is then deployed to the Game Distribution Platform (E).
27
Entity Relation Diagram
The Entity-Relationship (ER) Diagram is a graphical representation of the database schema
that illustrates the entities, their attributes, and the relationships among them. It serves as a
valuable tool in database design, providing a clear visualization of the underlying structure.
Here's an exploration of the key components and purposes of an ER Diagram:
• Entities:
Entities are the fundamental objects or concepts in a database. They can represent
tangible entities like a person or a book, or abstract entities like a reservation or an
event. Each entity is depicted as a rectangular box in the diagram, and the entity name
is written inside the box.
• Attributes:
Attributes are the properties or characteristics of entities. For example, a "Person" entity
might have attributes like "Name," "Date of Birth," or "Address." Attributes are
connected to their respective entities by lines and are usually written inside ovals
attached to the entity box.
• Relationships:
Relationships describe how entities are connected or associated with each other. They
highlight the associations between entities and are illustrated by lines connecting the
related entities. Relationships can be one-to-one, one-to-many, or many-to-many,
indicating the cardinality of the association.
• Primary Key:
A primary key is a unique identifier for each record in an entity. It ensures that each
record can be uniquely identified and distinguishes it from other records. In an ER
Diagram, the primary key is underlined within the entity box.
• Foreign Key:
A foreign key is a field that refers to the primary key in another entity, establishing a
connection between them. It represents the relationships between different entities in
28
the database.
• Cardinality:
Cardinality denotes the number of instances of one entity that can be associated with
another entity. It is expressed as either "1" (one), "M" (many), or "0" (zero). Cardinality
indicators are placed near the ends of the relationship lines.
Purpose of ER Diagram:
• Database Design:
ER Diagrams are instrumental in the design phase of a database. They provide a
blueprint for organizing and structuring data within the database.
• Communication:
ER Diagrams act as a visual communication tool between stakeholders, including
developers, designers, and business analysts. They facilitate a shared understanding of
the data model.
• Normalization:
ER Diagrams help in achieving normalization, a process that reduces data redundancy
and dependency by organizing data efficiently.
• Database Management:
ER Diagrams assist database administrators in managing and maintaining the integrity
of the database structure. They guide decisions related to indexing, constraints, and
relationships.
• Query Optimization:
Understanding the relationships between entities aids in optimizing database queries,
contributing to efficient data retrieval.
• Documentation:
ER Diagrams serve as comprehensive documentation for the database schema, making
it easier for future developers or administrators to understand the structure and
29
relationships.
30
ER Diagram for Platform 2d
• Entities:
• Game: Represents the game entity with attributes such as GameID, GameTitle,
ReleaseDate, and Genre.
• Developer: Represents the developer entity with attributes like DeveloperID and
DeveloperName.
• Player: Represents the player entity with attributes such as PlayerID and PlayerName.
• Asset: Represents the asset entity with attributes like AssetID, AssetName, and Type.
• DistributionPlatform: Represents the distribution platform entity with attributes like
PlatformID and PlatformName.
• TestingReport: Represents the testing report entity with attributes like ReportID,
ReportDate, and Issues.
Relationships:
31
Chapter 6
CODING and Screenshots
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Chapter 7 Testing
Testing serves as a cornerstone in the software development life cycle, playing a pivotal role
in ensuring the quality, functionality, and reliability of the developed system. In the context of
Platform 2d, a 2d game that uses pixel art as sprites and allows user to control the character
and clear the level.
1. Unit Testing:
- Objective: To verify the correctness of individual units or components (e.g., functions,
modules) in the game code.
- Method: Developers write unit tests to validate specific functionalities, ensuring they work as
intended. Automated testing tools may be employed.
2. Integration Testing:
- Objective: To assess the interactions and collaborations between integrated components.
- Method: Combining individual units and testing their interactions. This ensures that different
components work harmoniously when integrated.
3. Functional Testing:
- Objective: To evaluate the game's functionalities and features against specified requirements.
- Method:Testers execute different scenarios to validate that the game behaves as expected,
covering aspects like gameplay mechanics, user interfaces, and core functionalities.
4. Performance Testing:
- Objective: To assess the game's performance under various conditions, including load, stress,
and resource usage.
48
- Method: Analyzing how the game handles a large number of concurrent users, complex
scenes, and resource-intensive operations. Performance metrics are monitored and optimized.
5. Compatibility Testing:
- Objective:To ensure the game works seamlessly on different platforms, devices, and
configurations.
- Method: Testing the game on various hardware setups, operating systems, and screen
resolutions to identify and address compatibility issues.
8. Security Testing:
- Objective: To identify and address potential vulnerabilities and security risks.
- Method:Conducting tests to identify and rectify security loopholes, such as data breaches,
unauthorized access, or potential exploits.
9. Regression Testing:
- Objective: To ensure that new changes do not introduce defects into existing functionalities.
- Method: Re-running previously conducted tests after code changes to verify that existing
features still work correctly.
The testing methodology is iterative and involves continuous feedback loops, allowing developers
to identify and address issues at various stages of the game development lifecycle. This
comprehensive approach ensures that the final product meets quality standards, performs well,
and provides an enjoyable gaming experience for users.
50
Chapter 8 Conclusion
In conclusion, the 2D game development project within Unreal Engine lays a solid foundation for
creating immersive and visually appealing games. The meticulous step-by-step guide covers
essential aspects of the development process, emphasizing both environmental and character
elements.
The project's structured approach begins with the organization of assets into designated folders,
ensuring a systematic and manageable development environment. The implementation of the
'paper2d' texture filter demonstrates a commitment to maintaining pixel accuracy, preserving the
integrity of pixel art assets throughout the game.
The inclusion of features such as tilesets and tilemaps adds depth to level design, with a particular
focus on off-screen buffers to enhance player experience. The incorporation of parallax scrolling
backgrounds elevates visual aesthetics, providing a dynamic and engaging backdrop for the game
environment.
The project further extends its scope by delving into character setup, showcasing the creation of a
2D character blueprint with sprite extraction, animation flipbooks, and thoughtful considerations
for player input and movement. The integration of player controller and game mode blueprints,
coupled with camera setup and collision handling, demonstrates a holistic approach to character
development.
Future Scope
The 2D game development project in Unreal Engine lays a solid foundation for immersive and
visually appealing games, and its future scope can encompass several exciting directions and
enhancements. Some potential future developments include:
3. Multiplayer Functionality:
- Extend the game to support multiplayer functionality, allowing players to interact and
compete in real-time. Implementing online multiplayer features can significantly broaden the
game's appeal and provide a more dynamic gaming experience.
7. Accessibility Features:
- Implement accessibility features to make the game more inclusive, such as customizable
controls, subtitles, and options for players with different abilities. Enhancing accessibility can
broaden the player base and contribute to a positive gaming experience for all.
9. Educational Applications:
- Explore the potential for educational applications of the game development project. Consider
creating tutorials, documentation, or educational modules to help aspiring game developers learn
Unreal Engine and 2D game development principles.
By exploring these avenues, the 2D game development project can evolve, adapt to industry
trends, and provide an ongoing source of entertainment and engagement for players. The dynamic
nature of the gaming industry offers ample opportunities for innovation and growth.
52
Chapter 9 References
• https://brullov.itch.io/oak-woods
• https://itch.io
• https://www.unrealengine.com/en-US/unreal-engine-5
• https://store.epicgames.com/en-US/
53