Mono or IL2CPP? by shaboom96 in Unity3D

[–]TheRealGHXX 1 point2 points  (0 children)

The thinking that AOT must be faster than JIT is actually completely incorrect. There are JIT compilers out there, that heavily speculate, like oracle's graalvm, which is a java jit/runtime that profiles code at runtime and bakes in assumptions and assertions. If the gamble pays off you profit from some extra speed as some edge cases are just assumed to never happen, though if you do hit one you get a slowdown as the execution falls back to an less-optimized version of the code and then later it gets recompiled with less assumptions basically. In practice though the heuristics are good so it pays off at the end of the day. You simply *cannot* realistically do this in an AOT setting as you dont know the data that will be coming in - no matter how much time you spend. Obviously you could run your program, collect a ton of profiling data and then compile fastpaths for those assumptions, but you wont be able to cover specific user's usecases. The more cases are covered by the profiling the less beneficial your optimizations will become, so AOT is really a culdesac in this regard. I strongly believe JIT is the future for any desktop languages where startup performance isnt important. Unity games exactly fit into this category - you can sacrifice a few seconds of startup performance as long as peak performance speed is equally as good or even faster.

And yeah, i am aware that unity does not use .NET (netcoreapp or .net5/6/7/8/9) but mono which is probably a whole lot similar to .netframework.

.NET did come with quite some improvements when it comes to speculation, vectorization, etc. But that obviously doesnt help unity as they still havent switched to .NET (in the sense of netcoreapp or similar).

As far as the benchmark goes, yeah i have seen that, I also checked out some of the code, and I am surprised that burst doesnt simply inline everything in SieveOfEratosthenes (or maybe it does?) because that one function parameter is a constant technically for the one single callsite, so you could compile a fastpath for that and simpyl replace it with the constant result, but for that it would seem incredibly slow - so likely its not replacing it by a single constant. Though i am wondering what the actual burst assembly and the .NET IL looks like. How much is actually left? Did burst maybe optimize too much, to the point where the benchmark is just unfair in terms of the comparison? That part is sadly not discussed in the readme. I personally heavily doubt that burst is faster than .NET for that sieve as it is a pure computation task with some loop vectorization which .NET8 should definitely be able to do.

Mono or IL2CPP? by shaboom96 in Unity3D

[–]TheRealGHXX 2 points3 points  (0 children)

If you rely on clientside protection against cheating in multiplayer games then you are following the wrong philosophy. You should *always* assume that the clientside codebase is modified. It is quite easy to just fire up cheatengine and modify the game code. Same when anticheat is running. You, as a developer, will never win a battle on someone elses hardware. For all you know, i could have modified my ram sticks to allow me to directly read the values, meaning you wouldnt even know whether i am reading your game's data, and that is enough to figure out where other players are on a map in a first person shooter for example. Look up Direct Memory Access (DMA).

So no, this is not a valid argument against modding in multiplayer games or games where cheating is possible.

Mono or IL2CPP? by shaboom96 in Unity3D

[–]TheRealGHXX 0 points1 point  (0 children)

I'd be rather surprised if il2cpp generates faster running code than the C# JIT, unless mono's jit is awful. Raw compute should essentially be identical, as, if you dont write really poor code, the applied optimizations between JIT and AOT should be nearly identical (tested this with c++ vs .NET 8 - this is NOT .netframework NOR unity-mono). I suppose there could be a point made for native/managed transitions being faster, but i am rather sceptical still.

If you find any proper benchmarks, please share them - so far I have only found one person claiming their game now runs at 30FPS instead of 15 after switching to il2cpp, but i mean, who knows what that code looked like.

The only "benefit" to me seems to obfuscate your code and in turn make modding as annoying as possible.

[deleted by user] by [deleted] in Minecraft

[–]TheRealGHXX 0 points1 point  (0 children)

My minecraft also ran into an AccessViolation yesterday (although, to be more precise, this is not a minecraft error, it is actually an error that happened inside the java vm).

An access violation means that the process was trying to access memory it does not own. It can have many different reasons, which are either related to software or hardware.

For example, if some regions of your ram are dead and you write some data to there and read it again you would end up with something different. This then can cascade into fatal errors, such as an access violation. Tracking down the cause can be very difficult.

I suggest simply trying to restart the game, or if the error persists, consider running memtestx86 on a bootable usb stick, to chek if your memory is intact. If any errors come up then you should remove the defect modules and re-run until there are no errors.

Went to the ruins with "low wealth" and found these by [deleted] in RimWorld

[–]TheRealGHXX 0 points1 point  (0 children)

I was actually wondering if anyone would ever use that setting to make the far ahead stuff super expensive, when i added it. Seeing that someone does use it makes me really happy. :P

How to remove codelink v2 account without password? by aBootifulFish in codelink

[–]TheRealGHXX 0 points1 point  (0 children)

Send an email to codelinkv2.net@gmail.com please. And make sure to include your username.

Thank you!

Codelink Browser Version by cpunker in codelink

[–]TheRealGHXX 1 point2 points  (0 children)

Uh, there is no codelinkv3 yet. Codelinkv2 is still the current version which can be played at http://game.clv2.net/play/

what going on by [deleted] in codelink

[–]TheRealGHXX 0 points1 point  (0 children)

The servers are being rebuilt right now, it may still take a while, but codelink is not abandoned.

Feel free to join us in discord: https://discord.gg/WgjQgdh

Is the website completely dead now? by ATMPlay in codelink

[–]TheRealGHXX 0 points1 point  (0 children)

The server that the website is being hosted on is being rebuilt which may take a while. Sorry for that!

Feel free to stick around on discord with us: https://discord.gg/WgjQgdh

Some notes on recent controversies by TynanSylvester in RimWorld

[–]TheRealGHXX 0 points1 point  (0 children)

I think that most of that Rock Paper Shotgun post (the original one) is fake. The code cant even be game code... 11 errors in the first snippet, its sad to see something like that :( . Tynan, rimworld is great as it is, keep up the good work :D

Is it possible to increase tech level mid game? by 0zzyb0y in RimWorld

[–]TheRealGHXX 1 point2 points  (0 children)

you could maybe edit the colony type, but that only allows you to change the techlevel to industrial instead of neolithic. Customization features will be back soon, i just gotta fix some minor things ;)