• Register

## Floatlands

### 6Pills Games | TBD

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.

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).

### www.floatlands.net

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

Author

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!

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.

Profile
News
Related Games