the_cowboy

My apologies if what I wrote wasn't clear. I'm not trying to deter you from working on this at all. I understand completely that you will need to work with and/or create cheats in order to understand how to stop them but I thought you agreed previously that releasing cheats on the forum would not be a good idea.

This is why I try not to argue open vs. closed source it ends up creating hostility like discussing politics or religion does. Each developer / creator gets to decide for themselves what permissions their released work falls under. This has led to you wanting to "crush the competition" but the best thing for the community would be for your anti-cheat to fill in the gaps where ace is currently lacking as a first priority and extended to become the best later on if wanted. There does already exist a tool that will interface with ace to stop alternative OSes from joining the server but I really never wanted to require all players to use windows. It would be unfortunate if I was forced into that position by the release of Linux and/or MacOS cheats. I also don't want to continually spotlight this loophole. Just as I wouldn't hang a sign that announces my spare house key is under the doormat.

By the way, as far as I know ace reads some hardware information of the computer to create its HWID. On linux, typically, I would use dmidecode to read such information but it requires root permissions. Do you already have an idea for a solution to this since the game runs with normal user permissions? I think this might be one of the main reasons for it currently being windows only.

Maybe I should also say this to be clear in case I created some confusion:

I'm not saying anti-cheat should keep the same level of obscurity. I welcome an open source solution.

I'm saying cheat creation should stay obscure or at least not made to be easier. Hard, easy, or not there exists a barrier to entry for cheat creation and I personally don't want that barrier lowered.

Thanks @snowguy for understanding and allowing me to post here. Here is a mild update, which I started working upon on the sides

These hacker guys make (or rather, used to make) quite intuitive ui's. I got so interested that I brushed up the code with version 469's dynamic fonts.

So now one can smoothly interpolate between variety of sizes for better clarity. I am working on automatic font selection based on scaling.

P.S. I also brushed up the 2D radar code to play nicely with the scaling. Was quite nice to revisit the high-school (+) mathematics (and physics). Here is the code for reference and appreciation

void inline cRadar::DrawPlayer2DRadar (UCanvas* Canvas, APawn* Target, float PosX_, float PosY_, float Width, float Height)
{
	static float borderGap = 8.0f;

	if (!b2DRadar)
	{
		return;
	}
	
	FVector X,Y,Z,D;
	FRotator R = MyCameraRotation + FRotator(0, 16384, 0);
	R.Roll = 0;
	R.Pitch = 0;

	GetAxes(R, X, Y, Z);
	
	D = (Target->Location - MyCameraLocation);
	D.Z = 0;

	static float largestTargetD = 0.0f;

	if (D.Size2D() > largestTargetD)
	{
		largestTargetD = D.Size2D();
	}

	// Embrace for some High-School mathematics, eh!!
	
	float origPosX = PosX_ + Width / 2.0f; // center x
	float origPosY = PosY_ + Height / 2.0f; // center y

	float xRadarLength = (Width - 2.0f * borderGap) / 2 * (D.Size2D() / largestTargetD);
	float yRadarLength = (Height - 2.0f * borderGap) / 2 * (D.Size2D() / largestTargetD);


	float PosX = origPosX + Dot(D, X) / (D.Size2D()) * xRadarLength;
	float PosY = origPosY + Dot(D, Y) / (D.Size2D()) * yRadarLength;

	Canvas->Color = GetTeamColor(Target);

	DrawRec(Canvas, PosX, PosY, 4 * Scale, 4 * Scale, WhiteTexture, FColor(0,0,0));
	DrawRec(Canvas, PosX + 1, PosY + 1, 2 * Scale, 2 * Scale, WhiteTexture, Canvas->Color);
}

For those who are interested, I made this wxWidgets program to inject the shared libraries into any process

The future goal is to bring this functionality into Linux and Mac platforms. Although memory read write will require access privileges that snowguy already noted.

P.S. The code is in the background

I don't know this looks kinda gay.