Tumgik
Text
youtube
1 note · View note
Text
I've finally finished the Chord Coach app. It has three levels: Triad Chords, 7th Chords and Mixed Chords (combining the other two). I chose to get rid of the other tow levels: Harmonic Intervals and Melodic intervals, because I didn't think they were necessary. When it comes to chords, you only need to identify the major and minor third intervals. It would have been nice to have two levels where you identify these as melodic and harmonic intervals, but not necesary. It's something I can add later.
There are many new features that I'd like to add, but I'd almost need to start it over because the app code was poorly designed. I've heard it said that when you choose React, you need to think about architecture because it's a library (a collection of functions that you use) and not a framework (an opinionated structure). This project has proven that statement to be true.
It can also be improved from a UI/UX perspective. The modal that separates the previous chord from the next chord can be destracting. To get the most points, the player needs to cancel the modal instead of waiting for it to diappear. To do that, they move the mouse away from the area where the choices are. It would have been nice to add keyoard shorcuts, but adding too many would cause a barrier to entry. Players may spend more time memorizing the kystrokes than playing the ear training game.
I've often wondered if it's really necessary to have a complete prototype before moving into development. I usually mock up each of the screens and call it a day. It think my UI issues could have been spotted much earlier if I had a comple prototupe. It may not be necessary for marketing websites, but it seems like it can be very helpful for apps.
1 note · View note
Text
I spent th whole weekend writing the research paper, and I'm stil one page short... The writing seems clunky, but I'm not sure if's because I'm tired of looking at it. I'm running out of time, so I guess I'll just have to hope it's good enough.
The triad chor level of my game is finished. I still need to finish the other levels, but I have a framework to build the others. The hard part now is trying not to spend too much time optimizing the organization of the code.
Recently, I was asked why I chose the Applied Science program over one of the Creative Meda concentrations. I chose it because a lot of the classes seemed interesting, and the Applied Science program gave me the most freedom to take Creative Medai any elective I wanted. By taking all these classes, I now have a general knowledge of how game deisgn, video and UI design projects are supposed to be structured, but I dno't have a defined process for myself.
It took me most of the semester to finish the research paper and figure out what project I wanted to do. Along the way, I had several ideas for projects that i wanted to do based on the reading. For example, a plantation erra game in the style of the Harvest Moon games series. But, when I thought about the prototyping I'd have to do, the game design document I had to write and then all the production work that would go into it, I knew I wouldn't have enough time.
Many independent game developers will say that you don't need all that preproduction work, and that it's a waste of time. Maybe their right. Maybe some of it is necessary, and some of it is. It's probably different for each person.
As I think about what's next, I'm developing a plan to find a process for the kinds of creative projects i want to pursue. The most important on my list is to solve my reading problem. It takes me about 10 - 20 minutes to read a page. That's why it took so long to finish the research paper. I know there are screen readers and other tools that can read a text to me, but I don't retain the informatio nas well. My inefficiency in reading made it difficult to enjoy some of my. classes like game design, because i had to rush through the reading to ensure I could finish assignments on time. If I can improve my listening comprehension and get through the research process faster, then maybe I w be so exhausted when I'm done and I'll be ore likely to finish the project.
2 notes · View notes
Text
I’ve wasted a lot of time this semester throwing around ideas. None of them seemed to stick. From what I understand, my research paper should support the deliverables. That’s hard to do when you haven’t done much research.  So, I spent the past month reading. This week, started drafting the research paper.
One of the points that I’m including in my research paper is that video games can be used for deliberate practice. Deliberate practice requires that a person be focused on the skill they are practicing, receive immediate feedback and have opportunities to repeat tasks that become progressively more difficult.
In the CM 314 sound design course, we played a gme where we needed to identify different types of chords. I didn’t like the game because it played the next note almost immediately after I clicked the button to select the correct answer. I thought this was confusing because I associated the next chord with the answer to previous chord. So, I decide to remake the app and expand some of the features.
Tumblr media
I started by designing the app in Figma. The app will have 5 different modes. In music theory, students often learn about intervals. Intervals can be melodic (playing one note at a time) or harmonic (playing two notes at the same time). After intervals students learn about simple triad chords. Then, they move on to inversion (swapping the stacking order of the notes in a chord) and 7th chords (chords with 4 notes). With that in mind, the game can have 5 modes
Melodic Intervals
Harmonic Intervals
Triad Chords
Chord Inversions
7th Chords
Players will need to identify as many chords as they can in 60 seconds.
So far, I’ve finished the design and started building the game. Because the game doesn’t involve graphics, I decided to build it using web technologies (React). That’s also nice because it’s been a while since I’ve written code in Unity and I use React for work all the time.
I was able to finish the main menu and deploy the app here: https://kaili-kameoka.github.io/chord-coach/
The app is simple to build. I’ve implemented most of the features before. Some things that are nagging me are:
When the player answers correctly, there should be a modal pop up that lasts for 3-5 seconds (I’ll have to play with that) with the option to close it earlier. Then the game will progress to the next chord. This will provide some separation to let the correct answer sink in. I’'s also an opportunity to show some additional information like what the chord looks like on the staff and where the keys are on a keyboard. I’ve used modals before (those pop up windows), but It’s been a while since I’ve used a timer (to wait the 5 seconds before closing and moving on).
I need to generate all the sounds. I have Logic Pro. I just need to sit down and create all the chords. I’ll probably start with the key of C. Each interval will start on middle C, so there are only 18 possible intervals. All the chords will have middle C as the root also. Then there are 4 kinds of Triads and 5 or 6 kinds pf 7th chords.
I also need to figure out where I’m going to generate those images of the staff and the keyboard. I consider these to be stretch goals. I’d be happy if the modal simply labeled the chord or interval .for example, if the chord was C Major the modal will simply say “C Major” and include a button to continue.
0 notes
Text
In class last week, I realized that I REALY need to get things moving. I had prototyped the main mechanics for my game last week (or was that two weeks ago?). Now that I had decided on the main mechanics, I had to figure out how the game would progress, and how the I’ll introduce those mechanics. Then I’d need to create the assets for each level and assemble everything. I also needed to think of some kind of theme and setting for the game.
For the theme and setting, I decided that it would be a snowball factory. In the prototype, the player is represented by a white ball and the environment structure is blue. I could have easily made the game about golfing, but I think that’s already been overdone.  
The first level will be a winding maze. By incorporating twists and turns, the player will understand how the player moves. The player’s position isn’t moved when the player presses and arow key; a force I added to the player’s snowball. The snowball won’t simply stop moving because the player let go of the arrow keys. Turns cannot be made instantly eighter.
In the first level, I also want the player to become acquainted with the idea that their snowball will grow as they collect smaller snowballs. Because the player’s snowball will be growing, I want the maze to grow too. The area that the player moves in should be small at first, so that players can easily see that there is a path they should be following. Eventually, the player will outgrow that space and the area will need to be made wider.
This scaling of the maze is my biggest problem. I started by creating a pixel art map in Photoshop. Then, I imported it into Maya as a reference so that I can model on top of it. One of the issues that I encountered was that the size of the maze is too large to be rendered in Maya’s camera. I’m sure the default settings are there for a reason, and I’m wondering if this is a sign that my maze is just too big and may cause performance issues in Unity.
There is a lot about Maya and 3D modeling that I don’t know. I’ve dabbled with it in the past but haven’t made anything or finished any projects. I’ll need to find some tutorials or something. Gnomon (a popular school for computer graphics) has a platform with a lot of workshops. I think I’ll start with their free trial.
In class, I also said that I’d take an agile approach to developing the game. That means that I’ll add features every week while maintaing a stable build of the game. However, I still need a plan for what features I’m going to add and what each level will be about, even if I can’t finish it all. It would be a god Idea to create a Game Design Document and Technical Design Document. These might be used as deliverables in case the game project goes nowhere. I think these documents could demonstrate the things I write about the literature review.
I haven’t worked on the literature review in almost a month. I need to put together a plan for how I’m going to tackle that as well.
0 notes
Text
I Know What I’m Don’t… I Think!
In one of the meetups id occurred to me that I needed to start working on the project portion of the capstone. My original plan was to finish the research paper first. Then I would know exacly what to do for the project. However, at the slow pace that I’m reading, It doesn’t look like tht will leave me much time, if any to work on the project. So, I decided I needed to get started on my game ASAP.
Deciding on an Idea
The first problem that I encountered was that I didn’t know what game I wanted to make. While getting my Associates degree in computer science I was often angry that I had all these ideas for games based on the things I was learning, but know time to make them. Where were all those ideas now?
One idea that stuck with me was an idea for a game about chemistry. It was a simulator where players could bond atoms together to create substances. For example, drag to Hydrogen atoms and one Oxygen atom to create water. The problem with this idea was that I didn’t sure how to implement it. I also didn’t know how far you could take this idea. I knew of several molecules that you could make using Hydrogen, Oxygen and Carbon, but how complex would the molecules need to be befoe they could form real world objects that the player would care about.
This semester, I’m taking a class on creative writing that includes a large section on poetry. Common advice given to writers is to read a variety of books. Poetry or whatever it is you want to write. So, I thought it would be interesting to expose players to some short poems through a video game. One of the few games that I’ve managed to finish, Monument Valley, contained a short story that was presented in something resembling poetry. I wanted to do something similar. However, when I thought about all the work involved in creating a puzzle game (the assets, the mechanics, etc.), I didn’t’ think I could finish everything on time.
I started to notice a pattern. In all the game ideas that I have, I seem to think that they’re too much work for the time I have. Like many aspiring game developers, I have a lot of unfinished projects. If you look at my itch.io page, I only have two games published, and I’ve been making games (or learning about making games) since 2012! The fear of not finishing the game (and not graduating) was keeping me from making the games that I wanted to make.
Wit that in mind, I decided to start from the beginning. The first tutorial that Unity offers to beginners is the Roll-A-Ball tutorial. The finished product is a game where players psuh a ball around to collect objects. The game ends when the player collects all the object. At the end of the tutorial, you are encouraged to modify the game to make it more interesting. That’s what I decided to do.
I was reminded of the physics classes that I’ve taken and barely passed. This could be an interesting way to introduce physics concepts. I could change the play ara to include slopes, half pipes and other obstacles. The materials for the environment could also be changed to simulate different amounts of friction. Each level could focus on a different concept in motion such as friction, plasticity (how bouncy something is, torque, circular motion, etch.).
The Roll-A-Ball game reminded me of Katamari. It’s a game where you push around a ball to pick up random objects. You are judged on how big you can make the ball within a given time limit. I thought it would  cool if the ball grew as the player collected more objects.
Now that I had my idea, I could start building a prototype.
Developing the prototype.
I started by reproducing the Roll-A-Ball game without the tutorial. I knew that my software engineer brain would kick in and I’d want to do things “right.” And it did.
When the player collects an object, several things should happen.
The object that was picked up should be deactivated (or destroyed).
The player’s score should be updated.
The Text displaying the score should be updated
The player should get larger.
All of these tasks occur in different areas of the game and SHOULD NOT be dependent on each other. But how do you make that happen? I had heard something about Event Systems in Unity and looked up a few tutorials and got it working. I almost understand how it works, so I’m going to attempt to explain it here. I’m hoping that, by putting it into words, I’ll understand it better.
There is a Scriptable object called GameEvent. Scriptable objects are a way for you to create assets that store game data. GameEvents keeps track of a list of GameEventListeners. A GameEventListener is a component that has the gameEvent that it’s listening to and a Unityevent. The UnityEvent allows us to designate functions from other scripts that cann be called when the GameEvent occurs.
I created a game event called “OnUpdateScore.” Both the player and the Text object that idplays the score have an event listener that targets this event. Then, I created public functions to handle the updating of the text and the scaling of the player. The items that they player picks up are responsible for updating the score and invoking the update score event.
I’m not sure about having the pick-up object updating the score. I have the scor stored in it’s own score keeper script. The score is a static property because I want to be sure there is only one score. However, this makes it tricky to manage in scripts because I cannot access a specific component from a static function.
What does that have to do with the problem? Why can’t the Score Keeper hook into the event system too? As I’m explaining my reasoning, it occurred to me that the functions that update the score could be member (component) functions. Then, I could attach a listener and add the function to the event. Something about this seems sloppy, so another thing I could do is to change that entire Score Keeper class to be a singleton, with the score encapsulated. That way, I can ensure that there is only one score and make use of the event system.
At this point, my explanation has gotten fuzzy. I’ve worked through the problem but haven’t explained the basic concepts. It can be challenging for someone who is not familiar with Object Oriented Programming. You can see the code for the project on GitHub here:
Having worked in web development for a while, I’m always thinking about how the code could e architected for maximum efficiency and maintainability. In most of the game development tutorials and twitch streamers that I’ve watched, they don’t seem to care about architecture. They are more concerned with getting things working. It seems like most people treat game development like fine art where it doesn’t matter how things are built, just that it looks and feels the way they want it to. That’s important, but I think it’s easier to do if you think about how you are going to maintain your code.
Wrapping Up
I’m also noticing a larger pattern in the two problems I’ve had this week. The reason that I hadn’t started on the project was because I wanted to be sure I knew what I was doing before I got started. The reason I obsess over architecture is because I like to know what I’m doing doing before I get started. This can be a god thing because it ensures that I’m more likely to accomplish my goals. However, it can also make the process boring because you know what’s going to happen and you can be almost certain you’ll reach your goals. If you are almost certain you’ll reach your goal, where’s the fun in reaching it? I’d like to try and be a little more spontaneous in my work, just maybe not when my ability to graduate depends on it.
1 note · View note
Text
Slow Start
In the past week, I’ve gathered some sources to read for the literature review and to get an idea of what my deliverables could be. I’ve also started to read some of these sources.
Choosing Sources
When looking for sources, I started with some books that I already had in my kindle library. I had been interested in education and instructional design, so I had picked up a couple of books on these topics. I hadn’t gotten around to reading them yet, so this seemed like a good time to read them.
To look for more books and scholarly articles, I searched the UHWO library. I found a few articles that looked promising and two more books.
Starting the Research Process
Throughout my academic career, reading has always been a bottleneck for me. Although I am visually impaired, I was taught to read print. I feel that I retain information better this way, but it is time consuming. So, I thought I should tackle the books first.
One of the books I pickd up at the library is called “Games, Learning and Society” It starts with a section that introduces educators to the language and technique sof game designers. There’s a chapter that explains how a games’ theme relates to its mechanics an the effects of probability on the player’s experience.
There are two big ideas that I’m noticing in this book. The first, is that learning is a social process. One of the major examples given is the community built around Civilization III. The other idea is that educators should study games that have been designed well and take note of how players learn the mechanics of these games.
Gathering Inspiration
Building a community around a game will likely take too much time, but I can definitely learn from well-designed games and make something of my own.
In the Questionnaire, I wrote down some ideas about a game that could help aspiring software engineers prepare for their technical interviews. The ideas that I had, don’t seem to align with the suggestions given by educator/designers. They seem more like the awkward educational games that we played in school.
Even though the clock is ticking, I’ll need to come up with a better idea. Unfortunately, I’ve been focused on building software lately and haven’t played many games. The thought of looking at what’s popular right now and taking ideas from those games is exciting.
This week, I picked up Civilization VI on the Nintendo Switch. Accessibility complaints aside, I can see how one could learn about world history from this game. By building a civilization from the ground up, players come to understand the challenges that come with balancing the different aspects of society. It can give a student insight into current events.
New Ideas
I’m currently enrolled in a creative writing class where we’re learning to write poetry. I’m wondering if I could make a game around that. I’ve heard it said that the best way to become a bette writer is to read. I’m wondering if there is a way to use games to expose players to poetry and design mechanics In a way that helps them to think about the poems that the game is exposing them to. I might not be great at poetry (I’ve hadn’t written any until this semester), but it’s something I’d like to get better at. Fortunately, I have an instructor who is also a gamer, so maybe she’d be able to point me in the right direction?
What’s Next
I’m planning on taking. a break from “Games, Learning and Society” because it seems to speak more to the community building part of game development which would be out of the scope for my project. I’ve already found some interesting quotes from there and can come bak to It if I have the time. This week, I’m interested in seeing what the other book “Learning by Playing” has to say about making educational games.
1 note · View note
Text
youtube
1 note · View note