OldStory published!


The picture above is the reason why I am writing this post. But before I talk about the picture above, I’ll start by telling you a wonderful little journey I had before I published OldStory recently.

It all started 3 weeks ago. I received an e-mail that said I had a private message on my Youtube account. It was unusual because I never thought I’d ever receive any messages. The last time I used my Youtube account was months ago, to upload a trailer and gameplay footage of OldStory.

I checked out the message, and it was from a random guy who asked if my game had been completed as he looked forward to trying it as he was an old player and like me, wanted to relive the experience of playing MapleStory.


His last sentence made me really sad because I had abandoned OldStory long ago. After attempting to publish it on NewGrounds sometime in February, it was removed shortly after. I suspected it was due to copyrights, but after confronting them that there were other similar flash game simulators on their portal, they did not get back to me, and I lost the will to chase them about it. I left OldStory in the dust after that nasty experience.

So when I read that Youtube message, I felt sad that OldStory had gone to waste just like that. Two of my friends really enjoyed it, and I hoped that other people would enjoy it too. So after mustering up lots of courage and willpower, I headed to an alternate flash game portal, Kongregate.

I nervously uploaded my game on Aug 5. It was the moment I had been waiting for for so long. I had lost quite a bit of hype because so much time had passed since I had last seen ‘OldStory’, but I was still eagerly awaiting what comments I would get from players.

It’s kind of interesting how it all turned out. I never was the type to make a Youtube account to upload videos or even make a wordpress. But in the end, it was stepping outside this little comfort zone that made this a wonderful experience. I never thought that a random youtube message from a random guy would actually change the fate of OldStory, a game project which I had long forgotten about.

That’s the power of the internet, that you can be influenced by someone miles away.


You can play the game by clicking here.

I wanted to write a post when the above happened, but couldn’t get the time to. Ultimately, it was when I received another wonderful private message on Kongregate did I actually feel like I had to write something, and the contents of that message is the picture at the beginning of this post.

It was the best comment I had ever received. In the past few days, I was quite demotivated because the game had received a much lower rating than I had anticipated. The players seem to come from the extreme ends. There are those who really enjoy the game, but at the same time I get equal amount of messages from players who didn’t enjoy it.

It is comments like the one above that give me the encouragement to make games and make my day. I never expected anyone to actually reach 100 new Game Pluses, because that takes a significant amount of time invested, so based on that, I was glad that there was someone who really enjoyed the game and I am grateful that he took the time to write such a heartwarming message.

Skill animations and more

