Skip to content

Instantly share code, notes, and snippets.

@Sewer56
Created September 2, 2022 14:01
Show Gist options
  • Save Sewer56/4da6235c27ce71116c04f6fe0c147819 to your computer and use it in GitHub Desktop.
Save Sewer56/4da6235c27ce71116c04f6fe0c147819 to your computer and use it in GitHub Desktop.
Sonic Riders Direct 2.0 Rant
Hi.
Since a screenshot of me has been included in this video (12:40), I feel like I'm inclined to comment; as I'm not very happy about it.
Before I start, I want to make it very clear. I speak on behalf of myself; not ExGearLabs or their development team. I've been generally uninvolved with Riders for a while now; and not part of any Riders server or dev group for 4 months at this point.
I'll start with the non-personal reasons.
I'm not very fond of a statement that I made (while emotionally extremely unstable); being used to misrepresent the actual situation at hand. With regards to the exporter; the communication has always been clear from the very beginning: It will be PUBLICLY released, when it is sufficiently done; that is the response anyone asking received. I have also made it EXTREMELY CLEAR that I would make an exporter myself should there have been no plans for a public release. This same information was also conveyed to the SRTE team, for example in this https://i.imgur.com/qz8vSUP.png conversation I had with Exortile (Lead SRTE Programmer) in January of 2022.
The exporter used during the development of 2.0 has in fact been already released to the public with support for GameCube and PC PRIOR TO THE AIRING OF THIS DIRECT; which makes this video in practice extremely misleading. Benefit of the doubt can be given here however as the two events occurred very close to each other.
That said, what made me irrefutably livid and brought this into a personal level and hence writing this comment is that the video tries to paint a narrative using MY OWN MESSAGE that tools (MOSTLY MADE BY ME.) created during the development of Riders Mods (including DX) are being closed source, kept away from the community and withheld; which fundamentally stands against my own beliefs. So allow me to make this VERY CLEAR statement. EVERY. SINGLE. TOOL. USED. TO. CREATE. THE. MOD. IS. OPEN. SOURCE. Including:
- Menu Animation/Layout Editor (SonicRiders.Index#wip-menus)
- In-Game Menu Animation/Layout Editor (Riders.Tweakbox)
- Menu Texture Archive Editor (SonicRiders.Index)
- Archive Deduplicator [Remove duplicate files to save on ROM space] (SonicRiders.Index)
- Experiment in Implementing Better Compression Algorithm [PRS] (SonicRiders.Index#experiments)
- Stage Layout Creator & Exporter (Riders.Tweakbox)
- Archive Compressor/Decompressor (SonicRiders.Index)
- Archive Packer/Unpacker (SonicRiders.Index)
- Tools for extracting PS2 DAT archives & memory ripping PS2 models (RidersPS2Tools)
- I published a PS2 Binary with Symbols (including NN names for creating importers/exporters and Riders' function names!!).
- Tool that tells you the file format of ANY known Riders file you give it as input (SonicRiders.Index)
- The Delta Generation Library that improves over xdelta for custom patcher (Sewer56.DeltaPatchGenerator)
- PC Disassembly, Sometimes used to help with GCN stuff. (#pc-resources@ExGL)
- A full fucking wiki with documentation of each file format and a listing the contents of every single game archive & file, incl. tools to edit them, etc. (SonicRiders.Index)
- Model Bone Previewer & Tester (incl. logic to create working bones in custom models) (Riders.Tweakbox#master)
- Model Importer/Exporter (SEGA_NN_Tools . The only tool I'm not the main dev of. Only very minor contributor.)
- ... probably some more stuff I forgot about
(brackets used to denote git repo tool can be found in)
[# used to denote git branch]
Needless to say; trying to paint yourself as a 'saviour of the people' who stand against the big evil oppressive ExGL doesn't sit right with me as an individual. Reason being that I am usually the person responsible for the reverse engineering and building of those tools and every piece of work from me has been Open Source from the VERY BEGINNING.
Although this is not my project, I've had non-zero involvement in the production of this tool, and as such I feel inclined to talk about it. Simply; have you ever stopped to consider that if something is not yet released, there may be actual valid reasons for it? The video tries to paint the idea that the 'tool is currently unavailable' situation is a factual act of malice against the community which is fundamentally inconsistent with the messaging that at least I have provided with the people asking. I said there will be an exporter; there was eventually an exporter.
There (unfortunately) exists a world outside of Sonic Riders. Sega NN Tools is a much more comprehensive library that supports importing from over 10 variants of the NN format (e.g. .cno, .eno, .gno, .ino, .lno, .sno, .uno, .xno, .yno, .zno) spanning over 7 consoles and 20+ games; with many games requiring their own specific profiles/configurations. The author spends most of their free time outside of work working on this sole master project, studying these format variants from scratch without any existing documentation for the more exotic variants.
Implying that a smaller side project involving code for **1 FORMAT** for **1 GAME** is deliberately being held 'under a tight lock in key' against the greater good of the (Sonic Riders) community is quite simply, extremely disingenuous. You are well aware that the main author of the tool doesn't even play this game; (they didn't even know how to latch onto a grind rail until 2022 for Christ Sake).
If the intention was to withhold the tooling, the .gno and .xno importers, **WITH VARIANTS SPECIFIC TO RIDERS** would never have been released in its original unmodified source code form to the public [it's been available for over a year!]. It is pretty easy for an experienced programmer to study the source code, build a specification for the file format and work backwards to create their own basic exporter. That said, the importer source code for this NN variant (which had almost no prior functioning documentation/code whatsoever) was released under the LGPL V3 license with the intention of allowing people to study it and further expand upon it. With that in mind, hearing that the reverse engineering work done for creating the importer was used to help in making a 3rd party exporter is a very short timespan MAKES US HAPPY. Every piece of work stands on the shoulders of giants; this is open source at its best 👍.
The main reason for this delay simply comes down to factors not specifically related to Sonic Riders. Firstly, the .gno exporter does not sit very high on the list of priorities with respect to the main (NN Tools) project. The main source of demand for NN tools comes from fangame creators wishing to port official models into their own games. The currently most requested item is an animation importer, NOT a model exporter. There is no 'special priority' for Sonic Riders and statements such as, 'Exortile (currently at the end of May) is currently experimenting with a OBJ->GNO converter and a work in progress Metal Sonic model on Blue Star II with a funny pipe' have any impact on the state of the overall project. You can't just look at this from a very minor scope of Sonic Riders being the only thing in the world. That is very entitled. [Heck, Sonic Riders stuff is less than 5% of my own development time.]
I'm sure that at this point; you probably might just be inclined to ask; 'Why not just release the unfinished work then??'. The reasons for that are manyfold, both personal and technical. One of these factors is simply a matter of pride; a very high bar has been set with regards to generating good models and supporting various *more basic* features of NN well.
To give an example, the [blender-gno-exporter] still needs a good amount of work as the models in SRTE 2.0 (for example) suffer from some of the following issues:
- No support for custom bones. [Which can make animations janky, including clipping]
- Inefficient generation of basic mesh/geometry. [e.g. Exporter exports triangles as 0x99 0x00 0x03, TRIANGLE STRIPS OF 3 VERTICES!! WTF].
- Inaccurate normals leading to not the best in-game reflections (bad compression?).
- No automated merging of meshes to save on space. [inefficiency]
Getting things right can sometimes be tricky; especially with a format like NN which is quite possibly the most overengineered binary format I've set my eyes on in my limited time helping with it. Needless to say, the tool author was pretty adamant about not sharing a unfinished product that would not meet their personal quality expectations, especially one that would lack proper, accurate support for some more basic functionality of the format. With the .gno exporter not being strictly the top priority; it's natural that the code took a while to release. [and it's still lacking some documentation!]
The memo I gave to the people who asked always was that it would release when it would be sufficiently complete. Needless to say, it happened exactly as I told people it would, with the exporter already being public at the time of airing this video. Not just the .gno exporter but an .xno exporter for Direct3D G1.1 (DirectX 8/9 Based NN a.k.a. PC Riders & co.) too.
On a more personal level, I can't say I'm very happy about a statement made at a time where I was extremely emotionally unstable just being shared like that to the world. Especially since it not only does make me look not the greatest, but also brings upon bad memories while misrepresenting the actual situation.
To be perfectly clear; I am absolutely livid right now.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment