Slime Party! by William Corrin

:sweatdrops: JOIN THE PARTY! :sweatdrops:
Slime Party is a Puzzle 3D Platformer where you must use your own mass to create your own friends in order to complete various challenges.

Mass is retained when splitting, so use the Rejuvination Pools to re-combine back into larger slimes.

If you lose a slime to the lava, you will permanently lose that mass!

Tools Used
Engine/Dev: - Unity - Visual Studio
Graphics: - paint.NET - Blender - NormalMap-Online (https://cpetry.github.io/NormalMap-Online/)
Audio: - Mixcraft 10 - u-he Diva
[NOTE]: A decent amount of time was spent on shaders/graphics for this game, and as a result, the Windows build is PREFERRED over the more accessible but worse-looking WebGL build.
| Github Source Code | https://github.com/williamdewaynecorrin/LudumDare56/tree/master |
| Windows [PREF] | https://wdc.itch.io/slime-party |
| HTML5 Build | https://wdc.itch.io/slime-party |
| Original URL | https://ldjam.com/events/ludum-dare/56/slime-party |
Ratings
| Overall | 22th | 4.176⭐ | 36🧑⚖️ |
| Fun | 64th | 3.838⭐ | 36🧑⚖️ |
| Innovation | 30th | 4.044⭐ | 36🧑⚖️ |
| Theme | 69th | 4.015⭐ | 36🧑⚖️ |
| Graphics | 34th | 4.279⭐ | 36🧑⚖️ |
| Audio | 30th | 4.015⭐ | 36🧑⚖️ |
| Humor | 119th | 3.281⭐ | 34🧑⚖️ |
| Mood | 115th | 3.578⭐ | 34🧑⚖️ |
| Given | 36🗳️ | 59🗨️ |
What I mean by "not buggy" was I found myself having to press each button more than once to get it to align properly, instead of just once.
The split/merge mechanic is done very good, has too addictive behavior.
Had bug when i stucked on the edge of platform, but it not so critical.
Great entry!
This was a weird jam for me, I normally focus on graphics a bit later, but this time I wanted to make the slime shader and character almost immediately. My strongest point as a dev is my programming and gameplay skills, so I guess it makes sense to put more effort into the characters since its one of my weaker areas...
If I wasn't working on a new project for my small indie studio, maybe I would consider it - the last thing I need is more distractions right now LOL
Thanks for playing and for the feedback :smile:
I know of a few bugs too lol, I'm glad they didn't ruin the vibes though.
Your idea of having 1 slime as the leader is interesting! And yeah, having a preview system of some kind before immediately aligning the slimes would absolutely be better than the way it works now, lol! I died myself many times that way, but I didn't really have time to address the issue properly. I barely made a functioning level in time :laughing:
Your feedback was awesome, thanks for taking the time to play, notice the issues, and relay them so well. :grin:
I know the bug you're talking about lol. I tried a bit to fix it, but I couldn't get the step heights to feel good for all sizes of slime in time. When I got it to work for the bigger mass slimes, the smaller ones started to behave weirdly...so I just left it in :bug: :bug: :bug:
I figured for something like this, with a limited time frame, that I would just sprinkle the tutorial throughout the whole first part of the level lol. I mean, the entire game is kind of a tutorial in a way :laughing: if I had more time, I probably would have spent a lot of it making more levels, or at least more sections to this level.
Thanks for playing!
But then enough time passes and I'm like...yeah lets do it again!

Also 181 is really good, I almost always lose some guys on the last section lol
This could definitely be a real game if it had more levels (and maybe a few more mechanics with that).
Really enjoyed it, great job! =)
Levels i agree, i ran out of time and barely even had the content in the only level that is there lol
Thanks for playing!
I started it up a second time to see if it was possible to beat without splitting up. I found a ledge near the first small opening and was able to get over the wall.

Of course then there's a part where you have to hit 2 switches. And even though I could get *really* fat, I wasn't able to hit them both.
So I tried to climb up the tree and see if I could jump the gap to the goal. It was possible to get on the tree, but the gap was too big to jump.

