Monday, 11 March 2019

Easy maths: Sin and Cosine

Hello there!

Today's blog is about maths, more specifically - the rather interesting side of it and what I have learned. Keep in mind that I am not an expert in the subject, so any kind of criticism is more than welcome. With that being said, let's get into the maths.

Preface

Sin and Cosine are the concepts you may have first heard when you were being taught how to find a certain side/angle of a triangle. The phrase "SOHCAHTOA" often tends to pop up, and a lot of the questions you were given you just had to use this formula to answer them. As well as explaining what this phrase means, I'll also explain why you use this to find sides ,something your maths teacher probably never explained.

Relations with the Axis

Sine = X and Cosine = Y. I've pretty much told you the answer right there. So, next section....
Actually, I jest.
Look at the triangle below:
It has the hypotenuse, adjacent and opposite side labeled for your convenience, so you don't need to crack open your maths book.

If we want to find, for example the adjacent, we will need to use SOH (Sine, Opposite and Hypotenuse). Why?  Because the adjacent is a horizontal line, and Sine is used for working them out (think: the X axis).
Now, we're not going to do a maths question, so don't panic. I'm just telling you a theoretical example. Anyway, Sine is the thing you would use to work out the horizontal parts of the triangle. As you can imagine you would need Cosine for the Vertical axis (or the opposite in this case), therefore you need to use CAH. I'm not going to talk about TOA because I'm not talking about Tangents in this blog, only Sine and Cosine. But hopefully I've made your maths homework a bit easier. Sin for finding out the horizontal side and Cosine for finding the vertical side.

Okay, at this point in time, you may wonder "Right, I know that Sine is used to work out the horizontal and Cosine for the vertical, but why? What is the relationship between these?"
I'll tell you in the next section.

Angles to Vectors

You may have also encountered angles at some point in your maths career, the things you use a protractor to measure or what you have to figure out in a triangle, on the opposite of the right angle, (using Sine and Cosine). I'll tell you why:
As you can see, in Desmos this is what Sine (Red) and Cosine (Blue) looks like in a graph. It produces quite a wavy pattern, which looks quite nice. This wavy pattern is far more than just a beautiful little pattern, it also shows how Sine and Cosine functions, in the graph, Cosine is a little bit more delayed than Sine in terms of reaching its top and bottom, but by how much exactly, and why?
If you look below at the two diagrams, the top point is 1 and the lowest is -1, the more interesting point is the horizontal point, which is half of PI (3.142...). If you multiply this by 57.672 (to convert radians to degrees), you get a number which is ~90. Sounding familiar?


If you quadruple 90 you get 360, which a full circle is 360 degrees (or 2 PI radians). The relation of this to Sine and Cosine is that the distance that they are apart is equivalent to a quarter of a circle. I'll demonstrate what I mean below:
Make sure the setting is in degrees rather than radians.

As shown, B is 90 and the point on the circle is where 90 degrees would be going, and the number '1' is shown again, much like the previous diagrams. The reason that Sine is used for horizontals and Cosine being used for Verticals is shown in the example, due to the aforementioned separation by half a PI. If we swapped Sine for Cosine, then the point would be on the top rather than the right side and that wouldn't look like 90 degrees. Since these two operate in a wavy pattern where the highest value of Sine and Cosine is 1 and the lowest is -1, they can be a useful way of converting angles into a unit Vector. I hope you are starting to see how Cosine and Sin can be used to be turned into vectors.

This is especially handy if you want to simulate rotations via having degrees rather than vectors. 

Conclusion

This is my first time explaining mathematics to you, and I feel a bit nervous doing so, since I don't really have much of a formal background in the subject beyond GCSE. But as I've stated before I welcome any form of criticism.
Sine and Cosine are quite useful things, probably more than you thought - it can be used for things like converting angles into vectors, rotating matrices (which I know the barebones of), items that bob up and down in Minecraft or even chiptune music (stuff you would hear on old game consoles like the Gameboy).

That's all from me!

Wednesday, 20 February 2019

Announcing the release of "Temple of Chambers"

Hello there!



This is the JavaScript game I mentioned in the last post that I was working on; after 2 months of development, it is finally complete! The game was built from the ground up, that means I used pure JavaScript functions with no 3rd party libraries whatsoever. I have been strongly considering to make another branch of this game into a game engine which I could use to make other games using JavaScript. I think that would be a wonderful idea.

Enough technical stuff, what is this game about?
You play as a big-nosed wanderer who explores a forest, when suddenly they fall into a hole which lands them into one of many chambers in a temple named the "Temple of Chambers". The wanderer needs to find their way out by solving many puzzles to advance their way through to the exit.

I initially intended this game to less linear, but it proved very tedious and testers needed to backtrack often through long corridors, therefore I decided to make the game more linear in order to prevent the need to back-track.

