Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411576 Posts in 69386 Topics- by 58444 Members - Latest Member: darkcitien

May 05, 2024, 04:26:25 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsRick Henderson - 2D Pixel Art Horizontal SHMUP
Pages: 1 2 [3] 4 5
Print
Author Topic: Rick Henderson - 2D Pixel Art Horizontal SHMUP  (Read 18488 times)
Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #40 on: October 02, 2017, 04:45:14 AM »

Log 13: Spawning System Overhaul and overcoming the obstacle of enemy pattern making

The Grid

Wow, it's been a while, but things are moving forward slowly but surely!

I've been busy with lots of coding and programming enemies and i encountered some difficulties in proper positioning. On the image below you can find how the spawn points looked (5 spheres on each side) and how they look now (the red X signs)



Obviously, it offers much more in terms of positioning. More than a year ago, when i first started working on a spawn system i wasn't apt enough to make it the way i wanted to (grid system) so i had to be satisfied with only a few spawn points and additional repositioning upon instantiating. Needless to say, it adds much more work to simple spawning and positioning of those enemies.

By using this handy tool from the asset store (https://www.assetstore.unity3d.com/en/#!/content/20502) i created a grid made out of objects completely automatic. A fine tool indeed. After that, i simply added those to the hash table and now i can simply reference the object whose position i want the enemy to use as spawn point and voila. Besides using it to spawn enemies already in a pattern, i can use them to actually create random patterns on runtime by referencing a different object from the hash table upon predefined parameters to avoid completely random clutter. Not only that, a finer grid enables me to avoid spawning the enemies too close to each other or overlap. Since i'm using Core Game Kit for spawning, i'm waiting for the developers to implement the feature based on sphere raycasting, i.e. if there's an object of certain tag or layer (enemy) in a defined range, the system won't spawn any more to avoid the overlapping. It will work great with the system i made and described few devlogs earlies which is based on enemy pool values and enemy quantities.

Also, Easy Save 3 Beta will soon get a full release (i hope VERY SOON) which will enable IMPORTING variables from a .csv file. It will be of an immense help for tweaking the gameplay.

Enemy Pattern Making (Squadrons)

I must admit, though i am passionate about making a game, some things are quite tedious. I'm having problems with making enemy squadrons, and the way i make them is so boring and uninspiring it really halts my progress.

Before i was well into Unity engine limitations on nested prefabs (only one child per object, i.e. child cannot have it's own child as a prefab, only when instantiated on runtime due to way serialization works) i thought it was going to be a breeze, i just drag and drop enemies in a formation, put them under a parent prefab and voila! Except it doesn't work like that. All of my enemy prefabs typically have two children, Gunpoint and Thruster. Gunpoint hold the shooting logic and muzzle flash animation, while Thruster has the, well, thruster animation. It is on a separate object to avoid being colored with the rest of the enemy ship when it changes color on hit by a player weapon.

So i guess i'll keep my work and make an empty squadron prefab which will spawn and then spawn the enemies in a desired pattern coded into it. That's all nice and dandy until you actually start working that way. No more cosy drag and drop, just selecting what to spawn, input coordinates and hit play too see what you've done. If something's not positioned correctly (it usually isn't), reposition the enemy, copy the coordinates, stop, and paste them. Repeat 10 times for 10 enemy objects in a squadron, and i should have hundreds of them! Horrible! It goes something like this



So i decided to change my ways. I need to make a reverse approach. Instead of creating an enemy prefab with all the children attached, i'll attach the Gunpoint and Thruster on instantiation, which is only a two step process compared to setting the position of multiple enemies inside the squadron. This way, i have a clean enemy prefabs without children which i can joyfully drag and drop into positions i want and simply save them under a prefab which will be used for spawning.



Though it is a bit more work initially, it provides an immense saving of time later and makes it more visual, fun and intuitive to work with.
« Last Edit: October 03, 2017, 02:26:10 AM by Fat Pug Studio » Logged

Jovu
Level 0
**



View Profile WWW
« Reply #41 on: October 03, 2017, 04:13:16 AM »

Looking good my dude, keep at it! Gentleman

I like the procedural concept, and the ships look awesome to me. One thing i would say is try and make the bosses interesting and unique. I think bosses with varied and interesting attacks, that challenge the player differently, are the difference between good SMUPs and great SMUPs. Granted, pulling that off is hard and I'm not saying you should focus on it right now, but keep it in mind as it will make the game all the better.

Toast Left
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #42 on: October 03, 2017, 04:32:00 AM »

Thanks for the feedback Jovu, i appreciate it  Ninja

There will be six bosses (maybe seven) with couple of variants each. Variations will include different movement and attack patterns, possibly different weapons, we shall see, it's still too early.

So you'll never know which variant you encountered until he starts firing Hand Joystick
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #43 on: October 04, 2017, 12:50:14 PM »

Wow, i find latest log neither insighful nor detailed as some of my previous blogs, but this one made it to gamedev.net featured blogs, woohoo!

https://www.gamedev.net/blogs/entry/2263785-spawning-system-overhaul-and-overcoming-the-obstacle-of-enemy-pattern-making/
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #44 on: October 09, 2017, 03:00:15 AM »

Log 14: Weapon upgrade system designs and limitations

I’ve been contemplating on design of the weapon system and upgrades for a lot of time. I wanted the game to be based on skill but have a variety which would add to the replayability of the game at the same time. Here are the basic definitions i have decided on:

Game will contain about 30 weapons
Every weapon can be upgraded 4 times (levels 1-5)
Ship has two weapon slots available, you can freely switch between weapons in game
You can’t have same two weapons equipped
You eject the currently active weapon by picking up a new one that’s different
For example, you have Pulse Gun Level 1 equipped as active weapon and Biter Level 1 equipped as inactive. After blasting the enemy transport you come across Ripper and pick it up. Since you don’t have it equipped in any of slots, it will replace the active weapon and eject Pulse Gun Level 1. If you wanted to replace Biter, you could simply switch weapons to make Biter active and replace it by picking up Ripper. This will be a common occurence for adapting to the enemy types because of their vulnerability or resistance to certain type of damage (ballistic/explosive/energy/special against normal/armored/shielded types of enemies).

I could make things simpler in design and coding by simply omitting the part where the replaced weapon is ejected since there’s a small chance of picking it up by accident since it involves pressing a key while you hover over the weapon. However, two player mode requires that feature for the weapons to be interchangeable between players and that is a great way to improve cooperation, gameplay and combined firepower.

Due to some design limitations i had to make a hard choice that can affect the future gameplay on upgrading the equipped weapon and few solutions came to my mind.

1. You can only upgrade the weapon if you pick up the exact same weapon. That way, either equipped or not, the weapon in players possession is upgraded to the next level without any ejection which only happens when you are picking up a weapon you don’t have equipped on any of the slots. While challenging with high long-term impact on decision-making, you only have 6% chance of getting the same weapon from the transport which is slim to none and could severely hamper the player experience. If weapons had only one level the approach would be viable, but with total of 150 weapon levels it would only be frustrating.

2. Whenever you equip a weapon that is not equipped it is always at level 1, but when you upgrade any of the weapons on ship to level 2, the weapon you replace the level 2 weapon with will also be level 2. Basically, if we modify the first example a bit so the active weapon (Pulse Gun) is level 2 and inactive weapon (Biter) is level 1, when we pickup a Ripper instead of Pulse Gun it will automatically be upgraded to level 2. Opposite to first approach, it is less challenging and encourages experimentation, but it comes with a design problem which i’ll explain thoroughly.

When we picked up Biter it is upgraded to level 2 on the ship and Pulse Gun level 2 is ejected. This enables us to switch Biter to active weapon, pickup the level 2 Pulse Gun, eject the Biter, and then pick up the Biter again which will automatically be upgraded to level 2 now. While requiring a bit more speed to do it in a chaotic environment i would considering it cheating since you’re upgrading both weapons that way and that is certainly not something i plan to implement. As i noted in the introduction, i could simply disable the weapon previously equipped to be ejected, but that beats the idea of switching weapons between players which i find to be a great gameplay feature of a co-op mode.

Maybe i’ll disable the feature of ejecting only for single player mode for now.

3. Make weapons upgradeable only by picking up the same weapon as equipped, but increase the chance of spawning a weapon you already have

The maths on this one are simple, though a bit tedious to code. You have 25% of transport spawning active weapon, 25% of spawning inactive weapon and 50% chance of spawning a new weapon. This comes with a different kind of trade-of. Though 25% is a lot it may happen that you rarely run into a weapon you want to upgrade. On the other hand, you may always run into a weapon you already maxed out. This discourages experimentation since you will always want to hold on to your maxed out weapons, no matter how good or bad they are. There are no bad weapons per se, but holding on to weapons of the same type greatly decreases success.

4. Weapon upgrade pickups

Though not originally meant to be implemented, this could pose a good solution combined with approach 1 or 2. It is simply a kind of a joker card which levels up your active weapon without worrying if it’s the same one. If you pick it up, the active weapon gets upgraded and you just keep on blasting.

Which solution would YOU like to see implemented?
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #45 on: October 24, 2017, 01:32:07 AM »

Quick update

Things are slowly starting to take shape. I'm a bit tired from coding, and lots of stuff is already done, so i'm starting to play around with graphics and lights, lookin'good so far.



Logged

pixeye
Level 1
*


You have my mace


View Profile WWW
« Reply #46 on: October 24, 2017, 05:51:37 AM »

Hi man : ) Do you use your own FSM implementation? I'm working on my AI action lists and very curious about what other devs do with AI
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #47 on: October 24, 2017, 10:36:39 PM »

Hey man Smiley

No, i'm using Playmaker (sometimes Node Canvas) for FSM's, tho i'll be probably transferring to Notorus for the next project, since it can spit out clean c# code out of the FSM's (and import it too).

It's quite easy to set up even advanced AI with FSM's, especially since your game is on one plane. Unfortunately, i haven't done any project implementations for now (this is my first game) but FSM's are my cup of tea so let me know if you need anything Smiley
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #48 on: December 14, 2017, 11:16:04 AM »

I've been working hard on a scoring system, so here's a new devlog on that!

Log 15: Scoring System Design

One of the most important aspects in a shoot 'em up is certainly score. Being somewhat a niche of a genre, it has a clear competitive edge among its players. It certainly lacks fulfillment in terms of engaging story, but the adrenaline rush in combination with the goal of attaining higher and higher scores or even being on the top of the leaderboard is something really hard to beat and is specific to the genre.

With that in mind, a good shmup scoring system has to be easy to understand and engaging at the same time. While it sounds simple, it can be quite hard to achieve a good "funness" factor while keeping it engaging and skill related.

For Rick Henderson and the Artifact of Gods, i dissected a ton of old and new shoot 'em ups in the search for the perfect scoring system i like. One of my all time favorites is certainly Galaga Deluxe (or Warblade for PC folks) for Amiga 500 from late Mr. Edgar M. Vigdal. Besides coins used for shop purchases (which this game won't be using until singeplayer mode is done), in Galaga you can collect gems too. Those little cuties come in different shapes and colors and each one yields a different amount of points. While not groundbreaking, it adds another layer of depth to the game besides dodging as some gems are really worth running for through a rain of bullets. Naturally, tougher enemies have higher percentage of dropping rarer gems that yield higher score addition.



Another form of bonuses that can be picked up are medals. Far from my knowledge, medaling is prominent in shoot 'em ups. The concept is easy: you pick up differently colored medals, when you have the whole set, you get awarded a rank at the end of the level and the medal collection is resetted when you start the next level. You guessed it, ranks are just another name for total bonus multiplier at the end of the game.



There is a total of 9 ranks you can attain (the first being the multiplier of 1, which is your default rank):

Recruit
Private
Corporal
Sergeant
Lieutenant
Captain
Major
Colonel
Marshal
Commander

Complete randomness in spawning those can be infuriating for players with higher skill cap, but i find it refreshing to have a bit of a variety and a possibility for the medals already collected to appear again. Below you can find a weight distribution chart for the medals. When none are collected, the chance for any to spawn is equal. However, as the number of collected medals increases, the chance for already collected medals to appear diminish by 1/5 (or 20% if you like it that way). I haven't done the exact maths, but the chance for already collected medals to appear is not that large. Of course, for collecting already collected medals, you get a nice, juicy score bonus, so they are worth catching too!



Multi kill bonuses! We all played Unreal Tournament 2004 back in the day. It had a nice feature of multikills which i use in my game in a bit different form. For those who haven't played it, you get multikill for killing two enemies in a row without dying. As your kill count progresses (again, without dying) you get megakill, ultra kill and so on. In Rick Henderson and the Artifact of Gods it functions based on time between two kills. When you kill an enemy, an invisible timer starts counting down. If you manage to kill another enemy until the counter hits 0, you get double kill and the timer resets. If you manage to get another one until timer counts down, you get a multi kill, all the way to monster kill. Of course, every additional kill is awared with more and more points. This is usually possible with area of effect weapons (explosive ones) and weapons like Railgun, which can go through multiple enemies, encouraging player to invest more skill in the game.

Grazing bonus is usually omnipresent in bullet hells, a hardcore subgenre of shmups. It encourages the player to "graze" bullets, ie. pass very close to them without getting hit.

Design itself was a bit harder to implement since it involves tracking multiple bullets at a time getting into the graze range and checking whether they hit the player or not.

While not neccessary for the gameplay since i don't want it to be bullet hell, it's one of those things setting apart rookies from hardcore players that want to get the most out the game.

And finally, the good old bonus multiplier which adds up with every destroyed enemy, gets lowered when you get hit, and reset at every waves end. It goes well in combination with grazing bonus, making you get closer to the bullets but not get hit. It also serves as a kind of damage control system. Since i gave up on the idea of having a 0-100 healh bar and chose a 10 life bar instead, hits from tougher enemies take more of your bonus multiplier down.

I believe the score mechanics are very easy to understand and will add up much to the investment of the player and the adrenaline pumping of the true genre players.
« Last Edit: December 14, 2017, 11:31:55 AM by Fat Pug Studio » Logged

Al_B
Level 0
***



View Profile WWW
« Reply #49 on: December 14, 2017, 05:46:42 PM »

This is really cool! I love huge space epics like this! I know you've got challenges making this. I hope all goes well and you succeed!
Logged

Devi Ever
Level 2
**



View Profile WWW
« Reply #50 on: December 14, 2017, 07:30:34 PM »

Love the pixel art... but I'm here for one main reason...

... the title of your game ...

is

a masterpiece

Seriously.  Rick Henderson and the Artifacts of Gods is just so epic.  I love it so much.
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #51 on: December 15, 2017, 01:39:35 AM »

Thanks to both of you, glad you like it, it means i'm on the right track Coffee
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #52 on: March 07, 2018, 06:17:19 AM »

Hi guys, i've been working really hard, so i didn't have time nor will for devlogs. Here's a short gameplay video, there are lots of bugs due to pooling system which i will eventually flatten out and some debug stuff turned on, but you'll get the idea how it looks and feel in general.



Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #53 on: June 04, 2018, 04:29:08 AM »

Here's a video of the new build, some new weapons, enemies, lots of bugs squished, improved handling. The video depicts whole first level until the boss.





I promise to make a new devlog soon  WTF
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #54 on: July 18, 2018, 12:33:11 AM »

New (kind of) devlog with some great news - Nested Prefabs in Unity! This will boost my productivity multiple times

I must admit that i've been a bit what you could call 'lazy' for the past few months.  Why is lazy hyphenated? Well, because i'm not really lazy, i just tried to finish a game from 0 knowledge of Unity in under two years, which is not an easy task. I spent a lot of sleepless nights working, had a few burnouts, but one thing ultimately slowed down my progress to almost halt.

When i finished most of the mechanics for the game and got to the most important part - making content - i simply couldn't find any more willpower because of the tedious process involved in making hundreds of enemy waves. I believe someone with better coding skills could make a level editor and finish it much quicker, but with my knowledge, i had to do everything by hand and i kind of lost the motivation. Let's delve a bit deeper into the problem.

One of the things i really love about Unity is use of Prefabs. As someone who is not a programmer by trade, it was easy for me to relate to something drag and droppable, an object with belonging properties that is simple to instantiate and easy to manipulate without much hassle. Two years ago, one of my first questions on Unity Forums was about something that i didn't even know what is called back then - Nested Prefabs. I couldn't understand why instantiated objects could have child objects that have child objects who also have child objects can exist in the scene, but not as a Prefab. That pretty much broke my building blocks concept of making a game.




As you can see, i imagined the waves of enemies to be compiled of squadrons (as well as waypoint and single enemies, about which i wrote in my previous logs) which would be a Prefab object with lots of children objects (singular ships and their engine jets, weapon, tags for missile homing and so on). Unfortunately, Unity supports only one level of vertical nesting in the project, so while an object can have literally hundreds of children, non of them can have their own. Since i read that the Nested Prefabs are something that was planned more than five years ago and not yet in the making i tried a few assets that simulate Nested Prefabs but to no avail. You've probably seen the horrible reviews on the Asset Store, most of them are abandoned, buggy, slow or complicated. Since i found no decent asset that will enable me to work the way i imagined, i resorted to the usual workflow of instantiating a Prefab and populating it with components that i needed.

It wasn't too hard for single enemies, all i needed to do was instantiate appropriate objects on designated locations and that's it. I learned a lot of things in the process, getting and setting the properties of many available components and their variables, the importance of pooling and the way it works, managing performance and so on. I must admit i had more than a handful of situations where i didn't know how to overcome some of the challenges, but i'm grateful for them since they were an opportunity to learn something new through problem solving. When most of the stuff that make the core of the games look and feel were finished, the harder part of making a game in the true sense of words came. I won't repeat myself too much, you can read more about my process of making waves in <a href="http://wp.me/p9kBlG-1W">this</a> and <a href="http://wp.me/p9kBlG-2m">this</a> log. In short, instead of dragging and dropping positions where i want the ships to spawn, assign the wanted behavior to each one depending on the wave structure and simply save all that as a prefab i need to:

Have specific spawner types. That means single enemy, waypoint enemy and squadron enemy spawner with their locations.

Make a specialized movement systems for almost every enemy type that will dictate movement direction and scale of ships and ships' children. For example, engine jet needs to be a separate object so it doesn't flash with the ship upon bullet contact but it must be properly rotated and scaled depending on the spawning position and spawner parent of the parent (yeah, even i lost it while reading).

Assign more elements to pool which slows down the compilation time and time required to start the game. Instead of pooling one ship with all the needed components i need to pool the ship prefab, jet prefab, weapon prefaband in some cases multiple weapon prefabs so the pool size for ships is actually at least three times the size in terms of object number. I'm fairly certain that it's better to have fewer objects to instantiate regardless of their complexity (number of components attached).

Manually set the spawning position of each ship in the wave. This is the worst part, it got me completely devastated. I need spawners for assigning some general behaviors and general screen position, but all the fine arrangement of ships in the wave must be done by hand. Not completely, but i need to put the ships in the scene so i can get their coordinates, then copy them into the spawning FSM of the squadron. Sure, i need to position the ships with nested prefabs too, but only once and that's it. Doesn't sound like much of a fuss, but imagine having hundreds of waves to make with some of them having double digit number of enemies that need to be repositioned upon spawning.


I'm sure some people don't even use prefabs but create instances and populate them on runtime and i presume some more C#-savvy people will find nothing unusual in this and develop their own systems for handling the situation, especially big teams. But i'm neither of those and, for the time being, i really need nested prefabs to finish what i've started. Prefabs are great game building blocks that further upgrade great tool that Unity already is and we should be really glad they are taking into account the needs of small or one man teams. I'm anxious to see further improvements that the new prefab system will bring to the table in the future versions.
« Last Edit: July 18, 2018, 12:44:52 AM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #55 on: October 22, 2018, 11:39:51 PM »

Log 16: Cutting halves in half


When starting out with a game in a powerful engine like Unity it seems like everything is possible and that you can make a game in a finger snap. While everything is possible and you can make something playable in a relatively short time span, making a complete game usually takes a fair share of time, especially if you are a newbie to game design, engine itself and programming.

As far as i can tell, illusions of grandeur are quite common when you begin developing a game (turns out i was not immune to it too). Enthusiasm doesn’t seem to whiff away quite easily as it is fueled by actual things getting done, but after a while you get to realize it will take too much time to make it like you want it to be, or you simply don’t know of a way that is fast and simple enough. If you want to complete the game, you will need to strip it of layers and keep it simple. It hurts and feels like taking away the originality and personality from it. Not only will you have to cut it in half, but you will probably need to cut that half in half too, reducing it to meager ¼ of the game you meant to make.

One of the things i had to cut again and again was the weapon system i was quite proud of. You can read about it here and here’s the short version:

30+ weapons in game;
5 levels of each weapon;
3 weapon types (bullet, energy, missile, each having a corresponding multiplier against normal, armored and shielded enemies);
Player can hold two weapons at the same time, but fire only one;
You can’t have two same weapons of different levels equipped;
You can’t have two weapons of same type equipped;

You have Bullet Weapon X Level 1 equipped as active weapon and Energy Weapon X Level 1 equipped as inactive. After blasting the enemy transport you come across Missile Weapon X Level 1 and pick it up. Since you don’t have it equipped in any of slots, it will replace the active weapon and eject Bullet Weapon X Level 1.

If you wanted to replace the Energy Weapon X Level 1, you could simply switch weapons to make Energy Weapon X Level 1 active and replace it. This would be a common occurence for adapting to the enemy types because of their vulnerability or resistance to certain type of damage.

I could make things simpler in design and coding by simply omitting the part where the replaced weapon is ejected since there’s a small chance of picking it up by accident since it involves pressing a key while you hover over the weapon. However, two player mode requires that feature for the weapons to be interchangeable between players and that is a great way to improve cooperation, gameplay and combined firepower.

Reality check!

Due to design limitations (limitations as in 150 weapon variants) i had to make a hard choice that can affect the future gameplay on upgrading the equipped weapon and few solutions came to my mind.

1. You can only upgrade the weapon if you pick up the exact weapon

That way, either equipped or not, the weapon in players posession is upgraded to the next level without any ejection which only happens when you are picking up a weapon you don’t have equipped. While challenging with high long-term impact on decision-making, you only have 6% chance of getting the same weapon from the transport which is slim to none. Needles to say, a bad option.

2. Equipped weapon level transfers to pickups

Whenever you equip a weapon that is not equipped it is always at level 1, but when you upgrade any of the weapons on ship to level 2, the weapon you replace the level 2 weapon will also be level 2. Basically, it would be a kind of cheating, since by dropping and re-equipping active and inactive weapons, you could get all equipped weapons to a higher level.

3. Weapons upgradeable only by picking up the same weapon

To make it more viable, one should increase the chance of spawning a weapon you already have.

The maths on this one are simple, though a bit hard to code. You have 25% of transport spawning active weapon, 25% of spawning inactive weapon and 50% chance of spawning a new weapon. This comes with a different kind of trade-of. Though 25% is a lot ot may happen that you rarely run into a weapon you want to upgrade. On the other hand, you may always run into a weapon you already maxed out. This discourages experimentation since you will always want to hold on to your maxed out weapons, no matter how good or bad they are. There are no bad weapons per se, but holding on to weapons of the same type greatly decreases success.

4. Weapon upgrade pickups

Though not originally meant to be implemented, this could pose a good solution combined with approach 1 or 2. It is simply a kind of a joker card which levels up your active weapon without worrying if it’s the same one. You pick it up, the active weapon gets upgraded and you just keep on blasting.

The basic idea was for the player to drop the currently equipped weapon when he picks up the new one, so if a mistake is made (though hardly possible, since only hovering over it won’t do – you have to press a pickup key too) player can simply pickup the ejected weapon again.

Resolution

I don’t know about you, but i got a headache just by reading this. You see how easy it is for things to get out of hand for every single layer of stuff you intend to add? Amount of work increases exponentially for every feature added. Not only did it get overly complicated, but it got to the point where it would depend on chances of picking up weapons that would be extremely hard to tweak properly. And all that doesn’t guarantee that you won’t end up in situation to have no proper weapon to amswer the challenge on the screen, which is unacceptable.

On top of that, i wanted to implement weapon overheating mechanics, but to be honest, i haven’t played any game except Jets ‘n’ Guns that has it, and that game has a completely different concept.

In the end, the whole system got stripped down to bare essentials, and an easy to understand concept:

You start with all 3 weapon types on ship (basic weapons);
No switching – you have a button for firing every weapon (with a small delay between firing a different weapon, something like auto-switching);
Automatic picking up, you don’t need to press a key while hovering over a weapon to pick it up;
When you pick up a weapon, it replaces the one with the corresponding type on the ship and the old weapon does not get ejected;
No weapon levels, which brings number of weapons to a manageable number (maybe i’ll put SOME levels in the future, but i doubt it);
No overheat mechanics, it would add another layer of tweaking which would require enormous amount of time of testing;

Much better and easier to grasp.

After a while you don’t look at the striping like something that made your game bland and simple, but as a salvation from meaningless work that would probably be too complicated for you and not turn out well. Obviously, perfection is not a thing to strive for, especially if you are a solo developer. Much bigger games suffered for trying to achieve it. So, keep it simple, and cut, then cut again.

Other than that, the game is coming along pretty good, here's some eye candy.





You can see them in full 60 fps glory on my twitter.
« Last Edit: October 23, 2018, 05:03:51 AM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #56 on: December 25, 2018, 11:55:22 PM »

Hi guys,

i'm glad to share a small teaser i made for the game!





Also, there's already a few tracks for the soundtrack by Mlada Fronta and Cryocon, you can take a listen to them via youtube or soundcloud.





https://soundcloud.com/fat-pug-studio/sets/rick-henderson-ost

IndieGoGo campaign is coming soon Smiley
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #57 on: December 28, 2018, 11:09:59 PM »

How i made my IndieGoGo campaign, part 1

After more than two whole years of toiling, sleepless nights, stiff fingers and dry eyes, i finally reached the point where i’m ready to show something more complete to the world and prepare for the crowdfunding campaign that will help me bring the game to a final release.

While Kickstarter clearly enables a wider audience, it is not available in my country so i didn’t have much choice of a platform for crowdfunding – IndieGoGo was basically the only way to gogo (sorry for the pun).

Preparing the campaign was a really tough process and i admit it took me a while with all the other things i have to do in my life.

First of all, i had to explore the possibilities and limitations of the platform and how to fit them to my needs.

Albeit with a smaller reach, IndieGoGo has some clearly better features than Kickstarter. InDemand helps you gather the funds and build the community even when the campaign is over. Of course, you need to reach your goal before that, so you need to find a reasonable amount that will help you finish your product. Not too small, but not too large either. I had a lot of trouble in finding that sweet spot, but in the end i decided to ask for a bare minimum that will make me finish the game, no more, no less. Everything over that will be used for stretch goals. I have a lot of ideas and i can already figure out how much will they approximately cost, so i’ll see how the campaign goes and add them during the campaign.

Another interesting feature that IndieGoGo offers is flexible funding and you are probably wondering why didn’t i opt for it if i had to choose IndieGoGo. The amswer is simple, i don’t want to have obligations of given promises if i don’t reach my goal, it would not be fair towards the backers. I need funds to make my ideas to become reality and acting in any other different way than being completely honest and transparent would be irresponsible.

Luckily, i already have enough experience (that costed a lot) and have gathered data to know how much will the rest of the game cost if i want to do it my way. So herе’s a breakdown that will be visible on the campaign page when it starts:

Backgrounds – You noticed that the teaser only has three backgrounds. To make the game more visually pleasing i need 20 backgrounds in 5 thematic colors (red, green, blue, purple, yellow), each costing 45-70 USD per piece, which comes to roughly 1.500 USD since, besides the regular artist hours involved for making them, some additional hours will be probably needed for fixes and adjustments.

Additional gfx works – Additional graphics include finishing the Rokh Raiders sprites (the sixth faction that has not been finished), background elements, bullets, special effects, explosions and works on the Galaxy Database. I approximate that 1.000 USD is needed for all of that. It might seem much, but bear in mind that’s only 33 hours of more or less standard artist pay, or 4 eight hour work days, which is a really, really short amount of time when you look at it.

Translations – They cost around 0.1 USD per word for translating the basic user interface and options, but a lot more if i plan on translating the Galaxy Database. But for the basic translation into French, German, Italian, Spanish, Portuguese, Chinese and Japanese, i approximate that around 100-200 USD will be needed since the game does not have many words.

Fees and taxes – Steam Fee is 100 USD and Indiegogo takes 5%, and then there’s income taxes too, which will come around to 10-20% for this amount.

Music and SFX – Music licenses are very expensive to obtain, but i am in contact with several musicians that are willing to let me use their music for an IndieGoGo and revenue cut. Still, it will probably come to around at least 10% of the funding. I have been a music producer for more than 15 years so the sound effects will be handled by myself. I could probably do the music too, but i don’t have enough time and there are a lot of people that do it better than me anyway.



When you add all that, it comes to about 3.000,00 USD, which is an amount that i’m frankly scared of. I invested a bit more than that in the game until now, and seeing that it was enough only for the half of the graphic assets that are needed for the game of this caliber is frightening.

While the game itself is not a revolutionary product that will break the genre, i do believe it stands out a lot among lots of shmups that are out there at the moment. First of all, the graphics are reminiscing of golden age of Amiga 500 games, beautiful 16-bit pixel art with no rendered or pre-rendered 3D graphics, but with dynamic lighting. I haven’t seen it in a shmup for some time. Music in the game (at least the tracks i collected until now by Cryocon and Mlada Fronta) is damn fine and i plan to make it on par with the iconic soundtrack of Hotline Miami or old-school hits like Crusader, Unreal Tournament, Rollcage or Project X (you can listen to the tracks here -

)

Anyway, back to the campaign. At first, i didn’t know what could i possibly offer to the backers beside the game itself. Ok, Early Access is something that i planned anyway, so i could give away that too. I plan on selling the soundtrack separately (all proceedings will go to the artists), so that’s a cool perk to add too, but what else? When i started making the game, i had illusions of grandeur, like every fresh gamedev out there. Rick Henderson as supposed to be a huge single player experience with levels and an intriguing story behind it. When reality struck me, i decided to drop the whole predefined levels concept and i had a lot of ships and weapons descriptions left behind unused. I got to an idea that they can be used for Galaxy Database, a small book of enemy ships and player weapons with their stats, description and a small backstory for each one of them. Lower tier backers will get it in PDF, while high tier backers will be getting a nice hardcover booklet.

To further engage the potential community of backers, one of the perks will be the Community Ship Designer. Backers of that tier will have the exclusive access to hidden Discord channel where they will be able to create an enemy that will appear in the game together. Sure, it will be a challenge for me since it has to be in certain design boundaries (and maybe technically, who knows what people can think of), but i think it’s a rather cool reward.

Name on a blimp is purely cosmetic. If you really like shmups and you got a lot of dough to spare, your name will appear on a space blimp with a large display on it (think Blade Runner).

Finally, with only 5 available, you can design you own enemy (not a boss though) by working with me and a graphics guy. Might not seem as much, but creating an enemy that is interesting and balanced is quite time consuming, let alone 5 of them.



Ok, i’ve got the amount i need, backer rewards and now i need to present the game in the best possible light. I hate punchlines and single sentence descriptions, but it needs to be done. Put your whole game in one sentence. It’s like an elevator pitch, but you don’t even have the time to ride to the first floor, just poke your head through the elevator door and shout one sentence. So i came up with Endless horizontal-scrolling shoot ’em up experience with infinite replayability. Well yeah, it’s infinitely replayable, but in a way that it will never get boring. I decided not to use terms like procedural or roguelike since, honestly, i believe players already have an aversion when they read those words. It is endless since it doesn’t end, you can only die. Obviously, it’s horizontal-scrolling shoot ’em up, and i like to call it an experience, since it’s an audio-visual experience made for connoisseurs of the genre and style.



I made sure to be perfectly clear how the game loop functions, how the weapons/armor relations work, even if it’s dead simple to understand and provide as much material as possible for the players to see how the game sounds and looks like. Screenshots were easy to take, but resizing images to fit in IndieGoGo’s predefined image sizes and remain pixel perfect was a pain in the ass. Preparing a small teaser took days of work and i can’t say i’m happy with the final result in terms of video quality. Unity’s inbuilt recorder compresses the video even on high setting and artifacts appear when there’s a lot of stuff going on on the screen, but i believe it’s good enough to be used as a proof of concept and let the backers know what’s it all about.



Unfortunately, i wasn’t able to provide the demo since i think it’s too early and i’m a bit of perfectionist. I regard that as the biggest flaw of my campaign and i hope it will do well even without it.

One of the things that really makes me proud and that i want to point out is the dedication to inclusion. I want everyone to be able to play the game. I’m positive that colorblind modes will probably include more tweaking than simple filters implementation, but turning off shakes and flashes will mean a lot to someone who’s suffering from problems related to photosensitivity but like shoot ’em ups. High-contrast mode is going to demand quite an overhaul, but if all goes well i’m all for it.

My fears? Shoot ’em ups are quite a niche of a genre so i’m scared how many people will be interested in a game like Rick Henderson. Deep inside i believe there’s a lot of folks that want to see something new that’s not a bullet hell or reissue of an old classic, but a modern envisionment of the classics that marked an era.

You can find the pre-launch page here (https://www.indiegogo.com/projects/rick-henderson/coming_soon/x/15550954) and if you had a good read and are interested in seeing this project come to life, subscribe to be notified when the campaign is launched or share it – every bit helps!
« Last Edit: January 03, 2019, 12:25:09 AM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #58 on: January 03, 2019, 02:22:03 AM »

How i made my IndieGoGo campaign, part 2

Needless to say, i made a lot of research on best time and best ways to launch the campaign. Here's the graph from medium.com on Kickstarter campaigns from 2014.



Obviously, i missed the train for December, which is one of the best months for launching the campaign. It makes sense, people spend more money in the holiday season and they're a bit dry in the following month, which is January, and the worst month for crowdfunding campaigns. I don't have time to wait for March, which is the next decent month before summer, so i suppose i'll be biting the bullet, launching in mid January, maybe beginning of February and hoping for the best.

Project duration is a typical 30 days. It's silly to make it last shorter than that since i don't have a lot of visibility anyway, but lasting longer is also not an option. Why? Psychology is a strange science, shorter durations increase a sense of urgency in people and may help them decide earlier so they don't miss the deadline.

I believe i shouldn't press myself to launch as fast as possible, but once the wheels start turning when you press that big pre-launch button, there's no going back and you should work on making as much people as possible subscribing for the regular e-mails that will lead to the official launch and the notification of the launch itself.

They say that the conversion rate from the subscribers is a mere 5%, so if everyone leaves a basic pledge of 10 USD, i need about 6000 subscribers if i want to be sure i will reach my goal. I don't think i'll manage that big of a number, but i'll keep tracking the numbers and when the number of daily subscribes start falling down, i'll announce the campaign start. So far, i collected 24 e-mails in a few days, which is a number i'm quite happy with to be honest, considering the scope of the project and the type of the game i'm making - a niche arcade shooter. But, to be realistic, that's not nearly enough, especially when you take the conversion rate into account.

When you're having a project like this, it's quite natural to pay attention to even the smallest details. That said, even the time of the day when you launch the campaign is of utter importance. In my case, that will be 7 o'clock in the morning, which is just the time people get back from lunch on the east coast in the United States, which account for the largest crowdfunding contributor in the world. You get back from lunch, and before you get back to work, you decide to check IndieGoGo a bit if there's something interesting, and there it is - just launched! Wednesday also looks like a promising day. On monday, people are in a grumpy mood and they need to get to speed to work, not much time for stuff like this so it's a big no-no. Tuesday's better, but not as good, and Thursday is too far off, you are usually starting to wind down and think about the weekend. So Wednesday it will be.

One of the most discouraging facts from the Kickstarter statistics is that two thirds of the campaigns fail miserably. I try not to think about it too much. Maybe their goals were to far off? Maybe their campaign was lousy? To be honest, there's a lot of campaigns out there looking for much too money for what they're offering or having a campaign that's written poorly. Asking for too much money is one of the main issues people tend to overlook. It's better to ask for a smaller amount since people will pledge for something that seems achievable, fair and has constant income of pledges. If you're on a train that's going to be hard to catch - nobody will want to ride it. The funny thing is - when you fund the project, even more and more pledges will usually start coming. People want to give their pledge to something that already succeeded and they know they'll get the product they pledged for.

First 48 hours of the campaign are crucial on IndieGoGo, since the campaign will only appear in search results for the first 48 hours after launch. After that, you need to have at least two pledges to keep it searchable. Not only that, they recommend that you already have 30% of the funds needed secured and pledged in the 48 hours of the campaign, which, in my case, is 1.000 USD. It's big bucks for me, and i don't think i'll be able to provide this via friends, family and so on. Where i live, it's 3 monthly wages so i think it's better that i prepare that demo for launch so i gain more traction and attract more people.

So, the thing i need to do is to step up on gaining subscribers by regularly posting the progress, work on the demo and shout everywhere. Here's the list of the stuff i did lately:

I opened the account on itch.io, but the game is not showing up in search since there's no downloadable content. There was a small surge of visitors from Twitter on the day i listed the game, but since then no views at all, only one follower and that's it.

I opened the accound on GameJolt (few moments ago), the game is also invisible there, so i don't expect anything.

I posted a teaser on r/shmups on reddit, there's only few likes and that's it. It's a small subreddit, so i plan on posting the teaser and some text on few other subreddits like gamedev, indiedev, and unity2d.

I posted a devlog with teaser on hutonggames (makers of Playmaker which i use), shmups.system11 forum, there has been no significant response.

Obviously, the way to increase visibility is to publish a demo which will be downloadable on itch, gamejolt and steam (when i make the profile) and then we'll see how it goes. Launching the campaign now would fail 100%.

So, off to make the demo!
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #59 on: February 07, 2019, 12:23:42 AM »

Hi guys, i landed an interview with Play! zine, i hope you'll like it, there's a lot of interesting things about dev in general.

I'm having trouble posting it, so here's the link: http://www.fatpugstudio.com/news/interview-with-play-zine/
Logged

Pages: 1 2 [3] 4 5
Print
Jump to:  

Theme orange-lt created by panic