• Register

SugarMill comes to break the rules of village building simulation. Get ready to deal with food expiration, thirst, real world measurements and transportation of goods with horse drawn carriages. Can you survive?

Post news Report RSS Sugarmill - City builder - Dev Log 3: Mar 10th: Steam Greenlight! Date is set

The announcement of the game coming to Steam Greenlight Mar 10th 2016!

Posted by on

Hi!

My last dev log was post Jan 8. So it’s been a month or so. I would like to start by saying I'm finishing week 8 now. With 12 more weeks to go and the schedule has suffered a few changes. Like always added more programming time, despite the protest of my wife. She insists I spend more time doing art/graphics. It’s hard to balance where I want to spend my time as in order to achieve the best result for my game!Initially I only had 6 weeks for programming only and I extended to 8 weeks.

The most challenging thing I have encountered in the last month for sure has been the performance in the game. Can't seem to get it over 300 people without suffering the FPS. I'm trying to generate the least amount of garbage as possible and been working on that a lot. Thanks to the creator of Manor Lord he has answered many of my questions in regards with Unity Skinned Meshes that are a challenge on their own. In this kind of game you will have many of them at the same time on screen. Rerouting if new buildings are added or removed. Having kids, eating, being happy or depressed. Anyways, they do have a lot going on. The Person class has over 600 LOC and contains many classes itself. The Body and Brain classes are contained in Person. Brain alone has over 1000 LOC it’s by far the most complex piece of code I have ever written. In Unity you only have one threat to deal with which is the void Update() so you cannot do to many things on it otherwise will kill you FPS.

For example if you run on every frame a for loop with 1000 elements in 100 objects that will destroy your FPS therefore you have to start to do things more asynchronous. I start a loop and I expect it finishes a few seconds later. So I have to catch it on time and in the proper way. It’s being a rocky journey this with asynchronous calls.

Announcement:

The most important thing I want to mention today is that the Steam Greenlight Date is set to Mar 10th 2016. Really thrilled and happy to announce this, as this game has been in development since Summer 2014. (Mark it in your calendar)

The Greenlight concept page has been active, it was in the first 6 positions for the first week. So I'm really happy and please about that.

Check out this video that shows the Ships routing towards a new Dock:

New game features in the last four weeks:

Port Reputation: I worked on this for over 4 hours. Basically if you have business in your port more ships will come to it. You have 4 different structures that will affect that, Lighthouse, Dock, DryDock, Supplier.

The Lighthouse gives reputation to your port by shining the light to ships as they go by, should a ship be depleted of resources they will change course and go to your port to replenish supplies. In order for your light house to work effectively, it must have wood and coal to burn and at least one worker.

In the Dock you can add both Import and Export orders. If a ships comes and is able to do both imports and export orders it will add points, if the ship is only able to take one (either import or export ) it will not add anything, if its not able to take neither then it will remove port reputation.

The structures DryDock and Supplier affect the port reputation in the same manner. If there are items to sell it will increase the port reputation, otherwise it decreses it.

    /// <summary>
    /// What will be added to Port reputation for each ship 
    /// </summary>
    /// <returns></returns>
    float Survey()
    {
        float impo = -0.1f;
        float expo = -0.1f;

        if (_didDockImport)
        {
            impo *= -1;
        }
        if (_didDockExport)
        {
            expo *= -1;
        }

        if (Building().HType == H.DryDock || Building().HType == H.Supplier)
        {
            return expo*2;
        }
        if (Building().HType == H.Dock)
        {
            return expo + impo;
        }
        return 0f;
    }

Pirates Threat: If goes above 90 you lose the game. To keep it down you have 4 military buildings that must have soldiers to be effective. The buildings are: GuardPost, Tower, Fort, Morro. Once you build a Morro you will keep pirates out of your mind, however building a Morro is not an easy task.

The Visual Studio Project is still growing so far 21397 LOC. The project weight in the hard disk is 1.8GB and the Standalone windows built 32 bit of the game with only couple of maps is 560MB I have not worried much about disk space since PC and Consoles this days have plenty of it. Instead I have focused on the game performance and functionalities of it.

Here are wireframe of how a person model has suffered to until it came down to 120 polygons 100 vertexes and only 24 bones, at expense of visual quality has come but I always want it the game to fill as smooth as possible.

1st model

2nd model

3rd model

4th and last model so far

Must say the Unity Profiler at times is really slow and frustrating but overall it’s really good showing where the pikes on CPU usage or Garbage Collection generation is. Want to say thanks to the Unity team on that one.

Definitely want to mention that there were two articles that were recently written about the game. Pirates Ahoy did an amazing article on the game and Simcitycoon as well.

This week I started testing the game overnight. So I have reached over 650 years with 200 people without a bug. Yesterday was not the case. Got a silly bug in where people where running out of Dummy objects. And got a Unity Output log of 4GB

Considering all the above, please if you like the game and you support it please (mark it in your calendar) and help spread the word. SugarMill is coming to Greenlight Mar 10th 2016 so during your busy day you can remember to find a spot in and vote the game on Greenlight. Thanks for reading indie mates. Have an awesome weekend and for those who believe in it, Happy Valentine day too! Cheers!

Post comment Comments
Thagarr
Thagarr - - 21 comments

Great Dev blog mate! I am really looking forward to playing this one! We are just starting to get in to character development ourselves. I am sure we will run into similar problems once we get people climbing in to the rigging.

Reply Good karma Bad karma+2 votes
AatlantisCode Author
AatlantisCode - - 27 comments

Indeed. Is get's hard the optimization process. Many skinned meshes at the same time and 60 fps is a lot of fun ;)

Reply Good karma+1 vote
OJeskulke
OJeskulke - - 94 comments

Nice to see how much progress you got!

Reply Good karma Bad karma+2 votes
AatlantisCode Author
AatlantisCode - - 27 comments

Thanks

Reply Good karma+1 vote
saintworks Online
saintworks - - 17 comments

Awesome - really challenging and I'm really looking forward to vote for it at Steam! All the best.

Reply Good karma Bad karma+2 votes
AatlantisCode Author
AatlantisCode - - 27 comments

Thanks for your support and Steam Greenlight vote

Reply Good karma+1 vote
Post a comment

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