II-P

Ludum Dare 59

Ooopsy

Sorry, accidentally posted it twice ^_^

Hellooup :>>>

Following the trend, I'm making a post too!

It's going to be my first jam. Yikes, how original ^_^
I’ve been preparing for a while, making prototypes and recreating some potentially useful features and mechanics. I’m hoping to at least finish the game before the 48 or 72 hours run out, haha.
And yeah, I’m very determined to write some soundtrack for it as well. Hope I’ll be on time.

Yep, aaaand the tools:

Engine - Unity (whoah, hot-dog)
Visuals - Photoshop and mb some Pixelorama
SFX - ChipTone <3
Music - Reaper
Audio Editor - Audacity

glhf all!

I DON'T HAVE A MOUTH, BUT I MUST SCREAM.

It is you... or what remained of you. Whatever.
Manipulate your neurons, and send signals to your organs, in attempts to get back what belongs to you...
Recording 2026-04-19 223137.gif
Yeah, I 100% won’t manage to polish it till the end, haha.
hank.png

QUICK, PLEASE!

Is it true that after the jam ends, there is an additional hour given for submission? I ran into problems with the build, and it looks like I won’t be able to get it ready in 15 minutes.

Is it OK? T_T

I saved the draft, but don't see any "publish" buttons out there T_T

Screenshot 2026-04-21 050044.png

Power of wrappers in Unity (ig)

Have you ever tried to serialize a matrix in the Unity Inspector or other complex data structures? Initially, Unity will not serialize fields like List<List<T>> unless we use a wrapper!

That’s the key idea: we don’t serialize List<List<T>> directly. Instead, we create a brand new serializable class with a property like List<T> values, and then serialize List<WrapperClass> instead!

Example:
Our wrapper class: csharp [Serializable] public class ListOfStrWrapper { [TextArea(3, 7)] public List<string> values = new List<string>(); }

and the fields in another object:

```csharp public List listOfStrWrappers = new List();

public List listOfListOfStrNoWrapper = new List(); ```

listwrapper.png

It's might be not very clear, but our second structure hasn't serialized!

But what is the actual use of it?

I came up with this approach to create relatively complex dialogues conveniently and quickly (very useful for jams! (ig, since I don’t have much experience, haha)).

In my project, each single dialogue is represented as a List<DialogueNode> (which is basically a container for the actual text of each node, speaker portrait, their name, etc.).

However, I need my entities to contain several dialogues, which would mean using List<List<DialogueNode>> — and that is not serializable!

So, this is exactly where a wrapper becomes useful. csharp [Serializable] public class DialogueContainerWrapper { public List<DialogueNode> values = new List<DialogueNode>(); } and create List<DialogueContainerWrapper> instead! Result:
dialogueWrapper.png
And dialogue example:
wrapper dialogue.gif

Pros and Cons

Pros: Fast, easy, and convenient for small data structures!

Cons: It may become messy when working with grotesque objects and containers. It is fine for around 10 objects with a small number of attributes, but as that number grows, things can get very inconviniet.

For bigger containers, it would be better to create a ScriptableObject container and assign a list of them instead, or load them from resources.

Hope you found this small article useful! I’m still learning the engine, and advice from more experienced people would be greatly appreciated, haha!

My very first jam entry

Jam days felt like a different world, haha

these few jam days felt like a completely different world to me, with its own vibe and community. i was very nervous before the beginning because didnt have much experience, but it turned out to be very exciting! not the best result, but im at least happy with what i made. hope to improve my skills for next time.

There are lots of interesting and outstanding games in this jam!

promoAngelcopy.png random doodle
learning to draw would be nice too