28 August 2014
This post will cover all the progress I have made on ITV for the month of August.
So I actually went to touch up and make the final levels even more polished, one of which was introducing checkpoints at annoying levels.
The month of August was very productive. Some of the things I worked on are:
Memory Lane Cutscene Improved
Here you can see one of the pictures I took and how it inspired me to actually draw a cutscene for the game. The one on the top right was drawn 1 year ago! And with my new tools and skills I acquired drawing over the past year, I made a new cutscene (bottom left), while at the same time expanding the cutscene horizontally for increased parallax scrolling distance.
A lot of work went into this cutscene. It started out as a job to make a direct scene. But real life scenes aren’t always very inspirational, even though I had something else visualized in my mind, I couldn’t quite get it out so I had to keep testing afterward.
Also, I think I discovered a new cloud rendering technique that I am quite comfortable with, which are the more realistic kind. I think this will be useful for future backgrounds.
New Spikes for Countryside levels
I previously used metal spikes, which didn’t fit very well with the theme of the levels and the environment so I attempted to draw some cactus. They will still be undergoing changes before final implementation. The cactus don’t look spike enough and they don’t stand out enough from nearby vegetation and bushes.
Level editor spikes have also been updated to reflect these changes.
I have implemented comic unlocking. Now a popup appears when you unlock a comic in the game, and all comics can only be unlocked after meeting a certain criteria which is tracked as you play.
There are also ‘secret’ comics that are unlocked through special criteria instead of the normal “reach this level to unlock X comic”.
Difficulty Selection Redone
The old difficulty Popup was pretty decent and satisfactory. However, there was no warning that indicated that playing the game on Peaceful would lock certain levels out, so I added a hint of that to the screen where you select difficulty for the first time.
On the left, I made a sketch of what I envisioned to be the new Difficulty Selection popup, along with lots of extra stuff, such as displaying above each level on what difficulty you completed the level on.
In addition, selecting Peaceful would actually bring you to TWO “cutscene/animations” where you actually see the consequences if you were to actually continue on with Peaceful. I think the animations are pretty cool and hopefully some players pick Peaceful and actually take a look at the animations haha.
The only thing I did was for the cutscene selection state. The new forest portals definitely fit more with the environment.
I also made the cutscene a little more fitting with the level and to inject the feelings I want the cutscene to give. On the left is the old one I drew many months ago, and on the right is the new one.
Level Editor UI Revamp + Lots of Editor changes
This new level I drew and designed actually impressed my friend, Li Hao, which makes it one of the more outstanding levels I have created. Ever since I created a new Cave level, it has opened possibilities for more “level revamps”, and special story levels where I can ignore the boundaries of the map and even introduce custom tiles, backgrounds and decoration objects. However, the limitations and restrictions of the current Introvert means there are still limitations to level design (character size too small, map limited to 20 x 15 tiles).
I want to finish Introvert asap as these are problems that I cannot fix in Introvert 1.
Also, new platform tiles!
Larger girl sprites
Also working on larger sprites for the female turtle. For the most part, this will be utilized in the special story levels. I also want to animate the hair as she walks. Previously, my attempts at animating hair was extremely weird and I omitted it as I had too little pixels to work with. I had lots of discarded girl sprites due to animation failure and awkward hair frames.
With larger sprite sizes and also being slightly more skillful over time, I began my attempt at making the girl’s hair more realistic for the “walking” frames and to inject more life into the character.
In the end, I think the hair turned out pretty well (as she walks, her hair wavers as though running in the wind). I guess this is sort of a breakthrough for me in animation?
More Unique level designs
Also, there was one week which I couldn’t go home, and knowing I wouldn’t have access to my computer for an entire week, I brought with me a pencil, and lots and LOTS of paper, just to make sure that on the week which I couldn’t go back home, at least I would be making heavy progress. One of the things I wanted to work on in my to-do list was an achievements revamp. The current achievement system in the game is growing more and more outdated as I add new features, levels, special cutscenes and other mechanics to the game
Creating special levels takes a HUGE amount of time. And honestly speaking, it took me way longer than I expected. I have taken almost two entire days to create 3 new special levels – which includes all the environment design, coding aspect and such. It can take me hours to create one special level, and is a long time compared to creating a normal average level, but the advantages is that special levels look very unique and should look nicer than average levels.
Below are some screenshots of how I transformed some of the old levels into special levels.
Because this game was developed over a long period of time, some graphics are more newer than others, and I have to occasionally update my old graphics. I guess this is another problem with making a long game is that as your skill level continues to increase, you generate better artwork and it makes some of your older graphics lose out to the ones you just created, causing a disparity in the quality of the art assets in the game.
Even my coding style has changed over the year. I look back at some of my older classes and code and I realize how inefficient I coded them in my early months of programming with FlashDevelop.
Also in the works, I may be possibly creating a new “epic” puzzle level. As I was drawing this sketch the other day, I showed it to my friend beside me who actually studied game design. He actually went to “play” the level which I drew on paper, imagining the character on the paper itself. He’s so cool.
Kite animation for a new kite level in the works. I also extended the level boundaries for that level to be almost TWO maps tall!
So I began work on expanding on the level which would contain the kites…
setCameraBounds function now automatically flexible with different map sizes and across multiple zoom levels
After a few days, I finally figured out how to make this happen. When I started creating levels with various map sizes (no longer constrained by 20 x 15 tiles), one of the problems I immediately had was to make sure that the camera was “smart” enough to detect the level boundaries and not exceed those boundaries. The camera has to adjust accordingly not just on 1x zoom, but on 2x zoom or any other zoom levels in between as well (1.5x, 1.2x, 1.4x) etc.
Today, I finally fixed the code to be flexible that it actually takes into account and calculates the boundaries. For some of the special levels, I had to set them manually in the past, but now, this function works across ALL my levels, which is just fantastic.
With my old formula on certain expanded, larger levels, I could only see a few pixels of extra boundary, or a few pixels short, but it was bugged nevertheless. Now I play through my large levels and their boundaries work perfectly.
I created a map of the game a long time ago to give an idea of how the game states are structured. I think I will have to make a new map soon since the game has expanded to house several more places and levels, such as the Hidden Memories.
The last 10 levels in the game are hidden away from the rest of the levels as they are secret levels.
When he jumps, the character’s vertical speed upward is dependent on jumpPower. “1.7” is just the golden number I used previously to create the perfect jump physics in my 20 x 15 tilemap world. But it was no longer a golden number in my new special levels, which are larger, and start off with bigger default character sprite sizes..
So, I added a new variable, jumpPowerMultiplier and my new formula was adjusted to:
var jumpPower: int = maxVelocity.y / jumpPowerMultiplier;
And now I change jumpPowerMultiplier based on the character’s scale, which is usually larger on special levels, causing him not to jump too high, and also reduce his “floatiness”, which was good too. I was actually sick of waiting for the character to fall to the ground while in midair during the special levels because the characters were really just too “floaty”.
And then finally, I was reaching a decent level of physics that could almost replicate my normal levels. There are other changes I may have to make and formulas to tweak to actually replicate with precision the actual physics, but I guess for now I am satisfied.