Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dotto! - What? Who? Why? When? #1

Open
felipemanga opened this issue Dec 29, 2021 · 15 comments
Open

Dotto! - What? Who? Why? When? #1

felipemanga opened this issue Dec 29, 2021 · 15 comments

Comments

@felipemanga
Copy link
Collaborator

felipemanga commented Dec 29, 2021

What

LibreSprite Dotto! is a clean-room, modern, flexible rewrite of LibreSprite. Since it does not reuse code, it is more of a spiritual successor than a new version, hence the new repository.


Who

The core is currently being written by myself, though @Zughy and @maujin111 have been closely involved since before day 1.
Due to the scripting system being tightly integrated, the JavaScript and Lua programmers of the community will soon be able to get involved as well.


Why

First, some context. LibreSprite was born half a decade ago, as a fork of Aseprite. Aseprite, in turn, was born shortly after the invention of the transistor. Despite numerous rewrites and refactors, the codebase showed serious signs of age. Notably, it was based on a buggy, custom, old version of Allegro for rendering and often did not follow standard C++11 coding practices.

After the fork, Aseprite went on getting refactored/maintained/improved, while LibreSprite mostly just sat there, gathering digital dust.

Recently, an effort was made to make the fork usable. An SDL2 backend was added as an alternative for Allegro and several bugs were patched. During this process, one thing became painfully obvious to the maintainers: adding new features without breaking things is going to be really, really hard.

As an example, we often get requests for new tools. Ideally, LibreSprite would be flexible enough to allow users to add their own tools by making simple scripts. Unfortunately, there is a lot of hardcoding in the existing set of tools. They're even hardcoded to skins as old skins have no way of displaying icons for tools that came later. Our community is fond of custom skins and breaking existing skins every time we want to add a new tool isn't what we want.

Looking at the current state of LibreSprite, we came to the conclusion that getting it to where we are comfortable adding new features would take just as long as simply starting again. This was not at all a decision taken lightly. Throwing away decades of work and doing it again is not going to be easy. So Dotto! was born initially as a prototype branch, where we tested the waters to see if it was really something we wanted to do. Now we know: it is.


When

It's opensource, so: it'll be ready when it's ready. As of this writing, Dotto is 3 weeks old. Compared to the decades of work that had already been put into LibreSprite by the original author, there is still a long road to go. On the other hand, progress is really fast. Keep an eye out for updates here and on Discord or Matrix, if you blink you'll miss 7 commits.

@akien-mga
Copy link

Good luck!

I see you chose MIT license - are you aware that it means that you are not allowed to port (or even use as reference) any code from LibreSprite? This must be a clean room reimplementation if you want to discard the GPL.

@felipemanga
Copy link
Collaborator Author

felipemanga commented Dec 29, 2021

Yes. The only part salvaged so far was already under MIT (the script library).
Edit: I say "salvaged" but that code was already rewritten after the fork. It doesn't look anything like the original script library.

@orbitalmartian8
Copy link

I can't wait for the official release, if you need any help, hit me up, i can try fitting it in around school.

@Hakunamawatta
Copy link

Is there a reason why the MIT license was chosen over GPL?

@felipemanga
Copy link
Collaborator Author

The original LibreSprite had a mix of MIT and GPL and we didn't want that for Dotto.
The maintainers discussed, had a vote, and settled on MIT.

@personal-note
Copy link

LibreSprite Dotto will support MacOS? (64-bit)

@felipemanga
Copy link
Collaborator Author

Yes, Intel MacOS support has already been setup.

@maujin111
Copy link
Member

LibreSprite Dotto will support MacOS? (64-bit)

Even 3DS, great job @felipemanga

@kotx
Copy link

kotx commented Jun 16, 2022

Might want to pin this issue?

@Bobby-Anggunawan
Copy link

Is it available on play store? I see there's android version, but I can't find it on play store..

@pegvin
Copy link
Contributor

pegvin commented Jan 10, 2023

Is it available on play store? I see there's android version, but I can't find it on play store..

no dotto is currently being developed, but the devs have made a "web" version available which you can try: https://libresprite.github.io/Dotto/

it probably contains bug, and not sure if it'll work on mobile devices

@ElfEars
Copy link

ElfEars commented Mar 24, 2023

I know that it's planned to have a palette editor but is Dotto planned to support indexed images at some point?

@dustdfg
Copy link

dustdfg commented Jun 14, 2023

It would be good to see screenshots (at least)

@pegvin
Copy link
Contributor

pegvin commented Jun 14, 2023

@dustdfg i've attached a video of me using dotto, it's still not perfect for daily use as for now and the development has slowed a bit...

2023-06-14.16-29-16.mp4

(sorry the video quality maybe not the best as it's 1600x900, even though i have a 1080p monitor i prefer lower-resolution for nice performance)

@pegvin
Copy link
Contributor

pegvin commented Jun 14, 2023

I know that it's planned to have a palette editor but is Dotto planned to support indexed images at some point?
~ @ElfEars

well by indexed images support i assume you mean the images that store the color palette and every pixel is basically an index to the color in that palette...

if so then indeed png supports indexed colors and you can save to png, i'm pretty sure if dotto comes up with a custom format it may use color indexing.

and if you're referring to the "indexed" option in color-mode in aseprite, i can't really say if that will be added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests