Technology/Multimedia: Independent Discovery

Liger’s always different and so it was in round 5. Not just this class, every class. There were just so many things going on. So many trips and so many classes missed. To mitigate the result of missing classes, most of the essential classes gave students independence and the opportunity to do some self-learning and exploration. But each class had a different set of goals, or rules, if you may look at them that way. For Technology/Multimedia, it was to learn something new, develop on it and create a small project or product that demonstrates what it is. The only constraint was that the class only met for ONE WEEK in the whole round which was four hours, so we needed to really use our time in class wisely. Some of us even missed part of the time due to trips or other things. That being said, what did I choose to work on that I could learn and create a product out of in four hours? Pygame, a well-known Python module was what I chose to learn about and work on for the independent discovery, but not all in four hours though.

So what is Pygame? Essentially, it’s a module that allows you to create two-dimensional games with Python which would normally be hard to do without. There are other modules that allow you to do the same thing and are possibly even better of course, but Pygame’s like the first step, one of the simplest ones I can say. By knowing what Pygame is and having read the previous post about this class, you might be able to guess at why I chose this as the thing to work on. Well, 1. I already know some Python and this is based off it and 2. I love making games and this allows me to do so easily. So what was my goal or what was going to be my product? A game of course! But due to time constraints, I wasn’t sure if I was able to create a full-finished game or just part of a game. Since I knew that not much could be done in the given amount of time, I knew I had to work on it in my own time. Plus I had two trips later the week this was given to me which made me miss 2 hours of the class, so I had to start working as quick and as soon as possible.

Here’s part of my code.

The first step I took to making a game out of Pygame was to learn it as if it was learning another programming language. Well, I had to install it before I could use it of course, but that doesn’t matter. I started looking for tutorials on the basics of Pygame on its official site which didn’t prove to have many resources that were useful to me. It did have lots of documents and tutorials, but it was all in text and I figured it would be best if I looked for another way to learn. I tried avoiding texts because reading would take up much time, in return of little help. So I turned to YouTube. The first video that I clicked on was the ‘one’. It was just what I needed. The video was the first part of a 10-part series about making a game out of Pygame and it was created by the YouTube channel, Tech With Tim. He’s a great guy and he makes lots of useful videos and most of them are related to Python and Pygame which was exactly what I was looking for. After watching the first video, I started creating. I initially didn’t prepare or have an idea of what kind of game I wanted other than it to be a never ending game, but after watching the first video, I got the idea of recreating Hollow Knight by Team Cherry (Search it up. It’s a great game.) which at first seemed like a huge task, but I went with the idea anyway. After watching two videos, I stopped. I felt like I had what I needed to start. And so I spent the remaining time all on creating the game.

A screenshot of what could’ve been in the game. It got changed because of functionality problems, but I’ll add it into the game after I solve the problem.

It was the usual coding process. Think until you get an idea. Something you want to add. Code it into the game. If it works, carry on. If it doesn’t, try to solve it. If you can’t solve it, move on. Else, still carry on. Sorry I’m talking in code. As I learned more about Pygame and added more things into the game, the big picture became clearer. I wanted a game with the story of Hollow Knight, but what you do in the game itself is you fight against a single enemy and every time you defeat it, it becomes stronger. It’s a never ending game. I didn’t want it to have levels because it would take a lot of time to create and because I had little time. The process of coding and putting everything together piece by piece was as fulfilling and pleasurable as it had ever been.  My longing of wanting to create my own 2D game with keyboard controls, unlike Twitfall which was a text-based game, was fulfilled. In the process of making the game, I encountered many problems and some of them were so confusing that I had to check over it many times – more than I should’ve. But the bigger the problem, the more pleasure it would bring which was sort of the motivation for me to kept going. I would either solve a problem myself and it would satisfy me or it would be so hard that I had to search on the internet for help until I found answers to solve the problem and when I did, it would bring me even more satisfaction. After 2 weeks of coding, thinking, recreating, and discovering, I didn’t finish the game completely, but I had most of what I envisioned and wanted. Here’s the result:

What you see when you run the game.

