Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    31
  • comments
    13
  • views
    12366

Building Block Heroes - Freshleaf Forest

Sign in to follow this  
Aggroblakh

859 views

Building Block Heroes - Freshleaf Forest

Following on from last week's feature on Jollyville, I'm going to talk about the second area in the game, Freshleaf Forest.

Description

Freshleaf Forest is a dense and dark place with colourful flora and gigantic trees that cover the entire area in shade.

Map_Freshleaf.png

BackgroundFreshleaf01.png

I generally try to introduce some new gameplay feature with each new area, and in Freshleaf Forest players will encounter Leaf blocks. The player characters will fall straight through leaf blocks, but coloured blocks will not. It thus becomes necessary to place blocks on top of the Leaf blocks in order to traverse them.

LeafBlocks.gif

Naturally, this lends itself well to levels with bottomless pits in them. There is no damage, nor are there lives, in this game, so falling through the ground only results in being sent back to the start of the level. Nevertheless, it can set the player back a bit if they fall through when near the end of a level. Tread carefully!

Respawn.gif

The enemies in Freshleaf Forest are a bit more of an obstacle than those in Jollyville, but aren't too tough to deal with. The first moves back and forth like the enemies in Jollyville, but takes up two spaces rather than one. The second enemy in Freshleaf Forest moves vertically in the air, providing a different kind of obstacle for the player.

Enemy1.gif

Enemy2.gif

At the end of Freshleaf Forest, players encounter the second boss in the game, a giant mechanical spider that shoots legs out in six different directions while its front legs dangle uselessly in front of it. It's your job to work your way up to his glowing weak point even as he flings his long limbs at you.

Boss02Attack.gif

Having a friend to fight alongside you here is useful, as you will be able to attack from two sides.

Friendship.JPG

Design

Freshleaf Forest was inspired by similar jungle scenes in Rayman and The Lion King. I noticed that they made use of crazy and unrealistic colours for plants in these scenes, and wanted to incorporate the same variety in colour so as to break up the monotony of having green everywhere.

Foliage.JPG

Nevertheless, Freshleaf Forest does consist primarily of green. It was my job as the artist, therefore, to ensure that I used different shades of green to prevent everything from looking the same. I mentioned in a previous article that warm tones work well with highlights, and cool tones work with shadow.

The concept is demonstrated well here. Notice that foreground elements and leaves near the top of the screen - thus near the sun/primary light source - tend to consist of warmer and yellower shades of green, while foliage further in the background or closer to the ground tend to make use of more bluish hues of green.

Hues.JPG

Judging from the thumbnail of the background, it is plain to see that green and turquoise are the colours that really stand out. This deliberate association with green helps set Freshleaf Forest apart from the other areas in the game and give it its own "character".

It is also important to note that, despite the overwhelming focus on green, it doesn't feel too monotonous or repetitive due to the mixture of different hues of green, as well as the smattering of colourful foliage along the ground.

Thumbnail.1.JPG

For the music, I wanted to capture a jungle vibe, so I began by composing a percussion track consisting of conga drums and maracas. Once I had that nailed down I threw in some extra "percussion" using a bass to add in a "creepy-crawly" feel. From that point, coming up with a main melody to match the beat was relatively easy. Like the percussion, I made use of "ethnic" sounding instruments to make the track feel more exotic.

At the end, there was still something missing. It was my goal to give the players the feeling of traversing through a dark jungle while still encapsulating the cartoony look of the game. To emphasize the silliness, I added a string section to the percussion track, to include some of the same "bounciness" that Jollyville's music possessed.