The game has been going on pretty nicely even though I spent almost a whole day solving bugs and had no ‘actual’ game progress. In preparation for a main menu revamp (my main menu currently looks like this:


The main menu uses the default built-in GUI from Unity, but that’ll change. I have drawn at least 4 backgrounds for the main menu, including a really awesome looking game logo.


Here is one of the backgrounds I made. It’s based on existing graphics, so not much work has to be done. Each time you load the main menu, a different background is displayed. I made the background displayed random at first, but afterwards, changed it so that it chooses the background based on a fixed and regular cycle. You won’t see the same background two times in a row, which is cool if you ask me. Much better than randomization.

The main menu revamp will also include an auto-save feature which backs up player’s save file automatically in case they lose their original save. It doesn’t work if the player still chooses to wipe his cookies or clears his cache etc, but it should be able to prevent saves lost through power outages or browser crashes.

Going HD

I have recently made the decision to go mobile with this game. Going mobile actually gives me nightmares because of a past experience. All the jargon about SDKs and shit drive me nuts. It’s really complex and not just a simple snap of the fingers to port it to mobile. I used Eclipse to develop a very simple mobile game in 8 weeks. It was for an assignment which I got distinction for, but it was really crazy for me, but it was also very memorable because it was my very first playable game. I think I vowed never to use Eclipse again. My friend insists it’s easy though, but he’s a programmer and I can’t even handle coding on PC!

Porting to mobile required some restructuring of code, but upon porting to mobile, I noticed that certain graphics were blurry. Some of them could be resolved via changing settings, while others required me to redraw higher res graphics.


I got a bit paranoid and drew some of my UI icons at absurdly huge sizes. A gear icon to toggle settings in the game is around 40 x 40 pixels in size but was drawn at a 400 x 400 size. I believe the downside is this increases game size though.


If this is the size of a button, I can’t imagine the size of the background…


One thing I have seen from players’ comments on games is that they want their character’s graphics to improve when they upgrade them. Apart from increasing their character’s stats, their appearance should change accordingly and look more powerful as well.

In this game, I planned to draw 3 unique graphics per character to show significant advancements in the character progression. However, when I played around with colours, I learned that I can do even more!


I had a new idea of class specialization – For example, you can upgrade your Priest to be a “Battle Priest” for more damage, a “Support Priest” to heal greater amounts of HP, or a “Holy Priest” who has higher survivability. This can be played around according to each individual player’s preference. Early on in my game, heal power is very important, so perhaps the player would upgrade his priest to be a support, but later on, damage becomes more important so he can change his speciality to damage.

Alternatively, because this is not part of the original game design, it might cause balancing issues. If I do not wish to add specialization, I will still add the new graphic variations via another way: Every 100 levels of upgrades, I plan to change the character’s sprite to have him appear more powerful.

Colour changes may look easy and effortless, but it still requires some work to really pick out the best colour palette and to also experiment with toggling each colour separately – topwear, bottomwear, etc. This is where I turn to my friends / family to ask for feedback on which colours look the best.


I marked in blue the generally favorable ones in terms of graphics, and marked in red which ones appeared the most powerful, so I can set them according to the respective character upgrade tier.

Together with a “job advancement” feature, this will mean each character will have 3 x 3 graphic variations = 9 different sprites for each character. 3 of the graphics are unique, requiring new drawings, which means I need to reanimate each character’s attack, idle and death animations at least two more times. Speaking of which…


IronBody14 IronBody15 IronBody16

I have had great progress with creating animations. I am now able to semi-automate generation of a skill spritesheet, which is a great convenience because I can now focus more on drawing the actual animation.

Previously, if I drew 20 frames of an animation, I would have to manually move each “picture” or frame to a very specific coordinate in Photoshop. For example, the first frame is at (0,0), then the next at (500, 0), then at (1000, 0).Blog16A one pixel difference could be very obvious and create jerky and badly vibrating animations. Because my frames are so far apart from each other, it  meant that making changes to one frame of the animation made it hard for me to compare to the previous and next frame because they don’t overlap (which makes it hard for me to apply onion skinning, an animation technique my friend taught me).


Onion skinning on a character

But now, I don’t do the movement. Instead, I export each individual frame to a PNG via a built-in script in Photoshop! Watching the script work was really damn cool as it automatically generated the sprites I needed. But this means photoshop gives me 20 separate pictures in my folder that I need to merge into a single spritesheet.

That’s where my old friend, TexturePacker, came in handy. I drag in the 20 pictures, input some settings, and it creates one, nice clean spritesheet into Unity. Technically, I could opt out this step because Unity accepts 20 pictures to make one animation, haha, so even more steps saved!


The animation above is a rough completion. It still requires final touch ups as well as improvements to its colour.


Here is another one of my more completed animation. The last few frames are a bit jerky and the movement isn’t very smooth so it still requires some touch ups as well. This skill animation is for ‘Dragon Skin’, a party buff that decreases damage you take from enemies.

Skill Types

I classified the types of skills I intend to have in this game to 4 main types. I have managed to code 4 skill types so far:

  • Passive (provides a permanent stat boost to character, easiest to code and no animations required)
  • Buff (when activated, gives a temporary boost to yourself OR party members for a few seconds. I coded this before in OldStory but is challenging to do in this game because I have to make a character’s buff work across multiple characters and single characters depending on the nature of the buff)
  • Support (similar to a buff, but gives an instant boost, such as healing a party member’s health)
  • Active  (an attack skill that deals damage to the enemy. The hardest to code.)

For active skills, I coded them in such a way that each character has a skill queue. Instead of immediately casting an attack skill, say “Triple Stab”, it adds this skill into a queue. When the player is in the ‘ready’ state, he then activates the first skill in the queue until the queue is empty. I made it this way because sometimes, the player can use a skill when the enemy just died, so your skill literally hits air before the next enemy respawns. This way, the player can spam all his attacks and not worry about overkilling or hitting nothing as leftover attacks will be stored and used on the next enemy.

Also, unlike OldStory, you can use multiple skills at once and they will be casted the moment they are ready, which is pretty cool because you can combo and stack several attacks together.

When I was done coding that, I would soon realise that the real challenge was in coding the buff system, which took me more than a couple of days to tweak and refine. It’s the party buff mechanic that makes life difficult where I have buffs that don’t seem to count down on the deselected character, or a same buff lasting two different durations on separate characters etc.


Apparently, making a game is also an addiction… somewhat. I guess…

The funny thing about making a game is that it’s all about balancing. No, I’m not talking about game balancing…


It’s all about the balance between happiness when your game works….and frustration when it doesn’t. So yea, making a game is full of such balances.

The thing about drawing is that I get a great sense of fulfilment. This is the same with coding, but with frustration. When I am done with coding and I open up my Photoshop, I’m like “YAY! IT’S TIME TO DRAW SOMETHING!”, and I get so happy when I start it up because I know it’s going to be fun.Blog4

And when I get tired of drawing (well…we all get tired), I go back to coding. Once again, balance. (That’s why I titled this post “Addiction”. I’m kinda addicted to Unity now because it’s really really fun.) Unfortunately, the dark side of coding tends to eat up more of my time because I run into unexpected bugs.

But what if I get bored of both drawing and coding? Well, then I guess there’s always game design to think about.

But what if I get bored of ALL of that? Coding, drawing, and designing. Well, that’s when you see me typing a new post, like this one, because I’ve probably been drawing, coding non-stop from day to night and I need a break.


This is the current look of the game.

I’ve been drawing a lot lately… I’ve drawn 100 game monsters, which is really lots and lots of drawing, by the way. There are 10 “areas” in my game, and each area requires a specific set of monsters, background art and props.

SnowyHillMonsters Ice Zone


I really enjoy drawing boss monsters a lot. I try to make them unique and memorable, but each boss monster can take up to half an hour to draw. At this point, I can say I’ve finished drawing 75% of the monsters and am taking a break before finishing the last two zones, and one secret zone.


Also featuring a chocolate yeti which is actually a color-inverted of the original. Gave me idea for a new “Candy-land” themed area. I should experiment on inverting my other graphics.

Also, Items!


The items I’ve drawn for the game are extremely high-res, 818 x 818px each!!! I have no idea why I drew them at such crazy sizes when they appear so small in the game. For comparison, my backgrounds take up an entire screen and are 2048 x 2048.  For such HD graphics, you’d expect these items to make a significant appearance in the game, but the truth is they only appear for a fraction of a second. They drop as loot items from monsters, and you probably loot them in a second. I realised that as I was playing the game myself.

Also, I have been working on characters as well. Here are some concept art as well as a touched up animation of one of the characters: Rogue.

Blog9    ThiefConceptArt

The game has multiple characters, and that’s one of the challenges of developing this game. I don’t know if I can publish it actually, because having one character already requires LOTS of work and each character has quite some depth – upgrades, skills, class advancements…

Aside from characters, I also worked a lot on their Skills, something that is very VERY challenging to do in games. I did make OldStory previously, an RPG. It was great fun, but to do it in Unity would be quite a different story. Get it? OldStory, different story? Ah never mind.

Anyway, here’s one of the skill animations I drew recently. It’s called “Wisdom”, and increases party EXP gain for a short duration.


Unfortunately, I don’t really have any special tools for creating animations, so a lot of it has to be done manually. TexturePacker, which I used for OldStory doesn’t help at all in this game. The animation above took about an hour to make, and much more including the time taken to form ideas and research on existing skill effects used in other games. Oh, and don’t underestimate the time taken to draw skill icons either.


As you can see from the picture, the game’s skill icons above are about 50% done. Some of the repeated icons are placeholders. Collectively, they took half a day to draw. If I didn’t stop, it would have been one entire day spent on just skill icons.

So this week has been pretty amazing.

On the programming side, I managed to code:

– Random item drop mechanic and loot system

– Multiple character feature

– Skills system

On the art side, I whipped up

– Several new Theme areas and monsters

– New character art

– Character equipment items

– Roughly 50% of the game’s skill icons

– A few skill animations

I guess it’s been a pretty productive week so far. This is partially thanks to the long weekend from Labour Day, which gave me 3 long days to play with.

Making an Idle Game Pt II

(This is a continuation to my previous post, “Making an Idle Game“)

I have one thing that I am not as strong at and that is that I don’t really like to draw humans, or animals. I find anything with legs, limbs, fingers harder to draw. Unless they are turtles or beings that I don’t have to focus on parts like hands, in which case I could draw them. But for my idle game, I can’t make turtles as the monsters without quickly running out of variety, so I looked up inspiration of monsters used in various other games. Working with my designer*, I also have to keep in mind several things when I draw stuff for my game. My designer wanted my monsters classified into “themes”, such as ‘forest monsters’, ‘swamp monsters’, which also makes it easier for myself to research and generate ideas. *Designer being myself Epic Battle Fantasy and other 2D games I’ve played before did provide me with a source of inspiration. However, because I am pretty much limited to non-animals and non-human drawings, I often have to get creative with generating monster ideas. Common easy monster ideas like dragons, creatures, demons appear a lot in my search results and in other games, but drawing them is pretty much out of the question for me. So I have to look up on other inspirational “monster pictures” to boost my creativity in coming up with monster concepts and ideas, like this area boss I drew below:


Area boss design

This started out as a simple bush monster until I realised I needed an area boss, so it evolved when I added a “shell” for it to sit in, and rocks below it. I drew branches growing out of it to make it more detailed, but apart from its huge size, it wasn’t very boss-like. To make it look more menacing, I added spikes and a skull, as well as patterns around its eyes to differentiate it from a normal un-intimidating bush monster, like the one below:


Ops sorry, this is the other area boss.


Yes, I meant this one above.

I am naturally more ‘artist’ than ‘programmer’, so the moment I took a break from coding and started drawing, I couldn’t STOP. I just kept drawing, and drawing, AND DRAWING. The moment I was done with one monster, I saved it, and immediately started a new one. When my ideas run out, I switch to chrome and enter a new keyword into google, and voila, I get another string of ideas.


Some monsters look better than others

I eventually stopped when I realised it was late and I had to sleep. This is the kind of motivation that actually keeps me up late at night. The kind of motivation that makes me stop playing all my games and focus on actually making a game than playing one. Somehow, I derive fun out of making my own games. Combined with my love for drawing, it’s like a formula to happiness.

All my monsters are drawn in high-res, a lesson I learned from my previous game, Introvert, where I drew my assets in such small sizes that scaling them up made them lose quality. In this game, I draw my assets in high-res and downscale them so there is no quality loss. Those sprites above are about 4x bigger than their actual in-game size.

A compilation of my monsters/bosses, as well as a peek into 3 themes I have planned so far:


On the second day, I completed the next two themes, ‘Desert’ and ‘Swamp’, one of which is the mud monster you saw above.

At this stage, I’m not sure if this will be a game I will finish. Drawing sprites is extremely time-consuming. Imagine that all these take two days to draw. I only have two weekends a week, and just doing the art assets would devour my weekend. Talk about “no life”, I honestly spent too much time on the art assets and this being my first game in Unity, it may not turn out very well. Most first games don’t do well and I’m afraid that if I spend too much time drawing the art, it will be wasted if I don’t finish this game.

There’s still a lot of scripting I need to learn, and it will be a very busy week for me as I play in my new playground, Unity.


And talk about programming, I had two major breakthroughs. And man, Unity is really tough to use for me since I’m still a beginner at it. Although I don’t like programming as much, when I successfully code a feature, it gives me a really great sense of achievement. I resolved two very big issues recently:

1) I finally got the green health bar to go up and down according to your current HP ratio. It was so much trouble because the camera I rendered it on it set to some special settings that screwed up my calculations. I looked up multiple solutions and sort of did a mix between them.


2) Adding random enemy spawning and collision detection. Instead of 1 enemy, the game now spawns random enemies chosen from a list. I tried to disable collision detection because I don’t want the enemy to PUSH the player back every time he attacks. However, disabling their collision box means disabling events like detecting if the mouse is over an object and I can’t afford to do that. In the end, I did some workarounds to get it to work. Not only that, I managed to make the collision box fit perfectly to the enemy as his graphic changes without having to rely on Unity to repeatedly destroy the collision box and re-generating, which I think may not be very good for game performance.

See, that’s the complex thing about coding. Sometimes there are multiple solutions to a problem, and you got to choose the best one. Because as I had learned in the past, bad coding can make it hard to expand and “add stuff” to your game in the future.


A week has passed since I downloaded Unity and about 5 days since I started making this gams and I think it’s a really good tool for game development so far.

Making an Idle Game

5 days ago, I downloaded a very powerful and well-known game engine called ‘Unity’. After 2 years of working with Flixel, FlashDevelop and Flash to make flash games, I realised that there is a limit to the things I can do with Flixel, and also it wasn’t very robust. It had flaws that meant that using it to create games in the long run would limit how well I can develop games.

So I decided to try learning Unity. It uses C# as opposed to ActionScript, but the challenge is how different Unity is. It’s so….interface-ish. I am very used to just looking at a full page of code and prefer having a main game state that controls everything. But Unity is very different. It is very visual, which is of course good but something I’m not used to yet. It is pretty complex too, with panels everywhere. I decided to learn how to make a simple game. I started a project and called it “MyFirstIdle”.

Unity is very different from Flash. It was really challenging getting things to work. I was looking at tutorials and I know how much faster I can accomplish all these tasks with Flash which I am familiar with, but I tell myself that I can’t turn back now. In just under two days, I managed to create my first very simple idle game.


