代写Develop a tool that enables users to create their own text-based adventure games代写C/C++程序

- 首页 >> Algorithm 算法

Project Description

This project is to develop a tool for creating text-based adventure games, commonly referred to as Interactive Fiction. Through a user-friendly interface this tool will allow users to design rich, interactive worlds  by  creating  maps,  objects,  and  NPCs  (non-playable  characters)  with  unique  behaviors  and dialogue trees. Additionally, the tool may offer multiplayer support, enabling multiple players to explore the game world in real time, along with potential integration of AI-driven dialogue and descriptions to enhance storytelling.

Aims and Objectives

Aims

Develop a tool that enables users to create their own text-based adventure games,

Provide a user interface allows users to easily design and manage various game components

Create a system to design NPCs with custom descriptions, interactions, and behaviors.

Generate dynamic descriptions and dialogues for the game.

Support multiplayer gameplay.

Objectives

Design and develop the user interface, enabling users to intuitively create game maps, define items, design NPCs, and set up game logic events.

Implement a map creation feature, allowing users to design grid-based or node-based rooms, define exits, and add interactive elements like puzzles and doors.

Create  an  item  creation  module,  enabling  users  to  define  item  properties,  descriptions,  and interactions with other game elements.

Implement a game event and logic system, allowing users to define triggers and conditions for in - game events, such as using a key to unlock a door or starting a quest.

Implement multiplayer functionality, allowing multiple players to connect and interact in the same game world in real-time.

Integrate with a Large Language Model (LLM) to generate dynamic dialogues and descriptions for the game.

Key Literature & Background Reading

Personal Background

To start considering the development of the tool of text-based adventure games, I first needed an understanding of the content and structure of text-based games, which I gained during my second-year C++ course. At that time, I used C++ to develop a battle system for a Console-Based Adventure Game and added a map, enemies, and items as well. The experience from this assignment will help me better understand this project. Additionally, as I have experience using the Unity engine, and Unity itself offers many convenient features, therefore, this project will be developed based on Unity.

Core Concepts & Project Focus

Text-based adventure games, also known as Interactive Fiction (IF), one of the most famous series is Zork, developed by Infocom [1]. Montfort, in Twisty Little Passages [2], points out that the primary difference between IF and traditional narratives lies in its non-linear and multi-layered narrative structure. Interactive Fiction not only allows players to make choices but also creates multiple possibilities within the narrative through those choices. The storytelling aspect is not limited to linear progression; rather, it relies on players' decisions to impel.

Based on this theory,the branching logic of the tool can provide users with an intuitive interface, allowing them to easily set up various scenarios and paths. On the other hand, a functional module that enables users to add critical plot points and interactive options ensures that the stories they create are rich in interactivity and impact. This modular design allows users to set different plot developments based on players ’ choices, enhancing the immersion of the story.

Design Principles

Interactivity is crucial in game design, and this can also be incorporated into the design of a text-based adventure game tool. A user-friendly design tool can guide creators to focus on game interactivity and make their development more efficient. During researching, I discovered several text-based adventure game tools created by others, which also follow certain game design principles. Rules of Play emphasizes that "game mechanics can be divided into independent modules, allowing different game elements to collaborate and create diverse interactions" [3]. Quest, designed by Warren [4], adopts a modular design approach, called command editing interface, which is used to define and edit commands, objects, and scenes within the game, allowing creators to manage these elements individually. Through modular design,  creators  can  break  down  complex  game  interactions  into  manageable  parts.  Additionally, “meaningful choices” is another key impression in interactive design, where players' choices should lead to different consequences, providing a sense of control and immersion [3]. In the tool, this can be achieved through a branching narrative tree, enabling creators to design different plot directions or endings for each  player choice. The TextAdventureToolkit, developed  by  Filer  [5],  uses  a flowchart interface to script. stories. Thus, this tool will combine both approaches: modular design for characters, objects, and scenes, allowing creators to edit each  element  individually;  and a flowchart for story progression and player choices, giving creators a more intuitive way to design player choice paths.

AI Integration and LLM Application

Previous research has shown that AI can accomplish three tasks in games: play a game, design a game, and model the human players [6]. Large Language Models (LLMs) are often presented as conversational agents and writing assistants, making them well-suited for the development of text-based adventure games. Therefore, this project will utilize the ChatGPT API to assist creators in game development. Additionally,  LLMs  can  act  as  game  analysts  [7],  simulating  and  analyzing  player  experiences  and behaviors.  The  integration  of  AI  will  help  creators  better  understand  player  perspectives  during development.

Multiplayer Functionality

Developing multiplayer functionality will be one of the most challenging aspects of this project, as I have  limited prior knowledge of multiplayer text-based adventure games and no experience in developing  multiplayer features. However, through research, I found that Unity released Netcodefor GameObjects in July 2024 [8], which can enable multiplayer functionality. Additionally, a third-party package, Mirror [9], is considered a viable alternative if Netcodefor GameObjects is not suitable.

