itch.io is community of indie game creators and players

Devlogs

Devlog 10: The Final Countdown!

Tidal Treasure Clash
A downloadable game for Windows

Programming

Decomposition animation and player feedback

Hi, Donan here. This week was the first and only week of polish. Time to add some tweaks and extras to make our game feel better!

The biggest polish task I did this week was adding the decomposition animation. Having never worked with materials in c++ before this took way longer than expected to understand and get right. I used a timeline to have an event when the animation ends so we can destroy actors on the right moment. The timeline controlled a parameter of a material instance. This parameter determined how much of the object has already been decomposed.



Other tasks I worked on this week were adding particles to the attack hits, fixing some bugs and tweaking the settings of the physical animation. This last one had an issue where the character with the hat jitters when moving and no matter what settings I tried I couldn’t fix it.

That was all for me this week!

Screen Shake

Alex here!

So this being the last week and having a few game breaking undocumented features (bugs)... I decided to work on camera shake!

Unreal engine already has a camera shake system implemented and I was surprised by how nice it was. It didn't take too long for me to figure out how it worked, though most C++ implementations where about the legacy screen shake system so that didn't help too much.

I opted for creating the screen shake assets in the editor, 1 for every different screen shake we want, and then assigning them via UPROPERTY to the relevant manager. Here are some examples of my results:

Water Rising Screen Shake


Lightning Strike Screen Shake


Cannon Shot Screen Shake

I also implemented some passive camera shake, so that the camera is never stationary. It's quite subtle and won't really be noticeable on a gif, so take my word for it.

Taking all of this together it really surprised my how much these small changes add to the overall feel of the game. The before and after this polish phase is quite impressive to me.

Water Splash

I also implemented the water splash effect that Joshua created. I created an Interface which handles the interactions of different items with the water. Getting items to create a splash when falling in the water was fairly simple:

However.... I tried to be smart and handle the deletion of the objects using this interface. It was good idea, but unreal engine had other plans. For some reason, when the objects where touching another object (I think) and the water level rose and collided with them, it didn't trigger the overlap event. I tried a lot of settings, but to no avail. So I ended up doing a check when the water level has risen to delete objects that are beneath it, like fallen swords, treasure etc.

Player Indicator

I also worked on implementing the player ring that Jay made. I had to update the existing code for assigning colours to the teams and apply the same logic to the rings, but with a fixed stencil value. For a visual keep reading to see Jay's part.

UI Controller Support

Up until now our UI did not have controller support, so I implemented that. I had a lot of issues with "focus" on the UI. It kept ignoring the input after you clicked away. In the end I managed to find a solution and I made it so that when you click the up/down keys on the controller you can browse the UI.


I did the same for the end screen UI. I admit I copy pasted the logic as we are pushed for time so I didn't create a nice system for this, though for our scope I considered it to be overengineering anyway.

Sound

How's everyone doing? Xander here for the last time.

This was our polishing week which meant no new features but just adjusting what we already had and bugfixing. Luckily for me, the line between new features and just some more player feedback in audio is pretty vague, so I just continued as if nothing happend.

I started off by reworking certain sounds like the cannonshot and lighting to give it a little more 'umph'. I did this so the player has a better feeling of when impactful things are happening around them.

After that I made sure everything was mixed decently well and the attenuation (localization of sound) was in order to give the game a better feeling. This is still subject to change until the very last minute though.

Remember a couple of devlogs ago where I was working on something but couldnt finish it in time? Well, the time has come. Whenever the water rises the player will experience camera shake, accompanied by the sound of the water rising and slowly engulfing the player.

At the very end I implemented some feedback SFX for when the cannonball hits the ground. The player will now notice when they are *almost* killed.

I won't be showing you anything this time, seeing as it still needs to be a little bit of a surprise. Thank you guys for staying with us the entire time, I'm sure you will enjoy our game.

Take care! 

Artists

That's all from me, again thanks for reading have a nice day :)

Post-production processing

Sup, Jay here. We started off this with thinking of polish tasks. We got some nice feedback from our supervisors and a big thing that could be improved upon was the visibility of the player / the way they're indicated. It was rather difficult to differentiate between the two teams even though they had their own team color. This mostly came down to our game being viewed from a top-down perspective, so it was difficult to see the unfiforms. We dicided on going the FIFA route and adding a colored ring around each player so that it would be easier to see who belongs to which team. This was done with a simple shader that creates a sphere mask and manipulates its size with a sine wave to give it some motion.

Players with rings, pictured left and right on their ships
Player ring up-close

As you can see, it is now much easier to differentiate between teams. One problem however was that when a player moves behind some piece of land this circle would not be visible, much less the player. So this was the next thing that needed tackling. I created an outline post-processing material that masks out each player/player ring and assigns the correct team color to it by utilizing Unreal's 'Custom Depth Stencil Value' which allows you to assign a value to an object which can then be masked out using the custom depth pass. Each team has its own value so that I can differentiate between them. I then moved on to creating an outline shader for the player model, which then gets overlayed on top of the player's mask and combined with the team color rings. See the result below

Player rings obscured by a wall
Player models obscured by a wall
Outline and player rings combined

Ah, much better! With that issue out of the way I moved on to creating a graphic for the controls of our game, which you can now also see on the itch.io page :). I took a photo of a controller I had laying around and traced its shape in illustrator. I player around with the idea of having our own themed controller and settled on a design that incorporates the grass texture which is present in our game. Next I recreated the buttons on the controller and labeled them with the correct action. Finally I moved it to Unreal where I created another button on our main menu which puts you in a new window that shows you the image.

I also added the wind effect that is present on our grass to all other foliage types and even the sails and flags of the ships! Adding a bit of motion to the scene is always really nice to see.

That was all for me for this week. This is usually where I'd say come check in with us next week to see our progress but instead I will say come check in next week when the game is released as this will likely be our last devlog!

We cannot wait for you to play our game and we hope you are as excited as we are. 

Group 27, signing off!

Files

  • TidalTreasureClash-v0.7 442 MB
    May 23, 2024
Download Tidal Treasure Clash
Leave a comment