Then I decided to train myself by making a side shooter game. I only went through 20% of the full tutorial, but I just wanted to learn how Unity works. I needed to learn how scripts interact with each other to make an ‘enemy’ fire a bullet to damage a player.


Then finally, I decided to start the actual game I set out to make with Unity.


The moment I no longer had an exact tutorial to rely on, it was REALLY difficult. I couldn’t wrap my head around certain concepts, but the moment I got the ‘player combat’ to work, it was exhilerating!

ezgif.com-video-to-gif (1)

An animated gif! Yay!

I was excited and I screamed in caps lock to my friend when I saw the player’s health decreasing as the enemy attacks him and vice versa. The character and enemy automatically attack each other and for now the only main thing you can do is upgrade your sword to do more damage. Though I am new to Unity, I am impressed by some of its features.


Another animated gif! 

Although Unity started out as a 3D engine, it incorporated some tools for 2D game creation.

That’s all for now!

The Story of ‘Introvert’

If you want to know what went on Behind the Scenes of how I started off making this game, feel free to read on.

A long time has passed since I started development on a game called Introvert, or what I call ‘Project ITV’. Introvert is a story-driven platformer flash game and is my very FIRST game.

Menu Oldest

The first menu screen I made for the game. Remember how it looks, because you’ll see how it is transformed later on.

I remember the first day I set out to make this game, it took me 8 hours just to make a square move with the arrow keys. I remember how my first few lines of code endlessly returned errors. I was just starting out Flash and it was really, really tough, especially when I am more of an artist than a programmer. Those were the times where I spent hours figuring out how to make a simple thing work. Don’t even talk about a main menu. Getting the cursor to show was already a problem for me. You never know how hard it is to make a game till you actually try to make one.

But I never gave up.

I started learning ActionScript, a totally new language, in a totally new world of Flash, using a totally new engine called Flixel, with a totally new IDE (FlashDevelop). Ultimately, I think it was my passion that fueled me, because within three weeks, I had my game prototype. I had a controllable player (yellow square) that could walk and jump, enemies that had some basic AI. I even coded some puzzle elements like keys that could open passages, doors that could teleport you and buttons that activate elevators. There were levels, a level selection, a menu. I was excited. I had actually created a game! My first game!

itv1Yes, that red square is your character. Just imagine your happy face on it.

And then came the massive jump. At that time, I was still using Paint to draw my art. I had been using Paint for years that I had sort of become a master at it, and it became a problem for me because it had become my comfort zone, and I was unwilling to part with it. I didn’t want to learn anything else.


An animated swirling portal drawn in Paint

grass tiles transformation2

Paint for the win

For a long time, I was using Paint to draw my my tiles, objects, portals. I even “hacked” transparency. Because Paint doesn’t support transparency, all my sprites had a background colour to simulate transparency. That was until I bought the Adobe Package, and with it, came Adobe Photoshop. I didn’t like Photoshop. Too complex, I said. I could draw the same thing in Paint twice as fast. But my friend told me to give it a try, and so reluctantly, I did. And then…miracles happened.

I found myself drawing better quality art. I drew clouds, hills, flowers, and before I knew it, I had beautiful backgrounds for the game! Suddenly, Introvert had become something more than just squares jumping on other squares.


The menu on the left was drawn in Paint. Do you believe it? I made the buttons and gradient with Microsoft Powerpoint.

Lots of things changed, and not just the Main Menu, I mean… really A LOT of things. It was like a brand new game altogether. I could’ve released the first one there and then. It would have been a really awesome first game since it had everything I wanted. I know this isn’t an inspirational story, but had I stuck to using Paint, I would not have learned to improve myself and push my limits. So the first lesson I learned? #1: Get out of your comfort zone


Wait…you’re wondering how the turtles got into this game?

While my original idea for the game was a story about two squares, my friend who tested my game said that an actual character would inject much more life into the game. So I replaced the square with a character.


Say goodbye, squares…

But guess what, I really sucked at animating. You know, thinking back, that was my first time animating anything by modifying actual pixels. My walking animation looked like a guy with legs swaying lifelessly back and forth as though dangling helplessly from the air. And when i started to draw the female character, it was worse. She looked really awkward. She first looked like an old auntie.


girl20px(old)I know the bottom character looks a bit small, but trust me, you don’t want to enlarge her / it.

Notice how there are two spritesheets, one is 20px in height and the other is 32px in height. This is because a unique mechanic in the game is how you can grow real time during a level. I think this is one thing unique about this game that playtesters praised. There were many problems that using a square solved. Now, as your character grows, he can be distorted and at a huge size, looking very pixelated.  It was a headache to solve these issues because very few other bitmap games have this mechanic and you have to sort of find a good way to scale the character and have it look good, and then there comes the problem of how the character looks so small at the start that I had to research into how to maximize pixel usage. I think some pixel artists would be familiar with a technique called selective outlining. God, as if handling the code wasn’t hard enough. Now, the art? I was about to find out a lot about what goes into developing a game.


Also includes spending hours on level design

Of course, I soon learned that level design would take me far much more time than I expected. There were a few flaws in the way I placed text that tell the story. I had to remove some levels because they were pointless and caused players to lose track of the story progression. I conceptualized many levels and put the best ones in. Certain puzzle elements had to be removed in the process. One cool idea I had were “magnets” which could attract metal platforms to you, but it was scrapped. “There were some levels that were praised in the way they were designed, mostly with how they help to tell the game’s story in a creative way, and I feel motivated when I receive such positive comments.

As time passed, I began to wrap up the game, but not before adding 10 bonus levels with a secret extended storyline. I personally like the art for the final few levels. It’s like the game rewards you with better art the longer you play.


Featuring a new theme, as well as the first area to implement rain, and tons of new puzzle mechanics

Took me a couple of weeks to code and perfect all that, but I made it. This was back when I was still studying in polytechnic. While most people are out partying during their holidays, I spent pretty much most of my holidays at home developing this game, which I kept very low-profile, showing it to only a small handful of people. Even still, most of them only saw the game in its early, 3-week ‘infancy’ state. It was a rush with time, because in a few months I would be enlisted into National Service, which would make it hard for me to get any work done.

Before I was enlisted into National Service, two really amazing things happened.



With the game nearing its ‘publishable’ status, I uploaded my game to FGL, hoping to get a sponsor for my game. I was very confident when I sent my game for review. But when my game was reviewed, I was in for a disappointment. One thing you have to realize is that when you upload your game to FGL, you are competing with the entire flash game industry. It’s not just about you any more, it’s about competing with games made by other, more experienced developers. People from all around the world upload their games there. I wasn’t just up against some classmates or developers in Singapore, I was actually experiencing first hand what the game industry was like, and boy it’s a big world out there. My game got an average score of 6/10 for the art, design and other factors. But the sound scored 3/10. The sounds fared the worst. I had sourced out free sounds and apparently, they were terrible.

After I got back to my feet, I thought long and hard about what to do. I decided to contact DVGMusic. I remember being so nervous about it because I really wanted his help. I spoke to David Carney, the CEO of DVGMusic. He was unwilling at first, but I eventually decided to take some risks. I ultimately managed to persuade him successfully! He was a really experienced sound designer and had lots of experience in the game industry, so much that he suggested a couple of things to improve the game’s design and even its art aspect.

I remember how I was staying up late, past 3am in the morning just to discuss with him because he’s from the U.S, so our timezones are vastly different. The time I go to sleep is literally the time he wakes up. We communicate via Skype and during the day, he’s usually offline. He’s a nice guy and he even made a video on his progress of music on Introvert !

I get really jumpy and excited every time he has a new soundtrack ready for me. In fact, I was so pumped up that he had to remind me that I had hired him to do all this.

I learned a lot of things from working with him. Once again, Introvert was about to undergo a major transformation.


The pictures above is brought to you by VersionControl. Notice the UI redesign as well.

menu Introvert

I demand a new main menu with each transformation!


To be honest, Introvert was pretty much a learning journey for me. Starting out with Flash, Photoshop, and getting to work with DVGMusic on the sounds and music for the game was really awesome. The most fun and invigorating times were when I was working with him to actually push the game to greater heights.

I never imagined that Introvert would grow to become the game it is now.

The sad thing… is that sometimes I feel that’s what Introvert may merely be – a learning journey.

Eventually, I was enlisted into National Service, which physically and emotionally drained me. To keep my motivation up, I sometimes sketched story scenes when I was not at home and digitalized them when I got home.



Here’s an apple. I specially gave you the one with a worm in it.

I also started drawing these story scenes, to add value to the game. However, my testers had mixed feelings about them.


Story scene drafts I drew… on my phone, just because I can

Progress started to crawl and in my absence, David began to move on. While I was serving National Service, I lost motivation many times, but one very good thing happened. I invested in a drawing tablet some time after completion of my BMT (Basic Military Training). Together with the shipping fees, it really cost me a bomb.


Tada! Drawing will never be the same again.

