Installation Instructions Page:
https://docs.google.com/document/d/17_iIDYu05c_4M8oqKWzPt8116awMFHWg73wMqzE5RuQ/edit?usp=sharing
Installation Instructions Page:
https://docs.google.com/document/d/17_iIDYu05c_4M8oqKWzPt8116awMFHWg73wMqzE5RuQ/edit?usp=sharing
I have decided to develop a small text adventure role playing game for my major project. I haven’t seen many other games of this type and I wanted to try something new. The main reasons why I chose to do this project are:
I really like these sorts of games and I wanted to make one myself
I wanted to make a game like this for my last project but didn’t have the time so this time around I wanted to do it.
I love challenging myself
And I wanted to create and try something new which hadn’t been done before
The idea to create a text adventure role playing game didn’t come to mind early on. I had many other ideas which I had to turn down and refine in order to come to my final decision.
Initially I was looking at python API’s that I could use to develop apps like messenger and a google maps client. But I steered away from them as a lot require special licenses and I found that I wouldn’t have the time and don’t have the skill to develop an application that complicated. So I switched to wanting to develop a game. My initial game ideas were a 2D battleship like game with two players and a simple turn based battle mechanic but then I thought to go even simpler and just make a simple fighting game with two players and options for weapons. But I wanted to challenge myself and make something that even I would want to play, I’d recently played this game called A Dark Room which is a text based survival game and I wanted to do something similar. So, the idea of a text based role playing game came into mind. For my game I plan to have an inventory system which players can then find and add items to it, a simple NPC system where players can talk and receive quests, and also multiple endings depending on what the player does during their time playing the game.
Here’s a document of the different ideas I thought out while picking out my final idea.
https://goo.gl/7SlRzV
After I thought of the idea for my game I decided to ask my class to get some feedback on what I had. Everyone thought it was a good idea and liked the features I planned on adding. I also made up a small survey for my software class and some other classes to fill out on games and different types of games. I received a good mix of feedback on some of the ideas I presented and worked out that people prefer to have graphics, I then decided to modify my initial idea from a fully text based game to adding some graphics like a map, or some simple player models rather than only text, and everyone said they would much prefer that compared to my initial idea.
Here’s the results from the survey:
The Lone Traveler Feedback Results
For the interface of the Lone Traveller I wanted to make the game straight forward, everything there where it needed to be and not hard to find. But I also didn’t want the game screen to become cluttered and distract the player from the game. In the very beginning when I first thought of the project I mocked up a simple layout in python and Tkinter.
Example here:
But I realised it needed a little more so I drew up some sketches of a few interface screens as an alternative and possibly an improvement to the original. These aren’t 100% final but are a guideline for when I start coding the game and some modifications, improvements and adaptions will probably be made during the development of the program.
Menu
Game
Game Over
After some development of the game, I realised that the current design wasn’t up to scratch with what I wanted to achieve with my game. So I drew up a rough sketch of what I wanted to do and started again with the new design, inspired and adapted from my original idea.
Map of the game, drawn as game developed
Structure Chart
Context Diagram
The Lone Traveller will use a number of different data types and data structures. Refer to the Data Dictionary for a more detailed list of the main data items used in the program. The Lone Traveller uses many simple variables which are used to contain strings and integers. They also help to manage many other aspects of the game such as assisting in updating the display, the menu system and even the game loop. The Lone Traveller also uses many two-dimensional arrays to store, calculate and help to display game data. The Lone Traveller is structured so that the data can be easily modified with universal variables at the beginning of the program so that the user can modify the game if they so desire to add and remove features or modify how the game is played.
Throughout the design of my project I will be using a combination of programs to document the design.
I will be using Microsoft Excel to document my data dictionary entries into a table, Google Docs and Microsoft Word to document and take notes on development achievements
Microsoft Project is being used to create and maintain Gantt Charts throughout the development of the project. And, an Online program called draw.io linked with Google Drive is being used to create and maintain the structure chart and Context Diagram.
On top of all that I will be collating all my documentation into posts on my blog which I have made for the project to help keep everything organised and together.
Gantt Chart To Date (17/02/2017)
Major Project Gantt Chart – Kai Craig
Refer to Updated Management Tools for analysis on Gantt Chart usage during development.
Logbook
Will be used to document the work done on a day or in a lesson and where to go next. This allows me to look back and remember where I’m up to and what I’ve done last so that I can continue where I left off without confusion.
A copy of my logbook to date is shown below.
Date: 22/11/16
What was done:
Made a basic outline of what I wanted to make but was still tossing up what to do, so I started making my folio and working out what needed to be included and how it should be structured.
What to do next:
Finalise my idea
Date: 29/11/16
What was done:
After a lot of research I decided to make a small rpg based game called The Lone Traveller. So, I started drawing up my structure chart for the game and I also made a simple IPO Diagram. I then began on the Gantt chart, the project is starting to come along now.
What to do next:
I plan to work on finalising my ideas and writing it into my generation of ideas section.
Date: 1/12/16
What was done:
I collated my ideas and wrote a paragraph for my generation of ideas section.
What to do next:
Start on interface design.
Date: 10/12/16
What was done:
I started on interface design, at home I made a simple little mockup in python of what I’d like the program to consist of and how it should look. It isn’t the final layout or anything, it’s just a rough start to get the project rolling.
What to do next:
Work on the Planning and Designing Section, Hardware and Software Environments
Date: 1/2/17
What was done:
Came back from holidays and hadn’t done much, continued working on Project Management Techniques and re-structured and organised my logbook.
What to do next:
Work on communicating with others and the software and hardware environments.
Date: 8/2/17
What was done:
Didn’t get much done this lesson as I was mainly organising all my files but I finished the Communicating with others section and created a google docs form for my class to fill out so that I could get some feedback on my games ideas.
What to do next:
Finish software and hardware environment documents and finish off any other bits and pieces.
Date: 16/2/17
What was done:
Finally finished off the software and hardware environment sections and also completed typing up the reusable modules section. I also finalised my Pseudocode and collated all my writing into a small blog that I made, each section has it’s own post.
What to do next:
Check over work and email it off to get marked.
Coding the Game
Date: 21/3/17
What was done:
Started coding the game with initial design, the basic layout is now finished with a inventory window to the left and a map to the right.. There’s also a large story box in the center, a smaller action/extra information box underneath that.
What to do next:
Work out how to get the player to enter input
Date: 6/4/17
What was done:
After some research and testing, I managed to get a working way of capturing data from the player. I made an entry box and am now able to capture the data from it after the user presses enter. With this data I can use it for navigating through the game, and for responses to certain scenarios.
What to do next:
Work on the actual story of the game and make the inventory system
Date: 13/5/17 to 14/5/17
What was done:
Put a lot of effort into making a working inventory system with different items, changed the original idea of the list of items, it now allows the user to click on the item to show info and click on empty slots to hide info being shown about the previous item selected. The items are laid out in a grid like a traditional game inventory.
What to do next:
Start writing the story of the game and work on the map
Date: 11/7/17
What was done:
After a long break which consisted of testing and remodeling certain aspects of the game, I finally decided that the original idea wasn’t going to work. So I redrew the design and layout and began coding the game again from scratch.. this time with a much smaller window and plans to make it a lot more intuitive and functional as an actual game.
What to do next:
Over the next week I plan to work on implementing the inventory, an about page, settings page, and of course the games story which works off the map system which I created in the previous version.
Date: 12/7/17 to 20/7/17
What was done:
Each day all day I worked on coding the game, it all went smoothly with very little problems.. This new design is way more functional and practical compared to the old one, I managed to make a working help section which has different pages and I even managed to implement a video tutorial so that players can easily see how the game works. Unfortunately I couldn’t finish the settings menu due to time constraints but every other part of the game is finished to top quality.. The about page shows information regarding the author and version of the game. There are help prompts, and even a command system for using the game.. I even implemented some pretty neat easter eggs for players to find. The map system works by only letting players input data relating to the scenario based on what room they are in. Which works really well in limiting the amount of options and allowing for a narrow detection of commands to minimize errors.
What to do next:
Check over work, test the game and hand it in for marking.
When researching for the Lone Traveller I couldn’t come across much or any existing solutions where I could analyse code or use pre-existing code so copyright in terms of code isn’t an issue. Images used for the game are going to be drawn and edited by myself to give the game a more personal touch and so as not to infringe on any copyright laws images on the internet might have. The target audience for this game is about 14 and up, it’s not designed to be a kids game and for younger children it could be hard to understand. But to combat this issue I will have instructions throughout the game and a small manual with details on the controls and how to play the game so that there isn’t any confusion while trying to play the game. The game doesn’t include any foul language or gore that is inappropriate for younger audiences either. In terms of sustainability and reliability of the project, because the game is going to be developed in the latest python and taking into consideration that players will want to possibly modify the game. The code is quite adaptable and certain sections can even be taken out and used elsewhere for other projects. So when taking all that into consideration, the game can easily be maintained and adapted into and for the future.
Pseudocode Design of the Planned Program
--------------------------------------------------
Interaction
--------------------------------------------------
BEGIN SUBPROGRAM Interaction
#Note NPC's were taken out of the final game
IF NPC THEN
Conversation
ELSE Enemy
ENDIF
BEGIN SUBPROGRAM Enemy
WHILE Enemy
IF Flee
ENDWHILE
END SUBPROGRAM Enemy
IF Fight
REPEAT
Fight
UNTIL Player wins or loses
ENDWHILE
ENDCASE
END SUBPROGRAM Enemy
END SUBPROGRAM Interaction
--------------------------------------------------
Settings Module
--------------------------------------------------
BEGIN SUBPROGRAM Settings
CASEWHERE
Soundtrack Button: Change soundtrack
Soundtrack Volume Button: Change soundtrack volume
FX Volume Button: Change FX volume
Back Button: Return to Menu
ENDCASE
END SUBPROGRAM Settings
--------------------------------------------------
Game Over Module
--------------------------------------------------
BEGIN SUBPROGRAM gameOver
IF Health is <= 0
Display results
CASEWHERE Return to menu
Return to Menu Button: Menu
Quit: Close Game
ENDCASE
ENDIF
END SUBPROGRAM gameOver