fergarram.online
Post order:
Development logs, thoughts, etc.
subscribe 🔔

I just got to a decent version of oceloti where I'm able to start playing more "seriously". I still need to do a lot of polish but that's mainly it.

Polishes include:

Save Module:
- Move out of thing-manager
- IndexedDB for backups

Image Improvements:
- Lock so that you can use as bg
- Display modes (tile,crop)
- Proper resize (all corners, lock aspect ratio)

Video/Audio Player:
- Fix pointer events bugs
- Custom UI

And that's mainly it. Once those are done, specially the backups one, I can start using it to create my post-breakup collage album.

I'll figure things as I go.

I don't understand CRDTs or OT algorithms to be honest. It's just not natural for me to understand why we need to edit something at the exact same time.

In real life, I don't write at the exact place that someone else does. If I want to collaborate with someone in person, each has a piece of paper and a pencil or each has their computer.

Even if collaborating in Google Docs we’re not editing the same part of the document. At least I haven’t done that.

Space.

You can’t be at the same space at the same time. That doesn’t happen. But it seems to me that async collaboration implies that?

I know that it’s about merging changes and avoiding conflicts.

But I insist. In real life, we don’t have telepathy. And if we had it, we wouldn’t speak at the same time. We would still take turns to speak and listen.

I think the closest thing we have to CRDTs are neurons and cells. I don’t know enough about this but my understanding is that neurons collectively have copies of knowledge not data. (I talk about similar ideas here).

Truth is fuzzy.
Data is fragile.
Knowledge is never static.

Every living thing is essentially a different unique version of the accumulated knowledge of life.

Why am I saying this? What does this have to do with CRDTs?

I’m not sure.

But one thing is clear. I don’t feel excited about learning CRDT algorithms and all those things.

What I do know is that I want better tools for managing copies, addresses, and merge conflicts.

I feel like the inventory module should be the one who manages item/thing types and renderers. I mean that's the purpose but it should expose that instead of the dnd manager if that makes sense.

I also feel like the inventory system is actually less related to items and bags and more about managing thing types and renderers.

Because what's really the difference between a bag and the room? The grid snapping? The more I think about this the more I realize that bags are mini rooms. I could basically use the same thing-management code and have "mini_renderers" that render the things in their icon forms. Positions could exist outside of a grid in a free layout.

Hell! I could even open a new browser window and use a room just for representing the bag.

It could be an area within the same room.

There are many ways of implementing this. But for now, the way it is today is fine. It's a prototype and I'll continue exploring this space.