Weapons and enemy robots
ANDREJ KREBS
Enemy robots
This week I was preparing weapons and enemy robots. If you browse through our previous posts, you can find out that we had already prepared basic robots a few months ago, but they required some reworking. The sniper droid got a cool cape, and all the droids were equipped with an IK system that handles aiming, recoil and grounding. We also equipped all the droids with a ragdoll system for satisactory robot slaying experience.
Weapons
I also modeled the weapons for the player, but those still need to be animated for a good first person experience.
GUI System
DOMEN KONESKI
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. So we don’t really intend to use the IMGUI system (or normally referred as GUI system) for user interface. For the sake of Floatlands I’ve written our own GUI system that works upon the IMGUI and it only uses one render call (OnGUI call). You can optimize it greatly and recycle (use multiple times) the elements inside of the system. For now you can only draw text, textures, lines and points. We’re going to expand this 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 we disable/destroy certain objects, the ‘Detach()’ call should be called for performance reasons):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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):
Nature improvements & music contest
DOMEN KONESKI
- 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
Alex Richardson website
Join us on Discord
Looking good, loving the low poly style and color palette. Keep up the good work
Thank you, we’re glad you enjoy our work!