Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 22, 2014
arrowPress Releases
October 22, 2014
PR Newswire
View All
View All     Submit Event





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
“CLD1” Full Loop Development Postmortem
by Wasin Thonkaew on 12/01/12 08:25:00 am   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

*At first I would like to credit Suebphatt Leelertphong for his master pixel art, and Narupai Asksonmee for his 2 chip-tune in-game music that he agreed with me to do it for free specially for this game.

---

Charity Game Jam
, a very first online game jam event as part of LudumDare I ever participated. This time, it comes just about the right time to bulk my energy from the main workload.

Firstly, see the keynote video about the purpose and theme of the event I mentioned about below.

http://www.youtube.com/embed/8TKtcdLCjmk

By participating to this event, for sure, you help them reach more audience to know about the news by playing your own creation and of course help them reach the goal of fundraising for Make-a-Wish foundation (http://www.wish.org).

That's about the ground story. So now, I'm going to take you back in time from the starting of CLD1 project til the submitting day and further on to seeing some stats and some key takeaways I got from doing all this sort of things.

The trigger

Honestly, I can't remember the very root trigger that drags me into this game jam event. Maybe at that time while I'm surfing the Internet in Ludumdare website or wandering around the twitter feed, I see something about a nearest event that will be occurred pretty soon including interesting hashtag #charitygamejam floating around from @McFunkypants.

Sure it comes just a right time, I need some backing up energy to keep coding for my main project.

Starting off

I were thinking about something simple to carry on, not too complex as 48 hours seem short for me, personally I am a slow progress coder as I rather make each tiny bit as much beyond my desire and expectation before I will move on. I don't like rushing much. You will see at the end that I admitted to adapt and accept that rushing is good. Its truly meaning is "keep moving forwards, not bog down to one thing unsolvable, come back later, iterate with small step, on and on.".

Board full of ideas and scrap sketching

The whiteboard was hang on my room's wall. After a couple of iterative ideas, it's concrete that I would like to do some zombie-style survival game. Actually the zombie style is the theme for my main project aside of this game jam event. Well, I think that's legit. You go on with this idea, it usually may support back to you when you switch to do your main one.

The idea is you will control a fixed position main character on the right side of the screen. You control it to aim and shoot with 2 choices of weapon which are Minigun and Shotgun. Zombies will popup from the left side and try to eat you alive! They will come wave by wave. The longer you survive will prove you good at this game. The key ingredient is timing in using and switching back-and-forth both type of weapons.

According to the theme of charity game jam itself, it should be a game in NES or 8-bit style. That means it's pretty low in resolution of exactly 512x448 (in fact it's doubled pixel from 256x224!). The most sexiest thing I really love is Funkytron overlay. Whenever you put that thing over your game content drawn transparently. Graphics boost up 200%!!

Funkytron overlay

Initially I layout basic UI according to my plan into 2 sections, and be able to come out with the pretty basic testing UI prototype for testing the feeling of small and larger section that will appear in the game below.

The upper UI section will be parallax elements for eye candy including with game HUD, and the larger section will hold the actual gameplay content.

Prototype working

After spent times for it pushing out the ideas, make it concrete and firm as much as possible and got the UI section to grasp for an initial feeling, then I manage to get a prototype that works just right.

Very first playable prototype.

That version included the implementation of

  • Zombie's wandering around behavior AI-alike
  • Aiming and shooting 
  • Basic animation for zombie and main character

Things progresses pretty smooth and I like that. Then I added more code, fixed more code to make it solid in terms of animation, AI, and gameplay.

I added more Zombie into the scene. Til that starts to show some promising fun factor out of the game. When things evolved from one to two, and then more. I started to implement Zombie spawning system. It's pretty straight forward in its own sense. The point I got here is that you have to step up one thing at a time, make it works, then you will see other possibilities clearer. Not to mention that spawning system only takes a short time to implement because its firm and nothing to worry about Zombie's behavior which is already done in the past.

Added more updated graphics, added more code.

Clearly a main character is changed from skeleton (easy pixel art) to more polished. Things adapt in a leap!

Bugs that bugs me

Two things I would love to mention is

  1. Animation in cocos2d-html5
  2. Maths stuff

First one, despite the straight forward game concept but its animation can be complex and tricky. I spent times trying to make the animation switch from one to another as smooth as much as possible. There might be a case that you need to completely stops all other animations (or Action in case of cocos2d-based framework) which currently running to allow a smooth transition and of course to prevent "null" error of the frame if it's too fast switching from frame to frame within a same animation. The earlier case relates to switching from one animation to another, the latter one you may consider the case when zombie attacks main character and it needs to play being-hit animation rapidly.

Second one, maths stuff, that may sound normal but in some cases that you miss something out trying to fixing thing with a wrong solution. Bullets coming out from the barrel of guns need to be positioned correctly, if not then forget about the realistic. I spent time in a wrong way by using fixed positioning and did manual rotation of  starting position to spawn bullets. The better way is to use vector to represent it at the first place. Make it points to the head of the gun to represent the spawning position of the bullets. Then you rotate it from that. It solved the problem, reduce miss-step error and gave out more accurate result. I admitted that doing this kind of thing could take you back to review the material again.

