[ WIP ] Goblin Age

Working Title: Goblin Age
Release: IOS and Android
Dev Start: April 2015

[ABOUT]

Goblin Age is a new side-scrolling arcade platformer in development by PlayZot. My role in this project is design, programming, graphics, music and sound, level design, and writing. The release date is still pending.

(Original Photoshop Mockup Concept)

[GAMEPLAY]

Run and jump across 32 levels collecting as much gold as you can, and get to the exit before time runs out. Overcome enemies and platform obstacles.

Play levels continuously to get a better score. When you beat the episode, you can start over with bigger bonuses and higher difficulty while retaining your score.

Whether you get game over or quit, your score will get saved.

(Simulator Screenshots)

[FEATURES]

  • Made exclusively in Corona SDK
  • New engine
  • Analogue stick for easy, responsive movement
  • Endless cycle of play
  • Episode score leaderboard
  • Purchasable DLC Episodes with new stories, tile sets, and music
  • Purchasable DLC Player Skins that can be used in any purchased episode

Way too much “tiling effect” going on - I’d recommend mixing it up a bit!

Good point.

I will keep this in mind when designing the real levels for the game in the future. Right now the working tileset has eight slots for solid block tiles, and eight for ledge tiles.

Variation would be especially useful for the large non-linear levels that I would like to have. The original Metroid used tile variation to great effect.

Thank you for your feedback.

[Dev Summary] October

Features added:

  • Created functioning score scene
  • Player goes to score scene after exiting a level
  • Added more HUD elements

Content added:

  • New variant tile set
  • Created 5 new bgm tracks
  • Created sprite sheet for player hearts HP display

Bug Repairs:

  • none

Screenshots:


How Level Scoring Will Work

In Goblin Age, the main goal of each level is to collect as many gold as you can and get to the exit before time runs out. If the time runs out, you will die, lose your gold, and start the level over.

When the player touches the exit door, the level will end and the player’s score for the level will be calculated.

The first line of the score card is for the amount of gold you have at the end of the level. You will receive points for every gold you collected. You do not receive any points during gameplay.

Each piece has a base value. Currently it is set at 100. The base amount is multiplied by a value that increases the more episode cycles you play. So the actual value each gold is ( base x multiplier).

Furthermore, After play cycle 1, When starting a level, there is a chance that a bonus multipler will be applied to the value of the gold. The final value of each gold becomes ( base x multiplier) x bonus.

This bonus will be a whole number such as 2, 3 ,4 etc. The chance and value of the bonus will increase the more cycles you complete.

The second line is static amount of bonus points awarded for holding all the gold in a level when you clear the level. It is a 100% collection bonus. If you collect all gold, die, and clear the level without 100% gold, you will not get the bonus.

The third line is static amount of bonus points awarded for not losing any lives during the level that was cleared.

The fourth line is your current score + the points you just earned from clearing the level. It is your final total.

That’s how points are awarded for clearing a level.

Hey PlayZot, this graphics/art style  looks great, with kind of that 8 bit look and feel. 

How do you create this? Any specific tool / software ?

Great old school look!!

What I recommend is making upper scores panels more old school and pixelish, because they look to smooth. yeah, and change the font.

@farjadfarabi_czs

Thanks. I use Photoshop.

@patso

Thanks. The new font I’m going to implement should look a lot sharper and retro than the current one.

[Dev Summary] November

Features added:

  • Added HUD HP bar and timer
  • Level time limits are defined in the map file now
  • Created finite state machine module for managing player character and enemy actions
  • Implemented new font “Press Start 2P”

Content added:

  • Created 7 new bgm tracks

Bug Repairs:

  • none

Screenshots:

Notes:

I added a new font, but I can tell that it still has an alias effect. I’ll look into making the text super sharp.

My main goals for December are:

  • apply delta time to player and enemy physics to improve performance on android devices
  • add enemy objects to gameplay and use fsm module to move them around
  • create “gun” module to give enemies the ability to shoot projectiles at player

Way too much “tiling effect” going on - I’d recommend mixing it up a bit!

Good point.

I will keep this in mind when designing the real levels for the game in the future. Right now the working tileset has eight slots for solid block tiles, and eight for ledge tiles.

Variation would be especially useful for the large non-linear levels that I would like to have. The original Metroid used tile variation to great effect.

Thank you for your feedback.

PlayZot, what about the platformer technology, what are you using to manage your tiles and physics in the game? Dusk, MTE, something else? Also, are you using Tiled for level design or something else?

Btw, this is looking great! I love the ideas you are implementing!

@ jerejigga

