Research and Investigations

Preliminary Research and Development

For the purpose of developing a game, I have researched both game engines to use and ideas for plot.

Plot

The game will take place in both fantasy and reality for the sake of keeping it both interesting and relatable. The game will follow the main character, Morel, and his partner Dove as they attempt to fix problems caused by disruptions in the fantasy world. In fixing these problems, they will have to morals they they learned in the process. These morals will be derived from Aesop's Fables.

Aesop's Fables:
A collection of stories by the Greek storyteller Aesop. The stories usually feature animals and end with morals. Based on the use of animals and the inclusion of morals, I believe the stories will entertain children while teaching them morals.

Video Game

Game Engine:
A software development environment designed for people to build games.

I researched several: Unity 3D, Gamemaker Studio, Unreal, and Construct 2. After some comparisons, I decided that Gamemaker Studio was the easiest for a beginner to use due to its built-in coding system and ample resources online.

If I decide to change game engines, I will probably use Unity 3D since I have experience with it.

Types:
For the development of this game, I focused on two types of games in particular: adventure games and visual novel games.

An adventure game is a game in which the player assumes the role of a protagonist in an interactive story driven by exploration and puzzle-solving. This portion of the game will help the child develop cognitive skills while retaining his/her interest.

A visual novel game is a game in which an interactive game that is that features a text-based story with static/sprite based visuals and includes branching story paths. This portion of the game will be used to mimic actual social interactions children may encounter and test whether or not they learned the morals.


Ongoing Research and Development

Here, I will be posting regular updates in regards to the research and development of my project. These updates will include a date, an explanation, and a summary.


10/22/2018
Prior to visiting TCNJ, we researched projects that TCNJ students developed during their senior year as an application of their studies. Upon researching the "AISC Steel Bridge Competition," "Alleviate Menstrual Pain," and "VTE" projects, I gained new insights on the development of a project. In particular, I realized that there is a need for frequent updates and more information in order to properly showcase the development of a project. Furthermore, I realized that proper website organization is a crucial aspect of a project. Hence, I will endeavor to post more updates and make this website more user-friendly.

Summary:
-Good website management
-Frequent updates
-More information

10/26/2018
Today, I had my first meeting with my out of school mentor, Mr. Sean Scott. He gave me advice on graphics, tutorials, testing, and other aspects of games to consider.

Summary:
-The tutorial should engage the child and have them try out the controls
-Graphics should be bright (they can be acquired from assets online)
-Game should be tested regularly through the development process to check interest and feasibility

11/19/2018
After meeting with my in school mentor, Mrs. Diane Frey, she agreed to bring some books for 6-11 year-olds since we discussed readability indexes and dialogue. After reading through some of them, I was surprised at how short some of the sentences were. Going forward with the project, I will have to develop simple but realistic dialogue with short but precise descriptions.

Summary:
-Sentences in books for my target audience are short, but can contain some higher-level vocabulary
-For comparison, it takes about 20 minutes for me to read a 100 page book for this target audience.

11/23/2018
Over the past week, I researched various aspects of Gamemaker Studio 2, the game engine I will be using. I learned how to use basic functions such as rooms, sprites, objects, and events. I also got a feel for how to code within the game engine.

Summary:
-Rooms are different areas of the game
-Sprites are images of characters/objects/etc
-Objects are things in the game that interact with other things. In other words, they carry out events.
-Events are actions that are executed depending on certain triggers (ex: press arrow key, character moves down)

12/16/2018 
In order to implement the pause/options menu, I learned more about code.

Global variables:
While instance variables belong to only one instance of an object, global variables can be accessed by all instances.

Data structures (ds):
Included in Gamemaker, data structures consist of grids, stacks, maps, queues, and lists, and are used to organize data. They must be destroyed manually in order to prevent a memory leak.

enumeration (enum):
Defines own class of variables.

switch:
Allows a variable to be tested for equality against a list of values. Each value is called a case. When switched on, the statements following the case will execute until reaching a "break" statement.

Summary:
-Learned about global variables, data structures, enumeration, and switch.

12/23-31/2018
I read through the books given to me by Mrs. Frey and learned several points about writing for 6-11 year-olds.

Summary:
- Most sentences are less than 10 words, and definitely less than 20.
- While a sentence may have more words, these are usually simple with only 1-2 more advanced
  words per sentence.
- Dialogue is often short and to the point. Descriptions and adverbs are sparse. 

1/6/2019
I learned how to download assets off of the Gamemaker marketplace, where you can download backgrounds, sprites, sounds, and more. Downloaded assets appear in your library, and from there, you can add it to your game. I also figured out how to transfer assets from other projects into your own using a tool I downloaded from Gamemaker forums.

Summary:
- Gamemaker has a marketplace where you can download assets.

1/12/2019
After importing a dialogue system, I familiarized myself with the new code and figured out how to get the game to proceed to the next page after a line of dialogue ended. I also learned how to create the background. Using a tileset, I place the preset images on different layers of the background. Depending on the layer, certain images are prioritized and overlap the images underneath. For example, I might prioritize a flower over a green square, and this would cause a flower to appear on top of the square with other parts of the square still visible. In contrast, if I prioritized the square, you would not be able to see the flower at all.

Summary:
- Tilesets are images that are specifically used to make the background
- Layer: Exactly what it sounds like. Depending on what layer a tile is on, the tiles on that layer are
  prioritized and overlap tiles on layers beneath that one.

2/8/2019
I created the design document based on the suggestion of the Gamemaker expert. The design document includes such articles as the theme, story, objective, monetization, and assets of my game.

Summary:
- A design document gives a basic outline to the goals and structure of a game.

2/29/2019
I started importing music into the game. For Gamemaker, music files must be in mp3 format. After creating a sound in Gamemaker, one can attach an audio file to that sound. These sounds can be played using the functions audio_play_sound and audio_stop_sound.

Summary:
- Music and sound effects can be imported into Gamemaker

3/12/2019
I found out that since I only have a Windows license on my account, I can only create an executable file for Windows. In other words, the game can only be played on a Windows computer. There are ways to work around this, such as linking up to a Mac and using it to build the game, but I will have to figure out a way to get this by the school.

Summary:
- To be able to play the game, one must download the executable file.

3/12/2019
Collision/Trigger systems. They have a similar premise. For collisions, if a player collides with the object, the player is unable to move forward. Similarly, if a player collides with a trigger object, the trigger object executes its purpose, and disappears if the player has met the conditions for it to do so. For example, I can create a trigger that only disappears if the player has talked to a character.

Summary:
- Collision and Trigger systems share a similar basis. Both require contact from the player.
- Collision systems make sure the player does not walk through walls or solid objects
- Trigger systems disappear when player has met the conditions for them to do so.

4/8/2019
Sprite animation: One has to import or make a sprite sheet. The sprites for each frame should be uniformly separated. By choosing the height and width of a sprite, and the number of frames per line, one can animate a sprite by having the sprite flip between frames every second.

Summary:
- Sprite animation requires a sprite sheet and utilizes several frames in a sprite to give the illusion of movement.

4/12/2019
Movement between rooms: Using a trigger object, when a player hits the trigger, the character will move to the next room. The code necessary for this movement requires the player to specify an x and a y coordinate in the new room for the player.

Summary:
- Movement between rooms requires a trigger object, a specified new room, and specified coordinates for the player character to appear at.




Comments