Project ITV

Project ITV

Sunday, June 2, 2013

Polishing update 1

Progress so far
The game has gone through several changes since the start of the polishing stage, and is starting to look much better! I improved the art of the starting levels and there are also some design changes that were made, with help from David. Most importantly, the text is now looking waaaaaay better than before!

New Font for game text
The first thing that had to go if this game were to look good was the default Font. I added 9 fonts in the game and added hotkeys F1 ~ F9 to change the fonts, to directly see which fonts look best in the game, while playing in real time. I, David and Li Hao all had different opinions on which font looks the best, which makes it confusing haha.

But with the font change, the game looks presentable. I was so excited about this change!

Text change
The text for the first few levels was also rewritten. Woohoo!

Game Logo
I changed the shape of the logo and made it look a bit better. But it might still have to change in the future. You can see the new logo in Cliffhangar3.png below.

New Introduction Cutscene
I was really tired of working on the game at one point. I used to draw random turtle pictures, and I realise how fun it was to draw random things, so I drew a turtle staring at the moon, under the tree.

With some ideas and tweaking, I got ambitious and turned this into an actual cutscene in the game! Guess I didn't waste too much time on random drawings after all.

Cliffhangar3.png

New Decorations and Tiles for Hills of Reminiscence
I drew new tiles, and experimented with colors for awhile before finally getting something that looks better. I was told that this still needs improvement though, and I wish I knew how to draw better rock tessellations. Also, this is probably the last time you can see the old font in the game in the screenshot:

The old level looked like this, and Li Hao probably fainted when he saw this:


And here is an even earlier version, but isn't the oldest though:


Finalized new turtle sprites
I finished drawing the turtle sprites some time ago, after experiencing issues with trying to make my turtles look consistent. It's so much harder to draw turtles for a game than to actually draw them for pictures/cutscenes!

The male turtle now has 5 different forms, or "levels" as David likes to call it.

Baby: 16 x 32px (turtle in an egg)
Small: 10 x 20px (default)
Normal: 16 x 32px
Large: 20 x 40px
Largest: 24 x 48px

There is actually a final form, but this was removed.
Super large: 128 x 256px

The problem I had with scaling the turtles was that they had undesirable pixelation. Drawing multiple sprites minimizes the issue, but doesn't actually solve it completely sadly. Li Hao helped me with coding another method to scale the turtle, but it does not work well with pixel sprites. The scaling was a nightmare... and drawing so many turtles is certainly exhausting.





Wednesday, May 15, 2013

12-18 May New turtle sprites, Camera panning, Etc

Progress so far...
The game was in a way, completed. Everything done now is to make the game better and polish it :)
I have one month left to do this!

New Turtle Sprites
You know, one thing I learned recently with the help of Li Hao is that...drawing is easy.
But drawing for a game is not.

When I was drawing random turtles and comics, it was pretty easy. I didn't have to think to draw. But when it comes to drawing for games, there is a lot thinking required, and I was not a very good thinker / analyzer.

Things like style differences, sprite outlines, whether something looks too 3D-ish, whether something should be spinning or not, they became things I had to really look into because of this project. And I had overlooked many things. Of course, that meant I learned a lot too.

Camera Panning
It was disorienting to have the camera immediately switch to the player's location after moving through a door or switching players. The camera now follows the player loosely, and pans from one player to another when switching among the two controllable players.

This is my favourite change to the game this week. I couldn't stop moving my character through doors just to play with the camera panning to and fro.

Less punishment
Spikes collision box reduced.

Zoom changes
All levels had their zoom rounded to absolute values (1.0, 2.0, 3.0x zoom).

Text Design
Text enters a level with fade and move into the level from a certain direction. I created a function so I can easily adjust the fade intensity, direction, the distance which the text moves before locking into its final place, the starting alpha value of the text when it appears.

Reflection + Idea of a second game
I had the idea of new game. I wouldn't call it Introvert 2, because it isn't a sequel. It will be a much smaller and simpler game that is only slightly related to the story of Introvert. I simply do not want to attempt making a game of the scale of Introvert. That is just too tough for me to do alone. Honestly, Introvert was better meant to be done in a team, and I'm glad that I had the help of Li Hao, and though it is pretty late, David is also helping me correct design issues for the past days.

