forum

AiCtB Project

posted
Total Posts
3
Topic Starter
Drafura
So, basically this is a plugin made with the osu! sdk. It's supposed to check the big lines of the CtB rules/guidelines and report the errors in the AiMod.

The plugin isn't finished at all actually mainly due to the lack of function given by the sdk (Like getting the BPM of the timing sections), and also due to my noobish skill at C#.

However I still post this thread to get ideas of features to add / modify / delete and also to help peppy to find which things could be improved in the sdk to make project like this one real (If he needs help about this).

So actually as I said the plugin is not really usefull. I'll give a dl link for it as soon as I can reach something usefull with it (detecting bug jumps could be great and will certainly be in the first release of the plugin).

Here is a list of the features I want to add (they have been checked by Deif but everyone can throw suggestions about this, help in coding with the sdk welcome too) :

AiCtB concepts :

Rules :
Diff name :
TODO Report as warning : check if "CtB" or "CTB" appears on the diff name. (Actually I can't find any way to get the diff name on my code)

Autoplay SS :
TODO Report as error : check if the autoplay mode can SS the map. (I don't think this feature will ever be released since I don't think peppy coded something like that for AIMod, still a suggestion. The problem here is to determine if droplets can be reached by the catcher when they're in the border of the playfield)

Spinners :
WIP Report as error : check if one object is 1/4 beat close to a spinner start or end. (This is almost done, I just need the bpm to finish it.)

Hyperdash canceling :
WIP Report as error : check if a jump is impossible to catch by a real player. (A reported bug in the sdk is in the way to be fixed, more information later...)

Slider Velocity :
TODO Report as error : check if a slider is impossible to catch by a real player. (Same)

Guidelines :
Hyperdash abuse :
TODO Report as warning : check if 3 (or more) consecutive hyperdashes (each one with movement changes) on 1/2 or 1/4 beats are found in the map. (Same)

Combos :
TODO Report as warning : check if more than XX fruits are present in a combo. This will be ignored if the combo length is 1, for example a slider generating 30 fruits, you can't fix it cause you can't add a new combo in the slider. (I didn't worked on it yet but I think I'll be not able to calculate how many fruits (not objects) are in a combo, I'll certainly need slider tick value, slider velocity value and number of return of a slider.

And here is a little screenshoot for those who just didn't understand what this is all about :
akrolsmir
If you know Java, AIBat already reads in some of this information; you could use its codebase to test features that you can't yet with the SDK. That said, it'd probably be smarter just to request the necessary functionality.

Also, instead of a dl link why not just fork the project?
Topic Starter
Drafura

akrolsmir wrote:

If you know Java, AIBat already reads in some of this information; you could use its codebase to test features that you can't yet with the SDK. That said, it'd probably be smarter just to request the necessary functionality.

Also, instead of a dl link why not just fork the project?
Well, I don't want to go into parsing myself the .osu files, cause I don't want to spend time to code something i'll probably delete when the sdk is improved (even if it's just an adaptation of an existing code I'm not really interrested about that), but your source code still interresting for other reasons.

That said, it'd probably be smarter just to request the necessary functionality.
This topic is mainly about what modders want to see in this plugin. I'll certainly throw some requests soon directly on the github of the sdk.

About sharing the source, of course i'll make this possibility available but at the moment I'm a bit ashamed of my code (keep in mind that I also do this project for my personnal experience), actually I've just tried to see if I can do it (testing code here and there, seeing what are the possibilities). I think I can do it so now I'm thinking on how to do it (in term of class and then algorithms) and for this I need to be sure of a basic pool of functionnalities I want to implement to make something clean. Then I'll certainly share it on github with the first release.
Please sign in to reply.

New reply