• Register

Floatlands is a lowpoly survival-exploration fps game where you play a robot as the main character, going up against other robots in a procedurally generated world.

Post news Report RSS Floatlands devblog #23 - weekly update

Updates from last week: - written our own GUI system - revamped basic enemy robots - basic player weapons - upgraded to a dithering LOD system + more dense grass - music contest

Posted by on

GUI System


The Unity’s GUI system is a bit rough – if you use plenty of OnGUI() calls in your scripts the performance of your game gets really clunky. The IMGUI system (or normally referred as GUI system) is not really intended to be used for user interfaces. For the sake of Floatlands I’ve written our own GUI system that works upon the IMGUI and only uses one render call (OnGUI call) and can be greatly optimized and elements inside of the system can be also recycled (used multiple times). For now you can only draw text, textures, lines and points. This is going to be expanded so we can also draw curves, rectangles and shapes with multiple color definition (e.g. line with a gradient).

An example of how to use this system with ease (the method calls in OnDestroy, OnEnable and OnDisable are optional, but to recycle elements when certain objects are disabled/destroyed the ‘Detach()’ call should be called for performance reasons):

private float renderDistance = 2f;     //  How close should camera be to render GUI element below
private Floatlands.UI.Graphics.GUIElement element;  //  GUI Element
 
private void Start()
{
   element = new Floatlands.UI.Graphics.GUIElement(transform);
   element.SetRenderDistance(this.renderDistance);
   element.OnRender(() =>
   {
      Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position);
      GUIUtils.DrawCircle(screenPos, 25f, Color.white);
   });
   element.Attach();
}
private void OnDestroy()
{
   element.Detach();
}
private void OnEnable()
{
   element.Attach();
}
private void OnDisable()
{
   element.Detach();
}

And of course Floatlands GUI system in action (still needs more tweaking and polishing):


WEAPONS & ENEMY ROBOTS


ENEMY ROBOTS

This week I was preparing the hostile NPC robots. If you browse through our previous posts, you can find out that we already had basic robots prepared a few months ago, but some reworking was required. The sniper droid got a cool cape, and all the droids were equiped with an IK system that handles aiming, recoil and grounding. All the droids are also equiped with a ragdoll system for satisactory robot slaying experience.


Hardscoper


Grenadier


Assault


Army of enemy robots

WEAPONS

I also modeled the weapons for the player, but those still need to be animated for a good first person experience.


Weapons


NATURE IMPROVEMENTS & MUSIC CONTEST


  • We experimented and finally increased the density of our grass – it makes the landscape more fuller. Denser grass also lowers the game performance, but we tested some extreme variants and it still performs well.
  • Along with that we also upgraded to a dithering LOD system which makes the fade-in/out transitions of elements more smoothly.
  • We finished the mother island (second largest you can find in Floatlands)- in the video below you can see how they look.
  • At this occasion we wanted to invite all music composers who have been writing us to produce a composition for this video. We carefully listened to all submissions and finally decided for a demo made by

ALEX RICHARDSON -> website

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: