Playmaker News > Work In Progress...

Rick Henderson And The Artifact Of Gods

(1/6) > >>

krmko:
Hi guys, since i'm a regular poster here i thought i'd share my devlog with you too!

First of all i would like to introduce myself. I come from Belgrade, Serbia, i'm 34 and i grew up playing likes of U.N. Squadron, R-Type and Uridium on C64, then Z-Type, Project X and Xenon 2 on Amiga 500, all the way to Jets 'n' Guns and Steredenn on PC. I have been stalking the forum for a long time, but opened an account just recently, and i decided to open a DevLog thread where i could share the news on the game's development, make someone interested, and above all, help someone by sharing my experience in game development (which proved to be a very serious thing  Smiley).

Gameplay and features

RHAG is, despite it's name fitting an adventure game better, a more or less classic 2D horizontal scrolling shoot 'em up i always wanted to make. It's a mixture of Jets 'n' Guns (who has the Story Mode) and Steredenn (which is basically and Endless Mode only game). The story features Rick Henderson, a disillusioned galaxy war veteran who turned to suspicious activities after the war to make ends meet, his robot follower, sarcastic Ben who makes every conversation fun, and a lot of NPC's who will be introduced during the development.

Story Mode Single Player - Interesting storyline full of dialogues with interesting characters to keep you amused between levels.
Endless mode with Multiplayer - Local and Online
Daily Challenge - Once per day Endless Mode Run with predefined equipment and perks
Online Leaderboard - Compare your scores with your friends and other players
6 factions - Pirates, Rokh Raiders, Terran Confederacy, Vakshaa, SunDyne Corporation and Paragons.
40+ types of enemies (for now)
30+ types of weapons and upgrades (for now)

Single Player is featuring a shop between levels where you can equip your ship with weapons, drones, engines, utilities, shields and armors.

Weapon types: Ballistic, Energy, Explosive, Meelee. Each type of enemy is usually resistant (partially or fully) to a certain type of damage, so watch your loadout! Ship can equip two weapons, but they can't be fired simultaneously. Weapons also generate heat, so you can't keep that button pressed all the time.

Graphics:

Game is done in pixel art which i really love and which proved itself as (usually) the best choice for shmups due to its clarity (and yes, development costs). I'm not much of an artist, so besides the things i do myself (backgrounds and small art), credits go to Lighterthief, a young lad from Netherlands who does some amazing graphics. I'm often awed how quickly he can make some good looking stuff. You can check his art on his Twitter account: @Lighterthief

Sound:

I've been a musician and sound designer in my spare time doing mostly electronic music for the last 15 years, so i've got that covered.

More Information

Website - http://www.fatpugstudio.com
Twitter - https://twitter.com/FatPugStudio
Tumblr - http://rickhenderson-game.tumblr.com

krmko:
Log 1: Making a Flamethrower

Today i decided to finally bring an end to an agony i had with designing the flamethrower.

What are its characteristics?

- It fires a lot of small particles which increase in size over time
- The particles are emitted in cone shape
- The particles should be animated over time

I tried a bit unusual approach first time. I made a regular weapon which shoots bullets (in this case, small round sprites) by using UniBullet Hell which i use for most of my guns.

A simple setting using a tweaked random preset:



The trick should be done by getting the bullets scale and collider size, saving them in a float variable, and then adjusting that variable over time. To avoid the bullets growing too big, i clamped the float value to a maximum value and put a death timer for the bullets to disappear after a certain amount of time, thus making a weapons range. Unfortunately, unexpected behavior appeared which i was unable to solve. After a while, the bullet instantiated size started growing more and more, and after a few seconds i would end up with particles which are all the same size (the float clamp size).

I scrapped the thing, and today i tried making it using Unity's particle system.

Step 1:

Making a sprite sheet of particles that would appear. It consists of 12 sprites in one row, 9 being some colorful orange and yellow blobs, and the last two diminishing blobs to mark the end of the flame spray.

Step 2:

Making the material for the particle system. It's not all easy-peasy with particles in unity. To apply spritesheet to the particles, you have to make the material out of it first. Just make sure to select the particles for shader. Some nice blending options can be chosen here too, but we'll stick to good ol' Alpha Blend.

Step 3:

Creating the particle system itself.

Shape - Needs to be set to cone since we are simulating, well, a fire cone.

Size over lifetime - Not to small at the start, since it will be practically invisible, but all the way to value of 1 at the end.

Collision - We want our fiery particles of death to collide with enemies, so we set the collision mode to world and 2D. You can also choose the layers which will be collided. Since my enemies are on their own layer, we choose that layer.