If I have the time, I will probably make another game after this, even though I repeatedly told myself that Introvert will be the first and last game I will make.

7-9 May - Meeting The David Carney

Meeting The David Carney (Written in the week of 7 May)

This has got to be one of the most exciting week for me!

I had been trying to contact David Carney in hopes that I can work with him, and also because he makes really good music, and the game's sounds is lacking in quality as well. On 7 May, I finally got the chance to talk with him.

Day 01
He seemed reluctant to work with me at first, but I managed to convince him! I was soo happy when he asked me to send a copy of the game for him to look at. I was overwhelmed with excitement. I was so warm and sweating, and full of nervousness and tension when I was talking to him. But don't get me wrong, he's a nice person. I just get all nervous talking to him for the first time.

Day 02
On 8 May, we discussed about the game as well as about business and it was a real joy to talk to him, though I was still trying to suppress my excitement / tension whenever I wait for his replies. I couldn't sleep after that because I was just so caught up thinking about our conversation that I was too excited to sleep. He said that he would come up with a list of the music/sounds in the game. And another list concerning the design issues. I was looking forward to the lists.

Day 03
He talked to me about some of the things he liked about the game as well as well as a bit of the things he felt needed to change.

Day of 15 May
He gave me the list of the design issues with the game. The sound fx and music list was written last week. It was time to start fixing!

It has been pretty awesome so far.

Unexpectedly...

15 May 2013

This is a bit more personal than the other entries here about the game.

You see, my time is limited. I will be enlisted in National Service on 12 June, and it's 15 May now. I had been training up for NAPFA for the past few weeks in hope that I would get a two-month reduction to serve National Service.

Unfortunately, I did not make my NAPFA booking in time, and I was not able to take the test. I had my schedule planned out across the following two months because I was very sure I could get the extra two months.

This was a mistake I made that I overlooked the NAPFA booking. It has quite a consequence, because now I have less than 30 days to finish and make any changes I want to make to the game.

But, Li Hao told me a few things that made me realise a bit more about how Introvert has progressed. Introvert got this far, and it's much further than what I could have dreamed of months ago. I learned so much.  And just last week, I met David Carney and worked with him, and he's been a great help !!!

Indeed, I have gained alot, and though I would gain much more if I had those two extra months to work on Introvert, I shouldn't be too disappointed that I lost it, since I have already gained so much.

But it was my mistake still.

I made many mistakes when I had been working on Introvert. Fate hasn't really been good to me, but if I were to look back, and learn from those mistakes, and be grateful that I met David Carney and look at what the game has accomplished, I will be truly happy.

I will only be able to check on the game on weekends after a three week confinement. And with one month left, I guess I have to take things a lot more seriously.

"will be looking forward to see u on weekends", Li Hao told me.

Sunday, May 5, 2013

5-11May Adding lightning, misc stuff

Progress so far
The game is complete save for a few many things that has to be done:
- Music*
- Sound*
- Grayscale Feature (working on it)
- Polishing and improving whatever graphics I have
- Improving the first few levels as they tend to be boring and pointless

*Waiting for a reply before it can begin

Lightning
I added some lightning to amplify the drama of the last level.
The left most lightning was ironically, inspired by a photo of real lightning, but I think it looks the least interesting among the 3 lightning streaks, so I put it in the most elusive place I could find on the map.

The night of 7 May is going to be unforgettable. I talked to David Carney. I hope he will have the time to work with me on the project. But I also realise that I have much polishing left to do. There was so much tension in the air for me, and when the tension dissipates, stress remains.

Redrawing / Retracing the turtles
Planning to redraw the turtles in better graphics.

Contacting David Carney
I contacted David Carney in hopes of working with him.

Sunday, April 28, 2013

28Apr - 4May Game Trailer/ Settings/ Final ending added


Progress
Things are almost complete now. The game is nearing its final phase. All that is left is music, sounds as well as polishing the graphics and levels a bit more.

