Final Product – Konnichiwa-Sensei
Specifications:
Product Cost – £7 when bought without the Electronics Package. The price has been decided based on the cost of visual novels found on online game stores.
Patreon Income – The further development of the game is supported by a Patreon campaign hosting a range of rewards for dedicated users.
Software:
Engine used – Unity 5
Art Assets: Adobe Suite – Illustrator, Photoshop, Animate, Audition.
Development: Unity, Texture Packer, Visual Studio, Json Formatter.
The Konnichiwa-Sensei website is hosted on WordPress.
Display:
Game Resolution – 1280x720p
Website View Comparisons:
Desktop view (The “Intended” view):
Tablet View:
Manufacture: Final Asset Production workflow
A break down of how the various frames of the visual novel are produced. Going forward, a huge number of new assets and background will be produced using this method.
Step 1: Backgrounds – Illustrator
The backgrounds used in the game are first drawn on Adobe Illustrator. These are saved to a 1280×720 artboard and exported.
Step 2: Characters and Assets – Illustrator
Character frames are stored on large “Master” document, each on a seperate layer. These frames are then copied into Photoshop for final assembly.
The same method is used for all other onscreen assets such as; text boxes and UI elements.
Step 3 – Final Assembly – Photoshop
The completed Illustrator backgrounds and frames are then assembled in Photoshop, where text and layer effects are added where needed.
Playable Encounters:
During playable sequences where movement is based on player input – either voice or controller based – the backgrounds and character frames are used as game objects or 2D sprites within the Unity environment.
This allows the scripts to be applied to the frames as they are considered “Game-objects” by Unity.
Code Specification:
Due to the huge number of roadblocks detailed on the technological development page, finished proposal doesn’t feature any finished gameplay. However, the different aspects of the code used and being developed on, will be outlined in this part of the specification.
Altered code:
Although taken from a tutorial or guide, some scripts have been altered to suit the specific project.
Voice Commands:
Certain aspects of gameplay make use of programmed voice commands. The reason for this is outlined in the product Proposal. To achieve this outcome, a script is applied to game-objects that assigns these commands to it. It makes use of a dictionary and and Audio source to interpret a spoken word.
The code shown below will “destroy” a game-object when the word “Boom” is spoken by the user. This simply causes the game-object to disappear from the screen.
public class VoiceControl2 : MonoBehaviour { // Voice command vars private Dictionary<string, Action> keyActs = new Dictionary<string, Action>(); private KeywordRecognizer recognizer; //Var needed for manipulation private bool spinningRight; //Vars needed for sound playback. private AudioSource soundSource; public AudioClip[] sounds; // Start is called before the first frame update void Start() { soundSource = GetComponent<AudioSource>(); keyActs.Add("boom", Boom); recognizer = new KeywordRecognizer(keyActs.Keys.ToArray()); recognizer.OnPhraseRecognized += OnKeywordsRecognized; recognizer.Start(); } void Boom() { Destroy(gameObject); } void OnKeywordsRecognized(PhraseRecognizedEventArgs args) { Debug.Log("Command: " + args.text); keyActs[args.text].Invoke(); }
The script had an issue with recognising Japanese words such as “Konnichiwa”, but it was able to recognise other words like “doko”. This is likely to do with the dictionary used.
Tutorial Code:
Some code used in the game is taken directly from another source, such as a Linkedin Learning or Stack Overflow tutorial. The scripts detailed below are all from the Linkedin Learning “Unity 5:2D Building an Adventure Game” video series.
Link: https://www.linkedin.com/learning/unity-5-2d-building-an-adventure-game/create-collectible-objects?pathUrn=urn%3Ali%3AlyndaLearningPath%3A5936fc71498ec352a683231b&u=67552674
Player / Player Controller:
During encounters, input from the game controller or keyboard needs to be registered by the game. This is done by using a standard “Player” and “Player Controller” script combination from a Linkedin Learning tutorial.
These two scripts are applied to the designated “player” game-object and allow for movement, as well as interaction with other scripts such as CameraFollow.
CameraFollow:
This script is just set onto a game object and sets the play camera to follow that game-object.
ClicktoContinue
This script is used to click through dialogue during story sections such as the one shown below.
This script can be used for all onscreen selection.
MoveForward:
The MoveFoward script can be set to any game object to make it move in a specified direction – not just forward.
It make sure object turn around when they hit a collider, sub game-objects are used to act as triggers. This can be seen in this development screenshot. The green lines on the game-object shows where the sub game-object detector is located. When this sub game-object hits a collider – the wall – it will turn around.
Development:
Development Video:
Music used: 君の名は「Kimi no Na wa」 – 前前前世 Zenzenzense INSTRUMENTAL Cover
Game Evolution:
The game itself started development after the failed language app concept detailed on the “Technical Developments” page. It started out as
Engine Considerations:
In keeping with the rest of the project, the game has been developed on a partially open source game engine called Unity. This engine was chosen because of both its open source nature, with easily importable assets and scripts; and from a business perspective as Unity offer multiple pricing plans suited to scaling the project in future. A student version is also available with some of the functionality of the paid plans.
As this is currently just a student project, Unity was also chosen due to the extensive asset store. According the Unity website, assets bought on the site with a cost associated with them can be used in commercially released games without having to ask for explicit permission from the creator.Using free to download assets often have the “restricted access” tag and must not be used commercially.
Asset Production:
A majority of of the games assets have been produced from scratch; making use of three different softwares; Adobe Photoshop and Illustrator as well as a new and open source painting program called Krita.
Krita was used to produce the 2D tile map and 2D sprites used in the original version of the game because it has a combinations of features from both Photoshop and Illustrator in one open source package. For example the powerful layer manipulation of photoshop and the wide – and customisable – brush selection of illustrator; as well as more obvious and usable pixel art mode, which wasn’t used in the final product but pixel art assets have been produced.
Once the development shifted towards the visual novel, Krita was replaced with the combination of Photoshop and Illustrator detailed above.