White Shining Rock Logo
White Shining Rock Logo

Let's sum up...

December 16, 2020 | Dukus | 57 Comments

Do you ever get into working on something, and you're absorbed in it, and you keep putting off telling people about it? I apparently do...

So about a year ago I started work on trying to make AI characters more flexible compared to Banished, both in what they do visibly and in the way the code and data are setup. I wanted characters and objects that could be modified by me and by end users easily, because modding is cool. But things spun out of control. A bit.

I started with a text based behavior tree system, which once I got working looked a lot like a scripting language, so I started adding other features that made it a scripting language. (I had a post ready to go about how awesome it was.) It then got more complicated, needed a runtime debugger, and it started running other parts of the game, not just AI. Maintaining it was getting messy. Writing a game in a language that is being modified is not cool. Having script do slow things was not awesome. Not making progress on a game because you're writing something to write the game is not the best.

The only great thing about it was that writing a programming language was personally satisfying. But it just doesn't get other projects done. I could have told you that before all this, but I fell into it a trap I knew about.

One day, I just deleted all the code, and immediately felt better. But don't worry, it's in source control if I want any of it back. There were some cool tangential things in there that I might use one day. It was time to move on and work on something different for a bit.

I tend to turn to graphics related things when I need a change of pace. So...

What I'm working on is now open world-ish. And as I started moving between play areas, which are currently islands, they visibly deformed. Mountains flattened, detail disappeared jarringly, and area near the coast line changed unacceptably. I stopped using a system of regular grids that smoothly changed detail based on distance. I instead switched to a system that is based on binary triangle trees that subdivide detail levels based on an allowed error metric. I'm using simple geo-morphing to smooth out the cracks between detail levels. This allowed islands to keep more detail in rough parts, and at coastlines, and use less detail in flat parts. It also reduces triangle count under water since you never see it. It uses an order of magnitude less triangles for the same and even better perceived detail, so it maybe even renders faster.

And, yes, I know the newer hotness is using the tessellation units on the GPU to add detail in areas based on view distance and terrain roughness, and sampling the height on the GPU as well, but I want to keep my shader model on the low side so that the majority of older GPUs out there can run the game.

I also added pre-built low resolution versions of islands with baked textures, so distant views can load them fast and display them in a single draw call without the overhead of having an entire terrain and all textures loaded.

With that out of the way I started filling in some missing parts of the scene, basic sky, simple ocean, and a unified lighting model for everything. It doesn't look the greatest, but for now gets the point across, and is setup to allow for some neat effects. Waves, clouds, time of day, sunsets, etc. All lovely things that will wait until later.

Going open world is tricky. I can't load and generate and run everything at once. Some things need to be loaded in a low resolution, some full resolution, some not at all. When you leave one place, everything needs to be saved so that if you come back it's still there.

To assist with this, I changed my game engine from having one scene to multiple scenes. Imagine a scene as a collection of the visual display, the collision data, pathfinding data, and a bunch of objects that do things grouped together. Having multiple of them allows me to load them in the background, perform any expensive setup or shutdown, and then add or remove them from gameplay in an instant as needed.

Making a change like this to an existing engine is painful. In theory it sounds simple, like, just create another one of what's already there and be done! But all the separate scenes need to work together when running - they aren't always isolated regions.

And each scene has its own transformation, which can make thinking about where objects actually are slightly more difficult. At a high level I treat everything as being in world space, but each scene has its own local transform that it works in.

I broke everything temporarily and had to modify almost every underlying system that runs the game. That's graphics, hierarchy and animation, audio, pathing, collision, entities, background loaders, and the core engine loop. Phew.

To be fair, I did it piecemeal, and wrote a test app that didn't use most of the engine at the same time so I could test the change to each system. Changing 100's of files without regular testing is just disaster. Once put all together, debugging was a fun few days of mysterious problems and errors. All seems well now.

With that out of the way, it's time to start implementing things that the AI does again. Anything that was behavior tree/script just doesn't exist anymore. So a bit needs to be redone. It's a bit like coming full circle and sort of starting over.

