Archives for posts with tag: Programming

So, PAX is getting awfully close now isn’t it.

I’m kinda going batty just trying to get everything together for the game. But the most infuriating part is that everything I’m doing looks like I’m doing very little from the outside.

When all you are doing is fixing small little bugs you don’t have anything interesting to show. I wish I could show you a bunch of exciting new features but I can’t. The closest thing I have to anything new is a loading screen hint section. HintDemo

Anyway. Apart from this the main thing I’ve been working on is contacting press people who are coming to PAX who I think would be interested in Kana Quest. I’ve had a little bit of a response so far so that’s better than nothing. Found one person who was perfect for Kana Quest. They were interested in educational games and taught Japanese themselves. So was able to contact them and get a positive response there.

I also got to contact Meghan O’Neil at PCPowerPlay. That one is big for me as I used to read her opinion pieces in PCPP a lot back in the day. And was the first proper critical thought about games I was exposed to. So without her work I probably wouldn’t have wanted to make games. I don’t think Kana Quest will be her jam, but I do get to say thanks so that’s exciting.

In other news it looks like Kana Quest merch will be available at PAX so if you are interested in a Kana Quest T-shirt, Kana Soft Toy, or Socks, PAX Aus is your chance!

Anyway. Hope y’all have a good day and I’ll see you around. I won’t do a blog post next week, but you will get a MASSIVE one after PAX!

Till then.

Bai

Advertisements

Before we get into the meat of this week’s update I just have some big news about Kana Quest. Officially Kana Quest is going to be heading to PAX Aus this year! If you are planning on coming come say hi and give the game a go! I would love to hear your feedback! And if you have any friends going tell them to check Kana Quest out! Anyway with that done, onto the week’s work!

So this week I’ve been working on implementing the second world into Kana Quest. I’ve known for a while that I want to transition between worlds by clicking and dragging the screen. And for the background art to join up seamlessly. So what’s the process of doing this involved?

world2MoreCurrent Step one was making the background art for world two. This was the easy part. All I really needed to watch out for here was to make sure that all the layers are repeatable so I can make the world as long or short as needed.

 

The next step was ensuring that the two worlds can transition into each other. This step will be easier in the future thanks to more planning in the world two art but no such planning was done for the first world’s art. As such the seam is a little abrupt. But its not an immediate shift so its better than nothing.

World1to2

MovingToWorld2

Part three was bringing the assets into unity and getting the camera to move when the player clicked and dragged. One small bug occurred with this though. I made my camera a physics object. Turns out any child object of a physics object loses its ability to know if the player is clicking on it. This caused some of my menus to stop working.

 

World2WithParallax.gif

Once we had the camera moving we had to get the background parallaxing with the camera. This means that the foreground art will move more than the background art to create the illusion of depth. This turned out to be troublesome as I kept being able to make my world two art not line up with the first world art. Thus forcing me to find a way to ensure that the art would always come back to the right position. This took half a day. It was not fun.

So here we have the last part of getting this whole thing working. The transition. This gave me the most trouble out of everything and is what I spent most of this week working on. The reason is for the first world I had used a static overlay that would fade in OVER everything in the scene. This overlay would work fine as long as the overlay was the exact same as the background. But once you add a variable camera position you no longer can guarantee this. So things had to change. So now, what is happening is I have a script that finds all the visible parts of the background, and prevents them from being destroyed when a new scene is loaded, then it moves those objects into the same relative position as they were in the previous scene. This is important as the camera’s position changes scene to scene so if this didn’t happen the art would be misaligned, or not in shot at all. Then would take all other objects in the scene and fade them out. Once the new scene is loaded it would get all the new non-background objects in the scene set the transparency to full and fade the new objects in. The result is what you can see below.

FirstWolrd2Level

 

And that was the process involved in adding the second world to the game. All subsequent worlds will be easier as I won’t have to worry about making the last three steps all over again. It will be set up for me already! Anyway I hope you all enjoyed learning about my process.

Till next week.

So this week had one task. One job that had to be done. It was long, it was boring, it was tedious. It was implementing Katakana into Kana Quest.

Why is implementing Katakana such a chore I hear some of you wonder. Well simply because implementing each Katakana has a bunch of steps that are not at all interesting and when you times those steps by 46 (the number of kana) things get very boring very quickly.

So the pipeline is as follows.

  1. Create the sprites. (We talked about this last week as I was most of the way through making the Katakana Sprites at that point.)
  2. Set the image setting for each sprite.
    1. This isn’t too bad what I have to do is tell unity how it should process each sprite. How big the image is (pixels per unit), its filter type (point filter as bi-linear and tri-linear make pixel art look awful) and if its a single or multiple sprite image. Now all of the above I can do all in one go by selecting all the files at once, but below I have to do one by one, because Unity wont allow me to do this in batch. Finally I have to set the sprite size for multiple sprite Kana. So for each Katakana I had to go into the sprite editor and tell it to divide my sprite sheet how I wanted it divided.
  3. For each kana make an animation using the unity animation system.
    1. For the stone tiles this is easy. They are just one frame so its just a matter of dragging and dropping the image into a new animation. For the normal tiles this takes a while longer because I have to copy the animations seen on the Hiragana Tiles. But the big annoying part of this step is that I have a LOT of animations on the one object now. So much so that they don’t all fit on screen so adding a new animation took about three seconds of scrolling down the animation list before I could get to the “make new animation” button.
  4. Add those animations to the animator of the tile object, and then set up the logic of when to play those animations.
    1. So putting the animations into the animator is easy. Select all the files you want and drag them onto the animation screen. Setting up the logic has to be done one by one and is really tedious. Right click from where you want the tile to transition from and to (from all to each individual animation in this case). Then click the arrow that comes up and create the parameters controlling the animation. In this case, what is the tile’s hiragana number? Is Katakana enabled? And is this a stone tile or a normal tile. Rinse and repeat 92 times.
  5. The last step is to add a control for turning Katakana off and on. This was the last and easiest step. Now if the player presses ctrl+shift+k in game katakana will be toggled on and off.

And that’s the process. Since you got through all the technical stuff your reward is some gifs! Enjoy!KatakanaDemo

SoneKatakana

So this week has been a rough week for Kana Quest. This has mainly been because my grandfather’s health has deteriorated quite significantly so my mind has been elsewhere. But hey somethings did get done so without further ado here’s what I got done.

First thing I got done was I have fully implemented a medal system into Kana Quest. This allows the player to choose their own difficulty. A gold medal will be earned by completing a level in the minimum number of moves. A silver medal will be earned by completing the level within two or three moves beyond the minimum. And bronze medals are earned for completing the level in any amount of moves.

KanaQuestMedalMedu

Seen below is a demonstration of the player losing the medal they earn based on how many moves they use.

MedalDemo

finishedlevelThis is a wip of the gui that will appear once the level is complete. I like the cool rainbow next level button but I’ve gotten a bunch of feedback that it doesn’t fit with the art style. A variant of this gui will appear depending on the medal the player earns.

 

 

 

The last thing that I achieved was debugging the new movement script from last week. I’ve gotten rid of a lot of the main bugs that were plaguing that script but now things are much more stable. There is still some bugs in there but I have had a much harder time replicating those bugs so they remain in until I can consistently trigger those bugs to get rid of them.

Anyway hope you all have a good weekend. I’ll see you next week.

So this week Kana Quest has progressed slowly. Not gonna lie. But sometimes you need to take a step back from making a thing so you can continue pressing on in a healthy direction. But still I’ll show you all what I’ve made, why I’ve made it and all that.
HavaVer2So this is a character that I have made for the tutorial sections of the first world. I have a plan of how each world is going to look like and what theme each one will have. The first world is all about Sakura flowers. This is because spring signifies new beginnings in most cultures and the symbol for spring in Japan is Sakura. Another cute thing to note is the academic school year begins during Sakura season. So it makes sense to start a new journey about learning new things. Anyway this character is called Hanna because the word for flower in Japanese is Hana (I’m a sucker for multilingual puns).
So one major problem I’ve encountered this week was one coming from my own art.  So the plan for Hanna is that she will be speaking to the player via text box. And this will be overlay on-top of the background (See Below). The problem is the background commands a lot of attention and I can’t just put Hanna on-top of it. If I do it will look awful. And to be honest this has been just further frustrating me about the background art. I really want to re-do it to make it more usable but I’m afraid I will be falling into the trap of never finishing anything. So for now I am going to leave it. I will make note of future backgrounds to avoid the traps that I have put myself into from that first background.TutorialScriptSkipButton

The things I will do for future backgrounds are as follows.

  • Use less colors and stay strictly within color pallet
  • Don’t make the image a fixed size. It limits my ability to add new levels should I need to.
  • Make sure you set up the backgrounds to parallax this way worlds can be as large or small as I like.
  • Make the visual level counters an even distance apart.

 

SlimeTilesThe last thing I want to show this week is the Slime Tiles. This is the finished art of a mechanic that has been finished for a while. Basically all the Hiragana that don’t have a consonant (a,i,u,e,o) when used with another Hiragana will change the other Hiragana. For example using o (far right in above gif) with a Ka (far left in tutorial demo gif) will change the Ka to a Ko. Once used with another tile the changed tile will have that same transparent slimy color over it so the player can track the change. I really like this mechanic because it solves a couple of problems. First it makes a,i,u,e,o function differently from other kana that have both a vowel and a consonant. The reason this is important is that if they didn’t behave differently they would just restrict level design space for no real reason as they can only be matched with similar vowels as they have no consonant. Secondly they get the player to focus on the sounds of the tiles in interesting ways. This way the game isn’t just a puzzle of “how to I move the tiles around in the most efficient way”?

So that’s my progress for the week. If anyone has any questions about Kana Quest or design choices please feel free to ask!

Till next time.

 

So I have been in Japan for the last year teaching English to Japanese kids. Now that I am back in Australia I am going to be focusing on making a bunch of work for my portfolio that I can use to get a job.

So for the last two days I have been working on making a tutorial script that I can use for any of the games that I make in the future (as well as games that I’m currently making). What the script will do is the designer will tell it how many events there are to be in the tutorial. Then select what type of events they will be. And then use the controls on the script to adjust the events for final use. You can see the user interface for the script below.

TutorialScriptScreenShot

The reason I am working on this script is that I have been working on a game that teaches the player to read Hiragana (the first of the three lettering systems in Japanese). And the rules are a little confusing at first. This means I need a good tutorial. And the only way to get a good tutorial is to iterate on it a lot. But previously I have been making the tutorial with scripts that only fitted that tutorial. Thus I would have to re-code the tutorial every time I wanted to change something.

This script will allow me to change my old tutorials quickly as well as make new tutorials.

Also, a quick afterword. I will make regular updates to this blog to document my progress. As a result there will be more work in progress type posts rather than finished product type posts in the future.

Theo