From Unity to Defold: My Game Just Launched on Poki

Hey everyone! :waving_hand:

I’d like to share a game I’ve been working on that has just been globally released on Poki:

:video_game: Jane’s Fashion Studio

It’s a casual dress-up and story-based game where players style characters and follow different character stories while unlocking outfits along the way.

A bit of background

This project actually started in Unity, but during soft-launch on Poki, I received a lot of feedback about loading time and performance, especially on lower-end devices.

To address that, I decided to rebuild the game in Defold.

Why Defold

After porting the game, the improvements were very noticeable:

  • ~65% smaller build size
  • Much faster loading time
  • Smoother performance across devices

These changes had a real impact during testing and eventually helped the game move forward to a full global release on Poki.

So big thanks to the Defold team! The engine made this transition possible and very worthwhile :raising_hands:

Tech stack

The project uses:

Big thanks to the creators and contributors of the libraries used in this project! Your work made development much smoother and more enjoyable!

What’s next

Now that the game is live, I’m continuing to:

  • Monitor and improve UX based on player feedback
  • Add more content (stories, characters, outfits)

One challenge

One interesting challenge during the port was save data compatibility.

Since the original version was built in Unity, preserving existing player progress in the Defold version isn’t very straightforward and would require additional migration handling between the two systems.

Given the stage of the project during soft launch, I decided to proceed without carrying over the previous save data.

Not a blocker (especially during soft launch), but something to keep in mind if anyone is considering a similar migration.

Final thoughts

Overall, switching to Defold was a really positive decision for this project, especially for web deployment.

Thanks again to the Defold team and the community! This engine is awesome :rocket:


If you try the game, I’d love to hear your feedback!

19 Likes

Congrats on the launch of the game! And thank you so much for sharing you experience porting the game from Unity. @Pawel this would make a good blog post I think!

This is actually an interesting challenge. I suppose it is both a question of being able to access the save data itself, ie reading from the same file path, or in this case the same IndexDB or similar, and then loading and parsing it.

I don’t know which method Unity uses, but it seems like it’s IndexDB for WebGL, at least if it’s PlayerPrefs: Unity - Scripting API: PlayerPrefs

Do you know how it works in Unity?

4 Likes

(post deleted by author)

Hey! Thanks a lot :blush:

From what I understand, Unity WebGL uses IndexedDB under the hood for PlayerPrefs, so the data isn’t directly accessible from another runtime like Defold. I didn’t dig too deep into the exact structure, but it does seem to be managed through Emscripten’s virtual filesystem.

For this project, I didn’t implement migration, but I did think about possible approaches.

One idea was to use a small bridge on the Unity side to export the save data into something like localStorage, and then let the Defold version read and migrate it on first launch. It seems doable, but would require an intermediate step and careful handling of the data format.

Curious if others have tackled something similar. Would be interesting to hear different approaches!

1 Like

Congratulations on the game and the global launch on Poki!

2 Likes

Defold also uses IndexedDB via Emscripten. It should be possible to use the Indexed DB API to get access to the data from Defold. The next problem would then be to reverse engineer the Unity format, but I don’t think that should be too hard.

1 Like

I have this very old module I made for ios/macos/android for reading PlayerPrefs in Defold GitHub - AGulev/ppreader: Defold Native Extension for reading Unity PlayerPrefs · GitHub

But it doesn’t support HTML5 and I didn’t try it for ages

2 Likes