Cocos2D Community Game, Developer’s Diary, Part Two

The player gets whomped by a grey troll in our community Cocos2D iPhone game

Well, first off, a whopping thank you to all the active participants involved in our community Cocos2D game. We’ve blazed through this week, ended up with amazing progress, and are right on track to release our free RPG game in March.

Development Releases

We started compiling everybody’s submissions to the game into an optional, development-only ZIP download. This dev release gets updated a few times per week. This allows people involved in the project to re-download the latest game, test out each other’s code and levels, and collaborate much more effectively. It also gives us more flexibility in that we can refine, improve, and re-submit items that we thought could be better.

If you already own a copy of the iPhone Game Kit, then you will be receiving an email with an optional link to download the latest development-only Quexlor: Lands of Fate codebase (includes Cocos2D 0.99.5 so you can click “Build & Run” to beta test). Sift through the dev download and check out all the new spritesheets, levels, and artificial intelligence (AI) code we have been making and learn by example. We will be keeping everyone informed of the latest development releases in the forum.

Community Submissions

Thanks to Justin, Greg, Rob, Leonard, Tim, and Enrique for submitting twelve new levels! Thanks to Juan for developing the Greytroll AI and the “knock-back” feature, which enables strong enemies to knock the player back a short distance. You can check out Juan’s Greytroll code in Enemies.m within the dev release. Juan also added code to Player.m which knocks the player back upon getting hit. Here’s a little bit of that code:

  -(void) gotHit:(id)sender data:(void*)data
  {
      // verify that we can still can be hit
      Character* attacker = (Character*)data;
      if([attacker canAttack:self])
      {
          // apply damage
          float damage = -[attacker getDamageTo:self];
          [self changeLife:damage quiet:NO];

          //---------------------------------- JUAN ---------------------------------
          // if the attacker is a strong enemy, it pushes the player back
          if ([attacker isKindOfClass:[Enemy class]] && attacker.strength > 5.0f)
          {
              // the push direction is the direction of the attacker
              CGPoint pushDirectionVector = [Character directionToVector:attacker.currentDir];
              
              // make the vector half the size
              pushDirectionVector.x = pushDirectionVector.x * 0.5f;
              pushDirectionVector.y = pushDirectionVector.y * 0.5f;
              
              // push the player back by this vector
              [self moveBackWhenHit:pushDirectionVector];
          }
      }
  }   

Thanks to Greg for submitting many new spritesheets, including the rat, wasp, and bow skeleton! Thanks to Justin for coming up with the idea of a Friend class! Characters like the butterfly, sheep, and deer can now use all the AI code of Enemy, yet remain friendly enough to not attack the player.

Also thanks to Justin for creating our first beautiful music loop, forest1.caf! Download the development release and play the first level, forest01.tmx, to hear the awesome music. Thanks to Rob for submitting the Rat AI! Thanks to leathalChicken for starting to develop the Devil AI and its ability to teleport!

What Now?

Yesterday marked the end of Phase 1 of our community Cocos2D game. While Phase 1 is now closed, you can still submit (or re-submit) levels, art, or code to the project. The next two weeks prior to Phase 2 are “catch up” time. Please use this time to refine your submissions and re-submit. You can also use the time to beta test the game, submit feedback in the forums, and communicate on how we can make our game more fun. When Phase 2 starts (Feb 9th) we should theoretically be done with Phase 1 submissions and move on to Phase 2 things. Though, you can always re-submit something if you found a way to improve it.

That’s all for now. I hope you all are enjoying the process of making this game together!

Featured Posts

Recent Posts


The Ultimate Cocos2d-x Platformer Engine

A cross-platform, parallaxing game engine based on cocos2dx. Includes procedural level generation, scripting, dynamic texturing, realtime multiplayer, virtual economy (in-app purchase) and all the basics like moving platforms, boxes, slopes, water, ladders and artificial intelligence. Write your game code in C++ and level scripts in Javascript. Games built with this kit can be deployed to iOS, Mac, Windows, Android and any of the other platforms supported by cocos2d-x.
More Info...


Action-RPG Engine Code & Tutorial

Create your own RPG, RTS, action or adventure game with this source kit. Learn how to manage tilemaps, characters, AI and more. This kit includes a flexible RPG engine built on cocos2d iphone (now called cocos2d swift), along with a sample RPG project called Quexlor Lite. Also included is a PDF ebook tutorial and bonus royalty-free art package. Written in Objective C, games built with this kit can be deployed to iPhone, iPad and iPod Touch.
More Info...


iPhone Game Creation for Beginners

This game source kit is a hands-on introduction to making games for the absolute beginner. No programming experience is required. The included PDF book walks you through all the basics of how to code with Objective C and will familiarize you with the tools you need to develop an iPhone game. It includes source code and Xcode project files to a simple checkers game built with cocos2d iphone (now cocos2d swift). Also included is documentation, a game template project, support and a bonus artwork package to start your own creation. Games built with this kit can be deployed to iPhone, iPad and iPod Touch.
More Info...