Internship at the GRILL
At my school, The Dayton Regional STEM School, we are required to do an internship our junior year. We must sign a learning agreement to start, get a signature from our mentor at the end, confirming we did the work, and it must have been for at least 80 hours. In my internship at the GRILL that took place towards the end of the school year, we had to make a math game that would be suitable for kids our age.
| Dates | Internship Hours and Hours Earned Each Week | Work Summary | Artifacts |
|---|---|---|---|
| 1/13/25 - 1/16/25 | 4 hours (4 hours earned) | The first week, we started brainstorming ideas, got a tour of the GRILL, reviewed a schedule on the days we could come in, worked on learning or improving out git skills with “Oh My Git”, and saw the previous game, Math Runner, so it could give us some ideas. I wrote our ideas down on a paper We also met Zack Galpin (another intern who would be working with us who made Math Runner) who doesn’t go to our school. | ![]() |
| 1/23/25 and 1/24/25 | 6 hours (2 hours earned) | The second week, I got signed into GitLab and downloaded Unreal Engine. Because my GitLab password was also saved on my phone, both days I had to wait for my phone to charge before doing anything. So, I tried adding to the list of ideas we had or asking if I could help. 2 hours earned. | ![]() |
| 1/27/25 - 1/31/25 | 9 hours (3 hours earned) | I worked on drawing or designing the question widget so I could have a rough draft. I worked on making that on the actual computer itself or starting the design digitally and got quite a lot done. On Friday, I worked a little, but it was understandably hard to work (my eye still hurt from surgery). | ![]() |
| 2/4/25 - 2/6/25 | 12 hours (3 hours earned) | I got the widget to work and show up on screen. However, it appears as soon as you start the level which is pretty annoying. But the only trigger I knew how to do was how to make it appear when you start playing. I tried to make my widget be able to tell if the player was right or wrong. | ![]() |
| 2/10/25 - 2/14/25 | 17 hours (5 hours earned) | I learned that the canvas component can be used in the design makes a widget scale to the screen size. I learned branches are how you make an “if then” statement in Unreal Engine and used that to check if the player is correct and show something indicating that (the word success or the word failure). I also fixed a complicated git issue all on my own by reading the error messages and deleting a hidden git file that was locking uploads for some reason. I also made a map called “RioTest”. | ![]() |
| 2/17/25 - 2/21/25 | 21 hours (4 hours earned) | My widget kept saying every answer was correct. This was debugged later after I realized I disconnected the “false” part of the branch so being wrong wouldn’t do anything and there was also a problem with the variable values. Then, after our very first barebones “demo” was complete, we made tasks to complete the 0.0.2 demo. I volunteered for the job of making Tutorbot, especially since I love character creation and he was the only character who was planned to be in the game at all (at least, that was the original plan). | ![]() |
| 2/24/25 - 2/27/25 | 25 hours (4 hours earned) | This week is when I started making Tutorbot in Blender. He had cylindrical eyes made with the text tool using the “o” key and his mouth being the “u” key. Trying to figure out Blender and get this far after trying to figure out other ways to do the eyes was really hard. He may look simple, but it took time! | ![]() |
| 3/4/25 - 3/7/25 | 34.5 hours (9.5 hours earned) | I made another Tutorbot who was more smiley, his eyes now being the “^” key. I kind of thought maybe he could swap to that one when he was happy but then learned you can’t do that with Blender. March 7th was a Plan E day, but I went in anyways, w orking from approximately 9:45 to 5 PM (5 hours and 37 minutes so approximately 5 and a half hours). I made Tutorbot’s idle animation after researching more on how to animate and going through it step-by-step. | ![]() |
| 3/12/25 – 3/14/25 | 37 hours (2.5 hours earned) | Remade Tutorbot in Tinker CAD, since some parts of him, like the glasses I wanted on him weren’t there and the plugin, Blender to Unreal Engine Pipeline, had errors in its python script. Also, Johnathan said it didn’t look right to him and he designed him. It was planned for me to do this since I love drawing characters, but I was still doing the question widget at the time. | ![]() |
| 3/17/25 - 3/19/25 | 39.5 hours (2.5 hours earned) | When I imported him, I realized that when something is the same color, TinkerCAD counts it all as one object when exporting. So, I exported him after changing his colors until that issue was resolved. I also realized his face didn’t show up and his glasses were too far from his face, so I fixed those issues and then exported him again. He also was glowing for some reason (this problem gets fixed late. | ![]() |
| 3/31/25 | 40.5 hours (1 hour earned) | The text in the question widget was being tinted with the color of the menu around it. I was trying to fix this problem. One of my approaches was changing the t-value after I found the t-value when searching for a while for a solution. | ![]() |
| 4/3/25 and 4/4/25 | 42.5 hours (2 hours earned) | So, Tutorbot didn’t save. I didn’t realize TinkerCAD doesn’t autosave. I just started over with nothing as reference except Johnathan’s design and started making him in TinkerCAD. I also used a capsule resource from online for the body and cut it in half to look more like the drawing. | ![]() |
| 4/8/25 - 4/11/25 | 46.5 hours (4 hours earned) | After a week of hard work, I got Tutorbot assembled and colored him correctly. Although, I soon had to remember that the colors make TinkerCAD group the parts in a way that was not beneficial to me. So then I exported again to fix it. I put him in Blender and started animating after getting approval from Garret and Johnathan. | ![]() |
| 4/15/25 - 4/17/25 | 49 hours (2.5 hours earned) | I made a talking animation. Then I saw his idle no longer had his whole body floating. So, I tried to fix it by combining his whole body as one whole part. Now when his hands tilted to show talking, his whole body would rotate so we couldn't make a talking animation. | ![]() |
| 4/21/25 - 4/24/25 | 53 hours (4 hours earned) | I imported the new Tutorbot into Unreal Engine. I also made a concept tree and lists of things Tutorbot could potentially say that were not math related (related to the plot, tutorial on how to walk, use weapons, what monsters are, how to use items, etc). I also wrote more dialogue in a list because I worked so hard on him, it had to pay off. I wanted him to have a big part in the game to make this worth it. He is the only 3D model that was not previously made by Zack and I wanted him to do more since I spent months on it, and I was proud of being done with it. | ![]() |
| 4/28/25 – 5/1/25 (4/29 was Portfolio Interviews) | 57 hours (4 hours earned) | I imported Tutorbot but it did not bring over his animations; OBJ files apparently don’t have animations. Quentin then told me to export him as an SFX because SFX files keep their animation data, even when moved to other programs. I also had to put his face back on him because somehow it had come off. So, I had to reimported him into Blender, aligned him, isolated his screen, then put it on his face and animated them to move with everything else. That is why his new name is ”TUTORBOT_FACE_FIXED”. | ![]() |
| 5/5/25 - 5/9/25 | 62 hours (5 hours earned) | I used Unreal Engine’s simple texture option to make a blue metallic texture called "tbcolor" for Tutorbot’s body and made one called "screen" for the face which also made the model not glow anymore but was instead shiny like a real robot. I renamed the achievements folder and accidentally made a git conflict that we couldn’t find out how to fix. Quintin ended up fixing the git issue for us, made backups, and helped us get rid of default files that Unreal Engine gave us that were unnecessary. While someone is working in the git, you can’t work with the involved files, so, I worked on my slide for our presentation to the GRILL staff of our game. | ![]() |
| 5/12/25 – 5/16/25 | 65.5 hours (earned 3.5 hours) | I deleted the old presentation we made to show to the GRILL and worked on the new one in Canva. I found out how to make transparent images in paint by accident when making menu buttons. So, I then took out my save button I made early on, gave it a transparent background and put it in the pause menu. However, it did not actually save the game yet, despite there being a save game asset for the game because I didn’t know how to make that asset work. | ![]() |
| 5/19/25 - 5/23/25 | 70.5 (earned 5 hours) | I started adding text for a tutorial telling you to talk to Tutorbot and then answer math questions. I tried to make Tutorbot spawn in the starting room with the player. I ended up getting him in there, but he floated in the air. | ![]() |
| 5/27/25 - 5/29/25 | 97.5 hours (earned 27 hours) | I got Tutorbot to spawn properly after learning another coding mechanic from Garret. On the 29th, they gave me 24 hours for paperwork and my supervisor agreed that it was 24 hours for my internship. This earns me 27 hours and makes a grand total of 97.5 hours. | ![]() |
This internship was a lot of fun and I think showed me how hard developing a game really can be. I think it helped me grow in collaboration and learned that when developing a game, you really do need a team. A team of possibly smaller teams with certain skills. Like I did the 3D modeling. I wasn’t really that good at 3D modeling and I was originally supposed to be the designer. But because it took me so long because it was so difficult, I didn’t get to do much else. The time it took made me proud of it but I do wish that I could’ve done more for the project because I feel unfulfilled. However, the GRILL still said they were proud of us, I just wish that I could’ve been doing as much in comparison to the entire project as Garret or Johnathan. 3D animation was cool though, so maybe I could do a job with that in the future, which I hadn't considered before. But I probably won't do something with specifically 3D modeling because it is so frustrating. Something that was really difficult that I had to fix was both not knowing how to use Blender and also making Tutorbot spawn near the player. For Blender, I mainly just looked at user documentation and learned how to use it. The map, however, was not so simple. It couldn't have been documented anywhere because the randomization process for the map was a new process invented by Zack. We had no more communication with Zack, as he was scheduled to continue working on it over the summer, and our internship term ended at the end of the school year. So, I had to go in and find all the information and research the different blocks and find the way to get the player's location and learn how to use vector variables to position Tutorbot in an appropriate way relative to the player's spawn point without him every going into another room or appearing off the map, and I also had to make him start his animations. So I had to experiment a lot with variables and code for starting animations because even when disecting Zack's code, the doors were the only things with animations so I had to dissect the door code too to learn how to make them have animations. But I found out the way the doors moved wasn't an animation but just changing the positioning data to go up and down. So, I kept researching, practicing, and looking things up. But the info on the internet was outdated. Even Garret and Johnathan who had used Unreal Engine before didn't know what to do. But I powered through, and after Garret showed me a feature to change the pins to make the variable types different, I was able to get him to spawn at a relative location to the player's spawn and he wasn't floating this time unlike when I tried the spawning in a random spot using a sphere option! It was so amazing finally getting it to work and then getting him to play his animation. I also got a little bit of tutorial with instructions to work as well.



















