Blog?

  • MADT 201 Self-Directed Game Project November 30

    Writing this as this project is finally finished?? Yes! It is so interesting looking back at my original plans for this project and seeing how it has evolved in to something that I still think reflects my initial intention, but in such a cool way! Today was the final touches to the game. Mainly, the audio component. So I recorded some samples and mixed them in Audacity to really pull the atmosphere together!

    And again I worked again and again trying to figure out these walls but I think at this point I have to concede. I think the issue was I hadn’t sorted the colliders before muliplying the rooms-which would have taken less time and they would have worked nicely! There just does not seem like a way to fix this at this stage without spending many hours perfecting each wall or starting from the begining. I know better for next time for sure! Maybe when I present I can get some good feedback on this too!

    So I’ve built the game and am excited to present tomorrow!

  • MADT 201 Self-Directed Game Project November 28

    Coding day! Today was a long and a lot of work. I watched so many tutorials, read so many solution posts. Learned a ton of super informative stuff, a lot of times the hard way. But by the end of it all I have code that does what I want it to so yay!

    First was focusing on getting the doors to open and close which I was mostly watching this tutorial on:

    But after a while I realized so much of this was beyond my current knowledge set and I knew there had to be a way to do it that was more intuitive and made better sense to me, so with what I learned with this video, I came up with this:

    So definitely a step up from making my player move! But I got to learn about Quaternions and Eulers to do these rotations, and coroutines to allow a function to start and stop at different times. Another important thing I learned was linear interpolation which smoothed out the animation transition nicely.

    After I had the doors opening and closing, I wanted to move onto the dialogue boxes. I spent a lot of time trying to sort out the colliders to trigger NPC actions using these videos:

    But I ended up scrapping the idea because I just could not get it to work on my end. I still wanted to utilize the UI functions and have something pop-up on screen: queue game start box! Which I had a bit of understanding with playing with the TMPro Function while trying to follow the first tutorials and some unity user support help!

    For this using a string array made so much more sense than the doors did and made me yearn again for the P5js days again haha! Regardless, it works!

    However, because I am wanting to present this on Moday I don’t think I have enough time to figure out how to integrate this process for each of the NPCs so I had to find a different way to have them communicate the text.

    Which is not too headachey! But there we have it, 3 self-coded elements! I saved the best part for last which will be my (hopefully) final session!

  • MADT 201 Self-Directed Game Project November 24

    Hooray for a snow day, now I have to work on this project all day! So I remember saying this felt like playing the Sims, today especially! Long day of assets, assets, and more assets. And walls. 2 hours of trying to give the walls colliders. The corner walls specifically seem to be giving me the most grief-the prefab colliders for them are oriented incorrectly and I tried to contruct my own with little success. There currently doesn’t seem to be an efficient way to fix this right not so I decided to move on and focus on all the stuff instead which was a lot more fun and returned my joy for this project. I fear for the future of these walls.

    Everything else was easy to sort out the colliders for, and seem to be working good! I’ve removed some of the colliders just for ease getting around corners (a little clipping never hurt anyone!)

    I anticipate the next session working on this being long too as I am completing the other codes I’d like for this project: the doors and dialogue.

  • MADT 201 Self-Directed Game Project November 22

    First thing coded today! Yippee! This is when the Jr Programmer tutorials have come in clutch haha. The asset I’m using for the player came with a movement script, but I wanted to write my own. I’ve left the idle animation though because I thought it was cute and would be nice at the end when the player found out it was a dog.

    But this is really helpful in these early stages because as I set up the rooms I’ll be able to immediately test them as the player.

    Other than that, I got to work on doing the lighting for each of the rooms. This really does change the atmosphere so nicely, I’m itching to get audio in this project! I also went and worked on the mirror for the end room, which was a ton of fun to work through! I think this also gave me a good oppurtunity to understand a lot about unity assets; changing/making material, colliders, cameras. I Mainly used this video for reference:

    Hello Dog!

    Next is to get better bearings on these rooms.

  • MADT 201 Self-Directed Game Project November 17

    Oh wow so I thought maybe my initial game idea was too simple, but now that I’m actually working in Unity on my own I think this will actualy be challenging for me. But I think still doable!

    I have spent my time collecting assets and planning the layout of the map. I liked getting everything this sickly green lighting on it! I’ve also sorted the floors out so you dont immediately fall through them. Will see what I can do about the walls at a later time.

    Navigating Unity stilll feels so strange! Like playing the Sims but you have to add all the math and physics yourself! Boo! But I’m hopeful my pace will start to speed up as I get more used to the program. I want to get a little bit of programming done next time as I know even though setting all the models up takes time, coding takes so much longer for me to wrap my brain around! Still, happy with this start!

  • MADT 201 Self-Directed Game Project November 12

    I have started the preliminary development of my final MADT 201 project by considering the concepts I am wishing to explore with this piece and what basic layout/elements I aim to include in this game.

    I think first off, I want this to be more of a “walk-through” experience, where the player walks with a first-person perspective through the game with the objective to be an observer of the space rather than an active member of the space. I want to remove the classic means of interaction in video games in which you interact explicitly with other game objects and instead have the player’s considerations of the environment of the game as the main objective. 

    In this, I hope to have the player reflect more on their own positions in front of the computer; to have a more somatic experience rather than one that immerses them into the fantasy of a video game. 

    To accomplish this, I am planning on creating a “maze-like” walk through experience that leads into multiple different spaces with potential different end points to encourage players to restart and evaluate the space again. Some of the spaces the player moves through are to have comforting/familiar emotives and others are to have unsettling ones. I hope to have secret rooms accessible by false walls or trap floors. 

    Another important aspect of this game is going to be the auditory experience in relation to the visuals. There will be multiple different tracks that accompany different spaces; some musical, some noise-based, some harmonious, some dissonant. I plan on working on compositions for these after I design the rooms.

    Through all of this, I am hoping to work through my concept of how we have understandings or lack understandings of the technologies that we utilize in our contemporary era. I am interested in reflecting on how as users and developers of programs, we have come to an time where computations have become so convoluted that the humans in front of and behind the machines have little understanding and blind acceptance of the conclusions and outputs they create. I have been largely inspired by the writing of James Bridle in his book “New Dark Age” where he discusses our current age of widely accessible, over-saturated, and unverified information through digital technologies; how the machines we have made to enlighten the world are doing the opposite. 

    My next objective with this project will be to outline in sketches potential layouts of this game and begin researching and collecting potential game objects that I think will help me begin to understand the actual visual experience of the game.

  • MADT 201 Self-Directed Programming Project October 13-19

    The final stretch! This week I mostly worked on cleaning up my code and messing with colours and constraints for the project. I also wanted to do as many test runs as I could to be sure that it is running exactly how I want it to every time, and noticing things that could be better.

    The first was I had to make sure that not only did my fullscreen function move everything to display dimensions, but that the program did too! I tightened up the constraints for the “computer drawing” as well, as I liked that it went off the screen and would come in and out sometimes, a lot of the tests I did would end up with a small pile of pixels at the bottom, and I would never see the drawing come back! I didn’t like having the contraints to close or within the display dimensions, as I felt each time the whole screen would get too messy. That still happens, but it’s more special when it does now.

    I also experimented with a variety of colour combinations, but I ended up settling on these warm toned ones, I think with the audio driving a lot of this piece, I wanted to continue to push that warm feeling.

    An example of the final product of the code!

    But of course, a still doesn’t always capture it. I am so happy that I can create with this little machine, and it can create with me.

  • MADT 201 Self-Directed Programming Project October 6-October 12

    This week I’ve been working mainly on the audio component of my project, which has been the most challenging part of this process and has definitely taken the most persistence to get through.

    I started by collecting some field recordings along with my own guitar playing. I wanted to capture a warm, home-like atmosphere that further emphasized viewers to look inwards. Edited both audio files in Audacity, and they were good to go in my project!

    The code was where it got challenging though. Understanding the audio functionality of p5.js was pretty simple, and getting my first track to play for the entirety of the code running was easy enough.

    For this project however, I wanted the music I recorded to play as the user drew, thinking I could just add song.play to my mouseIsPressed function was a mistake. It was also a mistake to forget to save the draft project I was working through these problems on!

    Stellar! So had to reapproach how I was going to get this to work (after catching up on the other work I had lost). I knew the issue was that the draw feature was repeatedly trying to start the audio track each time it looped its function, crashing the whole site. So I needed to figure out a way to get the code to do a couple more checks before deciding whether to play the track or not. So, enter the Boolean, which assumes music is not playing, checks if the mouse is pressed, plays only once, and stops if the mouse is not pressed. This took a lot of trial and error to finally wrap my brain around how Boolean functions work.

    As per my comments instructions, now that the music played while the mouse was pressed, I wanted the audio to pan in relation to where the cusor moved across the screen. I was particularily interested in this feature as the audio is a major component to this piece, and I am planning on exhibiting it in AUArts’ 8 speaker media arts gallery. Again, doing this required me to understand another new p5.js function: mapping.

    This took a lot of persistence. And too be fair, I still am not quite sure what I have done here to get it to work, but it does so I am happy! For a while I had everything right except having my variable drawline defined in a constrain, and the second I included that everything decided to work and I now had a line that played audio as the user drew, and that audio panned left and right with the curser!

    Now I have essentially everything I want this program to do doing what it needs to, my final week on this should just be cleaning everything up and refining a couple other points.

  • MADT 201 Self-Directed Programming Project September 29-October 5

    This week I’ve begun to actually play around with the code and work through a couple different experiments of getting it to develop the kind of shapes I wanted; it’s definitely posing a different way of thinking, the math likes to develop very rigid forms with very precise borders and locations!

    It’s making me reflect on my relationship to this project and how in my trying to brute force a tiny code to draw like a human, I am instructing it to perform for me and it is working exactly as I tell it to. I’m thinking of sort of breaking this idea and having the computer make its own decisions is going to work in my favour (I guess it still is doing exactly as I say though, as I instruct it to have agency!)

    This is when I came across this particular Coding Train video (https://www.youtube.com/watch?v=TaluaAD9MKA&t=3s) and I had gotten very interested in the interaction between having a viewer or performer directly affect the visual output of the code while the computer makes its own set of unique decisions, creating a completely different visual composition each time the program runs with or without a person interacting with it. 

    It’s a little ironic, as I was playing with this code I realized that the solution to the coding problem Dan was presenting in the video (having a code run with trails while simultaneously run one without) was exactly what I needed to undo to have the code start making the types of forms I wanted it to. Goodbye clear canvas! Now seeing the trails the computer was “drawing itself”, I was happy to see the interesting forms it made randomly on its own.

    Que 2 hours of hair-pulling trying to get fullscreening to work, had to look at my prof’s code and write the rest of my code around it to get it to work. I had tried inserting it exactly into my code with no success, but somehow writing my code around the fullscreen code did? Computers man.

    This was then just a game of messing with the numbers until I had something that was starting to look like what I wanted. I had thought about working with individual pixels to create my forms, but found that on a large scale like this, generating the shapes themselves was working quite well.

    So now I’v got a good foundation for my program. Each time I run it, it creates it’s own unique form and the user is able to draw alongside it!

    I’m thinking a lot about how the mood of this piece is pretty quiet, personal, and introspective. This should help me inform the next main phase of the project: the audio!

  • MADT 201 Self-Directed Programming Project September 22-28

    This week I was mainly focused on gathering inspiration for a project that would challenge myself but I still felt was achievable within my current (quite limited) coding skillset. I wanted a project that still fit in with what I typically focus on conceptually in my other work; human idealism and relation to the material world, relationships and connections, and reciprocity. I also work a lot with explorations into audio, so I knew I wanted my project to have a strong audio component. 

    I wanted to make a program that created random organic shapes that the viewer would have to interact with and connect to in some way. I wanted it to get viewers to look introspectively as they interacted with the piece and consider their relationship to the code and by proxy, to computers. 

    At this stage I am still working out what exactly this will look like, but I’m hoping through research and experimentation this project will start to form itself. I’m interested in the experimental process leading me to a piece that speaks to my concept. In a way, I am hoping that the process of writing this code will be inextricable from the piece itself; that through my learning with the computer I am able to display my own meta-interaction with it.

    Here’s a page of notes I was using to start to conceptualize what the piece was going to be.