View Issue Details

IDProjectCategoryLast Update
0021665AI War 2Bug - OtherDec 12, 2020 2:29 pm
ReporterAsteroid Assigned ToChris_McElligottPark  
Severitymajor 
Status resolvedResolutionfixed 
Product Version0.890 Lighting and Darkness 
Summary0021665: Unity compile error due to Facepunch dlls import settings
DescriptionBoth the Win64 and Posix64 versions are used at the same time, leading to compile errors in the editor.
Managed to fix it easily locally by restricting the import settings of each DLL, but I don't dare submit, as these settings seem to be inside the unmergeable binary ProjectSettings.asset
TagsNo tags attached.

Activities

Chris_McElligottPark

Sep 20, 2019 8:02 am

administrator   ~0053196

What OS are you trying to compile for, or is this something you're seeing in the editor itself? It's working fine on my computer, with those settings being just fine...

Asteroid

Sep 20, 2019 10:47 am

reporter   ~0053200

I'm on Windows7 x64. Just trying to run the game in the editor, using what I assume it's the main Unity project.

I could use brief instructions on how to run the game through the editor. Any pterequisites? Loading the ActualGame scene in the editor and praying play just displays the image of the initial loading screen and spams nullrefexceptions.

Chris_McElligottPark

Sep 20, 2019 12:35 pm

administrator   ~0053201

That's more or less all you have to do, although I can't recall what other steps might be in there as it has been quite a while since anyone but me even tried to do this. You do need to run the batch scripts which copy stuff to the appropriate folders. Why it's having errors on your machine but not mine with facepunch I'm not sure.

Honestly trying to get you up and going on the editor doesn't seem like a worthwhile use of time for either of us; there's not much that requires that, and the profiling and so forth is fairly useless from in there. We have better tools built directly into the game code itself in terms of accuracy. And if you're hoping for line numbers, the editor still won't give you line numbers for most of the key code, since it's in Assembly.Load() calls.

The main reason to use the editor would be for adding more stuff to the pipeline for linking to LINQ or DiffLib, but frankly that requires updating a bunch of dlls and so on and I'd kind of rather be the one to handle that for now since time is short.

Asteroid

Sep 20, 2019 1:46 pm

reporter   ~0053202

Well, I know your time is short and I don't want to waste it. Do note that the fact it doesn't work for me probably means it won't work for you either with a fresh checkout... Dangerous if you have a hardware failure. Do you have a secondary machine you keep up to date to check that all important settings made it to SVN?

My motivation for working in Unity was adding a few UI elements of my own and/or recolor a model or two to test an idea. As far as the debugger and Linq issues are concerned I want to give a shot to solving both problems, or at least try to make the issue known at Unity.

Chris_McElligottPark

Sep 20, 2019 3:07 pm

administrator   ~0053203

I don't think I'd ever do a fresh checkout. I have a full backup of all my hard drives offsite, with a minimum of a few hours of delay in that being updated. My hard drive actually did fail back in October, and I just had them ship me a replacement.

For the UI and to recolor models, none of that is done in the main unity project, actually. You'd want to open the ModdingAndGUI one for GUI elements, or you'd want to go into AIWarPrep for the models. Though I'd prefer if you weren't making changes to the models, honestly.

For the LINQ thing, that's probably something that we could solve IF we were able to find the correct dll to build against, but it's super complicated and not something we could make a coherent bug report about because I think the true issue is that we just can't figure out which thing should be used. And that's more of a documentation issue for a nonstandard use case than a true bug.

For the Assembly.Load() issue with line numbers, that's a known issue with unity; I've either made a fresh report or attached notes to an existing one, I can't remember. It's in their bugtracker system, but given that it applies to mono and probably isn't in their engine itself per se, I don't think they're super rushed on actually doing anything with it. Which is frustrating, but such is life. It took them from 2010 until 2019 to fix the garbage collector. ;)

Asteroid

Sep 20, 2019 3:47 pm

reporter   ~0053205

Thanks for the precisions, glad to know you have a good backup system at least.

I won't touch your existing models, don't worry - especially after the graphics work you just put in. What I wanted to do is perhaps prototype on a small scale (and to get feedback before 1.0) the idea of helpful and harmful buildings that unlock at a certain level of AIP, and I wanted to put a red shield around them to symbolize indestructibility until they wake up. Hence the recoloring idea.
I don't want to step on your toes or do sneaky changes - what's the best way to contact you to get your thumbs up to commit something? Don't necessarily want to add more noise to Mantis.

I'll post a few links with possible solutions for the problems that I'd like to have a shot at. I guess I'll figure out running in the editor eventually too.


Some people report issues dynamically loading dll+mdb and debugging:
https://forum.unity.com/threads/how-to-build-and-debug-external-dlls.161685/

csc.rsp file to make Unity import more system libraries (like Linq) that are not imported by default - we don't have a file like this in the project right now:
https://docs.unity3d.com/Manual/dotnetProfileAssemblies.html

Chris_McElligottPark

Sep 20, 2019 4:16 pm

administrator   ~0053206

No problem.

You could email over Google drive links, if you wanted to. That might be the easiest.

I've seen those reports of mdb files, yes.

For the csc.exe stuff, I can't remember if that's the old or the new compiler. Either way, both compilers take command line arguments specifying the dlls you want to reference. We handle it that way. It makes it far easier to adapt to Linux systems and so on. The problem is that we have to pull the dlls from somewhere consistent with the version of mono unity uses, and their folder structure is... insane. There are dozens of copies of dlls, many of which are just stubs with next to nothing in them. Some dlls reimplement classes you would not expect, and so including them starts getting you type exceptions unless you find the corresponding stub to go with them. I never found the magic combo for linq, out of all the various dlls they have. I'm sure it exists, but I had already spent plenty of time on it and I didn't want to encourage a lot of linq usage anyway. The only reason to have linq, in my mind, was for external project compatibility and those could just be compiled on their own. Hence networking and difflib being shuffled off.

Linq actually hits the CPU and the gc pretty hard, so I tend not to want people to use it thoughtlessly. For something like rare text parsing like you did it is very concise and helpful. But for something more common in the gui, or in the uud or regular tool tips, it would be adding a lot of churn. Linq is concise but not really meant for speed at a millisecond scale.

Asteroid

Sep 22, 2019 3:49 am

reporter   ~0053243

One down ;) - https://forums.arcengames.com/ai-war-ii/debug-external-dlls-with-visual-studio-for-unity-enabled!-(proper-pdb2mdb)/

Chris_McElligottPark

Dec 12, 2020 2:29 pm

administrator   ~0059913

There's an alternative compiler chain now that makes this work ok. Thanks!

Issue History

Date Modified Username Field Change
Sep 20, 2019 12:36 am Asteroid New Issue
Sep 20, 2019 8:02 am Chris_McElligottPark Note Added: 0053196
Sep 20, 2019 10:47 am Asteroid Note Added: 0053200
Sep 20, 2019 12:35 pm Chris_McElligottPark Note Added: 0053201
Sep 20, 2019 1:46 pm Asteroid Note Added: 0053202
Sep 20, 2019 3:07 pm Chris_McElligottPark Note Added: 0053203
Sep 20, 2019 3:47 pm Asteroid Note Added: 0053205
Sep 20, 2019 4:16 pm Chris_McElligottPark Note Added: 0053206
Sep 22, 2019 3:49 am Asteroid Note Added: 0053243
Dec 12, 2020 2:29 pm Chris_McElligottPark Assigned To => Chris_McElligottPark
Dec 12, 2020 2:29 pm Chris_McElligottPark Status new => resolved
Dec 12, 2020 2:29 pm Chris_McElligottPark Resolution open => fixed
Dec 12, 2020 2:29 pm Chris_McElligottPark Note Added: 0059913