Open peppy opened 5 years ago
Hey Peppy, we’re all thrilled you like what we are doing so far. I chose python to start developing this mostly since it was the easiest language to write a proof of concept, and it took off from there with the addition of Tybug and Sam. If you are actually interested in using this to some capacity, we are absolutely willing to develop under c# instead, albeit it will take some time to transition.
What are you looking for in a project like this? We are not exactly sure how to move forward to provide something that osu! would actually use. We’d love to work with you to make this as usable and useful as possible!
If u did it in .net c# it could be integrated into osu
Yeah we understand that, we are aiming to have a stand-alone python release for osureport sometime this week and then once that is stable begin rewriting in .net c#.
We would just like some input as to what features would be the most useful or if a literal direct re-write would be sufficient.
Im really excited to see this project developing osu to a less cheater heavy game 💃
Im an absolute newbie to all those programming stuff.. do i need any knowledge using this anticheat and help the community to get rid of these cheaters? if no could you please do a tutorial on using this program so even more people can help :D
While you don't need any knowledge of programming to run the program, I have recorded a video to help people get this up and running. It’s already a little outdated so I will be re-recording a few parts of it today in preparation for our official v1.0 release.
As discussed in another thread, here's a basic interface which I would expect to be available. It can of course be made available in addition to CLI invocation like you already have, but this is an interface I would be using to add to our toolchain:
public class Score
{
public int ID;
public DateTime Timestamp;
}
public class Match
{
public Score Score;
public Score Original;
public double Likeliness;
public Match(Score matched, Score, original, double likeliness)
{
Trace.Assert(original.Timestamp < matched.Timestamp);
Score = matched;
Original = original;
Likeliness = likeliness;
}
}
public class ReplayVerification
{
public static IEnumerable<Match> CheckTopPlays(int userId)
{
...
}
}
/* simple usage */
IEnumerable<Match> results = ReplayVerification.CheckTopPlays(userId)
foreach (var r in results)
Console.WriteLine($"Found match of {r.Score.ID} with {r.Original.ID}");
Let me know if you have any issues during implementation or any further questions (and thanks for your efforts here, it's great to finally see the community getting more involved again!).
If you are adding CLI, I can recommend using CommandLineUtilities
like we have in osu-tools
. We also have formatting of tables in there, if that's something you'd be looking at doing. The osu-tools
project may help as a template for what you are doing. You could even just fork it and add your own additional project to it.
Still hoping to add more structure to the project to make it more easily extensible (and some of this has been done internally, but I can't release that just yet). If you wait another few days to a week there will likely be improvements here.
Seems easiest to add this to osu-tools, so that's probably what we'll end up doing.
Would database integration be useful/feasible? If osu's score dbs are formatted the same as the api response (with a b64 encoded lzma for the play data) then loading from there would probably be a lot faster than calling the api. We would of course provide both for users who aren't staff.
Using the API is fine for now. As long as you create model classes (using dapper is fine), we can easily switch out API for database in no time.
Just wanted to give a quick update on our current developmental status for yourself and anyone else following this thread.
We decided to focus on developing a program that would be immediately useful to a large amount of people (primarily the folks over at r/osureport, but obviously anybody with a particular penchant for catching cheaters) instead of a c# implementation. Although our recent gui release succeeds in making the program user friendly, there's still a lot of functionality missing before it becomes the goto tool for witchhunters, which is our end goal.
The familiarity myself and the other developers (@samuelhklumpers and @InvisibleSymbol) have with python and the ease of development means that we won't switch the project language to c#. We are certainly interested in writing a c# version of the codebase (sans gui), but unless another developer comes along that wants to work on porting it, our current focus is on creating a community tool more so than one used by osu!staff.
I'm sure you guessed as much given 5 months of silence, or have otherwise forgotten about this project entirely. We're still alive and kicking, I assure you, but can't justify working in c# yet. I will be sure to update this issue if that status changes.
no worries, do what it takes to keep things moving
Doing good work here.
May I ask if you are locked in to the python language choice? It would be hugely advantageous (and immediately usable) if this was available as .net core (would easily slot into our existing systems without forking execution).