Category Archives: Unity

Bounding box corrosion test in Unity

 

Using bounding box boolean to create a random 'subtraction' effect. Applied to a pretty standard octree scene management system.

What's happening is basically the program is 'cutting' into the objects in the scene and generating new replacement parts (new bounding boxes)

The goal of this test is to just make sure the logic is sound.. not very efficient.

Next power of 2..

I came across this little snippet of code* to find the next power of 2 and found it quite helpful – from what I understand it's also very efficient compared to other methods.

 

public int NextPowerOfTwo(int inInt)
{
 inInt--;
 inInt = ( inInt >> 1 ) | inInt;
 inInt = ( inInt >> 2 ) | inInt;
 inInt = ( inInt >> 4 ) | inInt;
 inInt = ( inInt >> 8 ) | inInt;
 inInt = ( inInt >> 16 ) | inInt;
 inInt++; // Val is now the next highest power of 2.
 return inInt;
}

 

Link to original article regarding technique and actually a more detailed explanation of the method – Acius' Snippets.

Galcon Unity Visualization (sixth pass)

So here we go.. a quick recorded version.

Since Unity doesn't really have an elegant solution to a 'user file open dialog' I've decided to go to a more source file update type method.

So basically there's a file in the directory with the application called 'gameSource.txt' and the app with automatically load and refresh the scene with this map data when the file is changed. So if you have a simulation output the results into this text file the visualizer will automatically load the file and play the new simulation.

 

Why is this good? Because it means you don't have to restart the visualizer it can stay open the whole time playing while you work away and will update when there's new game data.

 

Galcon Unity Visualization (fifth pass)

So I created a quick planet texture (loosely based on a moon type texture) and added some functionality to make the ships to move towards the planets with a slight shift along the tangent – which basically means that fleets sent out and fleets incoming wont line up on top of each other so you can distinguish between the two.

The real big change is a added functionality to center and scale the camera viewport based on the map size so in theory this visualizer can handle any map of any size and it will stay centered and not clip off the screen.

 

moon texture

phase 5

 

Right now there seems to be a selective Unity bug that wont let me display instanced objects in the web viewer :'(.  I bugged the Unity guys and hopefully they'll release a patch soonish.

Galcon Unity Visualization (fourth pass)

So everything is coming along nicely I got the basic play UI controls implemented "play/pause", "go to end" and "go to start" which basically will reset the simulation back to frame 0 and the last frame respectively.

 phase 4

So what's left to do?

Well it's missing the total ship count graph but this is low priority.

It really needs some kind of UI for loading a custom game sequence.

I need to also add system to center the map and camera so that any maps that are larger and smaller get the correct camera focus.

Galcon Unity Visualization (third pass)

So i cleaned up some of the code and added some aura type objects behind the planets. This really is so I can have a more subtle color on the planet without losing the indication that the planet has been converted.

phase 3

Seems like some of the auras are doubling up on the blue side – something is causing them to change hue.

 

Next up I'm going to work on getting some UI controls: "play", "pause", "goto beginning", "goto end"