Devlog 3: Full Gameplay Loop
Hello everyone and welcome back to our weekly check in of suffering 🤯. This week was all about finishing up the documentation and having a fully implemented gameplay loop. As such, there are not a lot of news to share this week about our progress. However, next week we'll finally start the production stage 💫, and then things will really heat up 🔥.
Art
Artsy Fairies
Our artists have been hard at work putting together the best Art Bible for our game. For them, all the work has gone into making decisions crucial for the overall style and feel of our game's visuals and putting it together in an organized and clear document for the team to follow.
Just a peek:
Coding
Coding Wizards
While the artists have focused on the documentation, so did the programmers! Putting up together an easy-to-follow, accurate, and detailed Tech Doc is really not easy work! It takes time. And to top it off we were able to deliver a fully implemented gameplay loop as well!
It's finally here!
A winnable, replayable demo!
Device-player data system
Ioana
The first step towards a score system was a way to organize the player data bound to each device, as players often switch characters while playing thanks to the tag mechanic. The way it's done is by using a dictionary that maps the device ID to the player data. A nice and neat way of sorting out data in a tag-game if you ask me, and it works!
As you can observe below, making use of the tag-mechanic is an easy way of showing the character's switching colors (and other data) between them!
Any new player is assigned a set of player data, and any disconnected player's data is removed.
Score system & UI
Once the player data was neatly set in place for each device, it was quite simple to implement a score system and the UI to show it. Here are some of its features:
- Each player's score is colored the same way as his character in one of the 4 corners of the game.
- Being the cannon means your score decreases over-time.
- Being a runner means your score increases over-time.
- Successfully hitting a runner as the cannon increases your score.
- Successfully reeling a target in (as a runner) increases your score - this feature is experimental and it will be different in production
Timer
As you can see in the gif tagged above, a timer was also added to the UI! This is part of the Game Design: the game will be organized in short rounds of 1-2 minutes. For now, there is one round of 2 minutes, and after that you get a winner (the player with the highest score), and the option to replay.
New movement system
Arthur
We wanted a new movement system, as the old one gave too much control over the player The pinguins should also be able to slide around. To make this happen I did a full rework of the movement system. Instead of just adding velocity to the players, I compare the current velocity with the desired velocity. This way I have more control over the acceleration and max speed.
For the pinguins sliding implementation I wanted to make sure that you can only control sliding left or right, but not forward or backward. So, you have no control over the speed- just the movement. Kinda like a car. I projected the input vector on the velocity right sided vector. This way I could cancel out all forward and backward movement. Then I added some slow down velocity and there is our sliding pinguins.
For the reeling I made a simple solution by applying the force with the direction to the reeler. The bigger the distance the more speed you get.
Now the pinguins can hug each other :)
Balder's Villainous Scheme
Balder -duh
Good day fellow reelers! This week, it was time for me to start plotting my ultimate villainous scheme!
And scheme I did! A lot of plans were set in stone, decisions were made, and experimentations were done.
What's that? Your family? No, I have no idea where they are.
Cantar
Alright, I have to admit... I remade the cannon like 3 times. Listen, it has to feel good! You have to feel powerful using it while still being balanced. What's the final result of all of my explosive experiments with cannons? The cantar!
But before I get into that, let's cover the process it took to get there.
Original Cannon
After last week's cannon implementation, we play tested the game and discovered the cannon does not provide players with enough time to react and fish each other out.
For this reason, I decided to try to take a completely different approach to the cannon, and for that I entirely changed up the way the cannon is handled in the game such that I can make as many weapon implementations as I want.
I won't bore you with the details, but the gist of it is that large parts of the code got refactored.
Mortar
OK, so what was the different approach I took then? Well as you may have guessed by the title, it's a mortar! What makes the mortar so different from the cannon?
- The mortars target cannot be obstructed by obstacles, since it shoots in the air and the shells fall down onto the ground
- This allowed me to canonically show a shell (bullet) arrival indicator, allowing players to escape the area after the mortar shot.
- The mortar has a large AOE (Area Of Effect), meaning it is a lot easier to aim
- The mortar targets instantly and while your shell is on the way you can already move on to a new target
- Since it has a large AOE, only the closest player switches with the mortar, any other players within range will get stunned
Cantar
Now for the real juice! After implementing the mortar it still didn't feel the way I wanted it to feel. After some more playtesting, the idea suddenly hit me: What if I combine the best of both worlds (both the cannon and the mortar), into a single weapon?
I gave this the awesome name cantar. So what does it do?
- Like the cannon, it has a desired target that it slowly aims to
- Like the mortar it has a large AOE
- Like the cannon, it can be obstructed by obstacles
- Like the mortar, the cantar takes a while to charge up, showing a nice indicator
- While charging, the player controlling the cantar can already move on to a next target
With these features combined, I feel like I've hit the nail on the head with a powerful cannon features. In addition, I've added some fun effects to the cantar to make it feel more beastly:
- A screen shake effect when the cantar shell hits
- An explosion particle effect
These effects alone make it that much better. However, in the future a lot more visual feedback will be added (such as when players get stunned, switch with the weapon, etc.)
The Result
This is the final result of the cantar.
What do you think? It feels pretty powerful right? Everything is still subject to change, and this is by no means what the final result is going to look like.
Defending
Of course, besides augmenting the cannon, I also had the augment the player with some abilities, right? Introducing: defending!
What happens as a reeler if you get reeled against your interest? What can you do about that? Well before this you couldn't do much about it, you would get reeled in no matter what. Defending changes that up to allow players to stay put when getting reeled.
In fact, when defending, the person reeling you gets pulled towards you instead! This allows for fun gameplay such as when you are inside of the targeting range for the cannon, but your friends do not want to save you at all.
So what do you do? You reel onto one of your friends! If they don't defend, they will get pulled inside of the cannons range with you, and if they do defend, it means you get pulled outside of the range, saving you. This gives them no choice but to defend and save you, even if you're playing against each other.
But what is the condition for entering defense mode? The answer is simple: you can only defend the moment you get reeled, so you have to be faster than the player trying to reel you in to defend.
To implement this, I had to rewrite part of the hooking system because someone didn't get the memo on how to use my fantastic fishing event system :(
The Result
This is the final result of defending. In this example, all the penguins are in the defending state, which results in this funny method of moving around.
As you can see, defending still lacks distinct visual feedback, don't worry though, our amazing technical artists should be on that!
That's It
Unfortunately, programming 4 took about 80% of my week's time, which was both unexpected, but also fun. The assignment was by far the most difficult one but also the most fun one.
Due to this, I was short on time and couldn't do all the things I wanted to do. Hopefully this is enough to satiate your content hungry bellies though :)
In the meantime, here's a funny gif of players being slung around due to a bug caused by my reeling refactor and some confusion from a teammate.
We hope you liked the work we put in this week, and we can't wait for you to
Come back for next week's
Start of Development
Have a blessed day! 🌟
Files
Get [Group16]ReelItIn
[Group16]ReelItIn
DAE
Status | Released |
Authors | gelearthur, Ziqqy, jens_fierens, Balder Huybreghs, Juddy24, agnesecais |
Genre | Fighting |
More posts
- Devlog 5: Playable draft25 days ago
- Devlog 4: First week of production32 days ago
- Devlog 2: Prototyping Progress46 days ago
- Devlog 1: Research & Prototype55 days ago
Leave a comment
Log in with itch.io to leave a comment.