I incorporated a fourth unlock-able ending into the game, and added Cheats to the game which can be unlocked after completing the entire game. "Completing" here basically means having seen and been through every thing in the game + completed all achievements and not just by completing all levels.

I'm happy with how the game is right now, and I was told that I should be happy because the game is really almost complete now.

The game at the end of this week is currently at 64 levels, 1 main ending and 3 secret unlockable endings and one "Game Complete" ending, which isn't an ending, but something to let the player know that he/she has truly completed the game.

It is safe to say that I am finally seeing the light at the end of this long and arduous tunnel.

Game Trailer
I was very against the idea of making a game trailer as I felt that it was something unnecessary and time consuming. But now, there is a need for it, and since I have some spare time, I decided to make one. I have written a number of things and events that happen sequentially that I want to be seen in the trailer.

On 1 May, I completed the trailer! It took me one day to get all the necessary gameplay footage and complete the trailer. But it took me another 2 days (multitasking this and other stuff) to actually touch up on the final trailer. All that is left is music for the trailer.

Settings for Music and Sounds
Apparently, Flixel's mute does not separate music and sounds. I was going in circles thinking of an efficient way to separate them, but the game just keeps crashing no matter what I try.

In the end, the solution was rather simple, though it took me days to figure it out/do it. I just created a group to store all the sounds I use, and adjust the volumes of all sounds in the group.

Li Hao gave me more work too. He said that when a music is muted, it should not pause or stop, but continue playing, so that when the music is resumed, it doesn't start from the beginning and reset the mood. I felt that was a fantastic thought. I finally completed coding them today. This was tougher than I thought, and I spent too much time on this.

Recreating level 1?
Currently, the level 1 in my game (and some of the earlier levels) are pretty pointless.
I am thinking of redoing them. I have an idea, but it doesn't really flow well with the rest of the levels. It's pretty hard to improve current levels too.

Issue with Level Editor feature
Apparently, I was reading up on how the Local SharedObject works. It seems it cannot store complex data types, like my LevelData class. My level editor cannot save levels because I use the LevelData class to save custom levels created in the editor. This means I have to use arrays. I had nightmares coding arrays in the editor feature.

So to solve the issue, I have an array which represents my old LevelData, of arrays such as the player's positions, enemies' positions, one of which is an array of keys, of an array of blocks' coordinates.

So to speak, I now use an array, of arrays, of arrays, of arrays to store a coordinate, of a block, of a key, of a LevelData. Sweet array-ception!

It could go one more level deeper, by creating an Array of 5 LevelDataArrays, as there are 5 save slots given to the player to create their own custom levels. So instead of using 5 arrays, I use a single Array of 5 arrays. Buuuut, I don't want to fry my weak brain any more than I should.

Thankfully, this issue was extremely easy to fix.

New 'Cutscene' Graphics
I was getting a little bored, since I have to wait for the music. So I revisited two particular cutscenes which are simply not up to par with the other graphics I drew for the game. I drew these in Paint, a year ago, and reused them for this game.




Then, I redrew them in 1800 x 1800 px resolution, and scaled them down to fit the game window:

 

Even though the tree, city backdrop and the bench were reused assets, it still took me longer than I wanted, because it was fun doing it and I wanted to make the scenes look good. The day picture received a different colour scheme because the original picture makes the scene look too warm (though it was meant for a sunset originally). The night picture is my favourite no doubt.

They certainly look much better than I initially expected. I wanted them to be a small picture initially, but I saved it as 480 x 480 in the end since there was enough detail to call for a bigger picture size.

Though I have already designed a game logo, I considered using the day scenery for a game logo.


Minor changes
Level 54 has some interesting text
Added checkpoints to the Level Selection screen
Added a hidden 5th cheat.
Auto-pause re-enabled.



Sunday, April 21, 2013

21-27April Compressing / 64 levels completed / Grayscale / New Level Select


Progress
After implementing the endings and the final 10 levels of the game, I have finally come to an end of producing more content for the game. Although there is a lot of things I want to implement, time runs short and I have to get on with other issues.

