Homework 4: For the Want of a Boot, Beam Me Up Scotty
Short Description:
Create a simple game that allows the player to find a series of items to please a chain of quest givers.
This assignment is worth 50 points.
Goals
When you finish this homework, you should
- Have worked with blueprint classes.
- Have created blueprint classes that interact with each other.
- Have stored information in a structured manner in the game instance.
- Have loaded data from a configuration file.
Formal Description
Create a game in Unreal that allows a player to satisfy a chain of requests.
NPC 1 wants item 1 to allow the player to win.
NPC 2 has item 1 but wants item 2 in exchange.
...
NPC n has item n-1 but wants item n in exchange.
NPC n+1 has item n and will give it to the player.
The game should allow the player to explore the world, meeting NPCs (not necessarily in order) and exchanging items. When the player transfers item 1 to NPC1 the game is "over". There should be a path available that allows the player to win.
The world should be broken into a number of levels. The player moves between levels via a Transporter. The transporter initially holds no destinations. Destinations can be added by finding a set of directions in the current level. There can be multiple sets of directions in each level, but again, there should be a path available to all levels.
For this game you must
- Load the data for the transporter system from a configuration file and store this in the game instance in an array of structures.
- At a minimum the file should contain
- the Level Name (or name of the game asset, ie FirstLevelMap)
- The Destination name ( ie "The Swamp", "The Supply Sargent's Tent", ...)
- I would also add a key (A,B, ...) so a destination giver can be configured with this key to lookup the name of the destination they will give.
- Build a transporter based on our work in class.
- This transporter should unite the components of the transporter and the and selector into a single construct.
- When the player enters the "platform" there should be a message visible showing the current destination name, or a message indicating no destination is available if that is the case.
- Pressing the A key should cycle through the available destinations.
- Pressing the T key should transport the player to the current destination.
- The data for this transporter should be stored in an array of structures in the game instance.
- Build a direction giver based on our in class discussions
- The giver should be connected to a transporter.
- If the transporter has not been set, an error message should be printed.
- The giver should display the name of the destination that it can give, or a message indicating that it does not have a new destination.
- The giver should be configurable with a Level name (or key)
- This system should not reset as the player moves between levels.
- In addition you should design a class or set of classes to implement the chain
- The information for the chain should be stored in a configuration file.
- Each link should clearly display what they have and what they want.
- Each link should retrieve this information from an array of structures stored in the game instance instance.
- When the player is close enough, and has the item a link wants, they can transfer items by pressing the T key.
Documentation
Provide a design/implementation document that includes
- An overall description of the game and how it was implemented.
- In this case, it is probably a recap of the information above.
- Pseudo code for all elements.
- Screen shots for the major algorithms of all elements.
Additional Requirements/Comments
- I expect you to build your code based on my examples.
- Please don't build excessively large levels or particularly tricky paths.
- Keep the size of the files small.
- I am not good a jumping. Don't make me a level I won't be able to get through.
- IE: don't build this, or if you do build an alternative path around.
- Build a world that pleases you, but the code is far more important than the art work.
- You need at least four levels
- You need at least four links in the chain.
- Your documentation should be in a word file, please include this in the top level of your game directory.
Extras
I find that I want to continue to play with simulations/visualizations of this type. Please do so, but only if you have sufficient time, do not enhance this, or any other project at the expense of your other classes.
Submission
Submit the game with your level along with your word document to the D2L Folder Homework 4 by the due date.