Thanks. My tile engine is based on a tutorial I found. I made numerous modifications like tile culling, sprite animation, and refresh limit. The collision is corner based.

The physics is just simple calculations for x and y speed with gravity and friction. I’m not using anything from the api.

I am using Tiled to design and build levels for the game. It saves a lot of time.

@PlayZot, would you mind sharing the link to the tutorial you used as a reference? Also, is your “tile engine” something you’d be willing to share, either with the entire community or just with me? You can PM me. If you’d rather keep it under wraps in order to keep a competitive edge, I totally understand.

@ jerejigga

Here is the link to the tutorial.

https://www.youtube.com/playlist?list=PL-2t7SM0vDfcIedoMIghzzgQqZq45jYGv

It is important to note that the original tutorial is in the language Java, so there are some notable differences from Corona and Lua.

I would recommend looking into Dusk and Million Tiles first to see if they can do what you require, if you haven’t already.

With all due respect, I am developing this game under the employment of a company so I do not have permission to share that code.

@playzot

Ah, yes. With so many one-man shops developing games I hadn’t even considered that you might work for a company! That makes total sense and I totally understand.

In regards to MTE and Dusk, that is where I have been experimenting so far. I still have lots of questions though so I started this other forum thread: https://forums.coronalabs.com/topic/61724-how-to-create-a-platformer/ If you feel so inclined, please feel free to join that conversation. You might find it interesting whether you post something in it or not.

Thank you so much for the link to the tutorial! As it happens, Java is actually my primary language! It’s going to take a while to get through these videos, but just looking at the titles, they look like they will be very helpful! Thank you!!

Great. I hope the tutorial helps.

[Dev Summary] October

Features added:

  • Created functioning score scene
  • Player goes to score scene after exiting a level
  • Added more HUD elements

Content added:

  • New variant tile set
  • Created 5 new bgm tracks
  • Created sprite sheet for player hearts HP display

Bug Repairs:

  • none

Screenshots:


How Level Scoring Will Work

In Goblin Age, the main goal of each level is to collect as many gold as you can and get to the exit before time runs out. If the time runs out, you will die, lose your gold, and start the level over.

When the player touches the exit door, the level will end and the player’s score for the level will be calculated.

The first line of the score card is for the amount of gold you have at the end of the level. You will receive points for every gold you collected. You do not receive any points during gameplay.

Each piece has a base value. Currently it is set at 100. The base amount is multiplied by a value that increases the more episode cycles you play. So the actual value each gold is ( base x multiplier).

Furthermore, After play cycle 1, When starting a level, there is a chance that a bonus multipler will be applied to the value of the gold. The final value of each gold becomes ( base x multiplier) x bonus.

This bonus will be a whole number such as 2, 3 ,4 etc. The chance and value of the bonus will increase the more cycles you complete.

The second line is static amount of bonus points awarded for holding all the gold in a level when you clear the level. It is a 100% collection bonus. If you collect all gold, die, and clear the level without 100% gold, you will not get the bonus.

The third line is static amount of bonus points awarded for not losing any lives during the level that was cleared.

The fourth line is your current score + the points you just earned from clearing the level. It is your final total.

That’s how points are awarded for clearing a level.

[Dev Summary] February

Features added:

  • Created and added enemy object to gameplay
  • Created finite state machine for enemy a.i. management
  • Gave enemy basic movement behavior.
  • Modified tile engine to limit refresh cycles.

Content added:

  • dragon sprite sheet

Bug Repairs:

  • Implemented, but disabled delta time for object movement. It was causing world and object collision problems.

Screenshots:

Notes:

I finally added enemies to the game. The enemies in the first episode will be dragons. All enemies will have the same module and behavior, but the graphic used is defined in the Tiled map data.

Enemies will be prominent in the game. At the same time, defeating enemies will not earn points and is not required to beat the level. You will have the choice to defeat or run past them.

The current plan is to have one pattern of behavior. The dragon will walk forward and turn around whenever they hit a wall or ledge. When the player enters the dragon’s field of attack, the dragon will stop moving and start charging and firing fireballs at the player’s direction. When the player leaves the field, the dragon will continue to walk.

Next month I will write out the details of how difficulty will work and what will scale during play cycles.

My main goals for March are:

  • Complete gun module and give enemy ability to fire bullets
  • Cause player to take damage from enemy bullets
  • Cause enemy to get hurt when the player jumps on them
  • make more bgm tracks

Hey PlayZot, this graphics/art style  looks great, with kind of that 8 bit look and feel. 

How do you create this? Any specific tool / software ?

Great old school look!!

What I recommend is making upper scores panels more old school and pixelish, because they look to smooth. yeah, and change the font.