Thus ended the dream of beating the game without taking damage. It was quite a bit of fun. Good job!
Also, I’m surprised about the camera! I did my best, but I think it starts to break a bit if you have 5-6or more slimes and choose the line formations - glad to hear it didn’t bother you though!
I usually expect some frame drops from a 3D Unity game when exported to a browser.
At first, I was thinking: "Hmm, why do I even need to split?" and the game quickly answered that question. I like the fact that the game also rewards some exploration (although I died in the process and lost all of the bonuses, lol).
It leaves me wondering how to make such a cool game in a compo. :D
Do you have any advice?
Your game has it all: graphics, clever mechanics, music (!), level designs. It's way above the average polishing one can hope to do in a couple of days.
I want to get that good too. :D
Also, the game page is cool, I borrowed the GIF idea a bit.
The jumping can feel a bit awkward to use (the whole holding and then jumping), especially to jump over platforms, but I got used to it somewhat quickly still. Had lots of fun.
Yeah totally I have some advice! You can friend me on Discord if you would like, DM me on Twitter first (https://x.com/corrtexgames) and I can chat more in depth and give you more in depth answers. But in short, I do have over 7 years of professional experience as a gameplay programmer (and I've been developing games since a teenager, just not very good ones lol) with lots of design work as well - some at a AAA studio - and I was nowhere near this good at making games always. Honestly my main advice is just to keep at it, make lots of different kinds of games, play lots of different kinds of games, don't give up, and really think for a bit before jumping straight into a game jam idea!
I agree with kernon on the camera that it did feel a bit weird when the camera tries to focus on the midpoint between all the slimes. This causes the camera to also fall when some slimes fall while others stay on a platform, which might cause even more slimes to fall from being distracted by the camera falling.
I also found a minor bug where if you use a whistle in the middle of the blade right when it would cut you, the whistle will get stuck, the slimes will rotate, and you won't be able to use the whistle anymore. I've included the screenshot of the bug here as well.

Overall, though I do like the concept. It definitely should be explored more!
Love the splitting mechanic and how well it actually works.
I split up to very tiny slimes xD
Oh no! I did not encounter that bug...thanks for sharing, they look totally messed up there hahaha
Thank you for playing and leaving quality feedback!
The bulk of the code is in this file: https://github.com/williamdewaynecorrin/LudumDare56/blob/master/Assets/src/PlayerSlimeManager.cs
```
if (!isrecalling)
{
bool canrecall = slimes.Count > 1;
foreach (PlayerSlimeRoot slimeroot in slimes)
{
if (!slimeroot.Slime.Grounded)
{
canrecall = false;
break;
}
}
if (canrecall)
{
ERecallType recallresult = PlayerInput.Recall();
if (recallresult != ERecallType.eNone)
{
slimetarget = SlimeTargetRecallPosition();
isrecalling = true;
uihappening.Activate(true, recallsprite);
SFXManager.PlayClip2D(sfxrecall.clip, sfxrecall.volume, sfxrecall.pitch.PickValue());
Vector3 forward = camera.transform.forward.NoY().normalized;
Vector3 right = camera.transform.right.NoY().normalized;
if (recallresult == ERecallType.eCircle)
{
// -- set positions in a circle
float angle = 0f;
float angleinc = (Mathf.PI * 2.0f) / (float)slimes.Count;
foreach (PlayerSlimeRoot slimeroot in slimes)
{
// -- reset local pos on root
slimeroot.SetTargetLocalPosition(Vector3.zero);
// -- set angle to target instead
Vector3 lpos = right * Mathf.Cos(angle) + forward * Mathf.Sin(angle);
slimeroot.Slime.BeginRecall(slimetarget + lpos);
angle += angleinc;
}
}
else if(recallresult == ERecallType.eLineForward || recallresult == ERecallType.eLineSideways)
{
Vector3 linedir = recallresult == ERecallType.eLineForward ? forward : right;
// all in one line
float estdistance = slimemasstotal * kOneMassToRadius * 2.0f;
float curdistance = -estdistance / 2.0f;
foreach (PlayerSlimeRoot slimeroot in slimes)
{
// -- reset local pos on root
slimeroot.SetTargetLocalPosition(Vector3.zero);
// -- set angle to target instead
Vector3 lpos = curdistance * linedir;
slimeroot.Slime.BeginRecall(slimetarget + lpos);
curdistance += slimeroot.Slime.Mass * kOneMassToRadius * 2.0f;
}
}
}
}
}
```
I was getting Badland (one of my favorite games ever) vibes the entire time. Seriously impressed that you were able to get so much done in 48 hours.
Also, on one run I ran into a similar issue Ramchops. Except I decided to keep splitting by jumping up into the blade... I was able to get my slimes that weren't null ref'd so small the camera had trouble rendering them.
Had a ton of fun playing it, had a ton of fun trying to break it. 10/10
Thank you - and LOL - I should have made some kind of achievement for getting a crazy amount of slimes, like 50 or something, if I had known people would try to break it so much :laughing:
Cheers!