A Boy and his Ghosts by Rolly

[raw]
made by Rolly for Ludum Dare 47 (COMPO)

A boy is stuck in a time loop and has to start over and over every 30 seconds. Fortunately, there are escapes to the loops, and with the help of his ghosts, he should be able to overcome the 9 levels!

Controls

Controls are shown in game, but here's a summary:

  • Movement : WASD / ZQSD
  • Jump : Space
  • End loop : Left shift
  • Pick up / drop : E
  • Throw : F
  • Restart level : Backspace

The full-screen mode is supported.

Did you say bugs?

The game highly relies on physics, and there could be some inaccuracies resulting in devastating outcomes for your infallible plans... I did my best, but there are still some bugs once in while. Sorry about that. Place yourself at the center of buttons, place yourself correctly in front of boxes before picking them up, walk in the center of platforms... And everything should be just fine !

Tools

Everything was made in 48 hours, using - Game engine : Unity - Coding : Jetbrains Rider - 3D models : Blender, texture with Photofiltre - Music : Musescore2 - Sounds effects : Audacity

I will be happy with any kind of feedback, please let me know if you enjoyed or if you would have done things differently. Thank you in advance, and hope you have fun!

Ratings

Overall 70th 3.906⭐ 50🧑‍⚖️
Fun 73th 3.885⭐ 50🧑‍⚖️
Innovation 221th 3.5⭐ 50🧑‍⚖️
Theme 169th 3.906⭐ 50🧑‍⚖️
Graphics 257th 3.552⭐ 50🧑‍⚖️
Audio 100th 3.691⭐ 49🧑‍⚖️
Humor 82th 3.554⭐ 48🧑‍⚖️
Mood 129th 3.615⭐ 50🧑‍⚖️
Given 61🗳️ 74🗨️

Feedback

binroot
04. Oct 2020 · 23:44 UTC
Loving the "I'm ready" animation. The puzzle designs are well done. Clever idea, reminds me of Braid a little. Jumping could be improved, but that's always a tricky thing to get right.
kuro
04. Oct 2020 · 23:47 UTC
Very pleasant game. Cute character with cute dance, and the game itself is fun to play. Controls smoothly, and is easily understandable. Kudos
Lestat
04. Oct 2020 · 23:55 UTC
Nice little game. Cool graphics. Fun to play. Good job!
Nick Barrash
05. Oct 2020 · 00:16 UTC
That dance gonna be the new "flossing"
JCMonkey
05. Oct 2020 · 01:37 UTC
i really like the idea of the ghosts doing moves for you to advance, kind of dark though knowing you have to kill yourself to progress forword. this could have been great for death is not the end theme
TomekS
05. Oct 2020 · 03:53 UTC
Wow that's a great one, very clever mechanic and nice execution, love it. Also the audio is really catchy. Its quite polished in every aspect, well done.
bereg
05. Oct 2020 · 12:21 UTC
Great game, nice animation and I like the level progression. Impressive job. By the way I think it's a physics thing but in different iterations boxes flies a little bit different. But it's a part of fun.
Linus Lindberg
05. Oct 2020 · 17:07 UTC
Love this little guy, the dance is just perfect!
Very impressive level design with distinct progression and introduction of mechanics.
Brilliant for a ludum dare game, the onlt dlaw is that the the physics seems unreliable as you mentioned.
oa5f
05. Oct 2020 · 17:14 UTC
Great game! Unfortunately, after a while I could no longer pick up boxes which made the game unplayable.
🎤 Rolly
05. Oct 2020 · 17:46 UTC
@oa5f ow, sorry about that, any idea what happened just before the bug? A friend of mine got the same error, but I couldn't find any way to trigger the bug on my machine. If you have any information it would be great!
Kevin Meissner
05. Oct 2020 · 17:54 UTC
Good job I was really amazed by the game mechanic.
Really nice idea.
Coding4rtist
05. Oct 2020 · 18:28 UTC
Clever idea, catchy music. Best aspect of the game? Definitely that dance!
blobo
05. Oct 2020 · 21:40 UTC
Really cool idea! I also love the character and their dancing when you clear a level. Great work!
kuro
06. Oct 2020 · 07:47 UTC
Just so you know, I saw this wizard [here](https://ldjam.com/events/ludum-dare/47/fire-loop), and got reminded of your game, so I came back just to watch your guys on the title screen dance for a while.

![fl.png](///raw/416/z/38d40.png)
🎤 Rolly
06. Oct 2020 · 08:03 UTC
@kuro : Haha ! I played their game too and laughed out loud seeing a little troll dancing in the title screen :D That's a trend!
Stefania Mak
06. Oct 2020 · 10:48 UTC
The dancing and the sound effects were hilarious! I like how you had multiple ghosts, and not just one, even if they were your failed tries to jump over a wall or to a platform :laughing:
Amin_JK000
06. Oct 2020 · 17:27 UTC
this is great I liked everything about this game :v:
Wahooney
06. Oct 2020 · 20:20 UTC
Brilliant idea! (mine is very similar :wink:)
Frogman
07. Oct 2020 · 10:35 UTC
Really nice game! The gameplay was intuitive and fun. I liked all the player animations - the dance, jump, waiting around etc. - and the audio was great too. The slightly unreliable box throwing was a bit annoying on the last level, but other than that, great entry!
JudgeZedd
07. Oct 2020 · 15:44 UTC
Neat little game, humorous and fun to play around with the physics. Great time had, really good for a weekend. Well done!
andrew-marsh
08. Oct 2020 · 20:55 UTC
I had the same bug as @oa5f . I had the bug on Level 8, but was still able to beat the level. Strangely, while when I pressed e I didn't pick up the box, the ghost replay did.
Picking up boxes worked again on Level 9. And I beat the game.
Even with the bugs, this is one of the most fun games in the competition, the bug even gave me a little more to think about in my strategy.
🎤 Rolly
09. Oct 2020 · 07:17 UTC
@andrew-marsh Thanks for your feedback, and sorry for this bug. I will try once again to find the bug and hopefully fix it! Now you got me curious how is it possible to beat level 8 without the possibility to pick up the boxes x) Thanks for your kind words!
mira
09. Oct 2020 · 10:51 UTC
i love this type of games. nice entry
Gonzalol
09. Oct 2020 · 10:58 UTC
It's a great interpretation of the theme. I liked the hint dialogues, also the mechanics are good.
JoeShanahan
09. Oct 2020 · 11:16 UTC
Loved this game! The animations and sound effects are super charming, and the level design is great too. The tutorials manage to introduce you to features without seeming too handholdy, and it was funny to watch some of my ghosts be screwed over by my new behaviour :joy:

I've done a gamejam like this before, and the way I did it was to save inputs for each frame, and then replay them back. I noticed sometimes a ghost wouldn't pick up a crate that it did before (I had that bug too) so I'm guessing you used the same approach?

Really fun game, the best of the "play with copies of yourself" game I've played this jam.
🎤 Rolly
09. Oct 2020 · 12:10 UTC
@joeshanahan Thanks for your feedback ! Indeed, I save the inputs (but not each frame; I'm using the Unity new input system, which uses events instead of having to listen to the inputs in an Update function - so I only save when the input changes, which is a lot more memory-friendly :D ) and yes that is indeed the problem for inaccuracies! At first, I saved the position, rotation and animation states at every frame and it worked pretty well, until I added boxes, that require physics to actually work together with the ghosts. It's not perfect that way, but I couldn't come with another solution during the jam, and I was actually expecting worse results x)

If you want to have a better idea of how I did it, my code is public ;)
JoeShanahan
09. Oct 2020 · 12:55 UTC
Ah! I haven't used the new input system yet. I was storing a Vector2 and bool for every frame, so only 9 or 12 bytes (can't remember bool size in C#) per frame, or 720 bytes per character per second. So even completely unoptimised, that's only 43kb for a minute of frame data per character.

The downside was as soon as the frame rate dropped to 30 (on some low end systems) then the game ran at half speed, because everything was tied to the frame rate. We should've really locked it to 30fps to prevent this, but ah well.

Would your new input system way of doing it still work even if the frame rate changed? I assume you've got to store a time/frame for each input change, so I'm thinking it'd be okay?
🎤 Rolly
09. Oct 2020 · 13:05 UTC
@joeshanahan Indeed, that's a really micro-optimization but anyway! x) Yes, I have to store the time too, so I guess a dropping frame rate shouldn't impact the execution of the script. Each frame (in the Update function) I check the recorded inputs to get the highest time lower than the current frame time, and apply the same input. Meaning that if the game slows down, I will also slow down the execution of the inputs.

I would definitly advise to check out the new input system. It makes a lot of things more simple. If you want to create a settings panel to let your player rebind the keys, it is a made a lot easier. Also, as I am belgian and use a belgian keyboard, I use ZQSD to move (instead of WASD). With the new input system, you don't have to care about the keyboard layout. I defined the movement to work with WASD, but Unity understands that I don't have the "default" layout and remaps automatically.
reheated
09. Oct 2020 · 14:38 UTC
I like this creative puzzle style. I've seen the ghost concept in games before, but not in combination with throwing boxes which adds a new element. I found the puzzles towards the end quite satisfying (especially the second last one, I think it was). I did experience some nondeterminism with thrown boxes. I really like the character animations, the music and the character's little vocalisations.
Lone_Wolf
09. Oct 2020 · 22:24 UTC
Great game. The music fit perfectly and I enjoyed myself through all of the levels
APBakeWare
10. Oct 2020 · 14:41 UTC
Very fun take on a puzzle game. I liked the challenge of getting the timing right with the ghosts. Also, guilty pleasure, it was fun to make a bunch of ghosts all synchronized jumping of the platform. The dancing is the best part of the game.
pedrocoden
11. Oct 2020 · 18:32 UTC
Nice game!
Mog13
12. Oct 2020 · 13:29 UTC
lol, that success animation cracked me up every time! the sound effects were good fun and thankyou so much for including some volume sliders!!! I thought it was really well executed and nicely introduced things one at a time. Great job!
aplite
15. Oct 2020 · 02:25 UTC
This has been my favorite game I have played in LD47. I love these type of puzzle games. Great job with this. Your animations were great, the sound track was good for a compo game, and the levels were well though out.
Aduro
15. Oct 2020 · 16:03 UTC
Really fun an awesome game! I really enjoyed it, especially those "hints" XD.
gamescodedogs
22. Oct 2020 · 12:54 UTC
I loved the game, but it seemed to have broken for me on the level with those 2 boxes to throw (the 'E' button stopped working no matter how many times I reloaded). Otherwise, great game, a funny one, too
CG_Fred
22. Oct 2020 · 19:13 UTC
Awesome puzzle style kind of game with a unique game mechanic that I have not seen before. Would have loved some more levels! Great work.
arron-fowler
25. Oct 2020 · 20:11 UTC
Wow you got loads of content packed into this. It was challenging and fun. I liked the little touches. Looking at his watch etc. Lots to like here.
Tim Eriksen
27. Oct 2020 · 17:03 UTC
Very nice, well balanced, sooo much content! Oh, and say "hi" to mr. Bean from me :smile: