Pharap / ABSpriteEditor

A basic sprite editor designed for exporting and editing Arduboy sprites.
Apache License 2.0
7 stars 0 forks source link

AB Sprite Editor

Contents

Introduction

This software is a sprite converter and editor intended for use with the Arduboy game console.

It is written in C# with the WinForms API.

Please note that this software is not intended to replace a proper image editor like GIMP, it is intended to provide only basic editing features. If you need advanced features like layers, please use another image editor in conjunction with this software.

Other relevant information can be found on the forum thread.

Licence

The software is available under the Apache 2.0 licence.

Be sure to also read the licence information for the associated resources.

Licence Permissions

You may

You must

Platforms

Windows binaries are provided by myself. (I.e. the author of the repo, @Pharap.)

Mac binaries are provided based on the availability of someone to contribute them.

At the time of writing (2023-02-01) the only contributor of Mac binaries is @ArdFlamingo and the only binary available is for v0.5.0-beta.

If you (the reader) wish to volunteer to provide binaries for other platforms (e.g. compiled with Mono, Wine, et cetera) then please either raise an issue or contact me via other means.

Disclaimer: I (the author of the repo, @Pharap,) take no responsibility for the quality of executables contributed by others as I have no means to test them.

Note for Mac Users

I have been told by @ArdFlamingo that it may be necessary to run the following xattr command on the Mac executable:

xattr -cr "<path-to>/AB Sprite Editor.app"

Where <path-to> must be replaced with the necessary path to reach the extracted AB Sprite Editor.app.

(For more on xattr see ss64's article.)

Contributing

Feature Requests

Before making a feature request, please make sure to check that the feature has not already been requested, both in the issues and on the forum thread. If it has, you would be better off giving your support to the initial request than instating a new one.

If you would like to make a feature request, please either raise an issue, leave a comment on the forum thread, or send me a PM over on the forum.

Please bear in mind that I am only one person, and that I like to retain creative control of my software, so I may dismiss feature requests that I am unsatisfied with or believe would take too much work for me to either implement or review. (If this dissatisfies you, feel free to fork the software and add your desired feature to your personal fork.)

Code Contributions

Before attempting to make any kind of PR, please raise an issue first to explain your intentions and discuss the implementation. Discussing a feature, bugfix or other contribution prior to the production of the actual code helps to prevent mistakes or conflicts of intention by allowing time for communication, discussion and decision making. If a PR is created without any prior discussion, there is a high chance it will be rejected.

In the immortal words of Donald Knuth:

"Always remember, however, that there’s usually a simpler and better way to do something than the first way that pops into your head."
- Donald Knuth (1986), “The METAFONTbook”

Bug Reporting

If you would like to report a bug, please either raise an issue, leave a comment on the forum thread, or send me a PM over on the forum.

Features

Existing Features

These are features that have already been implemented and are present and (in most cases) presumed correct within the software. Some features may have known bugs or limitations.

Colours

Tools

Actions

Editor Panel

Saving and Loading

Exporting

Sprites can only be exported to .h files

Tree View

Tab Control

Planned Features

These are features that are planned to appear in future versions, though I may not be actively working on them at the moment.

Potential Features

These are features that aren't planned to be added in the immediate future, but are likely to occur some time in the long-term future

Vetoed Features

Vetoed features are features that have been ruled out either in the short term or long term. A feature being on this list doesn't mean that it will never happen, merely that it is considered either less important or (more likely) too much work to be implemented any time in the near future.

Tutorial

To be added at a later date.

Frequently Asked Questions

Why does reordering namespaces and sprites not reorder them in the output file?

This is because of how sprites and namespaces are currently represented internally. I would like to fix this oversight at some point when I have settled upon the most appropriate solution.