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

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.



热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图