And indeed, drawing art assets had never been easier, faster, more efficient. Here’s a look at my new workplace.

comp setup

YYZ’s studio

Not to mention I now have three monitors. One for coding, one for drawing, and the last one for playing Cookie Clicker.

Talk about multi-tasking, my tablet again took me to a higher level.


So…you’re asking why I drew the same picture 5 times in different mediums? I have no idea either.

I began to develop my own drawing style with the WACOM.


As if the tiles weren’t awesome enough already…

Level 32

The other great advantage of having a WACOM is that I was able to draw more realistic looking turtle expressions and animations. The pen tool in Photoshop doesn’t really flow naturally with how I usually draw turtles with my free hand, so my turtles sometimes look very rigid. This is hardly the case with a drawing tablet.


Tracing a jump sequence animation with my WACOM

Because I began to develop my own drawing style, I began to draw some new art. One of the most significant ones is a level in the game called ‘Scenic Forest’. It is one of the most complex and detailed levels in the game visuals wise. The background is more detailed than all other levels and has up to 5 layers of parallax scrolling whereas most levels only have 3 or 4.


A compressed Scenic Forest foreground layer

Sometimes, I would get inspired on the nights I stay in camp and I would draw whatever comes to mind. Some of my best levels actually form when I sit alone and just dream about the possibilities of level designs for the game. Because I have no access to a computer, I get a lot of time to actually think about things that never cross my mind when I am too busy coding or drawing at home to think about new designs. Some of my ideas stretch my programming capabilities, but the end results often make it worthwhile.


Example of a level design concept which made it into the final game

Most of my newer levels are designed to have something happen at some point. The particular level above has some special effects that are triggered when you walk to certain areas. These levels can take an entire day to make if they include custom level art. Many of my old levels don’t have these kind of special events, so if you play the game, it is actually quite easy to tell which levels were the ones that are newly created.

One of my favourite special effects is when you are controlling the girl, looking at a picture of the boy on the wall and suddenly, he becomes controllable and you switch to him, literally “jumping” out of a picture and the scene transitions to a totally different level.

ezgif.com-video-to-gif (1)

Over time, I had begun to update many of my art assets, such as the environmental decorations in the map:


And being my ambitious self, a secret world map made its way into the game, comprising of all the key areas of the game.


editor(edit mode)

Of course, in every game, there are bound to be some things that are not very fun to do. Take a look at this neat Level Editor I programmed. Well, if you find out how many hours of sleep I lost to it, you’d probably drop all thoughts of making a game. The good thing is that, I am able to partially export my edited levels, which makes it easier to create my own new levels, which is really just pretty cool. I’m probably going to work on making these levels fully exportable, so players can share it with their friends. To do that, I’ll probably have to use a string of arrays containing an array of arrays. Doesn’t sound too complex, right?


Yup. Pretty sure it’s simple enough that I would not need to make a picture to remind myself what my code does

The Story

StarryMoonThe reason why I want to make Introvert is because of the story that drives it. I was very sure that this would not be just a regular platformer. There are tons of those out there. I want to make a game that will bring you through a story and hopefully, one that is relatable. But by now, I have realized that even a story can be very difficult to write and tell. After looking at the game, I know definitely there’s a better way to execute the story, and if there’s an Introvert 2, I’m pretty sure it’s something I will definitely improve on. But thinking of a sequel is way too far fetched for now.

The truth is that I let the game drag too far past its “ripe” period that I began to lose motivation to finish it. I don’t have as much excitement as I used to and returning to work on such an old project isn’t quite as refreshing as working on a new one, which is why I started to work on other projects like an unnamed Space Shooter game, and OldStory.

The other issue is the unfinished sounds and music for the game, which really is a bummer because I was looking forward to hearing them completed.

But I guess, I’ll have to find a way somehow, to wrap up and finish this project, and hopefully, one day, I will publish this game.


My very first game.


The End.


Finally! Found a screenshot of the game that has no moon in it *sarcastic*

Old Story Part 2

Old Story Part 2

For part 1, please refer to:

I had been working on OldStory for about 3 weeks now. (Advisable to see part 1 before part 2). Progress has been remarkably great, considering I did not intend for this to be a game in the first place.

I added more content over time, and added features to make the game more playable and fun!

New Equipment
The game’s first build had 6 equipment:
– Helmet
– Topwear
– Bottomwear
– Gloves
– Shoes
– Weapon

I have since expanded the game to hold over 10 equipment.

The new equipment are:
– Ring
– Pendant
– Shield
– Belt
– Cape (added in latest version)
– Earring (added in latest version)

You get new equipment as you progress through the game. I didn’t add the new equipment at one shot. It was more like I gradually added them over time because the game was slowly expanding bigger and bigger and equipment was a game-changer to make it more rewarding and fun to play.

I also tweaked and rebalanced the stats provided by the equipment.

The 12 current equipment in the current game build.

I received comments that HP was useless. The trend I noticed from testers generally were that they rather spent 400k mesos upgrading their weapon, than spend a few 10k upgrading their armor.

Weapon was overpowered and 1 attack was more valuable than a 1000 HP.

So I buffed the armor to add special stats.
Helmet: It increases your Mastery, which stabilizes your damage by increasing your minimum damage.
Topwear: Doubled the HP boost. It gives the most HP compared to all equipment, making it worth double its value.
Gloves: It now gives 1 attack per enhancement. I noticed immediately that my testers upgraded glove as the next priority after the armor buff patch, along with Helmet because of the new inherent damage boosts.
Shoe: It now adds to your movement speed, allowing you to move faster.

The new equipment all add unique stats that make them extremely useful.
Ring: Increases your critical rate and at a high enough level, adds to your critical damage.
Pendant: Increase your EXP and Meso gain. (+farming speed)
Shield: Increase your defense (a favourite because at high levels, makes bosses deal 1 damage to you)
Belt: Increase your Buff duration (another favourite among my friends who played)
Cape: Increase your cap damage (apparently addictive feature because it increases your farming speed)

The final equipment is the earring. It adds something new each level you get. One of my friends really liked how special it was.

Because of how special this last equipment was, I devoted a few days to implement the condition to get it. You have to fight an epic “shadow” boss which looks like you. He drops a very powerful skill and the final equipment.

Relic Upgrades
The Healing Relic in the game is a unique skill I made personally. I drew the graphics for it, and at one point, you get to upgrade the Healing Relic to Lv. 2.

I drew a new graphic for that, and here is its design.

The old relic on the top left and new (upgraded) relic in the middle. On the right were some of my discarded previous wing designs.

I also added a multi-relic feature, so you can plant Multiple relics on the map after an upgrade.

New maps and Monsters


The game soon hit its limit content-wise with the last few maps I added to the game.

I added a brand new area after Time Temple, mostly end-game content. I named the expansion “Fields of Nostalgia” because it includes some old monsters and nostalgic music.

Summarized “Patch notes” for myself to refer to (23 Jan ~ 31 Jan):
– Added new expanded area: Fields of Nostalgia (unlocked at NGP15)
– 6 new maps were added, inclusive of 2 bonus areas
– 8 New monsters (2 big bosses, and 2 mini-bosses)
– 4 New skills were added (Combo Atk, Dark Thirst, Dark Synthesis, Mystic Door)
– Many skills are now upgradeable (Dragon strike, Crusher, Sacrifice)
– Equipment give huge stat boosts at E50 and E100
– Added perma rewards at NGP50 and NGP100
– Scaled up monster stats from NGP100 onward.
– Plenty of bug fixes (e.g. Items falling through floor)
– Plenty of exploit fixes (e.g. cooldowns no longer refresh when switching save files)
– Plenty of rebalancing changes

General Improvements

I found it a hassle to repeatedly enhance my equipment and I had to do a lot of clicking. So I added the auto-enhance feature. Ever since when I test my game, I always use it to enhance my equip.


If the level difference between you and the monster is too great, you can ‘miss’ them. It works at a 3%~4% rate per level difference.

Currently, the last boss you unlock is Pianus, the gigantic fish boss. It’s currently the second most toughest boss to defeat and drops a special skill for you. It also drops skill books to upgrade your skills!

Those big numbers somewhat remind me of the boss fights in the old MapleStory.

Pianus is capable of summoning BOOMS, which heal him if you don’t kill them fast enough. If you are too weak to kill the BOOMS faster than Pianus can spawn them, then Pianus simply heals himself to full health before you can damage him. It’s the first boss I implemented that has summoning and healing abilities.

Stat Window
I designed and implemented a stat window so you can observe your stats without having to go to the Shop. The stat numbers turn red when they are increased or affected by your current buffs, which is really cool, plus it updates real time.

Pet Feature!

My first Pet in MapleStory was a Panda. Till now it is my favourite pet because it’s just so iconic and cuddly. So I added this in my game, simply for nostalgia purposes. I considered adding the Pet because I knew it would be challenging and tedious to make it work, and true enough it was.

The pet feature was one of the most challenging because it took me a few days to get the pet AI working correctly. The pet has 5 states and it automatically transitions between them under appropriate conditions:

