Closed coryleeio closed 9 years ago
Great work!
Thanks =]
@iskar909 could you please share your use case? Why did you need Artemis ECS inside Unity GOCS (gameobject component system)?
As for the test failures: it is all about conditional use of BigInteger or Int32. On Travis build server Artemis_Mono.sln builds Artemis_Mono.csproj Debug/AnyCPU configuration, which does not define FORCEINT32 constant. Thus what is tested is Artemis build that uses BigInteger. And your commit altering TestGeneral.cs removed BigInteger notion - and that resulted in 1 != 1. (Int32 One is not equal to BigInteger.One).
I noticed that you supplied both Artemis_Unity5.csproj and ArtemisUnity5UnitTests.csproj - and there BigInteger is included differently - but you did not adjust TestGeneral.cs to use this type when UNITY5 is defined.
Sure, I'm writing a toy project game that needs server authoritative physics, since Unity components have to extend Monobehavior I can't use them on the server side. I want the server and client to share the game logic / physics code so that the client side prediction works out correctly. A common way people do this is by running a unity instance on the server and using that instance as a sort of master client to run the physics calculations. This has always seemed like kind of a hack to me, as it is likely much heavier than running a simple server. Using Artemis, I can write my game logic/physics code, share it between client and server, then just write the networking code on the server side. Server does not have to run an instance of unity, which makes it scale better, and Components are simple objects that could even conceivably be re-used. The only negative really is that I have to copy my position/rotation from my physics engine transform to the unity transform.
As for the test, I'll take a look at it when I get home this evening. I was trying to avoid modifying the tests as much as possible. I made an exception figuring that bigInteger.One just returned a one and that it was superfluous, but it was not. Thanks for the clarification
In order to be used in unity5.0+ in the web player as a DLL I had to build this against .Net3.5, I had to bring in some back ported libraries to do that, I think I did so without affecting the other projects.
Also the Unity crew broke DateTimeInfo in Unity 5, so I put in a workaround for that.
Perhaps you could review this and maybe merge it in? I had 4 tests failing, but they were failing when I opened the other projects too, so I couldn't tell if it was me or not.
If you let me know of any bits you don't like I can clean it up also, just let me know.