The game at the start of this week is currently at 64 levels, 1 main ending and 2 secret unlockable endings.

Game size issue
The game .swf file was 43MB and my target is for it to reach less than 20MB. That's right, I have a lot of compressing to do. I am compressing as many images as possible and converting backgrounds to jpg, which I should have done so when I first created them. Also, I need to see if I can optimize the way I use my backgrounds in some places. Hopefully I can reach my target of below 20MB!

New Platform Tiles
I redrew the grass tiles of the countryside. It looks better. It went through a few more versions before the final one.

You can see above how the grass tiles have transformed to how it is now and how the rocks were eventually removed because it made the repetition of tiles way too obvious and make it look pattern-ish.
Autopause removed
Previously, the game auto pauses when your flash player loses focus. I disabled that since I don't think it's necessary. It also stops the music and I want to let the music run sometimes.

240p backgrounds @&!#
I forgot to take into account the 2x zoom of the game when I changed my backgrounds to JPEG. And when I mistakenly set flash to compress my JPEGS a second time, to an 80% quality of the already miserable 60% quality I first had, I played my game and...

Oh my god, my backgrounds looked like some 240p youtube video. I of course, reverted it to Lossless PNGs later on.

Higher Resolution Turtles
It took me two nights on a lagging Photoshop to finish drawing completely new frames for the new sprite turtles. Each sprite is 128 x 256 and is the LARGEST turtle sprite. Li Hao helped me with much of the coding aspect, though he didn't want to tell me exactly everything of how to do it because he wanted me to learn a bit as well. But he was nevertheless a great help.
Animating the turtle...


Planking turtle (playing with rotation)

Bug that caused the turtle to scale to an unimaginable size

Oh, and attaching a camera to my player produced this wonderful bug when I forgot to add a code to clear the camera screen every frame after drawing the player, so the player is drawn every frame. I thought this was cool...
I also got pretty amused by this bug... Whoever has sharp eyes should try to spot the real turtle above.

Grayscale!
As Li Hao compressed my game from a whopping 43MB to 26MB, he made this cool version of the game. Grayscale! We both realised how cool it was and thought it would be a great idea to make a grayscale version of the game for real! It might be a feature added to the game if time allows.






Using .swc files
Okay, this isn't anything to do with any progress on the game, but Li Hao taught me how to use .swc files to contain my images, rather than embedding my images everytime I want to compile my game.

I spent several hours last night and the entire of today (22 April) importing all my images into Flash CS6. This way, I don't re-embed my assets everytime the game is compiled.

It used to take about 15-20 seconds to compile my game. I have not even imported all my images yet, but I can notice a significant decrease in the time taken for the game to compile! I should have done this right from the start because FlashDevelop seems to have issues when the game got bigger.

Importing all my images is also supposed to reduce the size of my game. It was 43MB including music and sounds, but it gone down to 12MB! I was told that Flash's compression is really good and indeed, reducing 30MB like this is impressive. I'm still aiming for a lower file size though.

After compressing more of my images, it became 11MB and is now 10.8MB. Hopefully it can reach 8MB but I have a BIG BOSS to fight.

PlayState.as

It has over 100 embedded images, and is my largest bulk of my code. I'm going to have to fight this big boss soon and hopefully I can hit 8MB after defeating this big boss.


Lossy JPEG vs Lossless PNG
So one of the things I had to test was which compression method was better. The only way is to actually test out by putting two games side by side and compare. With the aid of Li Hao, I learned a couple of new things. Apparently JPEG is better for photos and PNG is better for vector art style. In the scenario below, the JPEG is 10KB smaller than PNG.
I ran the game twice. One version where Flash compresses the backgrounds as JPEG, and the other where Flash uses Lossless PNG.

In the above screenshot, the red gradient for the house looks fine on PNG version, but bad on JPEG, which matches up with what was said earlier since this particular background was drawn with vector style art.

The hills (bottom right) also have a noticeable green outline on the JPEG version, but not visible on the PNG. Since the size difference of 10KB is somewhat negligible, I think it's better for this background to be compressed as PNG.