Follow : Follow the player and ignore all loot drops
Loot : Go to the furthest item within the pet’s looting range
Buff : Buff the player
Guard : Protect the player from an attack
Free : To buff or guard, the pet must be in ‘free’ state, aka not doing anything else.

Pet skills improve your pet, such as increasing its walking speed, looting range, auto-buff interval and such. The last skill is ‘Kung-fu Panda’, and it is unlocked after a special requirement.

The pet’s debug mode: White box represents its looting range, and red box hovers over the loot it is currently trying to get.

Facial expressions?

One thing that I think some people would agree on is the ugly character in the game currently. The character was actually taken from one of the projects I had to work on for my friend, who wanted a bear-like face for his character.
Some doodling of character faces I made for fun (NOT FINALIZED). Note that these faces may not be the faces I will add to the game.

Statue Boss
As I was working, I began to conceptualize an epic boss that was capable of inflicting status effects and debuffs on the player. This boss was going to be extremely annoying but challenging to defeat. I think it worked really well in the game and you will definitely get a shock when you fight this boss for the first time.
To the left is my original concept of the Final Epic Boss map. (That black thing in the middle is the portal)

Some of the statuses it inflicts on you are not even in the original MapleStory, and they are really unique. I went to brainstorm the ideas and took the most creative ones and added them to the game. I think this boss really is a boss that isn’t just a sitting dummy for you to just defeat.

Instant kill effects
I added a new ability: Instant Kill, which activates at a chance. An animation also appears when instant kill is successful, though your eyes are probably focused on the 999999 numbers to notice it.

The special ‘instant kill’ animation isn’t in this screenshot because it was from an earlier build

Ludibrium Maps, NPCs, Quests System, Item drops

I managed to code in quests just recently. This brand new area is part of the “Fields of Nostalgia” expansion. Quests took me about 2~3 days to code and implement. It was not as problematic as pets, but challenging to make it bugless and seamless nevertheless.

It was also my first time working with and implementing NPCs in games.

This is the door to the new expanded area. You can’t enter the portal unless you meet its requirement.

One of the quest rewards is a Red Potion recognizable from the old Maple:
 – Gives you a huge amount of experience 🙂

Here’s a snippet of my NPC class. When you complete a quest, the NPC says some random chat. Even though I’m no director, I enjoyed writing the dialogue for the NPCs. ^^

Sleepywood Jump Quest?
Although this will not be in my final build, I did accidentally create a jump quest map full of monsters and floating ropes / portals. It was funny to play around with the map, killing monsters as they fall from the sky.


There are currently a lot of buffs in the game. In my latest build I coded them to actually form a second row if they get too long, as you can see in the screenshot below.

Boss HP Bar and Icons

Some icons for the bosses in the game. The HP bar feature was added because bosses often had too many damage numbers above them which blocks the normal green HP bar they have.

Math and Rebalancing

As the game got huge, balancing the game became a big issue for me. I sometimes overlook game design and balancing, and poor balancing in a game can break it.

One feature in the game is ‘Spores’, which increases your character’s stats permanently. I accidentally coded them to give 5% HP each instead of 0.5%. And because I discovered this pretty late, it was difficult to rebalance the entire game.

If I reduced their HP boost, I would have to adjust all the monsters’ attack values so they aren’t too difficult. This type of rebalancing at this late in the game is really difficult to do. There are too many things I need to tweak. The large HP boost means that the value of buffs that give HP is effectively decreased.

I wanted buffs to be essential, so I tweaked the HP formula. I inputted my current and new formulas for the game. The Blue line in the graph is the old formula where HP buffs work additively, and the Red line is my new adjusted formula (multiplicative buffs so that a 60% buff means x1.6 instead of +0.6). I wanted the results of the two formulas to be as close as possible, and thanks to the graph, I am able to fine-tune my values such that my formulas don’t make one particular stat/buff too overpowered or underpowered.

In the graph, I also nerfed the new HP values because the game was getting too easy. The graph lets me view how slight changes I make to the game affect values at later levels (at the start, 50 spores don’t make a big difference, but as you get further, the more spores you have, the larger the difference)

Multi-Save feature
One of my most favourite latest additions was Multiple save slots. I can’t put in words how useful this is to me as a developer and tester. I often realize that changing one small thing in the game can often lead to very different results later on. When I realize a monster is too easy for a high-leveled character, I increase its HP and make it tougher, and sometimes I overdo it and it becomes too hard to gain experience for lower leveled characters.

Having multiple save slots means I can create a low level save slot, and a high level save slot, and I can test both content simultaneously instead of wasting time inputting commands to reset my progress or power-level to the level I want to test.

 And also upcoming, a developer’s video I am working on …


10 Jan 2015

For about a week now, I have been working on a side-project, a game that is a simulator of a famous MMORPG called MapleStory.

I used to play Maple as a kid. It is more like a childhood game to me where I think of the friends I met in 2006/07. I played as a legendary dragon knight.
Upon returning to MapleStory, I read that in their latest job revamp patch, they had removed two of my favourite skills from my Dragon Knight:

“Dragon Roar” and “Dragon Crusher”

I remember using Dragon Roar many years ago and the feeling of killing 15 monsters in one swoop was really satisfying. But my Dark Knight was revamped with new skills with nothing unique about them and my damage had inflated into the millions.
Long gone are the days where doing 5k damage made you a pro. And long gone were the days of Dragon Roar and the old Maple.
Being a very memory-inclined person, I kept thinking back of those old times. I lay stuck in nostalgia for a long time. I looked up old screenshots and videos and wanted to experience the fun of using Dragon Roar, but the new MapleStory made that impossible.
Then I decided to make a game. So I made this – a game I promptly titled “OldStory”.

This is a Maple Simulator which features the skills and simulates gameplay of a Dragon Knight in the old days.

I made the map resemble “Forest of Golems”, one of my most memorable and favourite training grounds.

I added my favourite skills, Dragon Roar above, and Dragon Crusher below.

I used ‘hit boxes’ to determine the range of a skill, and these hit boxes can be controlled to appear only when the skill reaches a particular frame because skills like Crusher have a delay between when you first press the skill button and when the actual damage appears.
Hit box
I even made my own skill, which doesn’t exist in the real game. It’s actually inspired by Dragon Nest where you summon a relic to the map which heals you and damages nearby monsters. I also added a tooltip that appears when your cursor hovers over skill and buff icons.
When I was confident with my codebase, I expanded the game and made more maps. The other map I made is “Deep Gorge II” that spawns Sotongs. Aquadungeon has always been my favourite training place – the music, the gobies, they all bring back old memories playing with my friends, spending hours just trying to gain one stupid level that can now be reached in far less time.
I wanted to feel how it was like to play my old Dragon Knight from 2006 again. MapleStory had been ruined by its new updates, and I can’t do anything about it.
But what I can do…. Is to make my own simulator. 

A game where I set the rules, and where I can relive my old memories. It took me 3 full days carrying on from a scrapped codebase I had from one of my abandoned games. I modified its Physics, controls and the toughest part was re-coding MapleStory’s skills from scratch and trying to resemble them as accurately as possible. I actually went to analyse videos at 0.25x speed to see the skills and to capture the way MapleStory works, e.g. the way the damage lines stack above the monsters. But finally… I had done it. The graphics were terrible and there were bugs here and there though – but what can you expect out of something done in 3 days? After that, I proceeded to clean the game up, added features and gameplay elements like Ropes to climb from platform to platform, and there it was.
OldStory was created. And I had a lot of fun making this.

It was coded with FlashDevelop and Flixel along with BannedStory for monster & skill sprites and tiles. I also used TexturePacker to consolidate all the individual sprites from BannedStory into a usable spritesheet. Not all the art assets are from the actual MapleStory.

The backgrounds are mine, using existing art assets which were inspired from MapleStory itself.
A background I had previously drawn

An original background scenery for a possible Ellinia-like map, but was never used. 
I also drew the damage numbers myself because I couldn’t find the original. It impressed my friend because he thought I ripped the numbers due to the fact that the ones I drew looked so alike it fooled him.

The damage skin graphic I drew and used in my game
I got ambitious and added a ton of other stuff to make it like a real game – an XP and levelling system, map unlocking, monster drops and even a final boss, along with buffs and skill delays and a shop to upgrade your equipment to improve your HP and damage using mesos. It’s not the most polished thing, but it was really fun trying to implement all that.
This is the shop I made. It’s a place where you can spend the money you looted to upgrade your equipment, raising your damage, your maximum health, as well as Mastery – a stat that increases your minimum damage.
The screenshot above is actually the shop in its early versions. It is not something I followed MapleStory in. I had no plans to draw proper graphics for a simulator, but when I started to get positive comments, I decided to put a bit more effort to make this game more presentable.
So tadda! Above is the look of the new shop. I actually spent some time drawing some simple UI boxes to just beautify the look of the game, including a slime I drew for the fun of it. I also did some rebalancing.
I shared it with my old MapleStory friend as well. He said that it was really fun, which made me really happy, considering that this game was only supposedly meant to relieve myself of my nostalgia.
Though it was supposed to be just a small side project that honestly I spent too much time on, I did learn new things, such as custom keyboard configurations which I didn’t know how to code before, so maybe it was worth it spending so much time on it after all. It was also my first time using bitmap number  graphics instead of actual fonts (for the damage numbers).
It took me HALF A DAY (it was a weekend somemore) to figure out how to code this. This was an idea by my friend who gave me this suggestion.
Edit: Updated this with more stuff below…

