G4C Reflection Journal

     G4C is an organization that promotes real-world changes by motivating game developers to create games that expose people to problems in the world. G4C holds annual game competitions for given themes, or issues. For this year's G4C competition I worked with a team, Team Kakushin (革新), to create a game with the theme of 2050 Automated Communities, a theme about how life in the coming decades could be very different, for better or worse, due to advances in technology. The amount of potential technological advances and their various effects by 2050 was huge, so my team decided to hone in on one technology likely to make a massive change in our lives - Artificial Intelligence.
     The first thing my team had to figure out before making the actual game was what to make the game with. There was some experimentation done on which platform and programming language to use but eventually we settled on using JavaScript on Code.org's App Lab. Next came deciding what type of game we were going to make. So far, my team was experienced making clicker games and endless survival games but this time around we wanted to get our feet wet with a new type of game, a visual novel/shooter game. The story around this game was that a regular school boy, John, one day traveled to the future in the year 2050 unintentionally. He finds the world taken over by evil AI but meets one form of AI, Artificial Mind, who is fighting against them. They ally and go on a quest to rid the world of the evil AI. My team wanted to tell this story using a visual novel but couldn't leave it only as a visual novel since the only user interactivity would be the user clicking buttons to move the dialogue forward. In response, we decided to make the scenes where the main character and his ally fight evil AI shooter sections of the game, where the user takes control of the main character and shoots away at the evil AI. This made sure our game was  more than a click and point game.
     We storyboarded our game, making a paper wireframe of the UI and progression of game screens, and moved on to allocating team roles. In our team of 4, one person created the dialogue/cutscenes, one person created the visual assets, one person created an online presentation for the game, and the last person, I, created the shooter sections of the game. I tackled my task by breaking it into these parts: the controls for the player to move the character, the controls/functionality for shooting projectiles, a function to move the enemies vertically across the screen, and a function to remove the enemies once hit by the projectile. In coding these functionalities I used abstraction through parent-child functions. In my process, I often had to create a lower level function for the higher level functions to use. On example is the user control function. This function relies on two lower level functions to set the value of certain variables that the higher level function would use to determine what output it should give when it's called.
     After I finished my part of the game it was stitched together with the rest of the game. There were some troubles encountered during this process but it mainly came down to the names of certain variables and elements in the code. These issues were resolved by using the command/ctrl f feature of code.org's App Lab to simultaneously select multiple variables and rename them at the same time.

Comments

Popular posts from this blog

Favicons

Favorite Teacher Project Reflection

Emoti-Con 2019 Reflection