Week 9, Milestone 2
Goal description: My goal is to be able to make the saw move to the left and right. To complete this goal, I am going to continue to watch the video that helped me make the original saw. The reason I am making that saw move is that it will increase the overall difficulty of the game. It will also give me more ideas on how to make the level design more impressive. I am also going to make sure that the hitbox follows the saw as it moves from left to right.
Significance: Something that is very important about all games is making the game a challenge. While a stationary saw does add a way for the player to die it does not add much challenge. Through creating a moving obstacle the player will need to think more or could have to restart from the beginning. I am also going to be thinking of putting the trap in unique places that could be interesting like it going inside and outside a wall. After creating a trap that moves from left to right could cause me to make one that goes up and down which would be a fun twist to the game.
Research: To be able to accomplish my goal I went back to the same youtube that helped me accomplish my other two goals. I am probably going to run into a problem I am going to be using discord again.
Discord Inc. (2015). Discord (Version 0.0.39)
[Pandemonium]. (2021, May 29). Unity 2D Platformer for Complete Beginners - #7 HEALTH SYSTEM [Video]. Youtube.
https://www.youtube.com/watch?v=yxzg8jswZ8A&t=603s
Self-Assessment for Week 9. After reviewing my goal for the week and the evidence added to my portfolio’s SSP pages to demonstrate the completion of that goal, I have chosen the performance rating of 4: I have accomplished the goal established at my last meeting. The evidence added to my portfolio sufficiently demonstrates the goal has been satisfied.
On October 13, I began developing making the saw move left and right. To begin this process, I continued to watch the video which helped me develop the original saw trap that just sat in one spot. I began this process by adding to the original code. I started by creating a couple of variables that will store some values for the movement of the saws. The new variables that I created were distance, speed, and damage. These values can be changed for each saw trap which allows me to adjust the values based on where the saw trap is placed. After I made those values I created that when the game starts, it will begin to move only as far as the value, I put in for distance. I then created another couple of lines that when the saw reached the end of its movement distance then goes right. There are also other factors too like speed which I added as well which changes how fast the saw moves left and right. After running the game and having the player touch the saw I am able to say that I did work. I also received no error that would force me to go back onto discord to ask for help. I then thought of having a saw going on a platform to make the game more interesting, and it looked pretty good. I decided that I am going to continue to find interesting places to put a saw.
https://docs.google.com/document/d/1brD7qKWMfNmSZlhRqVTdoHZRo-rh6q027GKux2FSiJs/edit?usp=sharing
On October 15, After getting the saw to move from left to right I expanded on the level design. I began this expansion by playing my level and thinking of areas that could use a challenge or just creating ways in general to add moving traps. One of the ways that I liked the best was creating a saw that goes into a wall and then out of a wall. I felt that the design was pretty unique and would be interesting for someone that does not know it's coming. I decided to expand on that idea by creating more areas where a saw can come out of walls for the player to be surprised. I also wanted to punish the player for missing a jump, so I have added pits the player can fall in which if they don't get out quick enough they die. After looking at the walls and floors of the tower it seemed to me that they were not thick enough. That is why I decided that the walls and floor should be at least two blocks thick. Since I felt that the tower was too short I increased the size to fit a whole other story. This was done to make the player feel like they're climbing a massive tower not just a two-story building. As I was building I was thinking of different ways the player could risk themselves to collect extra coins. This made me create areas that while the player does not need to go if they do they will increase the number of coins they collect overall. This will be an extra challenge for players that want to increase their overall high school. Adding coins also helps me lead the player down a path I want them to go.
On October 18, I thought that after I finished expanding the tower I wanted to add an outside area. After thinking in my head about different types of ways I can add some structure outside I settled on creating a house. I decided on a design that felt like a medieval shack which I felt fit best with the overall style of the game. I did not want it to seem too modern since you are playing as a knight. I then had to find out what the dimensions of the building should be. I did not want to make the ceiling too high but high enough for the player to jump over a trap. My first design for the house was too small and could only fit in one trap. I decided to double the size to fit another trap inside as well. I then put in a brown background which I felt fit well with the wooden house design. I then adjusted the speed of the to make it more of a challenge. I then moved onto adding coins throughout the level. I placed the coins in areas where the player is more likely to get hit by a saw. I kept looking over the level thinking of different locations I can place the coins in the level. I finally decided on the current layout which seemed to fit my game best. After playing through the level I noticed that the player could not jump on some of the platformers so I moved them around which fixed the problem.
Evidence: During this week I created a saw trap that moved left to right and placed them throughout the map. I also expanded the tower and added a wooden building on the outside. I also placed coins throughout the level. This is all shown in the youtube video I posted.
https://www.youtube.com/watch?v=M8TsENY4lYQ&feature=youtu.be
Week 10, Milestone 2
Goal description: My goal is to create a game over screen. To be able to complete my goal I am going to do research on different tutorials that will be able to help me accomplish the goal I set for myself. The reason I came up with this goal is that currently when the player dies the only way to restart the game is to close it and reopen it. I want the player to be able to restart the game without closing it first.
Significance: An vital part of any game is to have some way for the player to replay the game. While currently, the only possible to restart the game is by closing the game and reopening it. This process is slow and annoying to be forced to do every single time you want to play again. This is even more true when unity has such a long load time. This can easily cause the player to become frustrated. I am hoping to lessen the frustration by creating a game over screen that allows the player to restart. This game over screen is also a significant step towards having a completed game since it is one of the fundamentals. This game over screen allows me to pursue my next goal which would be creating a start screen.
Research: To be able to accomplish my goal I am going to have to watch a youtube tutorial and which happens so often is reach out on discord for help on my game.
Discord Inc. (2015). Discord (Version 0.0.39)
[Pandemonium]. (2022, Apr 26). Unity 2D Platformer for Complete Beginners - #13 CHECKPOINTS & RESPAWN [Video]. Youtube.
https://www.youtube.com/watch?v=STBVkS1Y3dk&list=PLgOEwFbvGm5o8hayFB6skAfa8Z-mw4dPV&index=13
[Pandemonium]. (2022, Jul 13). Unity 2D Platformer for Complete Beginners - #14 GAME OVER [Video]. Youtube.
https://www.youtube.com/watch?v=3tQSAtaSwvc&list=PLgOEwFbvGm5o8hayFB6skAfa8Z-mw4dPV&index=14
Self-Assessment for Week 10. After reviewing my goal for the week and the evidence added to my portfolio’s SSP pages to demonstrate the completion of that goal, I have chosen the performance rating of 4: I have accomplished the goal established at my last meeting. The evidence added to my portfolio sufficiently demonstrates the goal has been satisfied.
On October 21, I began my process by doing research on different tutorials that could be useful. When searching for tutorials, the first thing I check is when the video was released. Since unity is a game development software that is constantly being updated videos that are two to three years old will not be very helpful. The next thing that I look for is how long the video is. This is due to that if a video is really short it will most likely not give me all the information to be able to complete my goal. That is why it is so important to look out for those two factors. After spending a long amount of time searching for videos that would help me complete my goal, I finally found one. After watching the first couple minutes, I, unfortunately, found out that to complete the game over screen using this tutorial I needed to watch his previous tutorial. I needed to watch the previous one because this video was built off a bunch of code from the other video. This previous tutorial was about creating checkpoints, and a respawn system. I now realized that my goal would take double the amount of time since I do not only need to make a game over screen but also develop checkpoints. I was disappointed, but I carried on.
On October 22, I began watching the video on how to create checkpoints and allow the character to respawn. The first major problem I ran into was finding a checkpoint asset. Searching it up directly on the unity store was little to no help since none showed up that were free. I become worried about what I would do if I could not find a checkpoint asset. I then came up with an idea that maybe one of the 2D asset packs includes a checkpoint. To my luck, that is exactly what happened, and I just fixed my first problem. After I dragged in the asset, I then applied a box collider which detects if anything touches the asset. The next step was to add animation which unfortunately I was only given the pdf to create and not a complete animation which I did not know how to create. This caused me to look online on how I might create be able to create an animation. After completing my research, I found out I needed to create a controller, hold shift, select all of the pdfs, and then drag them into the controller. After finishing adding all of the components on the inspector, I moved onto developing the script. This script would allow the player to respawn into the game. To be able to do this I need to reference a valuable that stores the last checkpoint the player touched and the player's health. Then when Respawn valuable is referenced the player is teleported to the last checkpoint they touched. I then added another respawn function that gives back the player's starting health and makes them invulnerable for a short period of time.
https://docs.google.com/document/d/1CrMq4HiXBbUGaW-GM9iaCNdiUW6Z6txP67WYdR8dOx0/edit
On October 23, I continued the development by adding another function that activates the checkpoint once the character touches it. This happens when the player touches the box collider the code marks that the player just touched this checkmark and if they die spawn them there. After running the game to see if it worked, I was unsuccessful, and there were no obvious signs of any mistake I could have made. I decided to closely rewatch the video constantly rewinding to see if I missed anything, but it seemed I did everything
correctly. I then tried to scan through the code myself seeing how different functions reference each other and see if maybe I misspelled something that unity did not catch but still nothing. I was beginning to feel really frustrated by the lack of answers. I headed back onto discord in hopes maybe someone there might provide me with an answer. I posed my question with the code, but no one responded initially. I waited half an hour till I posted it again still nothing. I posted it a third time starting to feel that my efforts were hopeless, but I finally got someone that responded to my question. He asked me what exactly was the problem I am facing. I explained that when the player dies nothing happens while the player should respawn at the checkpoint. He asked me a couple of other questions like have I made sure that the checkpoint had a box collider or that there were no errors in my code which I answered yes to both. After going back and both for a little over an hour all of a sudden he stopped responding. After twenty minutes of no response, I sent him a notification but still nothing. After around forty minutes of no response, I came to the conclusion that he was never coming back.
https://docs.google.com/document/d/1CrMq4HiXBbUGaW-GM9iaCNdiUW6Z6txP67WYdR8dOx0/edit
On October 24, Since I could not find anyone the day before I decided that I will fix that later and try to code the game over screen. As I began coding the script, I immediately ran into an error. A line of code that would turn on the game over screen said that it was not referenced. I did not know where to reference it since it was not covered in the video. Since now I am stuck with the checkpoints, respawn, and game over screen mechanics I decided to go back to discord. I reposted my question, and like usual I was ignored the first couple of times and repeated the process that I was forced to do yesterday. After more waiting, I finally got someone that was willing to help me. I explained to them the problem and was asked similar questions to the day before. After ruling out any obvious solutions, he took a deep dive into my code. After waiting half an hour for an answer, I become worried that I was left in a similar situation as yesterday. Then all of sudden I was notified of a message by that person. I immediately opened up discord to be met with the disappointing response of I do not know what is wrong with your program. I felt defeated and did not know what my next move should be.
Evidence: During this week I tried to create a checkpoint system, a respawn system, and a game over screen. Unfortunately, I was unable to complete the goal and tried to reach out on discord but was unable to get help. Even though I did not complete my goal, I still wrote a lot of code.
https://docs.google.com/document/d/1CrMq4HiXBbUGaW-GM9iaCNdiUW6Z6txP67WYdR8dOx0/edit
Week 11, Milestone 2
Goal description: My goal for this week is to have a unity tutor to help me with some of the problems with my game. Before I am able to meet with a tutor I am first going to need to search for one. I am planning on doing research which I am hoping will lead me to find a tutor that will be able to help me. I am also running on a strict budget of thirty dollars which will play a major factor in my search.
Significance: Finding a tutor is a significant step into the development of my game. I am hoping that after scheduling my first session many of the problems that I faced will be fixed. My biggest problem when trying to get help on discord was the only way they could see my game was through screenshots and the only way for us to converse is through messages. Being able to talk to each other and share screens will be a massive time saver and will help limit the amount of confusion that is caused when only communicating through screenshots and text.
Self-Assessment for Week 11 After reviewing my goal for the week and the evidence added to my portfolio’s SSP pages to demonstrate the completion of that goal, I have chosen the performance rating of 4: I have accomplished the goal established at my last meeting. The evidence added to my portfolio sufficiently demonstrates the goal has been satisfied.
Research: To be able to accomplish my goal I am going to be working on a unity fundamentals class and be attending a unity tutor.
Markdefalco. (n.d.). C# fundamentals for absolute beginners. Microsoft Learn. Retrieved October 31, 2022, from https://learn.microsoft.com/en-us/shows/csharp-fundamentals-for-absolute-beginners/
Actions I took: On October 25, I began my project by going to a tutoring session with someone that is familiar with unity. A major problem I was faced with when searching for a tutor was that there are not many sites that provide unity tutors. While unity is the largest game development software currently out there unity tutors just do not have a large enough market. After spending quite some time researching for a tutor that is familiar with unity or game development I finally found a website. While this website did not have someone that directly taught unity it did have a tab for game development. After selecting it I was requested to make a quote for what times and when I needed a tutor. After submitting my quote within two hours I received two different tutor requests. I informed them both of the problems I was having with my game and that I would be needing help with unity. The first person said he unfortunately did not know unity so he would not be able to help. I began to feel worried that I might not find anyone that would be able to help me develop my game. I then checked if the second person was familiar with unity. When I opened up the message I felt a sigh of relief wash over me when I read he was familiar with unity and would be able to tutor me the next day. I asked him what his rate and he said fifty dollars an hour. I became worried again wondering if he would accept a rate of thirty an hour. I let him know that thirty dollars is my budget and he accepted. I scheduled it for the next day at six o clock .
On October 26, when the clock hit six I opened up my computer and saw that he sent me a link to a website. The website that the tutor and I used was similar to zoom just that it had a larger focus on the whiteboard aspect. I informed the tutor on some of the problems I faced trying to create my game and he told me to share my screen. I explained that my first problem is that the character does not respawn. He told me the problem was that I referenced the respawn class before I referenced damage variables. I was then asked how much knowledge I had of C# which I informed in hardy any. I mainly just been watching youtube videos on game developed with unity. He recommended I watch the fundamentals in C# videos by Microsoft. I asked if I would have enough time to complete my game by december if I watched all of the videos which he informed me with I would. Then all of a sudden he said that he needs to leave and will call me back at seven. It was only six twenty but I said ok I was little disappointed that my tutoring session know will not end till after eight o clock but agreed to the reschedule. After meeting back at seven o'clock we continued the session. He wanted to discuss about integers, classes, and variables. After doing that for twenty minutes I asked if he could help me fix more bugs with my game. We obliged and helped me fix an error with the saw trap where it did not kill the player. For the last ten minutes of the session he just wanted to talk about the importance of me watching the videos created by Microsoft. When the meeting ended I kinda felt disappointed that we spent so little time directly working on my project. After checking out the C# fundamentals website I decided that I will watch some open the videos.
On October 28, I began watching the videos to help me better understand C#. The first two videos were not extremely helpful. The first one was just giving basic advice and tips about C#. The second one just helped me install the program and open up by first project. The second one was slightly more helpful but I already knew how to download and launch the C# since I used the same program when I learned to code on visual basic. Even though I knew most of the information that was stated in the videos I still am glad I watched them because there was some minor information that I did not know about. I then moved on to beginning to learn about understanding C#. While this program that I created is simple it provides fundamental lessons to know. The program writes Hello World and then ReadLine reads what's on the line. This video was a lot more helpful than the other two which I expected. The instructor did a pretty good job on explaining the different concepts and was easy to understand. I was a little bit confused about the difference between ReadLine and WriteLine but after doing some research on it I was no longer confused. Over all I did feel more confident after watching the first three videos.
https://docs.google.com/document/d/1bA7qVgwT92PtBkQlIAgflYZBUUxZAxBPXxemSV8vuEY/edit#heading=h.sa9e14gwuhbf
On October 30, I decided to continue watching the videos and following along. The next video went more in depth on the concepts of WriteLine and ReadLine which I found helpful. I re watched the video twice due to there were some parts I was a little confused but after re watching it I understood. I moved onto the next video which discussed variables. This video was a bit more confusing due to that involved a lot more concepts. The first thing I did with the program was creating two variables which were a x and a y. I then assigned seven to the x variable and x+3 to the y variable. Then the program printed the line on to the console. The next program I wrote would ask the user to type there name. Then what ever the user typed is assigned to a variable. Then the user is requested to type there last name which is stored in another variable. Then there first and last name is then printed onto the console. Completing this has helped me better understand how variables reference each other and how to call different variables.
Evidence: During this week I had a tutoring session where I was advised to complete a fundamentals class. During this fundamentals class I worked on three different projects which I put on a google doc.
Week 12, Milestone 2
Goal description: My goal for this week is to try and fix some of the problems that I have been dealing with. The current problem that I am trying to fix is figuring out why the checkpoint and respawn systems are still not working. I am going to be using discord and rewatching the videos in the hope maybe I missed something. I will also work on the person's advice about how to fix that issue. That person provided me with a video that he said would help me figure it out.
Significance: Being able to complete this goal will mean that I will finally have a way for the player to respawn. Whenever the player dies you have to close and reopen the game which becomes annoying. The reason this becomes annoying is that whenever you open the game unity first needs to run all of your scripts. This will not only be significant for my game but the knowledge of fixing this problem will be significant as well. Since this problem involves referencing different functions and scripts being able to figure it out will help me in the future heavily since you do that a lot when working with unity.
Self-Assessment for Week 12 After reviewing my goal for the week and the evidence added to my portfolio’s SSP pages to demonstrate the completion of that goal, I have chosen the performance rating of 4: I have accomplished the goal established at my last meeting. The evidence added to my portfolio sufficiently demonstrates the goal has been satisfied.
Research: To be able to accomplish my goal I am going to be rewatching some of the old videos that I originally used to make the respawn and checkpoint system. I will also watch a video that was recommended to me by a person on discord.
Discord Inc. (2015). Discord (Version 0.0.39)
[Pandemonium]. (2022, Apr 26). Unity 2D Platformer for Complete Beginners - #13 CHECKPOINTS & RESPAWN [Video]. Youtube.
https://www.youtube.com/watch?v=STBVkS1Y3dk&list=PLgOEwFbvGm5o8hayFB6skAfa8Z-mw4dPV&index=13
[Pandemonium]. (2022, Jul 13). Unity 2D Platformer for Complete Beginners - #14 GAME OVER [Video]. Youtube.
https://www.youtube.com/watch?v=3tQSAtaSwvc&list=PLgOEwFbvGm5o8hayFB6skAfa8Z-mw4dPV&index=14
[SpawnCampGames]. (2021, Dec 11). Referencing Scripts and GameObjects in Unity [Video]. Youtube.
https://www.youtube.com/watch?v=YEk7mKovpUE
Actions I took: On November 1, I began my goal by going on discord to ask my question. I asked if someone could help me with my game I am having trouble getting the respawn system to work. Similar to my other attempts of reaching out I was met with no response which caused me just to keep repeating my question every ten minutes till I received a response. After waiting half an hour someone responded that were interested in helping with my project. The person asked me to send in the code for my game which I copy and pasted into discord. After him looking over the code he responded back asking what function kills the player. I stated that the dead function is in the Player health script and when that function is triggered I want it to trigger the respawn function in the player respawn. He responded back with okay, what you need to do then, is call the Respawn() inside the PlayerRespawn script, inside the Respawn in this script. The problem is that I do not know how to do this so I informed the person. He responded back by sending me a video that is supposed to teach me how to call functions and reference scripts. I asked is what he stated all I would need to do to fix my game which he responded with yes. After hearing this I began to feel excited that I will finally be able to fix this problem.
On November 2, I continued my project by beginning the video that person sent to me. While watching the video I began to feel confused since he is referencing a function in another script. He does it in a way that I do not know how to implement into my own game. I decided that maybe watching the video a couple of times might help but still, there was just something about it that I could not figure out. After feeling stuck with this video I decided to rewatch the two videos that helped me originally develop the code. After watching them I felt confused because they were similar to what the guy on youtube told me the person in the video did not have anything that calls the respawn function. I began to feel like I would never be able to get this project done. I began to try different methods in the video but just kept being met with different error messages and was left feeling hopeless. I was worried if I headed back to discord too quickly they might just give me the same response as before to just watch the video. So I decided to try and do some research online about how to reference a function in another script but was still left just as confused if not more.
On November 4, I went back on discord to ask my question again and went through the whole thing of explaining the problem to the person on discord. After spending a good amount of time explaining everything that I told to the other person and providing screenshots he responded with the same video. I informed him that I already watched the video and was still confused about how to reference a function in another script. He then notified the creator of the video which surprisingly was on the server. He then asked what exactly I was confused with and I informed him I understand the process just not how to phrase the code to work for my game. He then informed me on how to phrase the code which I copied into my game. I finally felt that I was getting somewhere with the development of my game. I ran the game but unfortunately, it still did not respawn the player. I informed the person which he asked if I had added the script to the player which I told him I did. Turned out that I had not and only added the script as a component but not dragged the player into the specialized field of the script which they helped me create. My hopes were that the respawn and checkpoint system were lifted again until I saw once again that it still did not work. I honestly did not know what was left for me to do. I once again told them of what had happened and said they were not exactly sure of what else to try and left. I honestly kinda felt that this was going to just be another abandoned aspect of my game similar to how I abandoned the enemies in my game.
On November 5, I headed back into discord in the hopes maybe someone might have the answer to how I might be able to complete my game. I had to ask my question a couple of times but got someone that said they would be able to help. Even after finding someone that said they would be able to help I still felt worried that they might say they do not know what else to do. I went through the same process I had to go through the other two times I went on discord by providing the code and screenshots. After some time of looking through the code, he did notice a problem. He saw that when the player takes damage it does it twice. When I was creating the code for the player to take damage a person on discord told me to implement two different lines but turns out both those lines did the same thing. So when the saw trap damages the player both those lines take one damage off the player each. So I deleted one of the lines and saw that now the saw drop only takes away one health point from the player instead of two. This made me feel a little better but was still worried that I would not be able to fix the problem with my player respawn and checkpoint. He did let me know that he would be unable to help me with my problem. After feeling like I had nowhere to turn I decided that I will try and get a tutor that would be able to help me. Since I did not feel great about the one I had a session with I decided that I would seek out a different one online. After sending out five requests I am just going to have to wait and see.
https://docs.google.com/document/d/181GUBt_0bl2qgweqFiCx-EvnEHoRbBSnAcPm32FUYOQ/edit
Evidence: During this week I have rewatched the two videos that helped me make my respawn and checkpoint systems initially. I also watched a video sent to me by someone on youtube and spent a lot of time troubleshooting on youtube. Due to not being able to fix this issue, I decided that I will get in contact with another tutor that will hopefully help me with my issue.
https://docs.google.com/document/d/181GUBt_0bl2qgweqFiCx-EvnEHoRbBSnAcPm32FUYOQ/edit