Season’s Greetings – What a Year 2018 has been

Hi all and a very Merry Christmas to you!

What a year it has been for me and the Little Bit Lost team. I am really proud of what we have achieve this year and am very excited about what 2019 holds! I wanted to take a moment to reflect on the year that was and some of the key highlights we had along the way.

Solo Dev to Team of Four

At the start of 2018 I was still basically on my own though the ground work for growth had already begun. In late January Matt officially joined the team to help get some of the art pipeline pumping. He has help contribute the slater beetle, weaving table, forge, pen, glass bottle and a lot of marketing material.

By Mid Year we welcomed Drew on to the team as a programmer and community manager. So far Drew’s highlights include overhauling the corpse harvest system, big object carrying, stamina system, some voice acting for sound effects and producing the PAX Aus 2018 announcement trailer.

In August Aaran joined as our sound and music maestro and began give the world a lot more depth. He composed the music for our announcement trailer, added ambient sounds, gave all creatures there own unique sounds as well as gave the player some life using sounds provided by Drew.

Shows and more shows

It was a pretty big year for getting the game out in the public eye and overall we had at least a full 7 days of being on show. Attended small local events at PotLuck Collective, 2 separate days at Scitech sharing the game with young kids in WA, a full on 3 days at PAX Australia and then capping it all off with a showing at one of our favourite local events Perth Games Festival.

Looking ahead to 2019 we already have some big plans for showing the game at a few more events and we really hope to share more with you soon.

Making it more of a game

Little Bit Lost has grown a lot this year as well. This year started out with not too much to do and has finished the year with 2 new creatures, quite a few new recipes and crafting systems, improvements to the aesthetic and the addition of a few more places and objects in the world.

Have a safe and Merry Christmas and New Year.

Beer, White (paint) and (good) spirits!

Hi All,

Thing have been going at a rapid pace lately with the team now at 4 people!! To think I started this project over 3 years ago on my own to now have such a great team around me is an honour.

Beer stud

Aaran, our newest member of the team

Joining the team most recently was Aaran as our sound and music maestro. He brings to the team a wealth of knowledge not only in the sound space but also in the business and marketing areas.

As a full team we are very excited to announce –

WE ARE GOING TO PAX AUSTRALIA!!

It may not be a surprise to some of you but count this as our official announcement.

The team with the support of Sof

So with PAX on the road map we need to start thinking about everything that we need to do for that. One of the things that needed to be done was our team shirts. So as a team we all got together with the help of one of the amazing members of our local game dev scene, Sof, and screen printed our own shirts and jumpers.

So with a few supplies, a carton of beer and a few pizzas we began chipping away at the task. The results were amazing and we are really excited to show them off. We hope they are going to be one of the things that draws people in to say hi. That and the banner that we have for the booth background will also be a major feature but will save that for another day… 😉

Some cool swag for our cool team

Cheers,

Grae

Building a Nightmare

Hi All,

In the last week I have been working on one of the major big bads that you can encounter in Little Bit Lost, the Redback Spider!!!

While modelling this monster I recorded a video and put it together as a short time lapse. I am really happy with the result to the point it even gave me the creeps in the end.

Check the video below and feel free to post any comments or questions.

Thanks

Grae

Optimising Code – When Built In Methods Aren’t Fast Enough

Hi All,

I have recently being trying to get some further optimisations out of the world generation which has been a little bit of a bottle neck for a while. Running through the Unity profiler I found that my Perlin noise was one of the contributors to high CPU time.

After some investigation I found an article that mentioned a “fast floor” method. It got me thinking about the built in Unity Mathf.Floor and Mathf.FloorToInt methods and there performance. After a setting up some quick benchmarks using looping and stopwatches I benchmarked the Unity method against the one I built based of the mentioned article I found that the new method was twice to four times faster.