I hope you are all well, hugs to all this year, it's been crazy, and thanks for reading!

Leave a Reply

Your email address will not be published.

57 comments on “Let's sum up...”

  1. This is WAYYYY above my paygrade, but I am glad you are still at it! Can't wait to see what you come up with next!

  2. Glad you are still at it. Still playing Banished and people continue to mod the great game. It's relaxing to sit back and watch them work...relaxing in these crazy times.

  3. Nice to hear from you again! Sounds like you're still having a great time writing code and making engines. Best wishes on your project. I'm excited to play it!

  4. I was thinking about you just the other day and was curious as to how your new project was coming along. Keep us posted! Cheers!

  5. Any game that you make will be great!

    Any game that you make and which has music from your brother will be amazing !!!

    Keep fighting the long fight. Slow and steady wins the race.

  6. Thanks for the update, always liked reading your efforts and posts. Waiting for whatever game you come up with next.

  7. Hi Luke, good to see you're still alive. A few months ago I checked to see if I was missing blog posts and thought maybe he's sick.

    I must say the first thing I thought was: feature creep haha.
    Interesting to see what's keeping you busy. Good luck! Looking forward to the next update. Hope you will have nice holidays!

  8. I don't understand any of this, but nice to hear from you again! Have a Merry Christmas if you celebrate!

  9. I am so relieved to see this update! At first I thought maybe you just wandered off into the sunset. Then I started to worry that covid killed you.

    Rest assured, I will buy this game whenever you release it.

  10. I understand the pain too well, while I haven't done anything as low level as rewriting the game engine I tend to get sidetracked when working on almost anything XD

  11. Estou feliz que esteja bem também, Foi ano bem difícil para todos, muitas perdas, mas seguimos em frente. Desejo um feliz natal e que bom que esta trabalhando em algo novo.
    Espero que de tudo certo e que novidades estejam por vir...

  12. I was just thinking about you the other day & wondering what you were working on since we hadn't heard from you in a while. Sorry to hear about the issues you are running into but sometimes we have to take 2 steps back to move 3 steps forward. Looking forward to see what this new game will be. I'm sure it will be great! Still loving Banished! Merry Christmas & Happy New Year. Stay safe & healthy.

  13. Great update, love your technical therapy emails. Still loving Banished and can't wait to see what you are working on next. As others have said take your time and don't forget to have some fun over the holiday in between engine re-writes!

  14. So many small devs quit mid game these days I thought you may have done the same. VERY glad to see I was wrong. This next game will be a day 1 purchase for me and many others, so keep it up, looking forward to many hours of enjoyment from it when done. Merry Christmas to you..

  15. Hi, so good to hear from you and that you are still working on the next 'goat' game.
    Was deleting some unused Labels yesterday and when I came to "Shining Rock", I paused, considered, and then thought, "No I have faith", and here you are!
    Was reading a crit on an upcoming game the other day and it compared itself to "Banished, the best game ever".
    Good luck moving forward.

  16. oh hey, nice to see you're still alive. good job with that.
    also really looking forward to your release in 2030.

  17. All I can say is for years I have been reading your posts and playing your games.

    Thank you

  18. I think I understood about half or less of that, but it was a fascinating read anyway. It sounds like you're still interested in your project so that's great to hear! Thanks for the update!

  19. Thanks for the update and please post just a little bit more often (than every fourteen months :-)).
    Merry Christmas!

  20. Great to hear things are moving forward! Really looking forward to what ever may come out in the end. Keep it up!

  21. Hi,

    I am not following up on everything, is this post regarding Banished open world or it is new project?

  22. Always a pleasure to read your devlogs.
    It's only now I realise it's been a year since the last one. Keep on going, it's really nice to read about the problems you encounter and the process on how you solve them 🙂

  23. I love Banished! Just got this year! I'm glad you're doing well and you updated us. We were getting worried!

  24. You deserve all the praise for what you have done so far and what you intend to do! I do wanna request that please keep us updated more often please, as we love to hear from you about your work and progress of such a lovely project. I wish you luck and lots of love from Pakistan.

  25. I bought this game right out of the chute when it was first offered on Steam. I always have found this a 'come back to' game. As usual always a challenge but a new one each time you start another town. Bravo sir....please keep up the good work to make the game even more enjoyable.

  26. YAY A NEW POST! I check here regularly~
    Wow I love the new work you're putting in, it looks like it's going great(setbacks and all)! You are good at this!
    I love Banished, and I know whatever game you might make next will be awesome~ Very good work! No rush! Have fun!

  27. Looks spectacular, amazing, exciting, and can't wait for the launch.
    I'll be there like a bear to splash out and start a new adventure.
    Good luck with the work and finishing and all the best for the new year as well.
    You're a genius as demoed in Banished.

  28. Like many others, I bought banished when it first released and had so much fun through the years. Me and a friend would constantly play this game together and try to see how elaborate we could make our towns, lots of fond memories.

    Decided to redownload it today and check in, glad to see you are doing well and continuing to develop new things!

    Have a Merry Christmas and a Happy New Years!

  29. Nice to hear from you again, sounds like you had a decent ride through 2020. Don't be a stranger, and good luck!

  30. Thank you for the update, I've really enjoyed the first game and excited to hear you are working on the AI as well as graphics and a whole new experience. It sounds like a lot of fun and I wish you the best of luck in your coding adventures!

  31. Best christmas present ever! A new game on the horizon. Just started playing again with my attempt at 8000 pop on a vanilla map with no mods. Banished has been copied many times but nothing compares to the original.

  32. Looks amazing work you're up to and just wanted to say I love Banished. Its fantastic to know you're creating new worlds and cannot wait until they're released. Have a Merry Christmas, stay well and good luck!

  33. Been playing banished again, thought i'd checkout the devlog. Looking good! Will you be setting up a patreon or something? Would love to show some support.

  34. I keep filling the entire map with cities in Banished, and coming back to see whether you're releasing something new soon. I truly believe Banished is the best city builder game ever released. If it had challenges, various play modes and goals, rare environmental damage, and maybe battles, it would blow everything else out of the water. Please release something soon, even if it's just an updated, bigger banished.

  35. From my estimation, you've made at least $1.000.000 from Banished sales, based on steam sales alone. It must be a huge priority for you to get a sequel released? Why not hire a small team to help in the development, and why waste time on projects that aren't working? Are you super wealthy?

  36. glad to hear your still working on it!, still don't understand your original limitation of only four rotation points when placing things

  37. I had forgotten where to find this blog, but were missing a good builder. As always, ended up firing up Banished, and started thinking about how you were doing.

    As someone who always wanted to get into game development, but still haven't found a way, it's great to hear about your deliberations as to what is important, what is not, where you get stuck and decide to start over, etc.

    If you are up for it, it could be great to hear a little about your own situation - how is to manage people's hope for an even better game than Banished? Also, like Martin Hagensen asked, how are you managing, financially, as a one-person developer? Have you considered starting a game studio with others/employees?
    Would be really interesting to hear your thoughts on the future of you & Shining Rock!

    Thanks for a great game and your thoughts on "builder tech"!

  38. Your work can not do, because you have experience) Honestly, I like to be kicked out and played from time to time. Cool. Good luck.

  39. Wait so is this game still in development? Is there a chance for an update soon?

  40. I am so happy you are alive and working on the game! I was so worried not to see any new post the whole 2020.
    I wish you all the best and look for the next update.

  41. Hey man, Love your game man. Been playing it for years now and i pick it up from time to time, and it just gets me hooked for days. Good luck with the game! Glad to see you're working on it.
    I was scowering the webs for signs of life.

  42. Banished really changed the way i looked at Simulators, i've played and logged tons of hours in them and Banished really stood out to me. Got all but 4-5 achievements and had loads of fun. I really can't wait to see your next project! Keep up that good work!

More Posts

Code Rot

April 17, 2022
1 2 3 47
Back to devlog
Back to devlog
© Copyright 2021 Shining Rock Software
Website Design & Branding by Carrboro Creative
menu-circlecross-circle linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram