Blog Post 8 – Feelings that come with a deadline

i have written a couple times about deadlines and the panic that comes with them. i thought back to all the times i had deadlines at work, and i can’t think of a time where i felt more nervous there than at school. there’s just something special about the panic that i get over not completing something on time for a good grade.

talking to my team about it, i noticed that i didn’t feel all that stressed. i’m actually not sure how polished this project will be, but yet i am not all that worried about it. i thought about it a lot today, and i get the feeling that it has something to do with group projects.

in high school and in the beginning of college i would put a lot of effort into finishing and perfecting a group project, even if i had to put in way more work than my teammates. i have since changed that approach, and even if the end result wasn’t the best, i would still get a good grade. and i didn’t need to stress to get it.

so now, on the biggest project i have worked on in school, i trust my team to do good work. but if we don’t live up to the high goals that we set, which might be likely given how little time we have left, i know that my grade will be fine, and that i will be proud of the effort i put in. i came in to this project having no experience with any of it, so i’m happy with what we have accomplished.

Blog Post 7 – Fun with Spanish voice recognition

oh boy. i saw the date today and i panicked a little. there’s around 3 weeks left before our vr project needs to be done, and i feel like we have a lot more than 3 weeks of work to do.

i know we’ll get it done, but it’s more a matter of how well done it will be by the time we turn it in. we want to live up to our vision as much as possible, and that seems hard when we have other responsibilities that take time away from this.

back to my main focus right now though. our game will have the user say phrases in spanish to various characters in the world in order to complete quests. i created the script for our game and sent it off to some translators a couple of weeks ago.

up to this point i had been writing the storyline code using english voice recognition, and it had been going well enough. but we just got back the translated script and i needed to start testing the phrases with spanish voice recognition.

i tried to keep the phrases as simple as possible while still fitting into the flow of an actual conversation that could occur, which was hard since we want this to be beginner-friendly. some of the translated phrases ended up being longer than i expected, but it turns out that’s not a problem. what is a problem is that voice recognition returns strings that have questionable punctuation compared to what the phrase should look like.

for example, when asking for a cookbook, you say “Necesito un libro de recetas.” but no matter how i say it into my microphone it always adds questions marks like i am asking that. “¿Necesito un libro de recetas?”

so when i am checking what the user says i am going to have to use the responses i get during testing as a comparison, rather than the correct way it would be written. strange, but it will work.

Blog Post 6 – Dealing with Deadlines: VR Project

i have dealt with deadlines before, and i have dealt with deadlines while working with other people, but there was something unique about trying to make a game with other people and panicking before a deadline to show the first iteration of that game and what it will be like.

we wanted to have the first character you can talk to as a way to demo what the game will be like. i was in charge of the game’s story script and the voice recognition script, and that went somewhat smoothly for not having any experience with either. but then we needed to redo the how the ui is called so that it fits with the other scripts. like i said, we don’t have much game dev experience.

this was the first time i have ever applied async and await and that actually caused issues with the ui. we spent many hours trying to fix that. then right before we were getting ready to turn in the apk we tested it on ours quests. the voice recognition wasn’t working.

the whole time we were making this project we had been testing it in unity, not by putting the apk directly on the quest. so we never ran into this issue, and i was under the impression that my script was ready to go. since this issue was only happening when we played it this way, i couldn’t look at any debug logs to see how far the code was getting.

my panic levels were high, and so were my team’s. we had less than two hours before our deadline and the most important part of our game wasn’t working. i sat there and thought through why that might happen, and the first obvious thing was an issue with the api key. i have it reading from a file, and that works fine when testing the game on a computer, but maybe that doesn’t work when the game is on the quest. so i directly input the api key and it worked.

so we turned in what we wanted, and a big part of our project is figured out. now we have 4 weeks to iterate and make it as good as it can be. i’m excited to see how it turns out.

Blog Post 5 – A noob’s confusion with async and await

the sample code that microsoft supplies with their speech recognition unity example has asynchronous methods in a class that uses a button to call the voice record method and displays what the user says in a text ui element.

for someone who has not worked with async methods besides one week in my web dev class, it makes sense when it is working. “sure sure, call that method and it changes the text once it gathers what the user says in the microphone.” but what if i want to return a value instead of modifying a variable?

at first i didn’t think you could return a value, but then i found a video that did a pretty good job of explaining it abstractly and with an example. you can return tasks i guess, and then using await is how you can get the value out of that.

startasync calls voicerecord in my script, but the idea still holds. in my example, i’m trying to send the voice recognition script a string, compare it to what the user said, and return true or false based on that comparison. without await in the statement, i was getting an error that task<bool> could not be converted to bool.

it’s a bit confusing at first, but once i got it working it seemed fine, and can be called from any script without any button or text connected to it. now i just need to see if it works in our game.

Blog Post 4 – More on Speech Recognition in Unity