Implementing the method resulted in a substantial performance improvement. As can be seen in the above image the Floor methods are quicker and as they are used in a few places you can see the overall behaviour call is over 10% better. These performance results were done in engine and suffer a bit from that over head but as you can see in the below the frame rate in game.

We also have some very exciting news to announce soon, so keep an eye out for that too.

Cheers

Grae

Day Night Cycles – A revolving world

Hi All,

I have recently been spending time on getting the progression cycles and game play loops going. Part of fleshing this out is to give the sense of playing through a day and all its dangers then shifting gears at night when different insects come out and opportunities are aplenty for a skillful survivor. Building the cycles was not without its challenges and hopefully anyone dealing with the same may find this article helpful.

 

Blending the Skybox

This was an interesting challenge and one I couldn’t do without a bit of help. After a bit of research I was able to find references to a a shader that allowed for blending between 2 skyboxes and included a fog. As part of the swing between day and night you can lerp between 0 and 1 where each extreme is 100% of either the day or night skybox and 0.5 is a blend between the two. If you want to check it out have a look here.

Rotating the Sun

On face value this seems like an easy problem to solve but I had to think about it for a while as when a additional players joins they need their sun set correctly on their game client so that it matches the server, and if for any reason a player needs to go to debug mode and change the time they can. I made the below demo where I manipulated the time to show how the sun will flick between stages.

One of the reason the reason I had big problems with the cycles was putting the sun at the right spot it the sky. If you take time of day as a percentage of a whole day you can multiply it by 360 which gives you its angle in a circle. But when you know where the run should be and need to move it there smoothly you need to also know where it is now. This is where the problem comes in, if the sun has passed it’s half way point, the angle between 2 vectors does not return a value greater than 180. So what I needed to do was the below.

  var angleWhereShouldBe = (((timeOfDay / dayLengthInSeconds) * 360) -90) ;
  var localAngle = Vector2.Angle(Vector2.up, sunLight.transform.localPosition);
  Vector3 cross = Vector3.Cross(Vector2.up, (Vector2)sunLight.transform.localPosition);
  if (cross.z < 0)
  localAngle = 360 -localAngle;

Basically  if the sun is passed the half way point (determined by if the cross product of the 2 vectors returns a negative) then deduct the angle from 360. This gives you the correct angle.

It is also worth noting that I had issues with the concept as I was thinking about the vectors in 3D. The reality of it is that the sun only needs to rotate around on a single plane so its z coordinates are irrelevant. If you did want to do something fancy around the z I would suggest still using the above and a sine function of time to calculate the z position.

Other points of change were the sun needs its intensity changed over time which can be a simple lerp function for 1 part of the day. This gives the impression of a sun rise and sun set as the light increases or softens. I also adjust the ambient light using the same method so that I can get a more orange ambience during the day and softer blues at night. The sun needs to follow the player so I attached it as a child of a game object with a basic follow script to the local player. And finally, as the game is intended to be multiplayer there is a synchronise function to ensure that clients are at the same point in time.

I hope this has given some insight in to the thought process needed to solve the cycles and if you want to check out what the end product looks like see the below video. Also worth mentioning that it will be a lot better once Matt has given it the artist pass in the future.

Thanks

Grae

Optimisations and more to see

Hi All,

I have been working hard for the last few months on some changes to the way that the voxel chunks are loaded resulting in a reduction in the number that I need to have loaded. This was the result of changing from a cubic loading pattern to a diamond loading pattern that didn’t greatly reduce view distance but significantly reduce chunks required to be loaded.

 

As can be seen in the above 2D representation this is ~50% reduction but in 3D space this is a massive ~80% reduction! As an example in the old pattern a view distance of 7 chunks would require 3,375 chunks loaded in to memory. In the new system the same view distance loads 575 chunks!

Below is what this represents with the first image showing a can at a view distance of 6, the second is at view distance 11. Just under double the view distance but still less chunks loaded at 2044 compared with 2197. (Note: The fog was turned off to make the can visible.)

There still remains some strain on the CPU as the number of changes per chunk transition remains the same at each view distance but I am working on some additional optimisation to fix that as well, so keep an eye out for more to come!

 

Cheers,

Grae

Global Game Jam 2018

Over the weekend Matt and I had the pleasure of being joined by old friends and new to participate in the 10th annual Global Game Jam. The theme this year was “Transmission” which was a little reminiscent of last years theme “Waves”.

Our team consisted of Jake, Manuel, Mike, Drew, Fred, Matt and myself. We later recruited Aaran to do some music and audio.

We dove straight into the theme really thinking about what we wanted to produce and how we were going to achieve it. We settled on the idea of real time strategy style where the player took on the persona of a god transmitting their message to the people of a steam punk town, trying to route out a spreading heresy spread by a sinner through the use of various divine powers.

What resulted was a crazy weekend of intense work, learning of new skills, lack of sleep and bonding over an amazing shared experience.

You can check out Complication of Faith here or watch a video of what we had by the end of the weekend below.

 

Bringing the team together

Today marked the first day that Matt and I began working together on Little Bit Lost and an exciting day it was. We were able to really nut out a few ideas and a plan for the months ahead. From a personal perspective it was great to have someone to work with that brings fresh ideas and enthusiasm to the project.

Matt came up with some great new ideas and we will be really excited to share these with you over the coming months. We are already progressing with some of these ideas so keep an eye out for some cool new screenshots!

Cheers
Grae

Networking and Networking

Over the weekend I caught up with a very talent local Perth developer called Claude. We caught up for a coffee and talked about our respective projects. Claude has been working on his game for a similar time to what I have but has build his engine from the ground up! Not only is he a great coder but has done all his own art as well and from what he shared with me I can say that he is a game developer of great talent. We had quite a long chat and I left feeling very inspired for the weekend ahead.

Building on this inspiration I dove head on in to some more networking code and after 2 very late nights was able get the inventory system converted to support networking as well as adding loot containers and serialisation to file as part of the chunk. What this means is now the only major outstanding element of network implementation is that of the inhabitants of the the Little Bit Lost world, the ants, spiders and other arthropods.

So ideally the end of the month should have me back to adding content and play testing on a network. This time last year I was not a fan of network code. Comparatively this year many lessons learned have made it enjoyable and the prospect exciting. Below I have included a test I am doing to make crafting more intuitive.

It’s Been A Wee While..

It’s been a long while between posts but I thought I would jump on let you all know what I have been doing and how Little Bit Lost is progressing.

Since the last post I have been to PAX Australia, Mauritius for a family holiday, I have had one of my oldest friends visit, I have had my parents visit, I have passed the Unity certification exam and most recently have participated in the Global Game Jam. Needless to say it has been an intense few months but very enjoyable.

As busy as it has been there has still been plenty of time for development and Little Bit Lost is feeling more and more like a real game everyday. Just this week I feel like that light at the end of the tunnel has really become a visible thing despite still being a significant distance away.

As part of the development of the peacock spider I wanted to continue to grow the base script for all insect and bugs. This makes it easier to implement a new creature once the model is done. As a result I slowly lead into designing for multiplayer networking…

Networking has been an area that has intimidated me since this time last year, but it’s a feature I was not willing to compromise on. So I continued working on some of the structures and ended up rebuilding a lot of the network code that I had already implemented. The result was faster and better constructed code that, I can happily say, will mean that Little Bit Lost will be a network game. This does come with some caveats at this point and that is that it will likely be designed for Local Cooperative Multiplayer only at this point.

It does meant I don’t have much to show for the last few month of effort but I have recently just finished re-implementing the network version of the inventory system so within the next month or two I plan to get heavily back into implementing more content and polishing the existing content.

So this year is going to be a massive year for Little Bit Lost and hopefully there will be a lot to share along the journey.

Cheers
Grae