November GameDev Challenge: Pong! 11/01/17
About this blog
Entries in this blog
Building Block Heroes Released!
After six months of full-time development, Building Block Heroes is released on Steam! Price is set at $9.99 but is currently enjoying a 20% launch discount.
Building Block Heroes is a puzzle block platformer in which you use coloured blocks to build pathways around each level in order to free the Jollyfolk from their cages. Simultaneously control both building blocks and heroes, with a friend or by yourself, in this colourful romp through a cartoony and exotic hand-painted world. Explore different lands, use special powers, and combat various enemies as you construct the means to save the Jollyfolk!
A True Puzzle Platformer Game
It's the weekend before release, so I thought I'd show off another Let's Play! This one is a rather in-depth look at the secondary game mode of Building Block Heroes, Connect Mode. Thanks to PalicoPadge for taking the time to do this!
Let me know what you think! Feel free to check out the store page if you're interested:
Building Block Heroes - Oceantide Channel
After the bright neon lights of the Mechafolk Capital City, the Building Block Heroes find themselves forced to cross the Oceantide Channel in order to reach the Top Secret....er, nothing.
Crossing the Channel requires going under the sea, through a twisting maze of colourful coral.
The Oceantide Channel marks the return of environmental obstacles. In this area of the game, every level will contain a giant stalk of seaweed slowly waving back and forth in the background. After a while, the seaweed will speed up, which serves as a warning that a powerful ocean current is on its way.
Once the current arrives, the Building Block Heroes will be swept to the left of the screen, unable to resist the onrush. Hopefully, they'll have something to brace themselves against until the current passes through!
The enemies in this area act similarly to their counterparts in the city, except that they move in a random pattern rather than moving consistently.
The boss of the Oceantide Channel holds the distinction of being the only one in the game that isn't attacked directly. After all, the Building Block Heroes are simply trying to get into the Top Secret...nothing. Fighting the boss directly would be a distraction!
As the heroes make their way to the door, the boss swims back and forth dropping breakers. This can make the boss very easy or very difficult depending on how you build your way to the door's weak point.
The Oceantide Channel was a fun area to design, because coral doesn't necessarily follow any kind of patterns or rules with regard to shape or colour. This meant I could draw random shapes with different colours and still use them as part of the environment art.
The seaweed was kind of tough to design. I had to make a decision as to whether or not it would appear on top of or below the blocks. In the end, I chose to have it appear underneath the blocks. Although this can affect the player's ability to tell when the wave is coming through, having the seaweed on top of the blocks prevents the user from seeing what he or she is building underneath, which in turn interferes with the core gameplay of the game itself. I compensated by making the seaweed quite large, to lower the chances of covering it up entirely.
This boss, like the one before it, required me to animate a turn. However, because his turn is faster, I didn't need to draw as many frames. His relatively simple shape also made it quite easy to animate the turn. Turn animation notwithstanding, this boss was a cinch to draw, because neither the boss itself nor the door required any real animation.
Building Block Heroes - Real Gameplay Video!
I was very fortunate this week to have someone volunteer to try out my game. If you were curious as to how the game worked, this is your chance to check it out in action! Very special thank you to The Hen House for their first impressions!
Let me know what you think! You can also check out the Steam page for more info:
Building Block Heroes - Mechafolk Capital City
Once they leave the Mechafolk Factory, the Building Block Heroes find themselves among the bright neon lights of the Mechafolk Capital City. In this article I talk about the area itself and some of the design decisions that went into it.
The Mechafolk Capital City is a flashy metropolis whose multi-coloured neon lights assault the senses.
For those of you that have played the original Sonic the Hedgehog game, you might recall the Starlight Zone, which essentially provided a respite from the difficulty of the zones before and after it. I went for something similar in the Capital City area of Building Block Heroes. There are no new gameplay hooks for this particular area - instead, I just got a bit creative with the level designs and tried to make the music easy to sit back and listen to (more on this later).
To emphasize the city theme, I created a few levels that are reminiscent of city skylines. They aren't even that difficult, they just look kind of neat.
The enemies move diagonally, which makes them a bit less predictable than previous airborne enemies, but otherwise aren't terribly difficult to deal with.
The boss, unfortunately, doesn't follow the same mellow, laid-back vibe of the rest of the area. The boss of the Mechafolk Capital is a jet-shaped Mechafolk who doesn't like to sit still for long.
This boss flies back and forth across the screen at regular intervals, smashing any blocks in his path. He zooms back and forth frequently enough to prevent the player from simply camping on one side of the screen and running to his weak spot, so the Building Block Heroes need to get a bit more creative in their approach.
Because the Capital City doesn't introduce any new gameplay elements, I had to increase the saturation and contrast of the colours used in order to distract the player. For this reason, the lights of the buildings use neon colours that might hurt the eyes if you stare at them for too long.
The boss was probably the most difficult to draw, because I had to animate his turn. This required me to carefully draw all of his features at the proper angles, which forced me to make sense of the sketch below.
Needless to say, it took me a while to get it done.
I deliberately wanted the music of the Capital City area to be relaxing and reminiscent of a piano bar or jazz bar, so I used a mellow piano hook and a catchy bass line to set the tone. For the percussion I used a TR-808 beat to give the whole thing an almost 80's-style vibe, since the pink and purple reminded me of a vapourwave aesthetic. I then topped off the song with a jazzy saxophone theme to punctuate the relaxing nature of the background music.
Building Block Heroes - Dealing with Controller Support for Multiplayer
I'm currently in the polishing stage of Building Block Heroes, and just a few weeks out from release. Since I've spent the last couple of weeks talking about the game itself, I figured I'd switch gears a bit and talk about some of the challenges I ran into during this crucial, final stage of development while making sure controller support worked.
Out of curiosity one day I decided to see what would happen if I decided to arbitrarily disconnect the controller while selecting characters. To my horror, absolutely nothing happened - the character selection screen became unresponsive, with no way to back out or otherwise recover from the screen other than reconnecting the controller. "Okay," I thought, "I suppose the user can recover from it if he or she reconnects the controller." But then I thought, "What if the user doesn't? What if the person using the controller OWNS the controller and decides to pack up and go home?"
I suspect prevention of permanent unresponsive states is why arcade fighting games have a timer on the character selection screen. However, I didn't feel like forcing the remaining player to wait for 30 seconds or whatever to get back to the game if the other player takes his or her controller and goes away. Originally, I simply made the second player disappear and had the game revert to singleplayer mode when the controller was disconnected. When I added the second keyboard layout, unfortunately, I then had to consider the possibility that the second player might have disconnected the controller without actually wanting to stop playing.
Most games will offer the user a chance to confirm any action that will change the status quo of the game ie. saving or loading, or returning to the main menu. I figured I could use the same approach when determining whether or not to nuke player two when his or her controller is disconnected. When player two's controller is disconnected, the game brings up a popup asking if player two wants to leave. If the Yes button is pressed, the original solution of simply removing player two takes effect. If the No Button is pressed, then the control of player two reverts to whichever keyboard control scheme is currently unused.
Hop On, Hop Off
The issue of what to do when a controller is disconnected becomes more pronounced during actual gameplay. My original solution was simple - add a second player when the controller is connected, and remove it when the controller is disconnected. However, adding the Keyboard 2 control scheme again scuttles this solution, since it doesn't take into account the possibility of the controller being disconnected even if player two wishes to keep playing nor does it address the issue of which character to assign to player two.
This article might not have been as fun to read as the ones talking about the game's areas, but I figured others who are at the same stage of development I am might find some use in reading about some of the design decisions I made when considering controller support. The process I went through can essentially be distilled into a couple of key questions:
Building Block Heroes - Mechafolk Factory
Now we're starting to get into the heart of Mechafolk territory! In this week's feature I discuss the birthplace of all Mechafolk, the Mechafolk Factory.
The Mechafolk Factory is a large-scale industrial zone from which all Mechafolk are assembled. The Building Block Heroes find themselves winding around large conveyor belts and cranes, taking care not to slip on the patches of oil on the ground.
The Mechafolk Factory introduces moving blocks, which have a nasty tendency to ruin everything the Building Block Heroes have built. Moving platforms display one to three green arrows on them, which denote how many spaces they will move and in which direction. After a certain amount of time, the glowing arrows turn from green to red.
Once the blocks are "armed", the player is given the chance to place the block currently under his or her control, providing an opportunity to prepare for the sudden movement of the level. The blocks were originally supposed to move immediately, but for gameplay purposes it was deemed to unfair to the players to have everything suddenly shift without warning.
Thankfully, the Mechafolk Factory employs a streamlined shipping process that sends out completed Mechafolk as soon as they are finished, meaning that there are no enemies in any of the Mechafolk Factory's levels. The only one present is the area's boss, which launches attacks based on colour rather than simply smashing things.
This boss likes to wind himself up before he attacks. As the screw on his head gradually twists upward, the screw body turns into whatever colour will be targeted next. Eventually, the screw drops and destroys all on-screen blocks of the same colour. This can be especially painful if the Building Block Heroes have been relying too much on a single colour to work their way around the level.
Like the Mistypeak Mountains before it, the colour scheme of this area was one that had to be chosen carefully. A mechanical factory necessitated lots of grey, so I added hints of blue, green, and purple in order to mix things up a bit. Still, I didn't want a single colour to dominate too much, so I added copper piping for contrast.
As a general rule, I try to have the boss sprites match the overall colour scheme of whatever area they reside in. However, because this boss attacks based on colour, I deviated from that rule to include all four colours of block into its sprite. This gave me an excuse to throw in some yellow gas tanks into the scene, because then there would be some precedent for them rather than having them stick out for no reason.
The resulting thumbnail thus contains an enormous amount of contrast while still feeling mechanical.
The background music was meant to sound kind of industrial and workman-like, so I started off by composing a strong bass line, complete with a fast-paced percussion track. Once it came time to compose the melody, I chose to rely on heavy brass coupled with saxophones and honky-tonk pianos. This gave the track a funky-sounding blue-collar vibe, which I felt captured the feeling of "men at work".
Building Block Heroes - Icygale Glacier
It's that time of week again, and this week I describe the fourth area of Building Block Heroes, Icygale Glacier!
Featuring the most annoying enemy in the game!
Icygale Glacier is a twisting cavern of ice and snow flanked by stalactites and colourful crystals.
Unlike the previous two areas, Icygale Glacier does not introduce any new blocks. Rather, the main hazard in Icygale Glacier is the fact that the ice makes everything slippery! The Building Block Heroes slide around as they run through the levels, meaning that pits become even more dangerous!
Of course, this means that pits are everywhere in the levels that comprise Icygale Glacier.
Icygale Glacier is the one area in the game whose enemies actually launch attacks. The enemies here have an annoying tendency to shoot icicles from the top of their heads, which eliminates the block above them and causes the rest to come tumbling down. The effect definitely adds up when there are multiple enemies on the screen, and can throw a wrench in the player's plans as they painstakingly build platforms.
As if the pits in the glacier weren't annoying enough, the fourth boss in the game tries to make them worse! As the Building Block Heroes make their way towards him, this boss likes to hammer on the sides of the glacier, causing enormous icicles to come crashing down. These icicles are conveniently located over pits and between them, making it even more treacherous to traverse them!
In this area, white and light blue definitely dominate the colour scheme. This automatically gives Icygale Glacier a unique feeling compared to other areas in the game. The trick was to design the area without letting it become too monotonous to look at. For this reason, I added colourful crystals around the scene. They match nicely with the stalactites and icicles, and add a dash of colour to an otherwise mostly white/light blue motif. Just for fun, I added a snowman! The carrot adds a dash of colour, and it was fun to paint!
The thumbnail really highlights how the white/light blue colour scheme dominates everything. Thankfully, the coloured bits still stand out!
The music intentionally evokes a wintery-sounding theme. I noticed that both Christmas music and other snow/ice levels in games tend to make use of jingle bells and xylophones quite a bit for percussion. Best of all, they also make copious use of french horns! Once I nailed the percussion beat down, it wasn't too hard to conjure up a melody. I went for a jolly sounding theme (complete with tubas!) to keep in line with the Christmas-style feeling.
Building Block Heroes - Mistypeak Mountains
Continuing the series of articles detailing the different areas in my game, I'm going to talk about the third area - Mistypeak Mountains.
Mistypeak Mountains comprises a network of mountain passes perpetually shrouded in a dense fog. However, the Building Block Heroes aren't nearly stupid enough to stumble around in such thick fog, so they take the action above the cloud line, into the gentle light of the rising sun.
The gameplay feature introduced in the Mistypeak Mountains appears in the form of Gem blocks, which are essentially Breaker blocks in their natural, unrefined state. They destroy any chain of same-coloured blocks that touch them, so the player must be wary of where their blocks are placed. This destructive effect carries over to blocks that fall in their vicinity, so you must be extra vigilant in order to prevent multiple chains of blocks from being wiped out instantly.
Naturally, Gem blocks have been placed everywhere in the Mistypeak Mountains - the gentle hand-holding of Jollyville is a long way away at this point.
Mistypeak Mountains is where the enemies really start to get annoying. The first enemy walks around like the others the player has seen up to this point. However, it now possesses the ability to jump onto blocks and jump down from them, meaning that its route becomes far less predictable!
The second enemy is more consistent, which would be fine if it didn't soar through the air and get in the way even before the player had a chance to decide where to place his or her block!
The third boss in the game is a giant humanoid Mechafolk boss with a nasty penchant for tossing enormous boulders towards the player.
With Mistypeak Mountains, I had to be very careful not to use too much grey or blue lest the background become an eyesore to the player. This is why I decided to design the background with a sunrise. It allowed the foreground to stand out a lot from the background, as well as adding a burst of colour onto the scene. This is also why I added the cliff in the middle of the scene, to add a dash of green to the mix.
However, mountains are generally comprised of rocks, which don't tend to be too brightly coloured. I got around this by making the rocks less saturated versions of cool colours like blue, green, and purple. This way they still retain some of the blandness of typical rocks while avoiding too much monotony in the colour scheme of the area. Even in the map, which isn't able to make use of a rising sun as a backdrop, minor shifts in hue make all the difference!
Judging from the thumbnail of the background, the use of purple definitely makes Mistypeak Mountains stand out. The orange and purple of the sky are unique to the area, and add a lot of character to a potentially boring area.
For the music, the percussion is meant to evoke a sort of caveman-type feeling, so I made copious use of bongo drums. At the same time, the music was never meant to be ominous or dark - the players aren't travelling inside the mountains or caverns, just over them. Instead, I tried to capture the feeling of a sunrise by using rising violin themes and lots of french horns. I found that by using several french horns playing deeper notes, I was able to create a triumphant-sounding melody, which I felt fit the sunrise motif.
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.
Freshleaf Forest is a dense and dark place with colourful flora and gigantic trees that cover the entire area in shade.
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.
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!
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.
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.
Having a friend to fight alongside you here is useful, as you will be able to attack from two sides.
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.
Building Block Heroes - Jollyville
I've been posting a lot about the thought process of Building Block Heroes in recent weeks, so for this week's update I thought I'd talk a bit about the first area in the game, Jollyville.
As the name suggests, Jollyville is the town from which the Jollyfolk have been abducted by the neighbouring Mechafolk. It's a pleasant and bright place, a simple town for simple folk.
Jollyville was inspired by Disney villages and starting villages of other games, so I tried to focus on bright, welcoming colours. I also made the town "zany" by exaggerating the proportions of the buildings and getting a bit creative with the tree designs.
Generally, I tried to enforce a consistent colour scheme for each area to give them more "character", but Jollyville is the exception. If there is an overall colour palette I suppose it would be the light green and sky blue of the grass and sky respectively, but ultimately I took the opposite approach and tried to incorporate as many colours as possible by injecting colours in places where I felt there was too much green.
Jollyville's "character", then, is its lack thereof, in keeping with its status as a standard intro town. I like to judge the overall feel of an area by how it looks as a thumbnail, and a simple glance at Jollyville's thumbnail shows that no one colour really stands out. Rather, the colours used are relatively basic and varied.
The music for Jollyville was inspired by bright and jolly platformer games like Super Mario World or Klonoa. I wanted it to sound "bouncy", which is a difficult feeling to quantify. Jollyville's musical theme, therefore, started off as a simple "bouncy" percussion theme before I added the melody. The melody itself goes up and down, bouncing from high to low and back again, in keeping with my goal of composing a track that players felt like skipping to.
I plan to talk about the areas in the game one at a time in detail, and Jollyville was just the first. I hope this was an interesting read!
Building Block Heroes - Teaser Trailer
Finished the teaser trailer for Building Block Heroes! I'll be discussing the different areas in the game in detail soon, but for now I've put together a teaser trailer showing off multiple aspects of gameplay. The video below shows off some of the gameplay elements unique to each area of the game, as well as a sneak peek at a few of the bosses you'll encounter.
Let me know what you think! Those of you who have been following both this game and my previous game World Boxing Manager know that I'm always receptive to feedback. Hope you enjoy!
Building Block Heroes - Characters
I've spent the last few features talking about what lead up to Building Block Heroes, but not much talking about the game itself. So for this feature, I discuss the characters in the game, their abilities, and how I designed them.
Since there are four block colours in the game, the four-colour motif appears repeatedly in the game. The character selection is no exception to this rule, and I designed the characters to represent the four elements, which themselves are represented by the four flavours of block in this game.
Heatwave is the leader of the Building Block Heroes and represents the element of Fire, as well as the colour Red. I designed this character to come across as dynamic and flashy, kind of like fire itself. For this reason I gave him spiked red hair and popped his collar to make him appear more flamboyant and cocky, kind of like a 50's-era biker or something. The popped collar was actually a challenge when it came time to animating Heatwave's run animation, however.
Although the characters don't have limbs, I still animated their bodies rotating as they run. Not doing this made their run animations more awkward and stiff (with the exception of Dirtbag, which will be detailed below). The popped collar made it somewhat awkward when drawing Heatwave's body from different angles.
Heatwave's ability allows him to dash horizontally across gaps. He can dash across a gap one block wide from a standing position, and two blocks wide if the player is walking in the direction he dashes in.
Ice Queen is the token female teammate and represents both the element of Water and the colour Blue. To emphasize her uniqueness among the Building Block Heroes, I gave her a cute dress and made her walk animation more dainty than the others.
Ice Queen is probably the most difficult character for me to draw because her features are less exaggerated than the others. Apparently this is a common thing among artists - difficulty drawing the opposite gender. The main difficulty was getting the shape of her head right without making her look masculine. I tried to enlarge her forehead and emphasize the roundness of her cheeks in order to prevent this problem.
Ice Queen possesses the ability to create blocks of ice out of nowhere. These blocks act like normal blocks, but are "colourless" - they can be destroyed by any colour of breaker or any chain of blocks. This must be kept in mind when making use of her ability.
Airhead is the quiet one in the group and generally doesn't think too much about anything other than flying through the air. Naturally, he represents the element of Air, which is depicted by the colour Yellow because Blue was already taken. I designed him to look like a typical surfer dude, but gave him a winged helmet to emphasize his affinity with air and flight. If you look closely, the wings flap when activating Airhead's ability.
Airhead's ability allows him to soar through the air and overcome taller obstacles than normal. Depending on how long the player holds the ability button down, Airhead can leap over barries two or three blocks high.
Dirtbag is the oldest of the Building Block Heroes and is the comic relief of the group. He represents the element of Earth and the colour Green. He was meant to look like a jolly old man, so I gave him bushy hair and a neckbeard. His rotund body and comic relief role made it a bit easier to animate him, because it made it possible to exaggerate everything he does.
Dirtbag bounces a lot more than the others when he runs, and his body doesn't rotate in the same way because he basically hops around rather than running normally. His jump and fall animation were also simpler, because he just drops rather than trying to land on his feet the way his teammates do - Dirtbag doesn't give a damn.
Dirtbag's ability allows him to destroy blocks underneath him if he's standing still, or blocks to the side depending on which direction the player is holding. This allows the player to access paths that might normally have been blocked (no pun intended).
Long story short, the designs of the Building Block Heroes are meant to complement each other. The individual abilities of the characters reflect this concept. Heatwave moves horizontally, Airhead move vertically; Ice Queen creates blocks, Dirtbag destroys them. Push and pull. This is to encourage teamwork when playing with two players, and experimentation when playing alone.
I hope this article has been an interesting read! As always, feel free to let me know your thoughts.
A short article this week simply showing off some gameplay of the two game modes in Building Block Heroes - Breaker Mode and Connect Mode.
The two distinct game modes reflect my inability to decide which one is better in the end. So, in the same way that Gran Turismo allows for both Arcade and Simulation game modes, I've left the choice in the hands of the player.
Breaker Mode is the mode that works a bit like Puzzle Fighter. Blocks are broken using flashing Breaker Blocks. Until then you can create chunks as large as you want, so you can feel free to drop blocks however you wish.
Connect Mode is more like other colour-matching games. Simply match four or more blocks of the same colour to destroy them. This requires a bit more thought in order to build platforms, as you may risk accidentally destroying your work if you're not careful.
Let me know what you think! All feedback is appreciated.
Building Block Heroes - Choosing an Art Style
I've received some praise for the colourful and cartoony look of Building Block Heroes. The art style of the game was chosen deliberately, and in this feature I discuss why I chose to make Building Block Heroes look the way it does.
I've always had some modicum of talent from a young age due to having grown up playing games and reading comics. Nevertheless, until development on this game began I never was able to produce finished artwork, just rather messy sketches.
To feasibly produce the artwork for Building Block Heroes, I knew that I would have to learn how to produce finished artwork. Furthermore, I had to learn how to do it on the computer, which I had never attempted before. After purchasing a cheap tablet on Amazon (for about $45 CAD), I got to work practicing digital art.
Pixel Art Failure
I originally intended to produce pixel art due to a perception that it would be easier than producing hand-painted work. I was wrong, so horribly wrong, and my early attempts at pixel art constitute what can only be described as "failed abortions." I realized after about a day or two of creating "pixel art" that it would be too much of a jump to go from sketches on paper to presentable pixel art - I didn't possess the ability or even the patience to do so. The principles of traditional art are far more different from those of pixel art than I thought.
I then decided to go back to the basics. Instead of creating art solely for the purpose of game development, I figured that the best way to start creating art digitally was to first simply become familiar with the use of a tablet. With this in mind, I just practiced drawing as if I was drawing on paper. It did take a while to become used to it - more than once I caught myself looking at the tablet and wondering why nothing was appearing before remembering that the lines would appear on the monitor in front of me.
Eventually, I was able to recreate my sketches on the screen after about a week or two of practice. The next step was colouring. This was something that I had no real experience with, even on paper.
Keep It Simple, Stupid
I started off painting simple shapes with solid colours until I became somewhat familiar with it. Things like blending colours, or even choosing the right colours, were new to me and took some time to become accustomed to, especially on the tablet/PC. Nevertheless, I managed to learn a few tricks from this simple practice, such as adding a warmer tone to highlights and a cooler tone to shadow when painting solid colours.
However, once I decided to paint something with more substance - in this case, a tree - I quickly realized that it would take me forever to produce finished art with the kind of detail I was accustomed to sketching. Sketching allows the artist to handwave away a bunch of details and be a bit more lax in terms of things like realistic colour and proportions, etc. Producing finished art was a different story, and the tree ended up taking several days to finish. Given that I was learning on the go AND working solo, I knew I needed to reduce the scope of artwork I was going to have to produce. A man's got to know his limitations, after all.
I looked back at the simple-shape, bright-colour paintings I had produced thus far and realized that they looked vaguely cartoony. Thinking that I could extend this over the whole of my game, I went to "work" watching various cartoons and playing cartoony games to see how the professionals did it.
While such graphics weren't exactly light on details either, they definitely were a lot more creative and wacky in terms of colours and proportions. I knew that such creative freedom would compensate for my relative lack of skill in the art department since I wouldn't necessarily have to worry about things looking like their real-world counterparts. It would also make learning how to produce digital art a lot more fun, as I could really experiment with zanier backgrounds and colours.
Rayman, in particular, also provided a template for character animations. I had originally envisioned animating my characters with full bodies, like those in Earthworm Jim. I had no experience with animation, however, and I was worried that learning how to paint AND animate might be a steep hill to climb. Observing that characters in Rayman do not have limbs, I immediately realized that using a similar method of character design would make it much easier to animate them.
I extended this compensation further by making the enemies in the game mechanical, meaning that I would be able to move the parts individually, rather than having to animate large creatures by hand.
Many experienced game developers suggest starting off with a simple game with small scope for newbies getting into the field. Art is no different, and the appearance of Building Block Heroes is my attempt to produce quality art while understanding and working with my limitations. I was genuinely nervous about whether or not I had managed to end up producing attractive work, and thankfully it seems that I've done so.
Hope this was a fun read!
Building Block Heroes - Inspirations
I've gotten a lot of positive comments over the past couple of weeks regarding the novelty of my idea. As much as I'd like to claim credit for coming up with the idea for Building Block Heroes, most games are built on the shoulders of giants and my game is no exception. This week, I give credit where credit is due and explain how I came up with the idea for Building Block Heroes.
(Disclaimer: I own none of the non-Building Block Heroes related screenshots, and am not trying to claim credit for any of them.)
Hello Kitty Cube Frenzy
The primary inspiration for Building Block Heroes is a game many of you might have played whether you're willing to admit it or not. Hello Kitty Cube Frenzy is essentially a bare-bones version of Building Block Heroes - a game in which you use falling blocks to build platforms in order to collect things. Since the moment I played it as a child, I have always been intrigued by the concept and have always wondered why it was never utilized elsewhere.
As detailed in my previous article, I was looking for an idea that would be relatively simple to create, and my first thought was to re-create Hello Kitty Cube Frenzy. Puzzle games and platformers are generally the genres that appear in game development tutorials anyways, so making a combination of the two was a natural project to work on when attempting to learn how to develop games that are more than GUI applications. In addition, the lack of similar games meant that my game could end up filling a niche of sorts, which might help it stand out a bit.
The main fundamental difference between Hello Kitty Cube Frenzy and Building Block Heroes is the presence of lives in the former game. I'm not a huge fan in general of having lives in games, and Building Block Heroes contains many more ways to "die" or otherwise have your progress through a level set back, so I chose to omit lives in favour of a less artificial method of difficulty.
Hello Kitty Cube Frenzy also contains time limits in each level. I decided to omit them by default in Building Block Heroes due to the greater number of gameplay variables in my game (which will be detailed later on as a describe each area in the game in detail). I like the idea of time limits myself, but not everyone does, so I plan on making time limits optional in Building Block Heroes.
Super Puzzle Fighter 2 Turbo
I knew going into the game that I wanted to increase the pace of Hello Kitty Cube Frenzy. For this purpose, I referred to another game I played extensively in my youth, possible the fastest and most visceral puzzle game I've ever played - Super Puzzle Fighter 2 Turbo.
One of the things that made Super Puzzle Fighter so interesting to me was the way in which players would build up enormous combos and chunks of like-coloured blocks before shattering them all with a Crash Gem. I wanted to recreate this feeling with Building Block Heroes, and since I was dealing with falling coloured blocks anyways, it was a natural decision to use Crash Gems (Breaker Blocks in my case) to destroy existing blocks.
The difference between using Breaker Blocks instead of a certain number of blocks as the trigger for destroying blocks is that the player can afford to be a bit more careless when planning moves. With Breaker Blocks, there is less likelihood for chain reactions as remaining blocks fall into place after destroying other blocks, which in turn reduces the amount of planning needed for every single move.
The tradeoff, of course, is that being careless and creating huge chunks of single colours can backfire if the chunk needs to be destroyed for some reason later on - doing so can remove much more from the level than is necessary. I'm essentially trading strategy for a faster paced game (although I will likely have the other method of destroying blocks as a separate game mode for those that prefer it).
Gauntlet (or any game with complementary teammates)
Multiplayer games in which each playable character possesses a different ability have always intrigued me for some reason. Something about complementing each other, or having to make compromises when less than a full team is present in the game is interesting to me because it adds a level of strategy and teamwork to the game that depends entirely on player preference.
I chose Gauntlet for this example because it was the game I thought of when I chose to include different playable characters, and it happens to use the same four colours as Building Block Heroes as an overarching colour motif. Realistically, there are many games with different playable characters as a gameplay element, and they all probably had a cumulative effect on my desire to include a similar element in my game.
Having four different colours of blocks lends itself naturally to having four characters based on those colours, which is why Building Block Heroes contains four playable characters.
Megaman and Super Mario Bros.
Like most gamers (but strangely not all), I like games with creative boss battles. The boss battles in Megaman have always drawn my attention because each boss always has a set of attacks that are consistent with whatever theme the boss represents. They therefore not only require different strategies in order to combat them, but also help add a certain uniqueness to each of their own levels.
I knew going into the game that I wanted similar boss battles, battles that would help flesh out the areas in my own game and add character to each of them. How to implement them in a puzzle game without lives or energy bars, however, was easier said than done. In the end, I chose to borrow from Super Mario Bros. and have the players rush toward a goal rather than engage the boss directly.
In Building Block Heroes, the players simply build their way to the glowing weak point (the appearance of which was inspired by the weak points in Valkyria Chronicles), which destroys the boss upon contact. Meanwhile, the boss attempts to stop the player using different types of attacks. These attacks do not harm the players directly, but destroy some of their blocks, which can hinder the players.
The manner in which they destroy the blocks is consistent with their appearance and, in most cases, the overall theme of the area they appear in. Their attacks will be described in detail once I describe the areas themselves in detail, but the bosses were by far the most entertaining part of Building Block Heroes to develop!
Long story short, Building Block Heroes is the sum of games that have interested me. For those of you struggling to come up with a gameplay idea, I would suggest a similar path - think of a game with a fun mechanic that interested you, think of what might have been missing from it, and add it in!
I hope this was an interesting read!
Building Block Heroes is not the first game I've worked on. About half a year ago I released a game called World Boxing Manager. The process of doing so, including the Greenlight process, taught me much about the game development world.
World Boxing Manager
World Boxing Manager itself was an evolution of a free game I made in university called Kickboxing Manager. Both games were developed in C++, using the Qt API for the UI. Though both tools are useful to know for both game development and otherwise, the choice of this toolset required a lot of "engine" work that probably could have been made both easier and quicker with an actual game engine. Additionally, since I made the rather bone-headed decision of coding the UI elements by hand rather than using Qt Creator, it led to a lot of difficulty building a UI, which probably made the game uglier and clunkier than it needed to be behind the scenes.
Nevertheless, the niche nature of text-based sports simulators in general, coupled with the positive reception I received for Kickboxing Manager led me to believe that there was a built-in audience for my game that would cause it to sail through Greenlight.
However, I soon found out that graphics really do matter regardless of the strength of an idea. There were plenty of people who thought the concept of World Boxing Manager was interesting, but were turned off by the minimal graphics in the game. I had made the mistake of thinking that just because some people (myself included) are capable of overlooking crap graphics in favour of fun gameplay, everyone is. As it turns out, most people aren't.
I also learned during the Greenlight process the importance of showing off a game early to get feedback. It seems like a relatively obvious step to take, but I'm the type of person who simply puts his head down and works on something that interests me. Showing off my work before it's done sort of goes against my nature. Contrary to my fears, posting about my game on boxing-related forums and subreddits not only helped provide ideas about features to put in the game, but helped garner the votes I needed to scrape through Greenlight. I got a bit lucky because there was a built-in audience for World Boxing Manager - after all, good boxing games in general are quite rare nowadays, and boxing games on PC even more so.
Releasing the game was only the first part of the journey. The first hiccup I encountered post-release was a nasty glitch in the game that caused it to simulate non-user matches and events at a crawl for some people. I was aware of this bug, but it only took about 5-8 seconds per day on my own system. I assumed that it was manageable, and by the time I realized it might bother people, I was unwilling to tear the code apart. It proved to be a terrible mistake, as many of the early negative reviews of the game specifically mentioned the issue as the reason why.
I've since fixed the issue, but many people who were looking forward to the game felt disappointed by it, which matters far more to me than any kind of financial hit the game might have taken. After all, I never expected such a niche game to be a hit, I just wanted a boxing manager game on the PC that people would enjoy.
Additionally, the complexity of the finished game turned people off of it a lot more than I expected based on the feedback I had gotten for Kickboxing Manager. Many people who tried the game bemoaned the lack of a tutorial, or the fact that many of the game's features weren't very intuitive. It's to be expected somewhat from a manager game, but I still felt I could have made a more accessible experience.
Building Block Heroes
When I decided upon a new game to work on, I deliberately set about correcting the above issues. For starters, I decided to use an actual game engine and design a game that would take advantage of its features as much as possible so as to reduce the amount of wheel re-invention I had to do. For this purpose I decided upon Godot. Its open-source nature not only made it an attractive option due to being free to use under the MIT license, it also meant that I could theoretically extend its features using C++ if I had to.
The actual inspirations and thought processes behind the design of Building Block Heroes will be detailed in a later article, but long story short I decided to take the opposite approach to game design than I had taken previously. Rather than designing an uber-complex and in-depth game that would take a long time to get into, user-friendliness be damned, I decided to explore an idea that was instead incredibly simple to get into at first glance. Building Block Heroes, after all, is essentially a block puzzle game and a platformer game mashed together.
There's obviously more going on under the hood, but ultimately most end users and gamers should be able to pick the game up easily. It also makes it easier for me as a developer - this is the first non-GUI based game I've ever made, and making a simple game allows me to learn how to deal with things like collision detection and game loops without ripping my hair out too much juggling tons of features.
Choosing a simple game also made it possible to address the criticisms over the graphics in my previous games. Had I chosen to make a more complex game, I would have had to learn how to produce graphics and audio while still coding a game that was time-consuming and draining.
Keeping the concept simple meant that I could develop the game as a programmer while still having the time and energy to develop my skills in the other aspects of game development. Not only would such a game be less of a headache to make in general, there would also be less art and music to produce due to having less in the way of, say, equipment art or sub-menus to deal with.
For Building Block Heroes, therefore, I was able to spend several weeks just practicing art using a tablet and music using MuseScore. I'm not going to pretend that I'm particularly great at either, but I'm happy with the results I've seen, and I feel comfortable showing off the work I've produced. The relative lack of assets needed compared to an RPG or something also makes the whole endeavour of producing my own assets much less daunting.
Nevertheless, I'm far from being an expert at anything, which is why I've decided to launch a devblog of Building Block Heroes before it's close to being done. I'm hoping that by doing so I'll be able to catch any issues early on, which will not only produce a better product in the end, but will hopefully prevent any game-breaking issues such as the one that hamstrung World Boxing Manager upon its release. I can't rely on a built-in audience this time around - I need to make sure that I engage observers and gamers as much as possible.
Finally, regarding the learning curve of the game, instead of forcing trial-and-error upon the players I've placed tutorial levels throughout the game, which I hope will alleviate any issues about user-friendliness this time. Even though they were a pain to script, I figure this time it's better to put as much inconvenience upon myself as possible if it means taking that burden off the end users.
Making games can be a long and arduous process some (read:most) of the time, and many of us wish we could spend all of our time developing them. However, every journey begins with a first step, and as long as each steps moves us forward from the last one, we'll all get to our destination eventually. I'm hoping the lessons I learned from my first game will truly help me with this game and every one I make afterwards.
This was a long read, but I hope you enjoyed it!
It's been a while since I've been active in the game dev scene! The reason is that I've been hard at work on a new game, trying to build and create enough content to show off. It's been a couple of months, but I now have the makings of a game.
Building Block Heroes is a puzzle platformer in which you use coloured blocks to build pathways around each level in order to free the Jollyfolk from their cages. Explore different lands and combat various enemies as you travel the world to save them all!
There's still a lot of work to do, but from now on I'll be posting articles each week or so detailing my progress/talking about the game. In the meantime, here are a few screenshots showing off some of the work I've made in the past few months. Feel free to let me know what you think!
I know I said last time that I would talk about the Greenlight experience. However, with Greenlight on the way out, there's not much point. Thus, I'll just go ahead and post the next article about World Boxing Manager.
Fight Night - Range and Offense
So, you've made a fight, gone through training camp, and made weight successfully. Now the event finally begins!
A typical fight can occur at three ranges: on the outside, on the inside (or "in the pocket"), and less commonly, in the clinch.
Outside - Slightly further than and up to an arm's length away, this range is ideal for jabs and crosses. Fighting on the outside allows a fighter to catch his opponent on the end of these straight punches, allowing them to inflict the most damage. Boxers and, to a lesser extent, counterpunchers prefer to fight at this range due to their expert timing and quick jabs.
Inside - Less than an arm's length away, this range is ideal for fighters who are able to make use of powerful hooks and devastating uppercuts. Since these punches do not require full extension of the arm, an able infighter can utilize his excellent body movement and footwork to create leverage for these looping punches and pound his opponent into mush. This is the desired range for swarmers and, to a lesser extent, sluggers.
Clinch - When fighters are so close that their arms get tangled up with each other, it is known as a clinch. Fights in the clinch generally don't last all that long, but can happen. Clinching can also be used defensively in order to get some time to rest if a fighter has been dazed or knocked down. After all, an opponent whose arms are tangled up can't throw punches! The referee will break apart a clinch and reset the fight to the outside if the clinch lasts too long.
There are several basic punches that a fighter can use when he is the aggressor - jab, cross, lead hook, rear hook, and uppercut. Each of these punches can be thrown from the outside or inside. Within the clinch, a fighter is limited to hooks and uppercuts.
Regardless of what punch is used, the fighter may or may not precede it with a jab. In real life boxing, the jab is often used to gauge distance and set up a following attack. This game is no different, and if a fighter throws a jab before he follows it up with a punch, the success rate for the second punch is slightly increased.
On the opposite end of the spectrum of finesse, rather than setting up his attack with a jab, a fighter can choose to throw a haymaker. Every punch except a jab has a haymaker version of itself, which has a much lower chance of success but inflicts far more damage.
A fighter can choose to attack the head or the body. Attacking the head tends to have a lower chance of success, but will do more damage and carries the chance of an instant knockout if the opponent is caught clean on the chin.
Attacks to the body tend to connect more easily, but have a less noticeable, cumulative effect. As a fighter's body sustains damage, he will become more susceptible to knockdowns. The opponent will also suffer a gradually increasing penalty to the success rate of all of his offensive and defensive actions as his body begins to accumulate damage.
All punches each have their own attribute level associated with them, representing the general effectiveness and proficiency each fighter possesses when using that particular punch. The punch attribute, however, is not the sole determinant of whether or not a punch lands.
The match engine is designed such that accuracy, timing, power, etc are calculated and compared independently of one another. Thus, whether on offense or defense, the relevant attributes of both fighters are being compared more directly against one another. Without getting into too much of what's going on under the hood, overly aggressive sluggers cannot just overwhelm opponents through sheer aggression - if none of a fighter's punches land, he cannot knock out his opponent!
The effectiveness of offensive and physical attributes scale in a linear manner as their stats increase, while the the effectiveness of defensive and mental attributes scale in an exponential manner as their stats increase. What this means for the player is that aggressive and rugged fighters will tend to find more success at lower levels, and defensive tacticians will become more dominant at higher levels of competition. I'd like to think that this feature reflects real life boxing.
With all these offensive tools available, how is a fighter's opponent supposed to react? Tune in next time to find out!
If you found this interesting, feel free to check the game out on Steam:
[indent=1]After a much needed vacation, I'm finally back and I've added a new update to World Boxing Manager. Some of you have asked for a post detailing my Greenlight experience, which I'll get to eventually. In the meantime, continuing where I left off last time, there is one more thing to talk about prior to discussing the match engine in detail: Gym Income.
[indent=1]One small, consistent form of income is student fees. It's a simple flat fee that you receive from each student training at your gym as an amateur. But what is the point of having students?
[indent=1]Students are fighters that come and train at your gym. The quality of the students that choose to seek you out depends on your reputation as a manager - the more renowned you are, the better the students you receive will be. From your pool of students, you can select some to train as professionals. Whether they are professionals or not, however, students will be available to spar against both each other and the professional fighters you are currently training.
[indent=1]The sparring screen is a simple screen that shows fighters and students from your gym side by side. A sparring match works roughly like a regular match, allowing you to test your fighters against one another to get a feel for how they might perform in real matches.
[indent=1]Sparring, however, serves another purpose. After a sparring match, each fighter has a small chance to gain a trait. Most fighter traits simply raise the limit of a particular stat to 25 rather than the usual 20. Others, however, bestow advantages such as reducing the effect of aging on a fighter, which lengthens his career, or increasing the rate at which he is able to cut weight in preparation for a match. Sparring is the only way to unlock traits, so it pays off to do it on a regular basis.
Fight Purses and Win Bonuses
[indent=1]Student fees are more of a side income than anything. Most of your income will be from fight purses, win bonuses, PPV buys, and network viewers. The fight purse is negotiated prior to a match.
[indent=1]When your fighter is starting out, the purses you will earn are pretty much a pittance. You will have to win matches and increase your fighter's marketability in order to command a greater match purse during negotiations. You are guaranteed this purse whether your fighter wins or loses, but a win will also net you a 50% win bonus. It's important to remember, however, that trainers will get a percentage of the match purse based on their contract.
PPV Buys and Network Ratings
[indent=1]PPV buys are only applicable if your fighter is fighting in the main event of the evening. PPV sales are determined by the marketability and recent form of both fighters involved. It won't matter if your fighter is considered an All-Time Great if he happens to have lost three of his last four matches!
Network ratings function similarly to PPV buys, except that you will receive money whether your fighter is in the main event or not. After all, you were the one who negotiated the contract! As an undercard fighter, however, you will only receive a fraction of the income - the full amount is only received once your fighter reaches main event status.
It's a long, difficult road to mass appeal and big paydays, but once you make it there you can really rake in the dough!
I hope you enjoyed this feature explaining ways to earn money for your gym. Tune in next time, where I'll finally be discussing the match engine!
If this game seems interesting to you, feel free to check it out:
Just thought I'd pop in again to let you all know that modding, probably the most requested feature since release, is now in the game!
The new modding screen works by allowing you to update each fighter's attributes. You can also add new fighters and remove existing fighters.
Once you're done, you can save the entire database into a separate file and use it when starting a new game.
I've added a video to demonstrate:
Give the game a try and let me know what you think!
Before we get onto the actual details of fight night, I'd like to talk some more about the details of the game outside of the actual matches. Today,
I'll be discussing gym expenses. We've already gone over training expenses, trainer salaries, and trainer purse percentages, so I'll go into detail regarding
the other two forms of expenses.
Once you've got a match set up, you can choose to hire a network to cover the event. You do not have to be in the main event to do this - for gameplay reasons,
all that is required is that your fighter is going to be fighting in the event.
Networks have several attributes and stats that need to be taken into consideration.
Region - Self-explanatory. The event you wish to cover needs to be in the same region as the network you are negotiating with. Networks aren't interested in promoting foreign fighters.
Reach - Refers to how popular the network is. Corresponds roughly to the marketability of your fighter. If the disparity between your fighter's marketability and the network's reach is too
large, the network may balk at covering the event. After all, it's a business, not a charity - a network isn't going to spend money promoting a fighter that isn't popular enough.
Subscribers - The number of people subscribed to this network. More on this later.
Advertising - How good the network is at selling a fight, which determines how many people tune in specifically to see the event. In practice, this determines how many PPV sales
the event will earn based on the marketability of the two fighters in the main event, along with your own fighter's marketability.
Viewer Loyalty - This stat determines how fanatic the network's viewer base is, and thus how reliable the subscriber number is. In gameplay terms, this value helps
determine what percentage of the subscriber number will tune in to the event, forming a baseline for PPV sales on fight night.
Hype - The ability of the network to hype up your fighter. This translates into extra gains in marketability if your fighter wins his match. Beware, however, as this also translates
into increased loss in marketability if your fighter loses!
Subscription Fee - Dollars per viewer, which literally just multiplies PPV numbers into cold, hard cash. You don't see any of it unless your fighter is in the main event, however!
Once again, this isn't a charity. You're going to have to haggle over the hosting fee and fork over some money to get the network to cover your event. You should really only do so if
you're confident your fighter can win his match.
First and foremost is the gym equipment level. The gym equipment level determines the base gain for each day of training, so all the stats and boosts in the world won't help you
if your gym equipment level is too low.
In addition, you have the option of upgrading the gym itself. Upgrading the entire gym increases its capacity, which allows you to train more fighters and hire more trainers. It also
increases the number of students you can have at your gym, which gives you a bigger pool of potential fighters to train professionally.
With all these expenses, how do we earn money back? That'll have to wait for my next feature, otherwise this one will be far too long!
If you thought this was interesting, please do make your way to my Steam page:
Now that we've managed to get a match set up, there is a lot to do before the actual night of the fight.
Begin Training Camp
It isn't just business as usual before a match. A fighter is going to have to start a training camp in order to prepare for his next opponent properly.
Once a match has been arranged, the Begin Training Camp button appears on the training screen.
As the fighter's manager, you need to time the start of training camp appropriately so that your fighter has enough time to cut weight and make the weight limit.
Some fighters are better at cutting weight than others, which means they will need less time in training camp and will be able to fight more frequently. It's up to you as the trainer
to judge whether a fighter is good enough to be worth keeping if he takes a long time in between fights to make weight limits.
It is also important to note that training during training camps will cost your gym money, whereas training normally is free. You may be required to time training camps properly
if money is tight, since your fighter will be forced to rest if the gym runs out!
Training during training camps is much more intense than training normally between matches. Gains made during training camps occur at a much faster rate than usual, but are
only applied to the next fight. Fighting frequently might bring in more money, but will hinder the long term development of a fighter. Whether or not you jump from one match to the next
or choose to invest in the long term growth of your fighter is up to you as the manager.
For an extra boost, you can hire trainers. A fighter may only be trained by a single trainer at a time during training camp, but trainers can train multiple fighters.
You must be careful not to have your trainers train too many different fighters at the same time, however, as the effect of each trainer is spread out among all of the
fighters he is training at the moment.
Hiring trainers involves haggling over monthly salaries and purse cuts. The trainer's cut is taken off the fight purse of the fighter he is currently training.
The trainer's stats are self-explanatory - high Offense means he is better at training a fighter's offensive stats, while high Defense means he is better at training a fighter's defensive
stats. What is careful to note, however, is the trainer's style. A trainer will only agree to work for you if you have at least one fighter that matches his style.
If you manage training camps properly, then your fighter should have no problems making weight on the night before fight night. If you're not careful, though, he will be
forced to forfeit the coming match, as well as any belts he may hold for the organization hosting the match!
I hope this feature on match preparation has been fun to read for you! [color=rgb(40,40,40)][font=helvetica][background=rgb(245,250,247)]As usual, if you found this interesting, please feel free to have a more detailed look at my game:[/background][/font][/color]