More Changes from 11 to 15 Jan
I started updating the game with more stuff because of positive comments and decided to invest more time into making this an actual game than just something nostalgic for myself and friends.

Much like many people, I wanted more high-level content and end-game content. Previously, the game pretty much ends at Level 200, but there is no reward or any sort of Congratulatory message to tell you that you beat the game.

Now, I added a new map, new monsters, as well as Level 200+ skills and unlockables. Now, level 200 is just the beginning of the most exciting part of the game, and I find the Level 200~250 journey of the game incredibly fun.

To make the new map more interesting, I coded in a simple feature, which functions sort of like Quests, giving you a reward for killing 200 monsters.

You also can get a new skill as a drop from monsters in the new map:

Look at the number of buffs I have activated on the character.

I also added a tutorial, with classic MapleStory slimes to help those who don’t play MapleStory and to introduce properly the mechanics of the game, especially Flash Jump, a new skill I coded, and is also a skill that can easily go unnoticed.

The new Jr. Balrog monster 

This new skill, Rush, is a totally hackish skill in this game, which is what makes it really fun to play. In the  real game, it had quite a significant cooldown to prevent it from being spammable and the distance was too short to be fun. But in here, I made it really useful.
 Death sprite and falling tombstone, just like the real Maple


When you reach Level 250 in the game, you unlock New Game Plus, which resets your level back to 1 and resets all your money and equipment. However, you gain additional rewards like more skills.

You also get new equipment.

I added new equipment, the belt, shield, ring and pendant that each give different stats to the player. They can be enhanced. What’s interesting is that the maximum enhancement level increases with every New Game Plus, so this game can basically go on infinitely. You also gain passive bonuses, such as inheriting skills at Level 1 without needing to unlock them at their respective levels (eg Level 100 for berserk, level 200 for Beholder)

A new item drop was added, the Fire Gem.

It is a rare drop from monsters and when looted, gives you a permanent stat boost to your character until the next New Game Plus.

I also added skills that would add value to the game. Skills that are situation-specific are what make Dragon Knights interesting. Although I could add many skills into this game, I didn’t want to add obsolete skills which the player rarely use. So I tweaked some skills to fit the game.

The skill above is Sacrifice, and deals huge damage to a single target by sacrificing health.

I made Sacrifice a very powerful bossing skill, but it is costly and weak in training.
I made Dragon Roar a very good AoE skill for training, but has a long cast time.
I also added a bonus skill called Dragon Strike which deals high damage and has high range, but has long cooldown, as opposed to Dragon Crusher which has shorter range and lower damage but can be spammed. Both skills can be intermittently used for maximum damage output.

Additionally, I drew a popup which appears when you get a new skill. Previously, my friend wasn’t aware he got a new skill, even though I added a message saying so at the top of the screen. But I don’t want to rely on players having to read messages to be informed of important events.

Just some notes of some of the changes I made to the game over the past few days. I kept these so that I know the significant changes to the game versions I am sending to my friends. These changes were all made after the basic game has been completed, which basically means that the game was sort of ‘finished’ before I added these, which are additional stuff to make the game more fun and playable.

Changes 11 Jan Part 1:
1) Manon boss now drops a skill book when killed for the first time, giving u a new skill
2) Flash jump given at Level 1
3) You now get stance at Level 110
4) You get a new skill at Level 200
5) You unlock a new map at Level 210
6) You unlock a new skill in the new Level 210 map
7) You get a new skill at Level 220

Changes 11 Jan Part 2:

– Added tutorial: New ellinia map and slime monsters
– First time players will be asked to play tutorial. No longer brings up keyboard settings page
– Tutorial now introduces Flash Jump properly
– New boss and map: Balrog / Cursed Sanctuary replaces Manon
– Manon moved to Level 250 boss
– Final boss map now unlocked at Level 240
– New Game Plus option added (but not working)
– Meso graphics now change based on how much mesos are dropped
– Roar now displays damage with a 1 second delay like the real Maple
– Using roar now shakes the screen when the damage appears like the real Maple
– Bosses now have attack animations when aggro-ed and can cast magic attacks onto player. However, magic attacks have infinite range currently.
– Monster AI improved: They now move toward you when aggro-ed
– Mixed Golems now cast attack up buffs when provoked
– Fixed Bug where non-critical hits appeared red if the first line is red
– Fixed bug where goby houses could spawn on top of each other

12 Jan changes
– New feature: New Game Plus (NGP), unlocked at Level 250
– New weapon graphic in Shop
–  added tutorial transition from login
– UI changes to golden at level 250 (super cool)
– Added the HS as a 1% drop rate from mobs
– Monsters now move back smoothly when knockd back, no longer has jerky movement
– New equipment: Ring (dropped from Manon)
– New equipment: Pendant (obtained on NGP)
– Enhancement prices have been adjusted:
     – Weapon is now 2x more expensive to enhance

13 Jan changes:
– You now spawn at the correct portals when traversing through maps
– New Game Plus(NGP) now supports infinite New Game Pluses. Previously capped at 6 and had no rewards thereafter.
– Added new skill: Mesos UP (awarded upon 2nd time reaching lv 250)
– Added new equipment: Shield
– Updated info panel with new stat: Defense
– Finally added Music
– Added Menu button
– Monster knock-back distance has been lowered
– Enhancing has been sped up at lower levels
– Fixed display bug in Shop (for new equipment)
– Lowered KB value on slimes
– When knocked back, monsters now turn to face you
– OldStory completed.

Changes 14 Jan:
– Added new item drop: Fire Gem
– Added mute button
– Oblivion guardian HP has been increased (420,000 -> 450,000)
– Monster stats now start to increase from 7th NGP (new Game plus) onward
– You now get a permanent 20% HP bonus from 7th NGP onward
– When hit by magic attacks, the effect now shows on the player
– Shield is now required to be re-obtained every NGP, and it only adds to player’s stats only when the shield is in possession
– Added new equip: Belt (buff duration +3s / level)
– Added new stat: Buff duration
– Camera bounds is finally working properly
– Monsters hit by skills with delay (eg Roar) no longer freeze at their HIT frame but their STAND frame (like the real Maple)
– Monsters’ magic attacks previously had infinite range. But not anymore.
– Exitting to Menu now saves the map you were previously on
– Manon EXP and Meso reward has been increased by ~20%
– Damage displayed over Manon now does not exceed the height of the screen (for tall monsters)
– Player HP bonus per NGP decreased: 20% -> 10%
– Pendant and Shields have their enhancements capped at 28 + 2*NGP
– All equipment’s max enhancement level now increase with every NGP
– Added two new levels of equipment graphic sprites (+16 and +17 enhancement graphic)
– Added 200ms delay to rush to simulate real maple’s rush
– The delay for buffing on ropes has been reduced to 200ms
– Fixed various bugs and issues:
   – On NGP, SE and HS no longer drop when u have it
   – Fixed max enhancement display error in Shop
   – On NGP, some messages were changed / removed
   – On NGP, you can no longer re-obtain holy symbol if u have it
   – on NGP, messages telling you to unlock a new skill do not display if you own that skill
   – On NGP, bosses no longer drop skills that you own
   – Some messages now only appear once in a lifetime
   – First message now changes based on your NGP count
   – Fixed 0% success rate on 16+ enhancements
   – Fixed bug: Your health got reset to base max health if you switched states instead of your real max health (if HB is on)
   – Fixed a minor display bug with buffs that overlapped each other in the UI
   – The login page now saves your username
   – Entering different states in Lobby reset your map to mixed golem
   – null success rates and upgrade costs for equipment past 15 enhancements

15 Jan:
– Belt has been buffed (buff duration per level: 3s -> 5s)
– Added Dragon Blood char animation effect (super cool)
– Added new skill: Sacrifice (320% damage to one target)
– A popup now appears every time you gain a new skill
– Added a new equipment graphic at +18 enhancements


The shop screen as of 15 Jan, which looks more awesome than it was at first.

16 Jan:
– Added new skill: Demolition
– Added new Map: Someone else’s House
– Added new monster: Mushmom
– Added hit animations for Crusher, Roar, Demolition, Dragon Strike
– Manon’s damage has been doubled
– Spawn rate in Goby Dungeon greatly increased:
     – Spawn limit is now determined by num of enemies alive rather than total enemies in map

– Fixed bugs:
  – Dragon Blood effect did not wear off even after end of buff
  – Closing skill popups now cancels immovable status caused b skills
  – There was no return portal from Mushmom map if level is below 15

17 Jan:
– Added F1 shortcut key to shop
– Deactivated buffs now have their shortcut keys colored red and to make it more obvious, a ‘!” icon will appear over expired buffs
– Username now saves across newGamePlus
– added double confirm before deleting save
– When u reach the top of the rope, there used to be a bug where u jump. This bug is minimized, but not fixed completely.
– Added mushmom spores
– Shop mesos text size is now adjusted if u have too much mesos
– Added commas to shop meso text
– Updated the mushmom spore display in shop.
– Spores now carry over New Game Plus
– OCD: Centralized hidden portal in ‘Forest of Golems’ to map’s symmetry
– Rolling over shop button and New Game plus now displays tooltip for shortcut key
– Sacrifice popup only appears on the 1st and 2nd NGP
– Demo popup only appears when below 5 New Game Pluses
– Zombie Mushmom has been added
– Reduced font size of stat description in Shop (16 –> 13)
– Updated stance description “99.99% to prevent KB” instead of “90%”
– Level font size decreased if level is above 1000
– New Item drop: Poisonous Mushroom
– Added poison status effect
– Messages added for collecting 120, 150, 170, and 200 spores
– Added small bonus for getting 100, 150 and 200 spores
– Item drops do not fall through the floor anymore
– Zombie mushmom can now be damaged by Heal
– Fireworks fx appear over a successful item enhancement
– Getting Holy Symbol as an item drop now saves when u change map
– Added shortcut key to toggle music: M
– Added 2x EXP and Meso coupons
– Insufficient mesos buying coupons will cause meso text to flash red
– Fixed a bug where cancelling Beholder didn’t cause Beholder to disappear

– Fixed bug:
  – Level 200 text no longer repeats after every level
  – Ring enhancement cost was 0 past Level 16
  – Demolition no longer drops from Mushmom wheen you possess the skill
  – Slightly increased Manon’s mesos reward (40000 -> 50000)
  – Relic can no longer be summoned out of level bounds

18 Jan
– You now get popup if u loot shield, ring, belt and cape (only on first 3 games)
– Added new equipment Graphic at E21, E25, E30 and E40.
Additionally, sparkles will appear on E41+ equipment
– Weapon cost now increases by 50k per Enhancement after E15
– Armor cost now increases by 25k per Enhancement after E15
– Added new equip: Cape *unlocked after 2nd new game plus
– Added new equip: Earring *unlocked under secret requirement: when all equipment reach E20 (cannot be enhanced or obtained yet)
– Demolition now gives you invisibility and invulnerability
– Spores’ damage cap boost now only take effect from 1st NGP onward
– Added new skill: Booster (to be unlocked after 5th NGP)
– Added new skill: Shadow Partner (to be unlocked via secret)
– Cooldowns are unfortunately saved
– Added ability to jump to platform below  (DOWN + Jump key)
– Added hyper jump (shortcut: jump while pressing UP midaire)
– Increased gravity (800 -> 900)
– Increased jump power (400 -> 500)
– Increased flash jump power (400 -> 450)
– When in air, hold down to fall faster
– Added popups when choosing New game plus skills to carry over
– Updated New Game Plus screen with the advantages of NGP.
– Removed the “U gain meso UP at lvl 250” message at every NGP screen
– 1st, 2nd NGP will have rewards displayed on NGP screen.
– Miss rate has been doubled (1% per level below mob lv -> 2%)
– Goby level increased to be in line with Bone fish (55 –> 60)
– Manon level increased (200 -> 210)
– Buff exclamation mark does not appear if skill is still on Cooldown
– Buff durations no longer reset when entering Shop or entering portals only for Booster & Shadow partner 🙂

– Fixed bugs:
  -Fixed major exploit where you could spam skills
  – Your hp could become 0 if ur HP was at the exact Hp requirement of roar
  – You could previously use the shortcut key F2 to start a new game plus even at Level 1

19 ~ 20Jan
– Belt and Shield popup now indicates they need to be recollected every NGP
– NGP level requirement increases by 20 from 10th NGP onward.
– Increased earrings to max 15 enhancements
– Keyboard settings now only allows alphabets, and supports the same special characters that maple supports
– You can now customize all the new skills (except Sac and Demo)
– Added new map: Shadow’s Lair
– Added new boss fight at NGP10 (is it too early?)
   – New boss drops special equipment and skill
– Added Stats Window
– Updated tutorial with the new abilities
– Added new map: Pianus’ Cave (unlocked at NGP20)
– Added new boss: Pianus
– Added new skill: Maple Warrior
– Game now saves your mute preferences, and your current map
– Added messages for first time purchasing 2x EXP/ mesos
– Added buff overlays (timer) for certain important buffs
– Added shortcut key to enhance eqp: ENTER
– ATk bonus per NGP decreased (25 -> 20)
– Shoes now give up to 75 move speed (but player base speed decreased by 20)
– You can no longer push stationary monsters (pianus, goby houses) sadly, it was fun watching pianus get pushed across the map
Bug fixes:
– Booster and SP durations were 4x longer than expected
– Black overlay inaccurately conveyed buffs’ time before expiring
– Added messages for first time buying 2x meso/exp. Buff descriptions are now more informative and reflect durations accurately.

– EXP tnl formula revised for Level 251+ onward
   – It is now much harder to level up from 250 onward. This is because new update made it too easy to reach Lv 4k, and level accounted for 90% of player’s damage (my normal att was hitting max dmg) *see screenshot*
– Excess crit rate over 100% now adds to Crit Dmg
– New stat: Crit Dmg
– Ring now gives 1% crit rate per level after E15
– Damage formula revision scrapped
  – Each level was going to give 2% ATT instead of 4% (but made early game too difficult)
– New Game Plus no longer gives 10% HP bonus each (pianus needs to do 400k dmg to be of a challenge and that is too high)

21 Jan
– Pianus now summons Bloody Booms
– Fixed bug: Goby houses did not return to stand frame when KB-ed
– Added Pet button in shop as well as ability to purchase pet skills, but skills do not work currently

– Fixed bug:
– Fixed a bug where unlocking the last pet skill required the state to reset to update

22 Jan
– Added Pet:
– Added 5 Pet skills: Can walk, loot, buff and heal you
– Pianus boss fight made more challenging: Pianus’ summon booms can heal him, and heal amount increases with bloody boom count. However, at high NGP it is still too easy to beat him

– Fixed bugs:
  -2x meso and exp counted down wrongly
  – IdleBot is officially working

(Warning: The following is more personal and less to do with my work.)

Unfortunately, even after doing all this, I am unable to relieve the original experience of what it felt like to be playing with some of my old friends, training and bossing together and having so much fun with them. It was at a time when we were all young and innocently playing together. Those times of a simple childhood are long gone…
The screenshot above was taken in 2011 (read the message banner at the top).
MapleStory was more than just a game to me, it was a place I formed some of the strongest friendships I have and created unforgettable memories. And just looking back at some of the screenshots I have, it’s just nostalgic.
It’s like going back to your old school, and thinking of the times you spent with your old classmates and friends.

This nostalgia is indescribable. It makes you want to go back, back to when monsters took 6 or 7 hits to kill, back to when doing 5000 damage made you a pro, back to when Level 100 actually meant something, back to when you’d loot everything on the floor, back to when partying with your friends and having fun formed the main purpose of the game.

I remember wanting MapleStory to be a single-playing game because I didn’t like the multiplayer aspect, but I have come to realize that it’s not just the game that made it memorable, but the friends I made in the game.

But well, it’s all just memories now.
The End.
For reading till the end, here’s a bonus…
This is a Cherry Boss I drew in the past. It was an unused asset. I didn’t use it in the game because I had no interest in making anymore maps.

September Progress

27 Sept 2014 – September Progress

The month of September has been even more productive!

Level select difficulty sprites

Now, these sprites appear when you move the mouse over a star in the level selection screen to tell you what the star means (which difficulty you  completed a level on), the three difficulties being “Peaceful”, “Puzzle” and “Perilous” (previously known as “Panic Mode”).

Finale Cliff Edge
I am not going to reveal too much about this level, but this is basically a very special level that leads up to a cutscene that plays as you reach the end.

Above is a draft using template platforms to form the level. It seems to look pretty decent and I actually considered using those black tiles since they actually reveal more of the background which achieves the effect I want, but I wonder if custom platforms would be able to achieve it too.

I drew the custom platforms for the level and this is what I have:

Notice that the platforms aren’t very grid-like as compared to my normal levels. I used a class I coded months ago called Slope.as. It creates slopes for the game in a rather hack-ish way in that the game engine doesn’t support sloped tilemaps, so I had to devise my own way to implement slopes in the game. By creating platforms that act as a ground for the player, following the formula y = mx + c, I was able to create various types of slopes (steep slopes, smooth slopes) by inputting the start and end coordinates of the slope, and let the Slope class do the rest of the calculations.

As you can also see, this map is really, really huge and it has to be quite wide because of the player’s increased size in this map to give sufficient walking distance.