Texture Sheet Animation - This is what we made the sprite sheet for. Just enter the number of tiles for X and Y (in my case, X - 12, Y - 1, which means 12 sprites in one row). We're not touching frame over time options, which means the sprites from the sheet will be generated in order in which they are drawn.

Renderer - Here we will just put the lovely material we made from the sprite sheet we made earlier, nothing else needs to be touched.

Step 4:

All there's left to do is to tweak some of the basic settings like duration, start lifetime, speed, size, max particles, emission rate etc., which basically let's us control how long will the flame cone be, how fast will it shoot and according to that, how much damage will it make.

The thing that must not be forgotten is that the particles must have independent movement when you move the ship, so the simulation space must be set to world.

Here's the finished work



I just made a complete tutorial for making a 2D flamethrower in Unity, you can check it out on the frontpage of my website, www.fatpugstudio.com :)

krmko:
Log 2: Troubles with the Flamethrower and making a font

Well, the flamethrower looks really nice, but in reality it proved quite useless. Apparently, particles, despite having their own type of colliders, don't have rigid body and collider in the sense of the regular components. They do collide and react with other colliders, but any other interaction with them must be done via OnParticleCollision behaviour, which is currently not supported the way it should be in Playmaker or Core Gamekit which i'm using, so i will probably have to do it the old fashioned way - in code.

But i have another interesting idea that i'm yet to try...i'll keep you updated  :handanykey:

Edit: i forgot, i also made a custom font for the game, since i don't like any i found on the internet. I took me about 20 minutes. 3 pixels is too small, 7 is too big, 5 pixels was just about right for size and scaling. You can make your own fonts on www.fonstruct.com, a very handy website.

Here's how it looks like:

krmko:
Log 2.1: Flamethrower complete!

I must admit that this was not an easy task, but i finally did it, a functional spray weapon that deals damage to the enemies.

First step was to make the animation out of the frames i provided with the sprite sheet you can see in the tutorial i posted. Animation settings in Unity are very powerful, and you can put every aspect of the thing you animate on the curve. I've put the X and Y Scale on a slight upward curve so the animation starts small, and gets bigger (like the thing i did with the Particle System in the previous try). Once i was satisfied with that i created the weapon template using Uni Bullet Hell asset. I used the Random Shot preset which has tweaks available for the Random Range Size (which is the angle in which the shots will be fired randomly, like the cone. I've set it to 15 degrees for start). Auto Release Time, or after how much time will the bullet get back to Spawning Pool (instantiation and destruction takes much resources) is set exactly to the animation length so it doesn't repeat itself. Speed of the bullet is randomized between 1.1 and 1.5 values to get a more natural, random look. The initial Random Range Size property was fed into an FSM which randomizes it between 10 and 30 range to get even more natural/random flame look (talk about natural flame in space ::)) and the Z axis of the sprite is also randomized so that every bullet slightly rotates a different way during its pitiful one second existence.

With all that finished, it was time to do the routine work, adding some usual stuff to the bullet. 2D Collider and 2D Rigid Body for hit detection, the Killable component of the Core Gamekit which is used to apply Attack Points which will be dealt to enemies upon collision (the enemies in the gif have 200 HP, so i've set it to 1, since there's a lot of small bullets. The starting weapon, a regular one bullet blaster has 100 Attack Points for example, so it takes out those little baddies in two shots), and setting the bullet to die at any collision.

Here's the result (wait a bit, it's a big gif), i may tweak the reach of the weapon a bit, or mess with the sprite sheet to give it a fuller and more colorful look, but that about does it! All there's left to do is connect it to the Heat Meter so you can't fire it indefinitely since you'll overheat, but that's the story for another log.



Hope you enjoyed, cheers!

krmko:
Log 3: Introducing the Rift Miners

I've been really busy with my job, as usual on year's end, but my graphics guy has been working, so i've got a little teaser for faction #2, The Rift Miners, race of sentient mining robots. It is for the social network, so i'm not going to spam it into a new posts here, i'll just edit the existing one just to show you the process. Idea is to make people a bit interested by showing shapes fist, then identifying one ship per day. Here's all revealed



Also, i started working on the Endless Mode mechanics as i decided to give people something to play before i finish the Story mode. It's not complicated, it's based on levels consisting of randomly generated waves (but in a smart way!) with the boss enemy as the last wave. Weapons and equipment will be dropable, and you get to choose perks as you gain experience.

Navigation

[0] Message Index

[#] Next page

Go to full version