October went by in flash, full of many Birthday's and ending in lots of spookiness and candy!
We've had our heads down working on a crazy number of cool things and this month we're super excited to share some of this stuff. First up we have the new Node system, formally known as the Stances system, read through Milcho and Loic's posts below to learn more about these and we did a Livestream last night that walks through the current implementation / prototype of both this and another new system, the Stack. You can watch it back here:
Next up we have an update from Sven regarding the changes and improvements to the AI systems and how this will effect gameplay. We then have the first episode of Dan's new Music Podcast, discussing his process for developing the NeuroSlicers Soundtrack.
Finally, we have a callout for focus testers who want to help us make sure our new Narrative trailer is as cool as possible.
Anyway, hope you enjoy this month's newsletter.
TO NODE OR NOT TO NODE....
I am writing this as I am watching a seagull watch me. How does someone write without watching the monitor you ask? With spelling mistakes. Thank god for auto-correct. Now that the seagull’s turned away its attention to some food on the ground, I can start shedding some wisdom about the big D (that’s D for design, you pervs).
For the past few months I’ve been implementing this system that has been in the design stage for more than a year (originally codenamed STANCES system, but no longer – can we please stop calling it that yet?). The way I see it, design ideas age like wine – you give them some time and they taste great, you give them too much time and they become vinegar. That analogy almost worked, so I am sticking with it.
In essence, this little system introduces three whole new Paths that you can build your strategy and game plan around:
- Data (build resource)
- Network (flexibility)
- Research (upgrades)
Each one is completely unique and players can choose to only go down a certain path, or mix and match.
It’s like, [Analogy incoming] choosing which shoes you’re going to wear for the day – you can pick the green or the red, but sometimes you can’t help but go RED and GREEN at the same time. Now, could I have come up with a better analogy? Maybe. Will I? Absolutely not – I stand by what I say. Also, no judgement, but who owns BOTH a pair of green AND a pair of red shoes – that’s just preposterous (no judging though).
Check out some of Milcho's Coding VOD's from our Live-streams where you can watch the implementation process for the Node System.Back to the reason I am writing words instead of code - Compared to the Pre-Alpha this system does a few things for the game:
- Opens up the initial 3 slots in your hand – now you don’t need to start with Pylon, Data Pods and Binary
- Brings more unique play styles on the table – this system will be in the core of how future scripts will be build, making use of those TASTY paths.
- More comeback potential – this naturally occurs because of the asymmetrical gameplay, since we no longer have a single way of judging who’s ahead (previously that was that nasty DATA GENERATION number)
- More Risk/Reward gameplay leading to some amazingly close matches
And with having wasted about 5 minutes of your life, I can feel satisfied. I’ll leave you now so that the rest of the team can contribute to the time wastage. In the meantime, hopefully seagull spotting becomes a thing in the future, because I am getting damn good at it.
NODE'ING BEATS A BIT OF ART
So with this new game design elements that are the Nodes, a number of new buildings will need to be designed to deliver and visually explain their function, supporting the design by helping players identify and memorize instinctively what each of those does.
The two main constraints are the branching and evolving nature of those, and production cost of this many new buildings.
To keep the cost manageable and feedback properly the evolving functions of each node path, we decided to try a modular idea, where from the initial Node that the player spawns on his territory, new elements will be loaded firstly around (to identify the path, Data, territory, or Research) and then on top (to identify the final form of the Node).
In this example, we have the base Node turning into a Data-Node, that works by spawning data-pods around itself, and thus can be visualised with pools of smaller pods growing, close to the spawning 'mature' pods appearing around the node.
Then this data-Node can be evolved into a number of structures, in this example a Trader, that can exchange pods for immediate amount of data and vice versa, thus visualised like a stock exchange tower, with rate displayed on a sliding screen, like in say, wall-street.
The second example of final Node structure is a Replicator, that uses stored pods around it to clone the units you spawn next to it, so a way to evoke this is to have some sort of 3d printing laser mech-arm creating the clones.
This system will keep evolving with the game designs but these sketches helped visualize how we could support all this both visually and in terms of 3d production.
Check out Loic's VOD's from his Art Streams where You can watch his process
AND NOW FOR SOME MATHS
If you’ve seen videos or played the game you probably have noticed that the units move in a strange zigzag pattern instead of walking in straight lines and you might’ve asked why it is like that. The honest answer is “We were lazy”, but that doesn’t really explain anything so I’ll have to go into more details.
A very important thing to us is that everything needs to be deterministic, meaning everything always needs to happen the exactly the same every time on every computer. This allows us to not having transfer the positions of all unit over the network and allows the game to handle a lot of units.
This doesn’t sound like an issue, after all computers are usually pretty good at doing the same thing over and over again reliably.
But when it comes to maths, more specific handling fractions, computers usually use something called floating-point arithmetic (En.wikipedia.org) which has two annoying properties:
- There is a limit in precision. If we have a value of 0.1 it becomes something like 0.10000000000546 and the precision get’s lower the higher the values gets.
- It doesn’t behave the same on every CPU (and can behave even more strange in a VM).
Remember what I was saying about determinism earlier? You may notice that the second point is an issue here.
To keep the movement deterministic, we opted to simply move the units on a hex grid, which has a higher resolution than the visible hexes, and whose coordinates are represented by integers (whole numbers). This effectively allowed us to avoid any issues with FP. Downside is that the units are bound to move along that grid.
So everything is good and units will always move in that strange pattern?
Nope, we’re about to change that. We’re switching over to use fixed point (En.wikipedia.org) in the future which has the downside of being a whole lot slower, but allows us to do all calculations deterministically. Doing that will require a lot of work as the way the current movement & pathfinding works has the big advantage that we don’t need local avoidance (read: we can easily avoid that units collide/overlap with each other). So changing it to a system that allows more ‘free’ movement requires a lot of changes to a lot of systems.
As a closing word a warning to every developer who want to use Unity to make a game that requires determinism (which will include, at least, every RTS): Most Unity stuff isn’t deterministic, don’t use their pathfinding, collision detection etc. if you need it to be deterministic. Well It may become better in the future as they seem to be working on deterministic floats as part of the burst compiler, but that will not work across multiple platforms (note: it has been some time since I read that, so things might’ve changed).
When Sven isn't working on mathematical madness he's experimenting with VFX. Check out his VOD's from his Livestreams for a look at the new Unity VFX Graph stuff we'll be using soon.
SECRET WORLD OF MUSICAL MACHINES
“NeuroSlicers: Behind the Scenes Music Blog” is a weekly audio series that charts Daniel Elms’ development of an original soundtrack for the indie game “NeuroSlicers” by Dream Harvest.
Dan’s unique, electroacoustic score treats Wwise as a musician, and supplies Wwise with the music fragments and rules that it needs in order to perform an open-ended, interactive musical score that is never heard the same way twice.
The series looks in depth at every aspect of the music’s creation: from the game lore and musical foundations, field recordings within the “secret world of machines”, through to the wonderful world of analogue synthesis and implementation of the music via Wwise. Along the way, Dan shares insights into his creative process, the on-going battle of writing his first ever game soundtrack, and a host of tips and tricks for both emerging and professional audio nerds
This is an 8 part series with episode 1 live now, available below. New episodes will be going live each Sunday.
Check out the first episode here. Episode 2 goes live on Sunday
CALL FOR FOCUS TESTERS: THE OPENING CINEMATIC / NARRATIVE TRAILER
Hey, so you know how we mentioned we're making a new Cinematic trailer.....well we need some help. We want to make sure it's as cool and epic as possible and really hits the mark in getting the dark cyberpunk story across.
With that in mind, we're looking for a small number of people to help us out. You'll get a chance to see a very early version of the trailer and then rate 10 short questions on a scale of 1-10, easy peasy and you'll be doing us a massive favour.
If you want to help us out, all you need to do is click the button below to register your interest.
THE LIVESTREAMING SCHEDULE
From the beginning of October, we're restarting the Streaming schedule again!.
That means that almost every day of the week we'll have something for you to enjoy and get a closer look of our journey developing NeuroSlicers.
Be sure to follow / Subscribe to our Twitch channel to get updates and know when we're online.
Here's the updated schedule - Do take note that these might change if they need to. We'll update everyone on the Discord on the day though:
Monday 9PM BST:
Gameplay Coding With Milcho
Tuesday 9PM BST:
No Stream (Team Meeting)
Wednesday 9PM BST:
Playtesting With The Sentry Team
Thursday 9PM BST:
Art With Loic / Audio With Justin or Dan
Friday 9PM BST:
Audio With Justin or Dan / Art With Loic
Saturday 9PM BST:
Graphics and AI Coding with Sven
Sunday 10PM BST:
Couch Co-Op / Board Gaming Night with the Dream Harvest Team
We'll be sure to upload all these streams to our Youtube, so be sure to follow, subscribe and hit the little bell icon there so you know when we upload new content.
That's it for this month. Thanks for reading everyone and we'll catchup again next month. In the mean time, we hope to see more of you over on Discord, on Twitter and Twitch and maybe at an event in the near future.
Justin & The Dream Harvest Team