Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411488 Posts in 69371 Topics- by 58428 Members - Latest Member: shelton786

April 24, 2024, 02:17:41 PM

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


View Profile WWW
« on: December 20, 2016, 03:44:42 AM »

DEMO

Steam - https://bit.ly/2FayeNc
Itch - https://bit.ly/2Y5Miz0
GameJolt - https://bit.ly/2XWncCr

Introduction





Hello guys,

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. If things turn out well, i might have a surprise artist for music which you all know well, but let's not talk about that yet Noir

More Information

Website - http://www.fatpugstudio.com
Forums - Well, here Smiley
Twitter - https://twitter.com/FatPugStudio
Tumblr - http://rickhenderson-game.tumblr.com

For the beginning, check out some art!

Backgrounds:







Characters:

Rick Henderson


Ben


Thoraxx, the Pirate leader


Ships:

Power Armor


Provoker


Reaper


Piranha


Firestorm


Marine Carrier


Hunter Seeker


Asteroid Cannon


Player Ship - Basic model


Work in progress shop screen


First level will be completed in a few weeks, so i'll keep you posted, and probably upload a game video itself. Things should move faster then, most of the mechanics are complete.
« Last Edit: August 04, 2021, 11:17:35 PM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #1 on: December 21, 2016, 01:54:47 AM »

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  Hand Joystick



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 Smiley


« Last Edit: December 21, 2016, 04:19:50 AM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #2 on: December 22, 2016, 07:17:29 AM »

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  Hand Any Key

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:

« Last Edit: December 22, 2016, 09:30:14 AM by Fat Pug Studio » Logged

alvarop
Level 9
****


ignorant


View Profile WWW
« Reply #3 on: December 22, 2016, 07:23:47 AM »

Looks promising. Tracking, hyped to see where this goes!
Logged

i make games that can only ever be played once on http://throwaway.fun
Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #4 on: December 22, 2016, 09:30:27 AM »

Thanks Alvarop, means a lot to me, truly!
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #5 on: December 22, 2016, 01:42:01 PM »

Log 2.1: Flamethrower complete! (Days Left: 252, Total Expenses: 1.094,46 EUR)

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 Roll Eyes) 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!  Hand Joystick

« Last Edit: December 23, 2016, 02:02:01 AM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #6 on: December 28, 2016, 01:19:40 AM »

Log 3: Introducing the Rift Miners (Days Left: 246, Total Expenses:  1.230,19 EUR)

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 Hand Joystick

« Last Edit: January 08, 2017, 08:15:39 AM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #7 on: January 08, 2017, 09:12:11 AM »

Log 4: The Anatomy Of An Endless Mode (Days Left: 235, Total Expenses:  1.430,19 EUR)

Some time before new year i realized that the volume of work required to make both story and endless mode for the game is too much for me to finish in the amount of time i have given myself. Besides work, i have a small child, and the only hours left for work are after the little one goes to bed, which can be exhausting in the long run. I made a slight reorder of priorities - finish the endless mode first, give people something to play, put it up as an early access title, then work on the story mode.

Besides having to finish all the graphics, audio, and mechanics stuff completely much before planned, the challenge of making the endless mode itself presented. Of course, for it to be interesting, it has to be semi-procedural. How is it done?

Rough Construction

First level:

3 + 0 60 seconds waves with a warp sequence between each of the waves to give player time to rest. At the end of the last wave, you fight the random variation of the first level boss, and warp into level two.

Second level:

3 + 1 60 seconds waves with a warp sequence between each of the waves to give player time to rest. At the end of the last wave, you fight the random variation of the second level boss, and warp into level two.

You get the idea how it goes further. When all the levels are completed, you start from level one but on a much tougher scale. What does that mean? Points, enemy movement, enemy shooting speed, enemy bullet damage, enemy health variables and so on, they are all multiplied. As it name says, it's endless, and the goal is to get as much points as possible.

Wave design

This one was a bit harder to implement. Around the screen, 20 spawn points are arranged (five for each side of the screen).



Prefab pool for each type of enemy is made and squadron combinations of all enemies were made. Each is assigned a progression level, which is basically a threshold for appearing (or not appearing). The variable enables the algorithm to avoid spawning too many or too tough enemies on first levels, and too few and too weak enemies when you're already on the higher levels. Separation into prefab pools and squadron combination allows us to have a variety in spawning a combination of hand made patterns and waves of many randomly scattered enemies of one or more types.

