A very long due dev log
It's been a while since I posted here. I had a major setback, because, well... my mother did pass away last month.
It's a warm welcome to be back and see how people got interested on the project over the past two months. At the moment of this writting, this very dev logs sits at 25k views! And we are happy to see how our Twitter is expanding rapidly (we got liked by #haxe and #openfl -- SENPAI NOTICES US!).
We also got invited to a special event on itch.io (where the game is hosted at) but more on that later.
This would be, probably, the best time consuming dev log entry ever, so bear with me and please stick around because this time I'm really gonna take my time. This will cover from old stuff to new stuff, in that order :)
To upgrade or not
HaxeFlixel + OpenFL combo
Last month, a new HaxeFlixel version came up. It was major important release because it now supports latest OpenFL, came with a series of improvements as well.
However, in my case, there was a major issue about shaders. We can live without them, but there were specific moments where we had graphical glitches that were located at the very root of OpenFL. Also, there are currently issues with blend modes. New per sprite shaders should make everything look the same, but it's really time consuming for me to go back and replace the images and trying to code a equivalent-looking shader.
So I guess I'm gonna wait to jump on the latest version.
The version of Tiled that we use to do maps was seriously outdated. We updated so we can use the latest features, specially those introduced this year. The most important features would be the infinite maps, and in our case, not sure if already available or not, but the mirroring of tiles. That will allow us to make our multiplayer arenas really really quickly!
We've been working on the basic online components. Well, I saw 'we' but it's actually @PXshadowHF 's work. We managed to connect with each other and see the other player running and shooting :D - super excited to know how that turns out!
New game mode
We added a new Last Man Standing game mode. Basically, I edited out the round based Versus, to disable respawn and do a
players.countLiving() each 3 seconds or so.
This new game mode will allow us for a upcoming Battle Royale mode. A mode everyone is soooo hyped about. Lets face it tho, is really fun to play, so if we can give it a go, why not?
However, we wouldn't be copying PUBG, we should go back to the roots and see what's really is all about.
Easy to pick, hard to master
One of the most welcoming things to newcomers is easy controls. You grab the joystick and you are playing. You press a button and you have the same chances of killing the other players, as they do.
One of my main goals, from day zero, is that SCA should be easy to pick but hard to master.
That is, there should be inside the game, a much more advanced way to use the same controls to perform different things, but those things shouldn't affect the very first goal.
This is good from many different perspectives. First of all, increases the player base and covers a much bigger audience that might have fun. The newbie can stupidly kill and inspire rage on the pro but the pro can do fancy moves to kill newbies.
That bring us to the topic of what we call, the genkidama:
A move that didn't make much sense on the round based versus, but really shines by accident, on the Last man standing mode. Basically, you hold a button and you start to create a big energy ball. You can't shoot or move while you do this. You can release the button and cancel it. But if you go on, the ball end ups exploding and killing all players in the map. This, of course, ends the level for everyone.
It's inspired, somewhat, on the nuke button from Lemmings. This brings us to the next topic, in a moment. A really good old game. When I was a kid I was in awe when I discovered that button. By extension, I was in love with the people that actually put that button in. Why? Why they did it? But actually... why not?
From different playtestings, we noticed a couple of things:
- The move can be used to lure in other players. You can show the intention of creating said bomb. While you do that, you are highly vulnerable. Other players wouldn't want a level switch OR would want to seize your vulnerability, so they go after you. You cancel the bomb and you are now ready to face your nearby attackers.
- Puts the newcomers and pros at the same level, at that very moment. This is hard to explain, because it involves a couple of things. The general idea is that newcomers can have fun by just killing everyone. It's like "if I don't win, you won't either".
- Balance things out. Players like to have matches against other players of similar skill level. If a newbie faces a pro, is highly likely to bomb the level. That won't likely happen between two newbies or between two pros. And why the balance? If a pro faces a newbie, the winner of the round would likely be said pro. That's not fair, so the newbie has the chance to bomb everything, and everyone starts again.
Inspirations... and the main story mode
I've been asked before where I get my inspiration. Well, basically, from everything that I love, I put everything together in a way I think it fits. This can't be possible, of course, without external thumbs up. Also is highly neccesary to see if you are in the right path, by playtesting what you do and getting feedback from other people, aka: your players.
If helps, where's a list of creations that somewhat, shaped SUPER Cute Alien:
- Max Payne
- Super Mario Bros (of course!)
- Battle Block Theater
- Duck Game
- Soldat 2D
- Dragon Ball series
- Mortal Kombat series
- Happy tree friends / Itchy and Scratchy
We always thought that the best games/movies features simple stories but complex characters. This is what our game is all about, story wise. We could mention a couple of creations that serves us as inspiration:
Where everything comes together: THE CHAINSAW
That's how it looked. However, it needed some love. Otherwise, it just behaves as another "sword".
The new enhanced version has a few extra steps to make it awesome:
- A player is killed, a ragdoll is created
distance joint is created. This basically is used to move a physics body around a reference point. Setting the
Y manually of your physics objects is a no no. For this, it uses a special
bone on the chainsaw skeleton:
- The location is updated each frame, so the torso of the ragdoll moves around this point
- As long as the player holds the button, random gibs will spawn. Random sounds will be played too.
- The chainsaw is replaced by a bloody version.
- When player releases the shoot button, this
distance joint is removed, so the body falls naturally.
- Velocity of the guy using the chainsaw is translated to the ragdoll. This is to make the ragdoll follow the momentum of the attacker. If he's moving left and releases the button, ragdoll will move to said direction.
Also, this spark effect is also featured:
Using same reference point on the chainsaw, a tiny invisible sprite is created to detect collision. It creates sparks when it touches the map.
After some tweaking, here's how it finally looks:
Yes, you can "grab" your enemy with the chainsaw, as long as you want. The movement of the killed character happens naturally: it follows the very same movement of the chainsaw fire animation, which is great.
And now, on the advanced part. The chainsaw actually features some extra bits that pros will really like, the jump chainsaw attack:
This idea was from @Aydius, and love it, since is related with a game that I love, Mortal Kombat!
If you attack a player with armor, basically, anything won't happen:
UNLESS you do an advanced move. Jump, press down, and shoot!
This will make the player go down really fast and do overhead damage. This kind of damage breaks armor and lets you kill the other player:
It's really heart warming to go back and do what you love, specially after such a long ordeal. Is lovely to see the awesome support from everyone, so thanks everyone for your words, ideas and for tracking our progress. I guess we did a thing or two since we started :D
This took longer than expected! Hope you like this very long post that almost broke Markdown.
What comes next would be a new set of polishing and new content for the upcoming itch.io summer sale!
Cheers and thanks for making it til the end :)