In the game, you’re a knight. The Knight (from Hollow Knight) to be specific. You’re in an unknown place and the only other person, or rather thing, there is someone who looks like you, but bigger, evil, and demonic. Your only goal is to survive. Try to defeat the demon, but keep in mind that every time it gets killed, it becomes stronger. You wield the power of void, a magical and black substance. Deep inside, you’re a powerful and mad being. You’re only under control when your soul is in your shell. When you’re under control, you can unleash the power of void and use it against the demon, but when you die, your shell will break, your soul will come out, and it will haunt you. Overcome, which means kill, it and it will go back inside your shell. So basically, it’s a never ending game of killing and escaping. You have 2 powerful abilities. Void tendrils and vengeful spirit. You can dash and you can super dash. And lastly, you have a nail which is basically a sword. When you die, a darker version of you will appear and attack you. That’s all that’s in the game as of writing this. My plan is to add more and develop the game in my free time. Maybe one day it’ll become a big project. I hope so.

I need to admit that I’ve been obsessed with coding lately. I’ve been spending a lot of my own time doing code, specifically making games, which I find a bit surprising because I don’t conventionally put as much time into an academic subject as this despite of how much I like it. Unusual enough, I don’t even look at coding as a thing you do in school mainly for grades anymore. It’s been more. It’s become one of my hobbies. That’s because it brings me the type of pleasure that’s different from what I would normally get from my other hobbies or academic subjects. And in this fifth and last round of Technology and Multimedia, I was able to expand on my knowledge of coding, learn more about it, go crazy about it, and love it even more by creating my very own two-dimensional game. I will find a way to put this game up on this blog once I feel it’s ready. But that’s not going to be the end because I have lots of plans for it and I hope to see it grow into a big, personal project. Thank you for reading and have a good day (or night)!

Technology/Multimedia: A Short Video

In round 5, we learned a little bit about editing in Adobe Premiere Pro. After, we had to create a short video. For my video, I chose to use and edit footage from when we went to an event called International Day at ISPP (International School of Phnom Penh) a few months ago. The video is titled “Makara ASMR” because my friend Makara is in it, and I found “ASMR” to be funny and fit for the content, even though there is not actually any ASMR in it. Because the file size of the video is too big (even though it is a video that is less than a minute-long), I cannot put it put it in this post. But I have uploaded it to my Google Drive and made it accessible for whoever has the link to it.  And that link is here:

http://bit.ly/3pqyNXd

I had a lot of fun making this short video.

Technology/Multimedia: Coding (Python) Part 2

Python, python, python. It’s a snake! There is a snake called python, but that’s not what we’re referring to. It’s a programming language. Python 2? No, that was last round. It’s python 3 this round! So in this round of Technology and Multimedia, we continued learning the programming language of python, but we used a better, more updated version of it which was python 3.

So what’s changed in python 3? Python 2 and 3 are still the same, I’d say. There’s just a small difference. In python 2, the way you would use the print function is:

But in python 3, it would be like:

On the course of a week, we learned new functions to better expand our knowledge of python, opening new doors for exploration and experimentation. The first function that we learned was ‘define’ and it is a function that allows you to make your own functions using the functions that are already in python. It basically allows you to repeat lines of code by writing whatever you named the function, it’s just like creating shortcuts. The next two things we learned were python lists and dictionaries. These two are similar. A list does what it’s called, it’s a list. It’s a collection of items that has an order, is changeable, and let there be more than one of the same thing; duplicates. A dictionary is like a list except that it is unordered and does not allow duplicates. It took some getting used to the changes in python 3, but we were back to writing code and programming in less than a snap because we needed to put what learned to use. In exercises.

The second week, I worked on two exercises from Code Club, a website that has lots of projects for you to work on in different languages of code. The two I worked on were making a program that chooses teams and a rock, paper, and scissors game. When writing code in programs and exercises this round, I wanted and decided to make my own additions. Like 80% of the time, the functions didn’t work on first run which still made me frustrated, but that frustration wasn’t bigger than the satisfaction of them working on later runs which I loved.

At the end of the round, we had to choose another project from Code Club to work on. Whenever I write code or think about code, creating a game or a program always comes up to my mind. And so I took this opportunity to do it. The project that I worked on was an RPG (role-playing game). When choosing a project on Code Club, instructions would pop up and you would follow them. I followed the first step, which was copying the pre-made code for the project, but then I went off drifting and trying to understand code that I copied. There were comments talking about what the code below them did and I read every single one of them. They taught me new functions and opened the door of possibilities which means they gave me lots of new ideas. I went back and followed all of the instructions. Its goal was to make a simple maze game that was short and easy to play, but it wasn’t the type of simple I liked. So I made my own additions to the game.

It certainly took a lot of time, but I did it and I’m really happy about it. At around the same time I was writing and making the game, I was extremely addicted with and fascinated by a very artistic and wonderful game, Hollow Knight. It is a metroidvania and it was made by a team of two developers from Australia. What I love most about Hollow Knight is the lore and its art and a lot more. I’m still playing it as of writing this. I think it was the source of inspiration when I was writing the game and what drove me to make one in the first place. In the process of changing and making the game, I faced a lot of errors, of course, but the joy in fixing in was still there. There was one time when I lost the code and everything in it, so that was a, I guess I can say, a daunting and sad moment because I had made characters for the game and I had written the story of what was happening in the game. Rewriting the functions was hard, but it certainly wasn’t as hard as rewriting the story. That time taught me to save my code and also have a backup of it in a document and so I did that.

After a while, I finished the game and I made a map for it too (picture above previous paragraph). It’s called Twitfall. You, the player, wake up in a mansion. You don’t know how you got here in this cursed mansion, but you do know that you are stuck. The way you can get out of there is to escape its curse and to do that, you must use what’s inside the mansion. I put in an enormous amount of effort and time into this small project of mine and I greatly enjoyed the pleasure and happiness it brought me. If you want to play Twitfall, go to the end of this blog post and you will find links to it as well as the two other projects I worked on from Code Club. And if you’re going to play it, use the map to help you and always look at the commands when you think you’re stuck because maybe you haven’t tried using all the functions yet. I’m proud of the game and I hope you will at least get a little bit of fun and joy playing it. Lastly, I would like to say I loved learning a lot more about python, I loved that I still got frustrated with errors, still became happy when I fixed them, and that enjoyed making my own game. Thanks for reading!

Team Chooser: https://trinket.io/python/9b52a291b0

Rock, paper, scissors game: https://trinket.io/python/1ef3f217fb

Twitfall: https://trinket.io/python/bfcae35d6f

Map for Twitfall: http://bit.ly/2KVvgRt

It’s called ‘The Woriun Mansion Map’ in the drive.

Technology/Multimedia: Coding (Python)

Coding, a way to communicate to computers, there are many languages of coding – just like there are many human languages. One of all the many different and complicated languages of computer communication is called Python and that’s what we learned about in round 3 of Technology and Multimedia.

A lesson always has some sort of introduction. First thing was the rules. I’ve learnt coding in another a language before – JavaScript, so some of the basic rules of coding in Python were similar and it was easier for me to understand some of the things our facilitator explained. We started learning coding in Python with the basics which included variables and the “print” function. Variables are basically blocks that have value or text. And the print function does what the name says, it tells the computer to print things. We spent most of our first week on Codeacademy, a great website to learn coding in a lot of different languages. Every class would start with a lesson or discussion and we would be off to do practices or exercises.

As most lessons go, they get more advanced or rather ‘head-hurting’. Whenever a new concept is introduced to me in coding, it’s whether or not I understand it even the slightest bit the first time that will determine the level of confusion I would face. I don’t know why or how it works, but it does and that’s one of the things that’s hard about coding. If I don’t understand something the first time, it becomes even more confusing when I try to understand it. For the rest of the round, we kept on learning new and more complicated concepts which included loops, if statements, boolean, comparison, the break function, and the continue function. With more concepts and knowledge of Python coding came more exercises and activities.

Learning about the concepts isn’t as hard as putting them to use when you need to or fixing your code when you get an error you didn’t expect. Sometimes, you might’ve broken a simple syntax rule and sometimes, you might’ve used a function wrong, but hey we learn. One of the things we had to do was write a program that checks whether or not a number is prime and man did that activity take me a lot of brain power. The thing about coding is that there are a lot of ways to make a program work or write a program and when you find a way, you need to make sure that there are absolutely no errors. One error in a program’s code can affect the whole program. Sometimes when you think your program works, you’re really proud of yourself, but then you do another test and find out that it actually doesn’t. But one of the best things about coding is when you try really hard to fix a program with errors and you take a deep breath and run a test to find out that it really works – in the way that it’s supposed to and without any errors. That is what I love about coding. It makes you somewhat happy.

