• 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 #16 - weekly update

Updates on procedural island generator and points of interest; implemented vector math acceleration and NPC collision avoidance optimization.

Posted by on

ISLAND GENERATOR

I’ve been working hard on an island generator. We were using premade islands lately and when I spawned alot of islands already I’ve gotten bored of almost the same results. I’ve changed this so now the mesh/terrain of an island also gets manipulated by procedural generation – in this case I’ve used Simplex noise. For now you can find three types of terrain:

flat terrain with chance of spawning a swamp/lake

hilly terrain


large hills/mountainous terrain -really nice to explore


I think this would do just nice apart from having different island shapes, biomes and sizes, the variety continues! I’m ought to work on LOD system and draw distance system, so even potatoes can run this game. When I’m done with this I’m looking forward to implement animals, so we can start testing how well can they behave in our beautiful world.


UPDATE ON POINTS OF INTEREST

CONCRETE TOWER – heavily guarded by enemy NPC robots; this is just an updated model which is already in the scene





WIND POWER STATIONS – these would recharge your robot’s energy, but dynamic weather is needed in order for this to work.




VECTOR MATH ACCELERATION

I’ve been testing Mono.SIMD included in Unity3D for vector math acceleration. It works quite well. Not so sure about PC CPU support yet, but all moderns CPUs should support it. Here is the result of my little test, one million vector additions:



var watch = new System.Diagnostics.Stopwatch();
 
watch.Start();
 
int runs = 1000000;
 
var vec4_0 = new Mono.Simd.Vector4f(1f, 2f, 3f, 4f);
var vec4_1 = new Mono.Simd.Vector4f(1f, 6f, 6f, 6f);
 
for (int i=0; i < runs; i++)
{
    vec4_0 = vec4_0 + vec4_1;
}
 
watch.Stop();
Debug.Log("SIMD:" + watch.Elapsed.TotalMilliseconds+ "ms");
 
watch.Reset();
watch.Start();
 
var vec3_0 = new Vector3(1f, 2f, 3f);
var vec3_1 = new Vector3(1f, 6f, 6f);
 
for (int i=0; i < runs; i++)
{
    vec3_0 = vec3_0 + vec3_1;
}
 
watch.Stop();
Debug.Log("Normal:" + watch.Elapsed.TotalMilliseconds + "ms");

NPC COLLISION AVOIDANCE OPTIMIZATION

I also reworked the NPC collision avoidance algorithm abit, it works much faster now.





Trick of optimization is that you update just parts of information every frame :). Only 6-9 raycasts per NPC instead of ~100 (lagfest).

Comments
nwint
nwint

I love the image of the windmill. Really captures what you are aiming for i think. Nice work. Keeping an eye on this!

Reply Good karma Bad karma+3 votes
6Pills Author
6Pills

Scenery and points of interest (windmills, towers, shacks) are progressing nicely. Character animations and behaviour are also in the works - hope to show you some samples soon. Thx for the support!

Reply Good karma+3 votes
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Icon
Floatlands
Platforms
Windows
Developer
6Pills Games
Engine
Unity
Contact
Send Message
Homepage
Floatlands.net
Release date
Game watch
Follow
News
Browse
News
New
Post news
Report
Report
Share
Related Games
Floatlands
Floatlands Adventure
Related Engines
Unity
Unity Commercial
Related Groups
6Pills Games
6Pills Games Developer
Indie Devs
Indie Devs Hobbies & Interests with 1,658 members
Indie Gamers
Indie Gamers Hobbies & Interests with 1,510 members
Steam Greenlight
Steam Greenlight Entertainment & Press with 217 members
Unity Games
Unity Games Hobbies & Interests with 1,812 members