Skip to content
This repository has been archived by the owner on Mar 18, 2019. It is now read-only.

ToDo #217

Open
1 of 13 tasks
Mactastic1-5 opened this issue Mar 12, 2017 · 15 comments
Open
1 of 13 tasks

ToDo #217

Mactastic1-5 opened this issue Mar 12, 2017 · 15 comments

Comments

@Mactastic1-5
Copy link

Mactastic1-5 commented Mar 12, 2017

  • Add support for different asset bundle types (UnityFS, UnityBinary, UnityWeb)
  • Add support for different versions of Unity (2-5)
  • Add support for different types of assets (UnityFS, UnityBinary, UnityWeb)
  • Add support for deserializing objects
  • Add support for converting different serialized objects (FBX, OBJ, FSB, DDS, TEX, PVR, etc.)
  • Add error codes that give you actual information on what went wrong
  • Add GUI support
  • Update the Wiki to include more DisUnity and Unity documentation
  • Update the README
  • Clean up the issues page; people keep posting non-issues
  • Fix the most common issues seen on the issues page
  • Change the way the commands and options are shown in CLI to deter confusion
  • Deprecate Java for Python
@ata4
Copy link
Owner

ata4 commented Mar 12, 2017

Indeed, there's so much to do here that it may be better to start over from scratch. There's actually some progress with the last point using Python, but I need a Unity project myself as a motivation to continue working on the code.

Thanks for responding to some of the other issues here, btw.

@Mactastic1-5
Copy link
Author

@ata4 You should upload the python port that you started to a python-port branch.

@Mactastic1-5 Mactastic1-5 changed the title Things to Do ToDo Mar 12, 2017
@ata4
Copy link
Owner

ata4 commented Mar 12, 2017

Yeah, I can do that. Might actually be better than a separate repository.

@Mactastic1-5
Copy link
Author

Mactastic1-5 commented Mar 12, 2017

@ata4 What features does it have and what does it support thus far?

I think the goal should be to create a program that extracts every format/version and converts, if necessary, every format into a common file format without any problems. A GUI that is easy to use for users that aren't comfortable with CLI. I updated the list.

It would be better if you posted complete documentation on Unity formats/versions, so that I have a better understanding.

@Mactastic1-5
Copy link
Author

Mactastic1-5 commented Mar 13, 2017

@ata4 Are these custom dependencies?

<!-- Dependencies from jitpack.io -->
        <dependency>
            <groupId>com.github.ata4</groupId>
            <artifactId>lzmajio</artifactId>
            <version>e6877e7e01</version>
        </dependency>
        <dependency>
            <groupId>com.github.ata4</groupId>
            <artifactId>ioutils</artifactId>
            <version>047e401d73</version>
        </dependency>
    </dependencies>

I forked your repository, I've been updating things that I can and I am writing a Wiki for it. I don't know how to commit as you can see, lol.

Edit: Nevermind, I figured it out.

@ata4
Copy link
Owner

ata4 commented Mar 13, 2017

@ata4 What features does it have and what does it support thus far?

I think it supports Unity 2.x up to 5.4, including deserialization. It can't extract anything right now, though.

I think the goal should be to create a program that extracts every format/version and converts, if necessary, every format into a common file format without any problems.

Which is just too complicated IMHO. For textures alone, there are 52 different formats and then supporting them from all Unity versions? Not to mention other asset types.

A GUI that is easy to use for users that aren't comfortable with CLI. I updated the list.

Also difficult, at least when it's supposed to be platform-independent. There's usually the choice between writing a GUI for each operating system or adding hundreds of megabytes of framework dependencies. I'm not a fan of both. A CLI runs everywhere at least.

It would be better if you posted complete documentation on Unity formats/versions, so that I have a better understanding.

I don't have a complete one, that's the problem. I've been working on updated versions of the wiki docs, but it gets more complicated with each major Unity version.

@Mactastic1-5
Copy link
Author

@ata4 How about JavaFX for the GUI? Have you looked at Unity Studio, it's a C# program though.

@ata4
Copy link
Owner

ata4 commented Mar 19, 2017

JavaFX won't work with Python, though. And yeah, I did take a look at Unity Studio, but wasn't quite happy with the compatibility last time I've checked it. Anyway, I have uploaded the current Python code to the branch python, for those who want to take a look at it. I'm not really happy with its current state, mostly because I've applied some old Java habits on the Python code, but I guess it's still cleaner than the Java version.

@Mactastic1-5
Copy link
Author

Mactastic1-5 commented Mar 19, 2017

@ata4 It would work with Java. PyGUI framework for Python?

@GreenWizard2015
Copy link

Maybe better do some refactoring? When I implementing extracting from 5+ bundles, i notice big amount of old Java syntax code (not used <?>), kinda tricky code with hacks and other problems. I don't know, maybe it is me too stupid, but, as for me, its reason for not trying contribute to this project.

@RupW
Copy link
Contributor

RupW commented Mar 23, 2017

I'm not sure that's fair. I think most of it was fairly clear, and I don't remember any untyped collections. (I do remember having to trace the CLI commands back and forth a few times, but that easy once I'd seen how it worked.) But the difficult part is understanding the individual unity resource formats and writing them back out in a more useful format, and if you can contribute that expertise I'm sure we'd help you with a patch. Or there's always the new Python branch to work on.

@Mactastic1-5
Copy link
Author

Mactastic1-5 commented Mar 23, 2017

@RupW The Python port seems better than the Java version.

@ata4
Copy link
Owner

ata4 commented Mar 23, 2017

The original code was just an experimental tool for my own use and I thought that it could be useful for others, which is why I have uploaded it here. But I wasn't really familiar with design patterns and all that stuff back then, so the code was pretty ugly. Most of it has been rewritten a few times already, but simply realized that Java isn't the right programming language for this task, that's why the Python version exists. But it's also something that an experienced Python programmer would call "ugly", I guess.

@Mactastic1-5
Copy link
Author

@ata4 Have you looked at Haxe?

@maritaria
Copy link

@ata4 How did you figure out the format initially? The only other tool out there are some closed source ones. I would love to help on this project if there was some way or method you use to discover the format.

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

No branches or pull requests

5 participants