Every area introduces its own challenges, and things will only get more challenging from Freshleaf Forest onward. I hope this was an interesting read!

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • Blog Entries

  • Similar Content

    • By Zedr1k
      Hi everyone I’m currently learning programming and getting into the world of game developing.
      I set to myself the goal of trying to make a League of legends card game in unity, I already came with a few ideas but I’m still talking with friends and researching in different places which would be the best way to proceed with this project.
      I’m not really sure where is the place to post this but I’m looking for people who could help me, either by how could I put the “soul” of league into a card game if you know what league is about,how to make a card game that feels like a moba, any advice on the best way to develop a card game on unity, different mechanics that I should consider putting in the game, helping me find the right place to post this or Anything that you think could help me on this project.
      I will be more than thankful with anyone with the will to help me, sorry if you find any mistakes here, not a native speaker.
    • By jb-dev
      This is how loading screens will look like. I still have no idea whenever or not I could show things like tips or anything alike...
    • By Tanzan
      Hello  all,
      I just finished my first Android game and published it on Google play...
      I know its not the next red dead redemption2 but it would be nice to have some comments/feedback on it if its worth it to go on with a release 2.0. or move on to the next game? (red dead redemption 3  )
      Anyway thx for your reading time and i hope on some nice reviews!
      https://play.google.com/store/apps/details?id=com.gamlex.android.games.typomania
      Regards,
       
      Tanzan
       
       
    • By Programmer One
      I'm currently writing a 2D game engine from scratch for Android. The first iteration of the engine is just going to use the Android Canvas view for drawing. At some point, I want to support OpenGL ES - but not until I finish this first project (which is a very simply game based on this engine). Right now, I'm dealing with Sprites and I've encountered a design challenge that I'm not entirely sure which direction I should go.
      For the sprite bitmaps, I've decided to go down the sprite atlas route (as opposed to individual image files). I'm using Texture Packer and I've written a custom JSON exporter. I didn't really want to limit myself too much, so I decided I'd support sprite rotation and trimming in order to save as much space I can in the atlas. I backed off from supporting polygon trimming for now. If you're unfamiliar with Texture Packer, it's essentially a tool that will allow you to import individual sprite frames, organize them into folders and then have the application generate a sprite map and corresponding coordinate data file. This application supports trimming any blank (alpha) space around the sprite images in order to pack them closer together. It also supports rotation if it makes the image fit better.
      What I'm trying to figure out now is how to deal with loading the sprite image data. Currently, I'm at the point where I can deserialize the JSON map data into "Sprite Frame" objects. These objects contain information about each frame. My format allows grouping of sprite frames in order to organize frames that correspond to the same animation. In essence, the sprite frame object has:
      The original (untrimmed) size of the sprite image. The original position of the sprite image within it's bounding box. The rect of where the image is in the sprite atlas. A flag indicating if it had been trimmed. A flag indicating if it has been rotated (CW). This will give me all the information I need to draw the image onto the Canvas. If I didn't support all the other fancy features I want (packed rotation, trimming) and pre-transformation (i.e. mirroring a sprite so I can reuse it for things like changing the walking animation without having to pack in more sprites), then drawing the image from the sprite atlas onto the canvas would be as simple as a simple Canvas.drawBitmap([Source Bitmap], [Destination Rect], [Source Rect]).
      But, since the image I'd be drawing MIGHT have been rotated, trimmed or otherwise transformed, I can't just simply blit it onto the Canvas. I'd first would need to apply some transformations in order to "undo" changes that were done during packing. This means I would need to either:
      Slice out the child image from the sprite atlas into a new bitmap, and apply the "unpacking" transformations (i.e. rotate back, realign, etc). Apply a transformation to the Canvas itself. (I don't think I want to go down this road since I've read that transforming the Canvas tends to be rather slow). So, I'm probably left with having to create smaller bitmaps from the sprite atlas and then keep those in memory for as long as I would need them. So, for a single sprite character, I'd be looking at around 36 sprite frames (9 different animations, each with 4 frames). What I'm concerned about is memory consumption. So now I'm thinking:
      I should read in all the sprite bitmaps from the sprite atlas and shove them into an LRU cache. This means all the sprite image data is now in memory, all ready to go for whatever animation sequence and frame I want. Once I'm done with the atlas, I dispose of it and just work with what I have in memory. I can perform this caching when I load levels and then clear items from the cache that I no longer need. I should just keep the sprite atlas, blit directly from that onto the canvas, and get rid of the fancy packing features so that I don't have to process any transformations. The only problem with this approach is that I will also have to shelve shearing and rotation on the sprite object itself. TL;DR: Am I being overly memory conscientious or having a couple frames of sprite data in memory not a super big deal?
       
    • By jb-dev
      Another version of the main menu. This one has a more complete skybox. I'm not sure if it'll be a good idea to use the same shade on the actual Levels skyboxes...
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!