If you want to play the game, play it here (you don't even need to download it, hooray!)

Saturday, 9 February 2019

How to make pixel-perfect graphics

Hello there!

I have been dabbling around with JavaScript on and off for a year and a half; it was not until mid-December where I decided to start development on a game using the language. I've briefly mentioned about it in my other blog posts but never really went into depth about it; I want to keep it that way until it's release (~20th February), but I will tell you that it is a game much like Prelude of the Chambered (minus the 3d and violence).

The great thing that I've learned from making this game is how to create a custom engine and way of processing logic and rendering images to the screen and the such like. I did all of this without having to use C++; although I'd still love to make a custom engine in that language, I don't think I have the experience to make a fully-fledged game engine in such a language.

What I'll be talking about here is how I've managed to create pixel-perfect graphics within the engine I've created in JavaScript.

Preface

What do I mean by Pixel-perfect graphics?
By that I mean having pixel graphics where every singe pixel is in a consistent order, like a series of tiles, with the same width, height. Usually when it comes to increasing the screen resolution, you need to make the sprites, the world and the graphic user interface bigger so that the player can see more. Many would take the approach of increasing the size everything and increasing the width and height of which the images are drawn. However this approach would produce results like this:

Not too pretty.
You can see here that the pixels of the characters are not in line with each other, there are pixels that partially overlap with other pixels. There is not much depth in that at all, perhaps if this were a game which had less pixel-based graphics like vectors, then that would be completely fine because everything else has vector graphics. But here, the cohesiveness fails miserably. You need not worry though, I have found a solution to this problem.

Drawing with mosaic

I'm pretty sure you may have seen mosaic art before, that art where each tile is placed in a square pattern. Trying to make the world seem bigger would be like trying to put a mosaic art that consist of 3cm tiles into mosaic art that consists of 1cm tiles. This may be fine if the size of the image is being resized for certain effects like this (the map below the 3 characters is being resized to give the illusion of height). However, if you are trying to make the screen resolution larger, trying to resize the images like this would lead to ugly effects like the picture below. 
The character outlines in magenta resemble the size of each pixel.


Rather than trying to force a mosaic image consisting of 3cm tiles on to a pattern of 1cm tiles, how about we shrink the tiles of that image into 1cm tiles and fit it onto the rest of the art. It doesn't have to be 3cm, it could be 7cm or 13cm or even 50cm! It dosen't matter! You can reduce them to 1cm tiles and fit them in.

Real space vs Visual space

Now that I have spent an entire point rambling about mosaic tiles, but now lets put it into practice with pixels. Say we want to put an 32x15 pixel image on to a 150x95 world, but we want to increase the size of the world so the player can see it better.

What I have learned from programming my JavaScript game is that you do not change the world or the objects' real size and position. It's a better idea to keep the two variables constant, I just mentioned the term 'real' size/position - by this I mean that the objects' size relative to the tiny pixels rather than relative to the player's eyes. Instead, you'll need to change the size at which both are being rendered, if you scale the aforementioned object and the world by 3 you will get a 96x75 image. A similar example can be seen below.



Unlike the last image of Bounty Hunter I where the pixel characters look inconsistent when they move, when you move the player in this scenario, all the pixels will be aligned or 'snapped' in place in respect to the real position of the player. The reason this is that, as I said before, despite the render size being changed, the player's real size and position stays the same as if it were if it was a 32x15 pixel image rather than a 96x75. 

With this you can have pixel graphics in a video game where they look all cohesive, much like graphics on a SNES, PS1 or a hand held console, where all pixels are displayed in a consistent manner.

Lower level graphics

If you are making a game where you have control over where the pixels are drawn, that would be even easier because you can just state how large each pixel would be and draw the character in real space and let the engine calculate the character/object's exact pixel size on the screen.

This kind of thing would be useful if you are making a render engine in something like C++, where you do not have to work around any shenanigans that a 3rd party engine may have.

Conclusion

This has been a problem that I've been consistently seeing with pixel games nowadays, and there are rarely any tutorials on these kinds of things. The tutorials I've been seeing on topics like these show things that are way too unnessacarily complicated and conboluted. I'm not sure if this is the completely right way, but I think it works. If that is not the case then please let me know and explain your soloution in the comments.

Through what I have explored here, I would like to help others encountering the same or a similar problem and mention that it does not need to be complicated as it seems. I hope this has been useful to you and will allow you to have pixel graphics that do not look messy and unordered.

That's all from me!






Friday, 25 January 2019

The split of two games + exclusive core features


Hello there!
I've got another update on Magnum Foundation. Today I'll be focusing on the issues of splitting the game into two halves as well as some of the core functionalities I've implemented since the last update.

Preface

There has been quite a large amount of progress since the last relevant post, although since then I have split Magnum foundation into two projects, I'll still call it Magnum foundation until I reveal one of the games it contains (around march).
I've also added in a number of features to both games like options of placing tiles, modifying collision data and teleportation. Splitting the game was quite a hard decision to make since I've had to deal with a number of consequences which I'll get into detail in the next section. 

Splitting Cautions

Which time to split the two projects was a pretty hard decision to make, on one end I could try to split early so I can start to focus on adding new exclusive features to the two games. On the other end I could try to focus on building up the core features that would be present in the games I would be making, then I could go on create the exclusive gameplay mechanics and features on each project after this stage is done. Both have advantages and disadvantages.

The former has the advantage of me building up the core exclusive mechanics faster so I could actually spend more time actually making the maps and programming/designing characters for the game and possibly refractor the game's code much earlier. However there is a disadvantage to this, which is that if there is a feature that is fundamental in both games, I'd have to spend time implementing it from one to the other and it would eventually be quite bothersome having to hop back and fourth between the two projects. And this is despite the fact that the solution could be to just copy and paste the needed code.

The latter has the advantage of me having a core solid foundation to base both games on, thus elevating thus eliminating the need to constantly hop to-and-fro between two projects. However like the last point, this also has its own set of disadvantages. For one thing I would need to refractor the codebase because by "laying a foundation", I mean adding all the features that both need in a very FYS (functional yet shoddy) form.

In this case scenario, I have two options - I could either spend even more time on refactoring the existing codebase or split the code as is and have to do the shift-fixing anyway. If I just planned for the two games whilst working on/polishing the foundation for them, there would not be a guarantee that these plans would be the same, because it is one thing that you plan and another to implement (and test) these features.

Furthermore with building the foundation of the two games, it will never be perfect especially since it is the first time I've made games of such scope (think: A short Zelda game/ Cave story). How could I possibly know what needs to be done on my first go? Yes I've worked on some similar games, but there is always something you don't know about when you have stepped into unexplored territory.

Maybe if I make games of this scope after these, I will be far more certain of what I know I'll need when it comes to such things, thus making the split less of an issue. I know this because back when I made "Red-Blue Adventures", I knew much less about developing RPGs and would often run into many bugs that I wouldn't have even thought about. If I made a game like it now, I would make the codebase far more clean and easier to mess with.

Map transitions and collisions

In terms of teleporters or map transitions, I've had experience with mostly ones that take you to the next area and teleport you to only one place. The teleporters in Magnum Foundation are significantly different, they teleport you to certain positions that a map has in its data. Originally I did want to do something like what they would do in RPG Maker where you can just click on where you want to teleport to on the selected map, but this proved to be far more time consuming and harder to do than I thought. Therefore, I decided it was best that I put objects which names you could link to a teleporter that teleports you to that object.

For example, say that I have map 'X' and it has these linking objects. I could have a teleporter in map 'Y' that links to one of map 'X''s linking objects, perhaps with the name 'FromBuilding'. Once the player touches that map transition in map 'Y', they teleport to Map 'X' to the object with the name 'FromBuilding'.

Collisions are far more customizable, as the collision system was written from scratch (using some help from Sebastian Lague's tutorials). Since this is the case, it became far easier to implement a feature where collision tiles do not apply to a certain type of character, so they could just pass through. This would have been handy for Pipe Dreamer's development where there are certain tiles (i.e. water) that could only have been accessed by certain characters. Using Unity's default Rigidbody 2d in these situations can prove to be very difficult as I'd need to constantly fiddle with workarounds and the such like resulting in a large mess of code.

Although some may argue that this is 'reinventing the wheel', at least you know the wheel you're working on.

Layers and tiles

Another thing I would like to discuss is the level editor, more specifically the layering and tiling system.

My experience with making maps/levels for my games would either be using some 3rd party tiling programs like 'Tiled' or making my own, which would be reading from a pixel image with certain colours, for example, Catwalk or Bounty Hunter II (when it was early in development). More recently with Waterstone Temple, Earl's Order and later on Bounty Hunter II, would have their own custom-built propetary level/map editors.

The first two had their tiles built up as a database of every single tile's position and type. Bounty Hunter II's maps were created in Tiled, then exported as a large PNG file (with separate layers), the rest of the information can be found in an earlier post. Since it can be a bit memory-consuming to have a large PNG file (feel free to correct me if I'm wrong on that), I decided with Magnum foundation to take a more different approach.

I decided that Magnum foundation would have the approach of using Unity's built-in editor... editor. This allows programmers to extend the Editor to make it suitable for their own needs. I did do this to an extent in the 3 games I mentioned before, but Magnum foundation uses it to a much larger scope. I did analyse some code from a Level editor that was related to pokemon and decided to create my own level editor based on it. Unity does have a built-in tilemap, but after some serious consideration I decided to make my own from scratch.

The reason I've decided to make them from scratch was to learn how to make my own tile map editor as well as having more control over it. If it's buggy then I only have myself to blame rather than try to wait for an update, as well as that, I'd need to deal with fitting the tilemap into a format my game can read. As I said before with the collisions, at least I know the wheel I'm dealing with.

Conclusion

Progress has been going pretty well for magnum foundation, I've been working consisntently on it on this past month. I haven't mentioned all the features I've worked on because I don't want to blather and overwhelm you with a big load of changes. I might mention them as this project goes along in the development pipeline, possibly when I've expanded on them.

That's all from me!

Tuesday, 15 January 2019

Why I quit twitter and will most likely never return.

Hello there!
I've decided to change things up a bit and start this year with something that isn't related to game development. This is something I would like to do more often, I like to present my own personal opinions on certain matters.
Anyway, on to the main topic of this post: Why I quit twitter.

The Preface

Despite the title, this post will mainly be about social media in general rather than just about Twitter, the reason I put twitter in the title was that it was the specific social media I quit. Now then, on to my main case.

I'm pretty sure we have all heard about social media at one point or another, we see brands like McDonalds or Pepsi all telling us to follow things like their Twitter or Facebook. We also see many famous people who have at least one form of social media as a way to get them closer to the general public by showing off the ice cream they had last night or that curry that they cooked lately or those god-forsaken selfies and more pictures of their food. There are also lots of people who are not celebrities who use social media in public places like the train or school, they tend to be the people who would consume such content by pressing the 'like' button.

What I am trying to say is that social media is virtually everywhere we see. And I too was hooked on this grand phenomenon at some point. My first opening into this world was when I joined Scratch c. July/August 2011. It was quite a cool way to interact with others and I even met a few people on there that I still see to this day. At the time, most of my family members had a Facebook account - I thought this was a fundamental bit of tech, however I was not old enough at the time and I hoped I would get one in the future. Hold on to this thought. It will be important later.

Twitter's Beguiling Charm

Starting from 2013, I decided to make a twitter account since I was pretty much inspired by the Minecraft creators at the time and I wanted a chance to speak to them, as well as using Twitter as a tool to fuel my own success. I don't completely know the specifics of why I joined Twitter but that may have been why. Regardless, Twitter became a new found hobby to me and my first step into the world of social media. I thought it was relatively harmless (possibly thanks to the kind environment of Scratch), however the reality could not be any further from the truth.

I would find myself often distracted by the people I looked up to i.e. Markuss Perrson, not to mention I also felt increasingly despondent what with all of the people's 'amazing' lives being presented on social media and them getting a lot of attention whereas nobody cared about my posts.
The reason I still used Twitter and did not delete it, was that I thought maybe some day, some day, in the name of some miracle, people would notice my posts. It was this false hope that kept me going, although I my use of Twitter started to wane.

It was not until I saw Dr.Newport's Ted talk on quitting social media, which I truly realized the hot mess Twitter caught me up in. When I first took a glance this video I thought "This video was quite a lot of rubbish, why is he telling me to quit social media".

However when I watched the video fully later on, I started to realize that Newport was on to something here. A lot of what he said struck a cord with me, and brought up thoughts that were in the back of my mind and I realized the reason nobody cared about my posts and why I would start to feel depressed when I looked at other people's positive images of their lives. I started to ready Cal Newport's blog "Study hacks". Through there, I also found out that the 'Like' button was actually a device used to exploit very basic underlying human traits like being accepted. The worst realization of this, was that these social media companies were using these things to make money. This revelation made me delete my Twitter account on April 2018 and I have no regrets over what I have done.
The last of my Twitter before it kicked the bucket. I wasn't born in 1999 by the way.

The Delusions Of Social Media

Since I'm probably the only one out of many people I know who came to this realization, I would obviously get some criticism when I would suggest that they get off social media. Thankfully most of their claims are quite flawed, and this would be a good time to push in some solid counter-arguments:

"You need social media to promote the product you are making"

This argument does seem to make sense since social media is very centralized, which could help you meet people on there easier than making your own domain. However this comes with a 'but', since loads of people use social media and are begging people to see their products, how will you be any different from the next person who uses social media?

 Believe me, some people on social media use some very dirty tactics like "If you like my stuff I will like your stuff" which makes me question the value of the promotions on social media. Plus, since social media is so focused on bringing people constant novel stimuli, how will people even stick around for long enough to understand what your product is, compared to some dumb posts or memes?

I think blogs are a better way of promoting something because they emphasize more on the quality of the content (possibly since it does not have a silly 500 word limit). I'm pretty sure a good blog post would be infinitely better than some tweet that is essentially "BUY OUR STUFF"! A blog post is more like trying to write a good quality book rather than a silly message.

"You need social media to keep up with your friends latest stuff"

This argument is far weaker, for a simple reason too: because I don't care about what my friends are up to.
I don't need to know that they were married or what they ate today - that's their own business not mine. Even I wouldn't share this stuff either, because it's my business not yours. If I want to communicate with my friends, I have things like Email, Discord, and Text message. The middle one is much more privatized than social media a bit like Skype and allows you to establish your own server with your own rules and perks, (as far as I have researched about Discord). These are enough to have me live and communicate with friends.

"Aren't video games the same thing as social media?"

This is an argument does have some truth embedded in it. Especially with mobile games like Candy Crush and the manipulation of the human brain it brings with it. There are games that function a lot like social media with the low effort needed to put in to tasks and trying to seriously hook the player in. However, this is not what video games should be generalized on, I think that video games should be viewed as an engaging hour or two long experience (given it is not in school or work hours) rather than a silly 5 minute distraction.
Social media on contrast is based on constant swiping and tapping on your phone. The amount of people I see tapping away on Snapchat like mindless drones is unbelievable. You can enjoy a video game in the same way as you can enjoy a sport or a book, they are great fun to play with friends or solo. Social media is probably the kind of thing you would do when you have dead air. It is filler to a void that could have been filled with otherwise more productive or enjoyable activities. Think about it, do you think constantly browsing through a feed and refreshing the page is much fun?
I wouldn't think so either.

"You use YouTube right? That's a social media!"

That's true, I use it to listen to music, look at certain tutorials if I'm stuck or a way of learning something new. However, do you know what YouTube has, that Facebook, Twitter, Instagram or Snapchat doesn't have? YouTube is a platform for sharing videos, which is a problem that these other four do not really solve. YouTube has given a way for people to share videos (which are an important form of information) which was very hard for people to do pre-YouTube.
With all that said, there is a catch to YouTube. Since YouTube has grown bigger over time, they introduced a partnership with numerous creators which allowed them to make money from advertising. This does not seem like too much of a bad thing at first, until you find out the fact that YouTube have algorithms that decide what content should be viewed more. Many youtubers criticize the fact that algorithms rather than human beings are doing the work of viewing content. They presume that algorithms are far less superior than human work and therefore causes a problem. However they could not be further from the truth; they need to consider the fact that a human needs sleep, food and hygiene whereas an algorithm does not. I think these algorithms are far more efficient that humans at doing tasks like these, however the main problem is not the algorithms, but what they are being fed. One example of a problem like this can be found here, when content creators are finding a quick 
But I still think there is some value on YouTube relative to most social media, and there is definitely a way to make YouTube an invaluable tool without the negatives it may bring. With most other social media however, there is very little value that is provided by these activities alone, possibly highlighting that these 'tools' may be incredibly overrated.

The over-exposure effect

I mentioned several points ago that I desired to have a Facebook at some point. As you may have figured out, that 'point' never came. I'll tell you why:

I have established that YouTube had something to offer whereas Facebook did not, I learned this lesson from using twitter because that much like Facebook did not have anything new to offer other than create a new 'cult' within the internet - but why are these social medias incredibly popular anyways? 

The answer could be to do with being over-exposed to such things. In my case a lot of who I saw had social media and they were posting a couple of funny and cool tweets, this gave me a reason to sign up for platforms like Twitter. This could have definitely been the reason why my friends and family signed up for these platforms which they would then submit their waking hours to. Although this problem exists far beyond social media, however the effects of it could be arguably much more drastic as social media is based around constant 'news' and 'updates', and then checking them around the clock - in a similar addiction to drugs, tabloid news, smoking and gambling among many other addictive habits. Whatever they are, that glance off your school's friend's public opinion you were just notified about (which you probably did not need to know about in the first place) seem to be making Zuckerberg and Spiegel (not "Spike Spiegel") lots and lots of juicy money. That's quite a business model indeed. 

Conclusion

Don't take this as me forcing you to quit social media, this is ultimately a choice you make. This is mainly a post to project my opinions and growing concern with such social media platforms. No better time than now would be when I post them. With that being said, I don't really care if you use social media or not, if it allows you to link to posts you find interesting or you use a bot to post links to your actual, more valuable content, then more power to you. But you are probably better off using social media for at most an hour or just quitting it entirely.

That's all from me!

Monday, 31 December 2018

2018: The Good and The Bad and Beyond

2018 for me was quite a good year, a lot has happened then. Looking back in the last post I wrote in 2017, what I wrote doesn't really reflect my current opinion. I was quite ambitious at the time, I am now more laid back than I was back then - I don't think I will fly to the moon anytime soon and I'm fine with that.
Now let's get to the summary of this year, with the bad going first (just to get it out of the way).

Bad things about 2018
  • Last year I wanted to get better at maths in 2018 and sadly that has not happened much, although I did do maths occasionally, I did not do it to the extent I wanted to last year - and there is a reason why: I did not really have a great plan, there was nothing I did that had a solid goal to work towards unlike my programming or even learning Japanese. With those I set myself small goals with things like learning Kanji and trying to do a couple of mini-experiments or creating small projects that could be completed in under 4 months. I did mention that I wanted to learn maths to improve my programming and I still do, but I now think that I should perhaps integrate it into my programming... somehow. I also did not improve on art as much as I would have liked although I did a lot of pixel art for Bounty Hunter II and my other games. I didn't really do much digital art or traditional art (except for the lame little doodles I would do in my lessons or, less commonly, at home).
  • Due to my immense ambition last year, I started to feel the pressure of demotivation at school as I have to worry about an increasing amount of things like homework and coursework. Don't get me wrong, I still want to do the best I can but I feel like the ambition has died down since last year, to the point where I was starting to question the value of school again, like I did in 2016. I don't want to get too personal here with school but I was never really a 'school person'. Look, I can understand that a formal education is valuable to employers and it is required in some jobs like medicine or academia (maybe this might change in the future with apprenticeships). But the way the education system functions is pretty flawed in my very humble opinion and I hope to do a blog post on my opinions on education maybe at some point next year (although I am aware it may get some backlash). But I definitely learned that putting effort into something because you were pressured to do it or just because you may have been 'good' at it, can make you more likely to burn-out when the extra load comes in. Anyone who is in high school take note of this!
That's all the major negatives or beefs I've had with this year, on to the positives, and thankfully there's a lot more of that then the negatives.

Good things about 2018
  • I fulfilled my promises of completing both Bounty Hunter II and Red Blue Adventures: Crash n' Brawl in the time frame I set in 2017. I feel quite proud of this accomplishment - it's like I can set myself goals and work towards them as hard as I can and at the end be rewarded with an extra project or two under my belt. Both were quite a blast to develop and I have learned a lot from both projects; BHII is especially something I'm proud of since the game was the first one I've finished that actually has a clear story to follow and actual characters with actual dialogue. Although the characters are not what you would get out of an RPG game like 'Final Fantasy' - it's still a game with some sort of story to tell other than 'Defeat this bad guy and save the world'. It's more like the first Half Life game where a story is being told but there are a lack of stand-out characters (except for Gordon Freeman and the G-Man). I'd love to make another story-oriented game like this in the future - or perhaps I might already be developing one!
  • I started to learn a new language which was Japanese starting in May, this can more-than make up for the fact that I have not practiced maths that much. Especially since the language is radically different from English in almost every way like the syntax and characters. It also taught me a bit about Mandarin Chinese through Kanji and I honestly don't see these symbols as weird signs from the ancient gods anymore. In fact I was thinking if I get decent enough at Japanese, I could have a bit of a go at Chinese - I could call it the Bay-Jing challenge! Anyway, I'm glad I finally summoned up the courage to learn a new language like Japanese, it helped me become more enthusiastic about learning a foreign language.
  • Not only did I finish 2 games, but I also made more games than I did last year and I managed to push out their source code for the world to see. I also learned a lot making each of these games, which can show how I could accomplish a lot in a year. I learned a bit of  3d modeling, I finished a game in C++, I had a go at implementing a 3d design in a 2d environment (with partially working collisions) and I learned about the A* algorithm which are pretty cool accomplishments within themselves. I started to also learn some JavaScript (in which I'm making another small game on). I like to think that, what played a role on this was that I adopted a more focused and structured mindset on what I do, and try to not be distracted by anything that is not related to my work. This did help me a bit in school too, so I am seeing this play a role outside of my games. I also enjoyed my life a little more, which nicely leads into the next point.
  • I started to really assess the value of things like social media or other things that may distract me. This was something that really affected me last year, I often went on things like twitter ,especially during summer of 2017, and I used discord (although I don't count it as social media) a lot during October of the same year. Later on I started to subtly develop feelings of anxiety and general feelings of unproductiveness. I didn't really contemplate these feelings until early 2018 where someone by the name of Cal Newport pointed out that spending lots of time on things like social media can really make you feel a sense of depression when you see someone showing off how cool their life is or how it can pull away from your work when you idly check if you have received any messages. I have adopted the name of this which is "check stimming" and it has been something I've been doing for probably longer than I'm aware of (since 2011 probably) when I would check my inbox for something cool.
    These things have been in the back of my mind for a while. As a result of this realization in late April 2018, and after a lot of consideration and archiving I decided to let my twitter account fly away. I had lots of doubts, indeed I may have lost some potential friends, I may have destroyed one potential area of advertisement for my games and blog, but I was using it less and less as time went on. I questioned the value of twitter, and I honestly don't regret deactivating it. No longer do I have the temptations to check my messages or the tweets of people I'm following, (not that I cared too much about them anyways). I'm considering doing the same for DeviantArt, but I feel like it's a bit too much of a bold move to quit it cold turkey. I can post art and I use it as a way of traffic to my blog. But if my blog has enough traffic, then I'll probably make the move to pull the plug on DeviantArt and de-activate it. I'm not considering quitting Discord anytime soon because it offers a more personalized way of communicating with people rather than Twitter or Facebook. I'm not quitting YouTube either since it allows me to upload trailers and possibly in-depth videos about my games or anything that I think deserves a video - though I would link them via my blogs or website rather than directly promoting them on YouTube itself, although if there is a less centralized alternative, I'd happily jump ship. Maybe in the future I could also blog about digital minimalism too. I've also created something that I would like to use in lieu of any/most social media in the future which I'll show in the next section.
  • I've made my own website and hosted it, I want this to be the place that I check the most things and update. I see it as a way to amalgamate things like my projects, my source code, art and my blogs so I can have a convenient platform to share my kind of content on. It was also a great way for me to teach myself HTML and CSS (which are quite easy to learn but hard to master) and web-design in general.

Beyond 2018 and into 2019
  • I would like to improve my Japanese skills further and have a more solidified approach to learning it, as in I have one method that is the most efficient I'd have for the present and stick to that. I'd like to know almost every Kanji that appears on Japanese newspapers or media by maybe mid-2019. I plan to put my main focus on sentince-mining since I've been adding sentence flashcards to Anki so I could learn about grammar rules on there. I really hope it will help, I hope it will.
  • In terms of maths, I would like to create a better approach to it, perhaps in the form of making a game that contains some form of mathematics (i.e. a game that uses SAT collisions or something like what Sebastian Lague makes). I'm not too sure about art goals but I would like to post at least a few digital or traditional artworks next year, for the most part my art goals have pretty much been on hold this year in exchange for things like making my games which I don't mind too much. But don't worry I'll still keep drawing and won't stop any time soon. I don't count on too much of these things being improved but it would be a bonus to see them improved.
  • In terms of making games, I would like to see around 4 or more games being finished next year, because I want to keep improving, pushing myself beyond my limits and creating new projects. One of them includes a project that has stemmed from 'Magnum Foundation' which is a successor to one of the games I have released so far, which I plan to release late in the year. I would also like to reveal the other project which is more ambitious and again is a successor. I also plan on pursuing projects that are not games, like websites or perhaps small little simulations and miscellaneous things (like something on Node.Js or a calculatior) but games are usually the easiest area to come up with ideas for.
  • I would like to also get a real job, to get experience of the real world - whenever it's a minimum wage job like working in the Krusty Krab (RIP Stephen Hillenburg) or some weird retail store. I've never had a real job before so I think working at any kind of job I can get my hands on would be a good idea for me to gain some experience of the working world. I could also make a bit of money as well!
  • Since I have a website up and running, I would like to improve on its looks and make it look more like a website that one may look up rather than something from 20 years ago. I would like to make it have an art section. I would like to just generally make it a more usable place for me to easily post content and I could possibly give it some traffic.
  • I would also like to travel a bit more, yesterday I went on a hike to somewhere outside of London and let me be honest, I have no regrets. It was quite fun socializing with the two people I went with (who were not part of my family) and appreciating the countryside more. In March I'm going to Italy (Venice) on a photography trip so that's something for me to look forward to. As well as that I'd like to go on more hikes/visits outside of London whenever it is by myself or with the two people I went with. I'm strongly considering to go to the land of the rising sun A.K.A Japan in possibly the summer holidays. My dad (who is aware I'm learning Japanese) suggested to me the idea and insists that we do something towards it. I'm quite euphoric of these things. It's nice to go out and travel outside of that little well called "London", sure London is convenient and comfortable (for me at least), but I will get a better appreciation of other cultures and places if I go there. These travels would be far more rewarding than the instant gratification and novel stimuli of social media. Which can lead me into my final point before I end this blog and go outside to wait for the final minutes of 2018.
  • I plan to re-hash the way I look at technology, by using it to deeply cultivate the things I truly love, to interact with communities, learn new things and stray away from shallow activities like check-stimming and use it instead to connect with the world at large. The true value of when I meet people on the internet is meeting them in real life and establishing a deeper relationship that is harder to replicate by merely technical means like going out or enjoying a movie. I don't hate technology, on the contrary in fact, but misuse of it like anything else can lead into disaster and as a result, a less pleasant life. In other words, technology should be used as a tool to be controlled to enhance our lives rather than letting them control us (although I'm less sure about AI that uses enhanced machine learning algorithms).
Conclusion

This year has been quite a blast, I learned a lot and thought about things that were subtly popping up in my head throughout the years. It was to a large extent, better than 2017 in my opinion. I feel like I'm taking my life in a more healthy and productive direction, and I would like to continue this in 2019. I am hopeful it will be a good year and hopefully I'll have more wisdom and knowledge than I do now.

By the way, did you know next year is also the final year of the 2010s and when the last of the 90s (let alone anyone born before 2000) babies will be in their 20s. Happy birthday in advance, to anyone born on the 1st January 1999!

With that being said, I hope you all have a lovely happy new year!

That's all from me!

Saturday, 29 December 2018

Project To-Ki-YO #2: Immersion and Kanji practice

Hello there... or should I say,
こにちは皆さん、元気ですか?
(Hello everyone, how are you doing?)

What I have been doing

A lot has happened over the past few months, I've tried quite a lot of ideas and methods to learning Japanese. I've installed an app called "Anki" to help me with Remembering the Kanji (RTK) and I've got to say: it's pretty effective for making me remember. I have also tried to immerse in numerous media, mainly NHK news (the BBC or CNN of Japan if I'm not mistaken), NHK's easy Japanese which I've done more recently. Surprisingly anime and video games played a very minimal part into this immersion process, for reasons I'll detail later.

Remembering the Kanji

Since last time I blogged about this, I finished going through every singe Kanji and then installed an SRS (spaced repetition software) software called "Anki" which was far more efficient. The way Anki functions is that it is a digital flashcard application where you recall the flashcard's awnser. I think I should have started using Anki earlier because I had to endure a load of August trying to come up with the stories for all the 2000 Kanji again as well as having to write stories for 1000 more (which I did not go through on my way back home), all of which I could have started much earlier. You honestly did not want to be there when I was writing the stories, I spent long hours trying to work on ~100 of them a day on top of the labuor-intensive process of drawing & animating the sprites for my latest game Bounty Hunter II as well as having younger siblings barging in to my room and making an absolute mess out of it. I have a few of these stories presented here in these pictures.

Around September 14th was when I finished writing most of the stories for the Kanji and I could finally focus on trying to consolidate them in my brain.

Once it came to the consolidation process, things were only a little easier since I've had to memorize the stories I've created (some of which I had forgotten after I created them) and draw them out accordingly. Some of these stories I've also had to polish too. I reduced the cards that I reviewed to 25 per day.

The way I use Anki is that I tend to often press "Again" for the ones I do not know and try to recall them via drawing them on paint with my graphics tablet (A Wacom Intuos), once I'm more certain with them I press "Hard" which takes the card off temporarily. This is quite a good strategy since I can focus on the harder cards and later on be able to actively recall the cards that I pressed "hard" on so I can eventually press "good" which takes them off permanently for the day.

Around November or this month I reduced the new cards to 8 per day, so I can give myself less of a workload as well as allowing me to still have energy to memorize older cards I have done in order to consolidate them well. This would straighten the forgetting curve and allow for a larger amount of retention.


















Immersion - Do's and Don'ts

I've tried many things like video games and anime, I don't think these are particularly good places to start since I've had difficulty understanding what they mean. Especially with video games, because if it is something like a game that is more action-oriented I have found myself skipping long dialogue so I can focus on the more core aspect of the gameplay. Visual novels can be an exception to this as the plot is pretty much the gameplay, although I haven't tried much of them - this will be something I'll try out in the near future.

In terms of anime although I have watched only Jojo's bizzare adventure: Stardust crusaders, Beyond the Boundary and Delightful Moomin Family. The reason why the amount of anime I watched was so low was that it does a very poor job of helping me understand the syntax of the language, everything feels a lot more complicated - sure it could help me pick up a word or two, but it did not give me a way to attain things like conjunction and or what is what in a sentence. I had the first two in Japanese subtitles so I could follow in with the Japanese, however when it came to understanding the language I often found myself pausing and rewinding so I can understand the sentence or use something like google translate to get a feel of what the characters were saying.

Although I did make some sentence cards out of them with Anki, the sentences still felt far too complicated for me to comprehend. The dialogue was slightly easier to follow in the Moomin anime since it is probably meant for a younger audience than most anime is (and I did not even have Japanese subtitles for that anime) but I still found myself constantly pausing the anime to transcribe what I've heard. I don't know about you but I'd rather listen to the anime and watch it throughout so I can actually understand the story rather than stopping and switch tasking.

Okay, so if anime/manga or video games are not a good place to start, then what is?
My answer would be learning simple sentences out of something like Tae Kim's grammar guide or listening to something like NHK Easy Japanese or news. The former I will discuss in the next section.
Easy Japanese gives very simple sentences and conversations and the people in the program go through all the particles (things like は, の and を), verbs and sentences, thus easing you into the Japanese learning process and giving some insight into speaking Japanese. News podcasts are also something I can just easily listen to passively, whilst I'm doing something else or doing nothing without extra stimuli like images.

I'm not saying that I'm against playing video games or watching a show to learn a new language - what I'm trying to say is that they are not a good way to starting out with learning a language due to their unstructured nature in terms of language learning. It's better to start with something more simple.

Sentence memorizing

I mentioned about Tae Kim's grammar guide not too long ago, let me explain to you why I think it's effective to starting out. It is because it is a grammar guide and you would expect simple sentences to appear out of a grammar guide. This makes it easier to learn sentences without any complications, plus they give you the Kanji with its readings, wait- I'll talk about readings because that is what I struggled on at first and why it is a waste of time to memorize every single one.

There usually are two basic readings Onyomi and Kunyomi, the former is from Chinese readings used in joined up Kanji whilst the latter is from Japanese readings which are in single Kanji. That seems simple enough, but I'm not done there - since there are also exceptions like Kanji for names, multiple Onyomi/Kunyomi readings and using them in different contexts so it is not always a matter of just Onyomi vs Kunyomi. I learned that I was just better off just memorizing them as they are in one big bulk i.e. 図書館 (Library) which is としょかん in Hiragana.

Anyway, with the sentences, my goal with the sentences is not to necessary understand them but to learn new words without having to look up the readings. It's worked rather well for me as I can recall a number of words I've learned whilst having say the sentences out loud.


Conclusion & future goals for Japanese

I have done quite a lot over the past few months since the last post, the main focus has been on trying to look at basic sentences, basic passive immersion and learning Kanji. I will continue on that for a bit longer until I reach a more intermediate fluency.

In the future I plan to try and learn more about the tenses and syntax of the language and shift the focus away from memorizing Kanji. I could even try to play a video game or watch something in Japanese.

That's all from me!
さよなら!