Let’s throw you in the deep end of throwing Sparks!
Optimisers, Wanderers and Spark-callers,
It’s November and it’s getting dark, but we have our little pumpkin lights still on! At the end of each month, we set aside a day for everyone to work on their pet projects, learn new things, and try something out. For October, our 3d Artist, Anastasia, whipped up a spooky scene with our art assets for social media. Please enjoy!
Let’s talk more about the project and show you something we’ve been working on. We asked you what you wanted to see and the poll in our Discord showed the next devlog should be about Throwing Sparks at Workstations!
So today, we have one of our programmers, Lukas, to get technical about the feature!
Throwing Sparks!
The concept of throwing Sparks has been around since the earliest stages of Oddsparks’ development. From the very beginning our Creative Director, Michael, wanted to create a game with a throwing mechanic. Now it’s a core feature of what ended up as Oddsparks, adding an exciting dynamic to gameplay.
What can you throw around?
As we were exploring different game concepts, we discussed the potential of throwing Sparks and how it could be integrated into various tasks such as harvesting, fighting, collecting resources and assigning Sparks to paths. It only made sense to extend this throwing mechanic to workstations as well: simply throw a Spark onto a workstation to assign it. Similarly, you can call the Spark back from the workstation, just as you would from a path or any other task. However, it’s important to note that this wasn’t always the case.
How it used to be
Looking back, it’s fascinating to see how our ideas evolved over time. Initially, we had separate interaction systems for different tasks. Minions (the placeholder name we used for Sparks) couldn’t be thrown onto paths; they had to be assigned through a user interface.
Similarly, Sparks couldn’t be thrown directly at workstations; they required assignment through a UI as well. The only tasks that initially supported throwing were harvesting and fighting. Through numerous iterations and playtesting, we were able to streamline the Spark interaction system to its current state, where throwing and recalling them is possible in almost any context.
The secret life of a working Spark
From a technical standpoint, throwing the creatures to workstations was a unique challenge. The Sparks placed in workstations are no longer considered active Sparks. Normally, they follow the player character and perform various tasks based on their AI state—fighting, harvesting, following, and so on. However, when a Spark is thrown onto a workstation, it is removed from the game and added to the workstation’s Spark inventory, effectively becoming an item.
Each workstation has its own inventory, responsible for calculating the production speed of the machine. The Sparks you see working at workstations are visual representations of this inventory and do not possess any AI behavior or belong to any player.
Other features this month!
We’ve also worked on a lot more things. Here’s a few topics that we’re thinking about for Devlog #3. Comment with what you’d like to know more about!
- Playing together is great! But what if you don’t want to play with a certain friend for now? We’re making a feature to
prevent a friend from joining your game!
- We did a big Recipes Rebalancing! We can talk a bit about what we want from our recipes and why we did it.
- We’ve crammed lots of information in the game into one convenient Glossary!
- We’ve had them for a while, but we can also talk about our Spark Sounds and how we make them.
- And we’d also love to talk about Enemy Animations, we’ll give you a peek behind the curtain to see how the Beelephant moves!