The  forest though, is harder to tell the difference because the forest, of all backgrounds I drew, is the one that mostly resembles a photo. But I went to edit the screenshot and place the JPEG right over the PNG. The colour for PNG is more pleasing than on JPEG. So I ultimately decided on PNG for the forest. Same goes for the City background, which had unusual colors on edges of my buildings on JPEG.

I guess this concludes the test :) I was strongly supportive of JPEG because of its smaller file size, but since quality is compromised, I will have to use PNG. This led to an increase of 3MB of game size, sadly.

The backgrounds in the Gallery are only viewed at 1x zoom, so I suppose JPEG is still alright since the issues I found required me to zoom in to like 200% zoom to notice.

File sizes test:
80% JPEG quality = 8.47MB
100% JPEG quality = 11.3MB
Lossless PNG = 9.51MB

This is funny...to have PNGs take up lesser space than the JPEG. Higher quality + Lower Game Size = Best of both worlds in the end? Sweet!

Apparently a few more tests still show that PNG takes up more space when testing with my level decorations.

Game Published to FGL
On 22 April 2013, in the wee hours of the morning around 6am, I published the game to FGL. It was an exciting moment as it is the first time people other than my friends are going to play the game! It garnered some comments of what was good and bad and I am improving the game as the days go.

On 26 April at around 3am, I recieved a message from FGL, saying that the game needed music before it could be shown to sponsors. The sounds also needed improvement. The Level Selection lobby was too cluttered as well.

The game got a rating of 6/10 after it was assessed based on graphics, sounds, etc. It wasn't as high as I expected. It seems that this is how the industry is like, competing with flash games around the world, internationally. It seems that the standards and requirements of a flash game are pretty high for it to get a sponsor. Should I be glad that I actually got better than a pass?

Within the next few days, the level selection will be revamped. It took me a long time to refine the AI for that, but I guess this revamp is necessary. I'm saddened, but I hope this will turn out good.

I've emailed David my game, and I hope all goes well!

Ending picture
Instead of just having text, I also drew a picture for thee "The End" screen. I think it looks pretty good! About half of the picture was reused from assets I already had, such as the moon, the tree and the turtle. I won't include the picture here as it may contain spoilers.

Level Selection Rearranged
After the above comments from FGL, I rearranged everything in the level select.




You can see the level select take shape in the above screenshots. The following screenshot is the entire levels selection state viewed in a single screen.
One of the level select designs I considered is a 'World map', which is getting trendy with games now. Unfortunately, while it solves some of the problems of the current level selection screen, doing that renders the current level selection extremely worthless.

Anyway, here are some sketches I did of what I imagined to be Introvert's world map:


Oh, the original level select was meant to be of a stair-case like structure, which slowly leads you to the top, and reach the rooftop. But elevators as well as the lack of space in the levelselection and long walking times turned this into several floors of staircases, which Li Hao said ruined it compared to the impact of having a single staircase.
 Another probable level selection screen was to categorize levels into zones. But I was told that this way, I was making it tough for players to enter a level since they have to navigate TWO maps instead of one, and I agree.

Minor Happenings
I sent my game, with the new levels to my friend, Han. He tested the game for me. As I watched him play, I could not stop laughing when he kept dying at Level 60. Level 60 is the toughest level in the game, reason being it is the last level before the ending is revealed. It requires strategy. But a walkthrough easily spoils that strategy and removes the difficulty sadly. My friend had no trouble with the level after seeing how it was supposed to be done.

The puzzles in level 51, 62, 63 and 64 seem to prove VERY difficult for an average player to solve on his own. I also laughed because I put things to distract the player from figuring out the puzzles, and my friend actually fell for those distractions. It made me feel that I was doing a good job at making players NOT complete the level.

If only I could somehow just watch people play this game, and see their reactions. I think that is sort of every developer's dream: to see how people react to their game, and whether players manage to see and find out the secrets hidden in the game, which I happened to put a lot of effort into, spamming secrets into the game.

This marks the end of another fast week.