we're in week 2 of putting together our vr simulation. it's becoming more manageable as time goes on. i tried wit.ai and dialogflow for speech recognition before i settled with microsoft's speech sdk for unity. 
the basic idea is that i need to be able to do things in-game based on the user saying a correct phrase. the first step was to get voice recognition into a unity project. 
with the speech sdk i was finally able to use a script that would start when i pressed a button, listen to what i say through my microphone, and output it to a text object in the game. i got this working with a physics-based button as well as with a floating button that you would see in most vr games. 
the next step was to see if i could modify connect this script to another, and to modify something when a specific phrase is spoken. i also changed the language that would be listened for. 
i added "yes" to the message returned by the speech sdk when i spoke the phrase "tambien necesito lechuga y pan." then i had it print through another script on another object in the scene, which is what i assume will need to happen in a game like this anytime we interact with another npc. so i'm getting closer to what i need. 
my next step is to try this out on placeholders for npcs that will be in our game and see if i can get more complex things to happen. eventually this will mean that once a correct phrase is spoken the scene will continue. or if an incorrect phrase is spoken, the npc and ui will indicate that the player needs to try again. 

Blog Post 3 – Current Progress Vr Project

i had a really discouraging first week of my group capstone, but it ended in success. that's also the reason why my blog post is being turned in late. i was so absorbed by what i was trying to do that i forgot we had to write blogs for the class. good thing we drop our 3 lowest posts!
our project is a virtual reality simulation, and my team decided on a simple language learning rpg-style game where you can learn basic words and phrases in spanish (for now). well, in order to make this as immersive as possible, we want users to be able to say the words and phrases instead of just having options float in front of you and you select the right one. 
my job is to integrate the speech recognition into unity so it can go into our game. i spent days going over our options for software that could potentially do the job. the recommended software for oculus was a software called wit.ai, but their documentation was not up-to-date, the software itself was a pain to get working, and when it did work, it didn't work well. 
the next option was google cloud's dialogflow, and i could not get it working at all. their documentation was much better than wit.ai, but either something was missing or i was copying the instructions poorly because i could not get it to even authenticate my credentials, and we just don't have time to play around with the basics of a program. 
the last option i tried was microsoft's recently updated speech services. the authentication was a breeze, but it did not have any guides for how to use it in a vr environment so i had to watch a bunch of unity videos to understand how to use it (never done game dev before yay). then once i knew how to do some basics, i messed around with the sample script microsoft gave to try and see if i could get voice recognition in a sample scene. i am not kidding when i say that i spent a whole day making a button in a vr scene that would work with a voice recognition script that would show the text of what i spoke into a microphone. at 10pm i finally succeeded. go me.
now that we know it's possible, i move on to making it work for what we need. i have to see if i can make certain phrases do things to the game, or set off another script i guess. i'm hoping that's not too hard. we will see.

Blog Post 2 – Current Interest in Tech

i think data is only going to become more and more valuable as time goes on, not just for things like marketing, but for decision-making in general. it interests me a lot, but i don't know that much about it right now. 
i play a first-person shooter called valorant made by riot games, and they have an api that you can pull data from. this includes stats on each game you play, which can be useful to understand your gameplay and how you can improve, but it also includes data on player positions at certain times of the game. 
a company called runitback gathers all this data from the api and presents it to paying customers in a way that helps them understand typical gameplay in professional games. 
this tweet, for example, is a heatmap they created and shared during a professional event that happened in september of last year. in it, you can see where every defender died, as well as the most common locations a defender will die. they also made heatmaps of player locations in the first 15 or 20 seconds of each round, which shows valuable information about how spread out teams like to be, as well as how aggressive each team likes to be so that analysts for each team can be better prepared for their opponents. 
that's just one example that caught my interest. i look forward to learning more about how data can be used for strategic purposes in other areas. 

Blog Post 1 – Late to Class

hello, my name is angel tapia. i'm in my second-to-last quarter at oregon state university, majoring in computer science. i didn't realize that i could take my capstone class before the last quarter until a friend told me and i decided that it might be a good idea to do so since i wasn't so thrilled with one of my classes. it was 3 days into the week when i dropped that class for my capstone class so i'm starting behind.
on the bright side, i likely have a group and an idea of what we're going to be working on so i'm excited because my other class (mobile development) seems fun as well.
my typical interests in the field of cs relate to data and web development. my most recent project i have worked on outside of classes was a website i made to present my grandfather's artwork using aws services. before that i was working on a small javascript program that i used to learn how to interact with riot's api for their game valorant. now i'm curious how both my courses will go since i'm not familiar with anything i'm going to be doing.
our top choices for projects in capstone are all related to vr and ar development, which is new to me. but i have been a consumer of both for such a long time that i figured it was a good opportunity to see what it's like to work on them. the top two that i would personally like to work on are a simulation project or an arcade game ar recreation. they both seem like they have a lot of creative freedom and would be good for learning. maybe i will learn enough so that i can make something interesting in my spare time.