Add more content ...

At first, I've planned to make it a simple game that only 2 days could make it possible. But after I went along the way adding with my own character of making things perfect or at least satisfies my expectation, it comes out that I spent roughly 5 days to finish this game.

When I finished one thing, I plan for future stuff, and exactly that instance of time, ideas kick in. I can't stop thinking about making it better and better. Of course, if I do this for a hard deadline, it wil fail in front of me because the requirement is there for you to open and make it on top of the project. Just meet the requirement, then other things later. Anyway you may feel like I feel, indie games has their own time to pursue the bended way. If they go in a straight long way, the creative freedom won't exist. So this is exception.

I added more screen like ...

  • Splash screen
  • Credits
  • Result (to make users able to restart the game)

That's the game name. Please don't ask me what does it stand for :P

Another big deal is chip-tune sound or 8-bit sound. It would add more engaging experience to the game and take every last bit of involvement out of the players. I've talked with Narupai Asksonmee, a freelance sound maker, for taking part in producing 2 in-game music with agreement to allow players to download it DRM-freely when the game released. He agreed and is willing to do.

Just 1 day, I got those 2 in-game music to put into the game right away. You can download CLD1 OST freely at https://soundcloud.com/user8503397/sets/cld1-ost.

Time passed and I got every needed content in hands. Just take some time pushing into the game, and boom!

Final screenshot which can be used for press-kit.

Yes, I submitted the game and use it as a featured game on my indie game studio website while my team're brewing stuff.

Aftermath

The war doesn't end yet. I try to make it finished in a complete loop as much as I can and affordable in terms of time. I rolled out asking some press out there both local and international whether they interest to write me about the game and the jam event. Right now, some agreed to write back, and some agreed for me to write to them as well. That's pretty good.

I submitted the game in the mid-day, and I checked back the stats of my freshly new company website in a morning of the next day. It's a straight peak!

Hits indicate that players come to our game through charitygamejam.com site more than directly at our own website http://basementdojo.com/. I don't want to go deep down of to the exact number of unique players playing the game, just the "hits" that "hits" me is enough.

Takeaways

Some tidbits key takeaways in my opinion after finish the whole development process (although I still make the promotion and talking to people going on) are as follows.

  • Use iterative approach rather than clear cut from the start. This way you can bend the idea and make things better from small build to build. Re-iterate more and more.
  • Don't just spend too much time on the things that it has a pretty low chance or pretty short time for player to see. Spend your time on others more important stuff would be better.

    The example for this is for main character's being-hit animation. Firstly, I think the animation set will be played only a very short time then go back to walk animation. Addition to the first and only one version of being-hit animation that my artist did for me doesn't include walking (or switching of leg) frame. Then when the main character got hit by a zombie it will look like the character pauses for a short time if players stare and make attention to it.

    Apparently this is not acceptable in which I simulate the stage scene to make the main character seems to walk to the right. But ...

    ... thing turns out upside-down when more and more zombies are attacking the main character at once. They hide the animation part of the legs, so I don't need to fix it anymore.

    As I tested, there's a high chance that several or enough zombies will go and attack the main character at once and hide the things out.
  • Allow time for appreciation
    That's when you finished your game gracefully, and you spread things out publicly. Just relax, and be social with the responses from audience. Talk with them, collect the comments for future improvement. Put down coding stuff. Write some articles like this one, a postmortem post. You will see how system goes along the way.
  • Do your homework before decide not to add ...
    There might be a case when some certain states won't be reached at all. Consider my case as if number of wave goes far, the zombie would be too much to spawn in and I would need a restriction condition to limit something to happen. That means I need to push some more code to it in the normal flow.

    Anyway, as I tested the game myself, and got feedback from my friends, they usually ended the game around 8-12 waves passed. Take that as a ground fact, and do your homework as well. As each wave passed, the time til next wave will be decreased along with addition amount of zombie added to spawn in the next wave. With current base configuration, you can take an equation or even plot the graph to prove things out. It turns out that it will take around 90 waves before "time til next wave" approaches zero which I treat it as a critical point to care about. This means you're safe to ignore not to add more code!

     
    By hands finding such as equation to solve.


    Plotting a graph with my app on iPad. 

Last words

I guess there's no more things to say, you can take a look at CLD1 gameplay video below (sorry for the volume of audio),

http://www.youtube.com/embed/CKrddGw8kQ4

Or

you can play it at http://www.charitygamejam.com/?CLD1 or even directly at our site at http://basementdojo.com/.

I would love to know what you think, what do you disagree with. Feel free to comment or give me suggestion below.
You can follow me at @haxpor and we can talk more.

Have a nice day indies!

[This post is originally posted at my blog]


Related Jobs

Nix Hydra
Nix Hydra — Los Angeles, California, United States
[10.22.14]

Art Director
Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States
[10.22.14]

Senior Game Designer - Infinity Ward
Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States
[10.22.14]

Producer - Infinity Ward
Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States
[10.22.14]

Senior Tools Engineer - Infinity Ward






Comments


Christer Kaitila
profile image
Fantastic writeup (and great game!).

Wasin Thonkaew
profile image
Thanks to you as well for this such great and fun game jam event!


none
 
Comment: