ProceduralDungeon icon indicating copy to clipboard operation
ProceduralDungeon copied to clipboard

Add edits for tvOS and iOS

Open McManford opened this issue 4 months ago • 3 comments

Below are changes that were added in order to allow compilation for iOS and tvOS. Haven't tested the occlusion features, had an error in the editor when toggled on.

McManford avatar Feb 19 '24 15:02 McManford

Haven't tested the occlusion features, had an error in the editor when toggled on.

We should fix all the issues you encounter before merging the PR. Could you share what error you have? Also, on which platform are you developing? Windows? Mac?

BenPyton avatar Feb 19 '24 16:02 BenPyton

Haven't tested the occlusion features, had an error in the editor when toggled on.

We should fix all the issues you encounter before merging the PR. Could you share what error you have? Also, on which platform are you developing? Windows? Mac?

I'm testing this on both operating systems, Windows 10 for actual game development, and occlusion works perfectly. For MacOS Sonoma, (for iOS/tvOS deployment) the editors seem to crash during generation, I have to check the line where my IDE landed when it crashed.

I'm going to do a full rebuild on UE4 for MacOS, I had strange linker errors on static const uint32 MaxTry {500}; in Generator's header file as well. I am using a cobbled-up custom version of UE4, which could be related to those errors.

McManford avatar Feb 19 '24 18:02 McManford

I had strange linker errors on static const uint32 MaxTry {500}; in Generator's header file as well.

Mmmh I think maybe it could be the compiler used on Mac that treats a static member variable with a default value as 'not really defined' (just a declaration or something like that). Perhaps, adding this line at the top of the DungeonGenerator.cpp file could resolve the link error?

const uint32 ADungeonGenerator::MaxTry = 500;

and remove the default value in the header file:

class ADungeonGenerator : public AActor
{
    ...
    static const uint32 MaxTry;
    ...
}

EDIT

As i'm thinking about it, it could be fine to just remove those static const members from the class header and put them as global variables in the cpp file... Something like that:

// DungeonGenerator.cpp

const uint32 MaxTry = 500;
const uint32 MaxRoomTry = 10;

...

These constants makes only sense in that file anyway.

BenPyton avatar Feb 19 '24 23:02 BenPyton