I must admit that Unity maybe wasn't the smartest solution for this type of game. It has lot of possibilities, but every one of them must be carefully tweaked and automated for the system to work as intended. For example, i don't want to make duplicates of all the enemy squadron combinations for every movement direction, so i had to make a script that automatically flips the sprite, shooting direction and movement direction according to the position where the enemy wave spawned (if it spawned in one of the spawners on the left side of the screen, its sprite is automatically flipped on the X axis and it's movement is set to right). For enemies moving along the waypoints, this is omitted and they automatically align themselves according to the waypoint direction. Waypoints allow us to make interesting waves rather than using only linear moving enemies.

Here's one of the early waypoint making images:



So, to make things interesting, we have a combination of hand made enemy patterns, procedurally generated enemy waves of one or more enemy types, randomly (but with a distributed chance) selected spawn locations or waypoint movement patterns and different boss variations. To make things even more interesting, there's a slight chance of events (asteroid field throughout the entire level and such things). Only things predetermined are level bosses (though they are also varied by their types which are basically shooting and movement patterns), and ships carrying power-up which MUST appear every wave for the player to progress. They drop a random weapon/equipment/power-up, which can be changed by shooting it.

The progression level also determines a perk selection screen activation where (similar to crimsonland) you can choose to cooldown your weapons faster, have more damage on energy or bullet based weapons, get a score multiplier etc.

Backgrounds randomly change after each wave (warp) so that's not boring too. They are chosen from the array and removed from the array once they appear. When the array is emptied, it fills again, and background change randomly again. Same thing goes for music.

There it is in a nutshell. It needs a lot more work on testing and balancing, but i hope you will get to play an alpha of an endless mode in a month or two Smiley

To keep you interested, here's a pic of another faction, the Paragons, which utilize cloaking and phase shifting (basically disappearing and appearing on random coordinates of the screen).

Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #8 on: January 13, 2017, 12:31:49 AM »

Oh hai, i need your help, respected Tigsource community!

I've testing some background and sprites, since i'm having doubts on using the outlined ships, at moments it just looks horrible. Small ships are a big problem, 1px of outlines looks too much on a 16px ship. Big ones look ok. Also, without outlines and stronger contrast, smaller ship tend to be barely visible on bright backgrounds (so i thought of omitting them completely).

So i made an image for comparison, and i need your opinion. There are five types of sprites present for the small guys which pose the biggest problem:

Dark purple outline
Pitch black outline
No outline
High contrast sprite with outline
High contrast sprite without outline

And two big ones, which are only with and without outline.



What do you like the most?
« Last Edit: January 13, 2017, 12:48:02 AM by Fat Pug Studio » Logged

EvansBlack
Level 0
***



View Profile WWW
« Reply #9 on: January 13, 2017, 03:11:22 AM »

Big purple and yellow ships without outline are looking veeeeery good. The smaller ones are just meh (with or without outline). It's like it's been drawn by different people. Big ships are drawn by the professional and the smaller ships are made by an amateur. Anyway i think you should not make your ships THIS small. I have astigmatism and just looking at such small things makes my eyes hurt. So it's baaad, m'key. But again, big ships are freaking amazing!
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #10 on: January 13, 2017, 03:52:40 AM »

They're actually drawn by the same guy, but i though 16x16 ships would look good. Looks like i definitely won't be going under 24x24 or 32x32. It looks ok on it's own but on the background... No No NO
Logged

surt
Level 7
**


Meat by-product.


View Profile
« Reply #11 on: January 13, 2017, 08:21:20 AM »

I like the small ones with the outline.
Without they just look like decorative background elements.
Logged

Real life would be so much better with permadeath.
PJ Gallery - OGA Gallery - CC0 Scraps
Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #12 on: January 13, 2017, 09:32:05 PM »

Thanks for the opinions guys, they mean a lot to me. I'm in a state of confusion, i guess i'll make a game fully with outlined enemies, them try how it looks with and without.
« Last Edit: January 16, 2017, 06:57:12 AM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #13 on: January 23, 2017, 06:02:15 AM »

Log 5: Enemies (Days Left: 220, Total Expenses: 1.430,19 EUR)


Paragons: 8 ships
Pirates: 12 ships
SunDyne: 5 ships
Terran: 4 ships
Rift Miners: 7 ships
Rokh Raiders: 0 ships

Total: 36 ship + asteroids, pickup boxes etc. The plan is to make about 10 ships for each faction, so that totals to about 60 ships, which is more than enough to keep the endless mode interesting for a long time.

The plan is to make about 10 ships for each faction, though it's a lot of work to make each ship unique in design and attack formations and weapons. So i started modyfing some of them. For example, the Pirate Marine Carrier has normal and elite variant, the other one is tougher, and spits out elite marines.

Regular Pirate Marine Carrier


Regular Pirate Marine


Elite Pirate Marine Carrier


Elite Pirate Marine


So these days are all about designing enemies in a sense of their HP, attack power, bullet patterns etc. After the design of all enemies is complete, i'll start putting them in waves and further tweaking power and the threshold of their appearance. The good thing is that the big part of graphical assets is complete, so the expenses are coming down, so i might even finish the game in under 3k euros.

To keep things interesting, here's a little gif of player being shot by EMP weapon. Doesn't do much damage, but you're pretty much screwed if screen is already full of bullets. Probably gonna tweak it a bit.





Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #14 on: January 26, 2017, 06:18:58 AM »

Log 6: Small Recap (Days Left: 216, Total Expenses: 1.530,19 EUR)

Well, i think it's about time to (after a year of learning and developing) tip the percentage of game completed to 20%  Grin

Anyway, my last devlog was 4 days ago, and i started tracking things more seriously.

Small tasks are in Wunderlist, so they can be quickly added and quickly disposed of in any time and anywhere. It's also quite convenient for jotting down a quick idea.

I use Trello for communication on ideas with the artist and keep all the stuff there for a sense of visual direction.

Since Unity implemented the cloud collab stuff, i can also write down stuff i did and see it in collab history.

There has been quite a few problems, but also a few acomplishments in the last few days, it's actually pretty great to go through the list and see all the things you have done, keeps you motivated.

So here's the list for the past 4 days:

Design of the swarm missiles weapon, though it may require an overhaul to make them more random with some sort of unnecessary crazy loops to compensate for their number.

Design of the Randomizer (work title) weapon which shoots a lot of particles but to compensate for their number they move in a random forward pattern.

Design of the shield with regeneration timer and connection to the shield integrity bar. Still needs connecting to the heat transfer mechanism (when you get hit, shield takes the damage, but your heat level increases).

Design of the Auto Cannon Drone. It tracks closest enemy, rotates towards it and fires. If on enemies are present, it stops firing.

Design of the Ripper, basically a manual shooting shotgun, that was pretty easy. It shoots as fast as you can click, but it heats a lot.

Design of the Flak Cannon. Like the real Flak, it has proximity activated "fuse". At the certain distance from the enemy it explodes and blasts into a lot of small pellets.

Design of the Proximity Mines. We got regular mines just floating in space, but i decided to put a bit more challenging ones. When you get near one, it starts slowly moving towards you until you destroy it. I also designed the EMP mines that will work the same way, but deal less damage and f*** up your screen with glitch effects. Also updated the mines with random rotation and blinking red light so they're a bit more interesting looking and easier to spot.



Artist started working on explosion for destroyed enemies, explosions for bullets, and bullets themselves. There's already a lot of ships that require a lot of time for movement and shooting patterns, so we put the design of the next round of ships on hold until the existing ones are finished.

Tons of bug fixes, as usual  Hand Any Key

I'd post a gif as usual, but everything's done with placeholder graphics, so i'll post something juicy next time.





« Last Edit: January 27, 2017, 03:05:41 PM by Fat Pug Studio » Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #15 on: January 30, 2017, 12:40:24 AM »

Log 7: Swarm Missiles (Days Left: 212, Total Expenses: 1.530,19 EUR)

I don't know how smart is to waste 4 days on a small feature such as one of many weapons in the game (especially with only few months remaining), but i just can't do things half-assed.

Here's the old one, which wasn't quite satisfying. The rockets seem to go in a predefined pattern, not randomly.



Here's the new one, so much better. Sorry for the framerate, i'm still not using sprite atlas so there's a lot of draw calls. That will have to be the next thing to address.

« Last Edit: February 12, 2017, 12:10:51 PM by Fat Pug Studio » Logged

KaleidoGames
Level 0
***


Making awesome games for real gamers


View Profile WWW
« Reply #16 on: February 07, 2017, 03:04:08 AM »

Hey,

Here is another dev born in early 80s. I can see your progress. It is looking good, just keep in mind that the thing that will take you most time will be designinig levels and making them right. Programming is the smallest thing from the whole thing.

Good luck with the project!!

Logged

Take a look at:


Visit our site for more games:
KaleidoGames
Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #17 on: February 07, 2017, 06:14:43 AM »

Hello  Gentleman

I'm aware of that, but i guess that's the fun part (though i suppose it can get tedious).
Logged

KaleidoGames
Level 0
***


Making awesome games for real gamers


View Profile WWW
« Reply #18 on: February 09, 2017, 03:17:44 AM »

Hello  Gentleman

I'm aware of that, but i guess that's the fun part (though i suppose it can get tedious).

It is, for Beekyr Reloaded took about 75% time designing levels and adjusting difficulty.
Logged

Take a look at:


Visit our site for more games:
KaleidoGames
Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #19 on: February 12, 2017, 01:18:12 PM »

Oh my, my coding (actually, visual scripting) alone took too much time already. But i'm kind of a newbie to the whole thing, so it's understandable. Anyway, it's time for the next dev blog!

Log 7: Upgrade system, weapon switching, and a word on visual scripting (Days Left: 200, Total Expenses: 1.730,19 EUR)

It's been almost two weeks and i've been very busy with my day job so i didn't manage to spare too much time for game, but i finally finished (for me) a very complicated thing - upgrade and weapon switching system.

Player starts out with one weapon. During the game he can pickup a variety of weapons from destroyed cargo ships. The first time he picks up a weapon, it is added as a second weapon, and player can switch between them according to situation (bullet, energy and missile weapons don't deal the same amount to normal, armored and shielded enemies). When another weapon appears as a pickup, two scenarios are possible: if the weapon is already equipped, it gets upgraded and the pickup despawns. If the weapon is already at maximum upgrade level, player is notified via on-screen message and the pickup stays where it is. If the weapon is not equipped, currently selected weapon is replaced (dropped as a pickup, while pickup spawns on player). While dropping the weapon is not very important in single player game and complicates the situation a lot, it is handy in 2 player game, where one player can drop a weapon for the other player to upgrade his weapon. The handy thing is that when a player drops, for example, Hyperblaster Level 4 and the other player picks it up, he'll get the Level 4 Hyperblaster too, not level 1. Since there are (for now) 23 weapons in game and the only way to upgrade them (besides universal weapon upgrade pickups) is to pickup the same weapon, that will be very cool in terms of player cooperation.

Here's a shot of an FSM




Basically, when the weapon spawns, it checks itself if it is a weapon or a pickup (by checking if it is parented or not). If it is a weapon, that means that it is player equipped and it is added to the array and the variable is stored if it is in slot one or slot two (required for weapon switching during the game). If it is a pickup, distance check state is activated. Player can only pick it up if he is closer than a defined distance from it (by pressing space, so no accidental pickups are possible). When he picks it up, it iterates through the array to see if it will replace the existing weapon (if no weapon of same type is found) or upgrade it (if weapon of same type is found). If it replaces it, the existing weapon is dropped (which means it is despawned, removed from array, spawned on location of a pickup with its firing scripts disabled and pickup indicator enabled, while next level weapon is spawned on gunpoint with its firing scripts enabled and pickup indicator disabled).

Weapon switching is, compare to the upgrade and pickup system, a walk in the park. Stored weapons are simply activated/deactivated by pressing the switch key.

Scripting this thing alone would probably take a lot more time than it did, so using Playmaker did the job pretty quick since i can try something out in a matter of seconds, not waiting to write a couple of lines with risk of making syntax errors.

But, here comes the downside. Instead of making the script that can just be copied/pasted on all weapons (have in mind that there are 23 weapon with 3-5 levels each, so that comes to about a hundred prefabs, with more to come), i have to copy/paste an FSM to every weapon and tweak the variables in each one of them. I don't have to tell you that if any larger scale fixes in logic are necessary when all the weapons are already prepared it will be a lot of work to change everything. Not to mention the possibility of making errors when managing such a tedious task.

One more thing i did is implementing the sprite atlas which reduced draw calls a lot, and boosted frame rate from 15-30 FPS to ~150. Now everything goes very smoothly. There are some hiccups, but those are due to extensive logging which is quite necessary in this phase. I also redid swarm missile logic, now they are very cool and fly in a great semi-random manner.



Also, the artist guy did some weapons art for me, some will maybe change, but i thing they're pretty good looking and quite different.



That's all for now, cheers!
« Last Edit: February 12, 2017, 01:39:08 PM by Fat Pug Studio » Logged

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

Theme orange-lt created by panic