That was coding in Python. All I have to say is that I loved learning about it, doing exercises related to it, becoming frustrated when my code doesn’t work, and becoming really happy when I fix it. This round of technology and multimedia was yet again, another great round. Lastly, I thank you for reading this!

Technology/Multimedia: Photography Basics

If you read my “About Me” page, then you would know the things I enjoy doing regarding photography and writing. The three things we focused on this round were the Pixar Story Structure, Photography Basics, and Videography Basics.

We started the round off by learning about Pixar’s story structure and then using them to create our very own stories. The way I look at the story structure is that it’s divided into 5 main parts which goes in the following order, Once upon a time, Everyday, One day, Because of that, and Until finally. These parts have names that are explanitory to what they each do. The first three parts are the introduction and then the problem or event comes in, and that builds up until the “Until finally” which is obviously the concluding point of the story. Now, you probably know that I love writing and that fiction stories are my favorite to write. Using this story structure, I created my own story which was based off another story, or project as I’d call, I wrote in year 1. But the story was too long, so I ended it with a cliffhanger. At the end of class that day, we shared our stories and identified the story structure. You can find the story at the end of this post and feel free to leave comments or suggestions in the comments. I personally enjoyed “rewriting” the story.

 

Moving on, photography. We learned the basics of photography. It included the exposure triangle and types of camera shots. The exposure is made out of three smaller parts, aperture, shutter speed, and ISO. Our facilitator explained to us what they each do and how it affects our photos. We learned about (probably all) the types of camera shots and how we are supposed to take them. Not only did we learn about them, but we were also given chances to try taking those shots ourselves. There was a scavenger hunt. We were required to take the types of shots we were taught and that was fun.

On the last week of multimedia this round, we acquired some knowledge (a dramatic word choice, I know) of videography. Basically, we learned how to properly take videos, two types of microphones, how to use them, A-rolls and B-rolls. Being steady, zooming and panning correctly, were all key parts to taking great videos. The two types of microphones we learned about were the shotgun and the lavalier microphones. We learned on how to set them up and discussed on which one to use in certain situations, which one was good for interviews and which one was good for other things. After learning what A-rolls and B-rolls are, we watched videos and identified them. Like the photography basics lesson, we practiced.

It was a great round as always. I loved learning about photography and videography as well as Pixar’s story structure and practicing the skills we were taught on our own.

Link for the story I wrote: http://bit.ly/2QBwmU2

Technology and Multimedia: Programs and Algorithms

If you read my post about this round’s physical science, then you know that there are only 3 weeks of this essential in each round rather than 6. This essential aims to improve our use of technology and multimedia. In this round, we focused on 3 different things; researching skills, adobe programs, and programs and algorithms. The first week was the week that we improved our researching skills. We learned what is a research, how to research, identify primary and secondary sources, and a lot more. After learning learning about researching skills, we practiced by picking a topic, coming up with research questions on it, and doing a bit of research on it. In the second week, we had students with experience on adobe programs share and teach the class about them. If you read my changing Cambodia post, then you know that I am in the design team and that we use the adobe program inDesign, but I didn’t choose to teach the class about it considering that many people in the junior cohort already know and that they were willing to teach the class. Instead, I chose to teach Lightroom Classic CC and that was because I use it to edit photos a lot and that not as many people know about it as inDesign. Throughout the week, we learned about 3 different adobe programs which were inDesign, Photoshop, and Lightroom. We then used all the things we learned from the lessons to make a poster out of the research we did in the first week. For the last week of this essential in this round, we learned about programs and algorithms. We learned what programs are and did an activity which was sort of like a program simulation. The class was divided into groups of 3 and in each group, each person had different duties. There was the computer, there was the one that gave instructions to the computer, and there was the one that wrote down the instructions. Our facilitator gave us pictures which were needed to be drawn. The instruction reader would need to tell the computer to draw using specific instructions and computer would just do it without talking. The note-taker, wrote down the instructions after they were said. We took turns being different people and doing different things. The activity was both fun and educational. At the end of the week, we learned about algorithms, what they are and looked at different types of them. We were then given a crime mystery. It was simple, we had to find out when a statue at a museum was stolen between Monday 8 AM and Tuesday 8 AM. The class was divided into groups to find out the most efficient way or algorithm to solve the mystery and it was the divide and conquer algorithm. I had lots of fun learning about technology and multimedia as well as doing educational activities related to them and I look forward to the upcoming rounds with that holds the amazing lessons about this essential.