Development Process & Method

Since  I  have  a  clear  goal  for  the Adventure  Game  Creator  (Text-Based)  tool and will  be working independently, I plan to use an Incremental Development approach. This method allows me to gradually build, test, and refine individual features until the tool fully meets my aims and objectives. The progress will be simple and flexible.

I will start by creating a basic prototype with essential features and continuously refine it through cycles of testing and improvement. Once the tool achieves the desired functionality, I will finalize it into the final product.

The user interface and the system to create game elements and game logic are defined as the basic function. And the AI implementation and Multiplayer Functionality are the advanced ones.

For development, I will use Unity3D as the main platform. with C# for programming. For version control, I will use GitHub to maintain backups of each iteration, along with regular physical backups in my laptop.

Data Sources

In this project, I will use the open-source ConvAI dataset [10] to assist in generating dialogue for NPCs within the text-based adventure game creation tool. This dataset provides a variety of dialogue patterns and responses, helping the tool generate natural and engaging NPC interactions, which enhance the immersion of the user-created game worlds.

Testing & Evaluation

Due to my choice of an incremental development process, unit tests will be conducted after each feature is developed to verify its functionality. Regression tests will be performed in subsequent increments to ensure that the addition of new features does not impact the performance of existing ones.

Test Tool Selection: I am currently researching testing tools suitable for C# and Unity3D. The initial selections include:

NUnit[11]: A commonly used C# unit testing framework, ideal for verifying the correctness of game logic and functions.

UnityTest Framework[12]: Unity’s built-in testing framework, which can be used for integration tests on scripts and components in the game to ensure module compatibility.

Play ModeTests[13]: Designed to test the game’s actual runtime experience, ensuring stability and that user experience meets expectations.

During development, I will experiment with these tools and select the most suitable option based on  project needs. Extensive testing will be required to ensure the proper functioning of game logic and  event triggers, such as item pickups, quest initiation, and room transitions, to meet with user expectations.

UI and Performance Testing: After completing all features, I will perform. UI and performance testing to ensure the tool’s interface is smooth and user-friendly. These tests will help confirm that the tool is technically feasible and meets the project’s requirements.

Project Ethics & Human Participants

The Data Categories will be B

The  ConvAI  dataset will  be  used  under  its  open -source  license,  solely  for  academic  and  research purposes. As the dataset contains no identifiable information, privacy risks are minimal. However, I will ensure  responsible  usage  within  the  project  scope.  Any  additional  dialogue  data  required  will  be synthetically generated for testing only, strictly adhering to licensing requirements with appropriate attribution in project documentation.

The Human Participant Categories will be 0

There is no use of human participants in any activity

BCS Project Criteria

Application of Practical and Analytical Skills

This project will comprehensively test my practical and analytical skills, from the initial task breakdown to subsequent programming (C#), user interface design (UI/UX), game logic, and network integration. Through an incremental development approach, I can gradually build and validate each feature at every stage, achieving technical rigor and reliability (see "Development Process & Method" section).

Innovation and/or Creativity

The innovation of this project lies in designing a user-friendly tool that allows users to customize the world and story elements of text-based adventure games. The tool’s extensibility (such as potential multiplayer functionality and dynamic content generation) introduces new possibilities for creating text - based adventure games, enhancing the creative experience for users.

Integration of Information, Ideas, and Practice to Deliver a High-Quality Solution and Solution Evaluation

I will integrate various development tools (such as Unity3D and NUnit) to build and test the project, ensuring the quality and consistency of each module and function. Upon project completion, I will conduct a comprehensive evaluation to verify whether the tool meets the initial design requirements, including functionality, user experience, and performance (see "Testing and Evaluation" section).

Meeting Practical Needs in a Broader Context

The text-based adventure game creation tool has broad applications in game design, education, and interactive storytelling. This tool provides creators with a low-barrier way to realize their interactive stories, meeting current practical needs and trends in game creation and education.

Ability to Independently Manage a Major Project

This project is independently managed by me, following an  incremental development approach to ensure clear goals and schedules at each stage. I will strictly follow the project plan, conducting regular reviews and adjustments to ensure on-time delivery and adherence to expected standards.

Critical Self-Evaluation of the Process

Throughout each stage of project development, I will conduct self-evaluations, particularly reflecting on the development approach and the effectiveness of feature implementations to identify improvement opportunities. After project completion, I will perform. a final self-evaluation to summarize the project's successes and lessons learned, providing valuable experience for future projects.

Through  these  approaches,  this   project  will  comprehensively   meet  the  six   BCS   project  criteria,  demonstrating not only my technical capabilities but also my qualities in innovation, project management, and self-assessment.



站长地图