For the first time, I drew the exterior of the player’s house. It looks better than the girl’s house in my opinion.

The beam of light in the screenshot appears only after a certain condition is met and when you stand in the light, it takes you to a comic.


The 4 items is a comic revolving around… yes you guessed it – four items. This took pretty long to finish, to plant the 4 secret items into the game and all, Each of the items has a comic associated to it by the way, and finally after all that hassle, it’s finally done.

Milestones Screen

A new room I created which stands next to the achievement room. Here, you can track your major milestones achieved in the game.

Flash back Scenes
I remember playing a game called L.I.F.E a long time ago and what struck me was that at the end of the game, when you die, the game plays these little pictures of you, dating from when you were first “born”, until you became the character you are today. I felt that was really magnificent.

(Spoiler alert: Some of the scenes below may give a hint of what to expect in the game. 
View at own discretion)

Months after that and fast forwarding to now, I was inspired to do some of these flash back scenes which I have already thought of the perfect place to put them in.

However, I want to add my own flair into things. I happened to watch a few movies that have a similar feel to Introvert and they inspire me a lot, giving me a fresh perspective of things. I watched Eternal Sunshine of the Spotless Mind and it gave me this idea about the players’ memories fading away as he chooses to forget them, and I am going to give that feel for the special Long Corridor level. That level has been a somewhat abandoned area in the game which I hadn’t updated for a long… long time… It is the first(!) level in the game I made which ignores the normal level boundaries and I remember it was one of the most challenging and special levels back then.

I feel I am quite ambitious with the effects I want to achieve with the Long Corridor, haha. It took me hours to revamp the Long Corridor level even with my increased skills compared to when I last programmed this level.

First time Deaths
I was told upon death, the resetting of the level is too robotic. There were thoughts of a fantasy theme reset and I did spend quite some time thinking about it. I didn’t come up with a very solid idea in the end but I did what I could.

Earlier, Li Hao did tell me he wanted to see some sort of cutscene or something that makes the level reset less robotic. I thought a cutscene would be good, but anything longer than 1 second would potentially be more of annoyance to the player if you find yourself repeatedly dying.

A fancy way of saying “I died”.

There are four ways to die and on the first time you die from each of those methods, it brings you to a simple scene… just some words, no pictures. Thereafter, there is a pictorial “cutscene” that appears for about 0.5 seconds, and I made it so that it doesn’t restrict movement. This means the reset is essentially instantaneous. I really loved the idea of an instant reset and I’m glad I was able to preserve it. I remember looking at some other games which did some transition animations when you died and some of those games which didn’t do it well ended up annoying the player, which is bad.

Screenshot taken just a split second upon touching the spikes

I set in place a story and also added special effects when you die for the first time. Now, the level would gray out and some clocks would appear to signify your travel back in time. Second time onward though, the grayscale doesn’t occur, but the clocks still appear.

Hidden Memory

Hidden Memory is a batch of special levels that I once called “Deleted Levels”. Throughout the development of this game, I scrapped many level designs. I kept them in the game but made them inaccessible. I thought of hiding them away in a really secret and deeply buried area where only hackers or cheaters can find. But today I finally got the time to actually look at how to do them better.

Hidden Memory 7

I recently compiled a list of those deleted levels and added them in a secret compartment of the Level Selection screen, allowing players to access them as “Deleted levels”, but I think calling them “Deleted levels” now is underwhelming, so I revisited some of them and actually gave them a whole new look, and even coded added functionality to two of those levels to make them even more interesting than some of the normal levels.

Hidden Memory 9

They are now revamped into Hidden Memories which actually link slightly to the main story and are a lot more meaningful now. I also gave them a theme to achieve this feel that these levels are really messed up badly because your character doesn’t have a good memory of what happened in those levels. Some of the tiles don’t match their backgrounds and even the environment props are meshed from another memory.

 In case you were wondering what I meant by “messed up badly”.

Just kidding of course, This background is utterly hideous. I would never add something so hideous to the game.

Epic Door Level
The new door level I added is extremely challenging. I had to actually tone it down a lot after I myself took several attempts to get the timing to jump correctly, and I’m a veteran player who’s been playing my own game for months that I can play some of my levels with my eyes closed.

You probably can’t even spot the player

The screenshot above doesn’t show the full level. See if you can spot the similarities between the sketch and the actual level.

New Achievement Logos

With the addition of new achievements in the game, I had to draw new logos. It was really fun to do these new logos. They sure are better than some of my older ones in terms of visuals. If I have time, I should consider redrawing all my old logos since those were drawn 1 year ago. I really enjoyed drawing these logos, but they took me way longer than I expected.


I have drawn many comics for this game. Although the animations and effects outdo my normal comics, I feel like I took a step back in terms of story. My comics in-game don’t display many frames on the screen either, partially due to the small screen size which restricts me from truly drawing proper comics.

I have not been drawing new comics for the game, but I had to do something about the story. The story isn’t as impactful as I want it to be, and just as my ideas got stale, I took a look at a game called “To The Moon”, a very emotional game.

It didn’t give me much inspiration, but soon after, I drew a storyboard. David, my music guy, had this idea of Story Levels. He didn’t go into detail, but I wondered if I could make some scenes and levels where it ultra zooms in on the character and their expressions. These levels (or scenes) would have no puzzle or danger elements and would focus on the characters and their development.

I also have a problem where the game has so many levels, the story begins to be clouded. It was no longer the 5 or 10-minute game I originally wanted it to be, and the game’s story becomes a blur when the game length is extended, a problem I had not foreseen when I introduced more levels.

The idea of introducing these “story levels” as a benchmark every 10~15 levels then hit me. But I have not come to accept it as an official game design element I want to see in the game yet. I have more planning to do.

I think I need to open the game to more testers to gather some feedback before I make any more drastic changes and decisions.

New Water

Water samples

So I was working on water sprites and I remember seeing platforms with Water before, but when I went to google for them, I suddenly could not find any screenshots of a side-scrolling platformer with water…

Anyhow, I managed to draw a few water samples and I think I drew one that looks rather decent and not looking too cartoony or fake. But when I went to make it flow in the game, it gave me lots of glitches and multiple water sprites with a fixed velocity doesn’t seem to work well – they tend to overlap somehow (due to floating points?). In the end I had to animate the water movement manually.

Water Physics(?) / Environment!

Now I am really excited about this one, but the best part is that… I CODED THIS IN ONE NIGHT! Given that I’m kinda weak at programming, this is a personal achievement for me! I was really discouraged by how I couldn’t handle water movement earlier, but what I have just achieved really brings this game up a notch! Although… I did stay up to 2.30am just to finish it on a Monday morning. Darn it.

I can’t reveal much, but I drew drowning animations for the turtles (20px boy, 48px boy and 20px girl)  and let me say… this animation is just one of the most terrific animations I have thought of. I can’t put it in a way without spoiling it, but I can’t wait for people to play the game to see it!

Lamp post level revamp
Another WIP is a new rework of a unique level in the game. It doesn’t have a proper name but I often refer to it as the “lamppost” level.

New Intro Scene

One thing the game lacked from the start was a proper intro scene. Pressing “Play” from the Main Menu immediately throws you into a level. I added a few text to reveal part of the story before the level begins, but it wasn’t very well presented.

So I made a special cutscene along with the text I wrote in the past, combining them to make the Intro scene for Introvert. I also used a new type of ColorMatrix to achieve a kind of color effect for this cutscene that sets it apart from other cutscenes.

Lots and lots of polishing, refining, touch ups
Re-visiting my old levels has given me some ideas of how to make them better, in almost any possible way. Text changes, addition and removal of text, decoration sprites especially for older graphics, etc…

Also, I’m beginning to slow down the production of new content since I now want to focus on wrapping up and completing the major features in the game.

As September draws to a close, I am one month closer to my deadline. Let’s hope for the best!

A Playtester!
Over the weekend of the last week of September, I got a new playtester! I was really excited!!

Mr. Playtester

I’m grateful to one of my army friends, Ming Sheng, who was willing to playtest my game! On the first night, he played through about 1/3 of the story levels and he had given me lots of insight into the way a new player reacts to some of the elements and levels in the game.

I don’t think you’ll understand my notes, but some of the things I noted were:
– Ok button at Main Menu isnt intuitive enough
– make it not need to restart if u missed the fren at corner of lvl 5
– Player can stuck at btm left of lvl 6
– Friend not playing walk animation
– Add to isntructions: H to change Hat, 

– Once u die in bonusstate, no clocks appear

There were issues which I could fix on the spot, so I got to work immediately. I realize I need lots of playtesters before I can even call this game “playable”.

I reworked some of the difficult levels to make them slightly easier.

As someone who has played this game lots of times before, I cannot sense the difficulty or have another fresh perspective on how to play a level, so Ming Sheng really gave me lots of insight today… and I’m really curious to how he will go through the remaining levels, especially the more exciting levels toward the end.

There’s a lot of work to be done every time someone tries my game, but this means the game is getting a whole lot better every time that happens!