Skip Navigation

DevBlog #53: Engine rework launch announcement and smart watches

Sneak peek into something Maxchill has been working on that’ll be very exciting!

Sneak peek into something Maxchill has been working on that’ll be very exciting!

Hello and welcome to DevBlog #53!

Today, we have an announcement about the engine rework (and maintenance), extensive information about smart watch integration (including a survey), and some exciting news and sneak peeks related to in-game locations.

Also, we just posted a one year celebration post - if you haven’t already, you can read it here! Thanks for all the amazing comments ❤️

Let's dive right in!

Smart watches

Smart watch testing has begun

Smart watch testing has begun

In a recent discussion on Reddit, players pointed out that because iOS implementation for smart watch support would already be possible, they'd like us to work on that. We've been holding off on this until Health Connect on Android is functional in order to release smart watch support for both platforms simultaneously.

I've been tunnel-visioned in thinking that in order to keep the game fair and not prefer some devices over others, we must release the smart watch support for iOS and Android simultaneously. Supporting smart watches would be quite easy for iOS at the moment, while adding support for Android might still take longer depending on how well Health Connect works and is updated by Google.

However, we're in Closed Beta and it would be good to build out this feature, even if only for iOS, and get it into testing. Having it integrated into the gameplay would also make supporting Android quicker later on.

We’d like to ask the community’s opinion on what our ideal proposed plan for smart watch integration is. We are opening a survey where you can voice your opinions on this issue, and it helps us to set our priorities again. This plan is simply:

  • Develop and release iOS smart watch support in the coming weeks.
  • Iron out bugs with the iOS community while developing Android support.
  • Fix bugs, and release Android smart watch support when ready.

Here are some points to take into consideration on this survey:

  • If you are just using your phone, there should be no difference in your gameplay.
  • Developing and releasing the smart watch integration for iOS first would likely iron out most of the possible kinks and issues there might be when building smart watch support. This means that when Android smart watch support is ready for release, it'll likely be already quite stable.
  • Having this released on one platform at a time makes it easier for us to troubleshoot, as we know everyone using this feature will be on iOS.
  • Like discussed by many, smart watch support is for many people a barrier they've mentioned why they haven't picked up WalkScape yet. Having this feature on iOS might increase Patreon & BMaC support, making it easier for us to hire another dev down the line.

Link to the survey

Proposal: how would it work?

We've already begun testing smart watch support for iOS, and here are our current findings. We're exploring various options to ensure using a watch will be as easy and smooth as possible.

When you first open the game or visit the settings menu, you would be provided with the option to choose your step source. The phone is the default, and additional options only appear when other compatible devices are available.

In our current proposal, you can choose a single source for your steps—either your watch or your phone, but not both. While we'd like to offer more flexibility, we face several limitations:

  • Apple Health calculates total steps from multiple sources, but using this total would prevent us from implementing proper anti-cheat monitoring. This isn't currently viable.
  • Steps from third-party devices like Garmin come through their own apps (such as Garmin Connect) to Apple Health. We need to maintain a whitelist of trusted third-party sources, which works best with a single selected step source.
  • Managing multiple step sources introduces significant complexity. Though we want to explore this possibility, implementing multiple device support would require substantially more development time.

For the initial version of smart watch support, we believe letting players choose one source—whether it's their phone, Apple Watch, Garmin Watch, or another device—is the most reliable approach.

How would these options work on iOS

There are other technical limitations with smart watch support that we've found. These are iOS-specific, and might be entirely different on Android.

Apple Watch

Based on our current testing results, we can't poll your steps from Apple Watch in real time. There is some kind of limiting factor in Apple Health, and we'll try to see if there's a way around it. But at the moment, it seems that if you have Apple Watch selected as your source, you won't be able to see your steps update in WalkScape while the game is on. Steps would only be updated when you open the game (including bringing it foreground from background).

Third party watches like Garmin

Third party watch apps only provides third-party watch step data in around 15-minute segments (we’ve been only able to try Garmin Connect so far), and this data isn't available in Apple Health unless you go into the third-party app and sync it. So if you have a Garmin watch, for example, selected as the source, you would need to go into Garmin Connect and sync it for the steps to be counted in WalkScape.

Implementation & development

That’s the result of our testing so far! We've already managed to put together a system into the game where you can switch the source for your steps, and those would count as your steps inside WalkScape on iOS.

The system still needs a bit of polish to be release-ready, but we would like to first hear from the poll and the comments to this development blog affirming if we should prioritize this now over other features. If that's a yes, we'll aim to release smart watch support in the next few weeks for iOS. We would likely also start more in-depth testing on Android to see if Health Connect is in a state where we could support it in-game.

I'd like to hear from you if the proposal for the system, especially considering the technical downsides, sounds good. Also, if there are alternative proposals for the design, we would love to hear them. One thing we've been thinking is that smart watch steps would only be used when loading in background steps, but the game would automatically revert back to the phone's pedometer when it's on. This way, getting real-time steps would still be possible.

Also, just to keep in mind—this is the proposal for an MVP solution we can put together quickly. We'll keep improving it based on feedback and what kind of solutions we might find. Apple will also likely keep developing their systems, which might enable better integration in the future.

Engine rework announcement: release on Jan 29th, 14.00 UTC+0

We are finally finished with the engine rework and ready to release it!

IMPORTANT NOTES

  • The maintenance will begin on 29th of January (Wednesday) at 14:00 UTC+0. Due to extensive infrastructure changes, server migrations, and other tasks, the downtime length is uncertain. We expect it to last at least 5–6 hours, possibly longer.
  • Due to the complete rework of the game's local storage system, steps taken during maintenance will not be counted. Before maintenance begins, please open the game to claim your steps and verify that your character has synced to the cloud. You can confirm this by checking the leaderboards to see if your character's information is up-to-date.
  • Our timeline may change. I'll keep you updated about any changes, with the most current information available on Discord.

This is the largest change the game has had from a technical standpoint so far — almost everything has been refactored, optimized, and tinkered with, including our server technology. I've never done this kind of massive migration on a production server before, so please be patient with us and be prepared that some things might go wrong.

Even though we've spent the last few weeks testing everything as well as we can, there will be new bugs and issues with the reworked engine. Sending us bug reports is much appreciated.

Engine rework: what has changed

The game engine's functionality has undergone a complete rewrite. Additionally, I've refactored most of the game logic code and improved performance across nearly every aspect of the game. This improvement should be quite noticeable for players who have experienced slowdowns in the past.

List of changes & fixes:

  • Server-side code is mostly rewritten. Authentication and saving the game now takes only a few hundred milliseconds, depending on your connection.
  • Game engine is rewritten and now uses multi-threading for all of its processing. This should result in everything being much faster to process and the game's UI being a lot smoother.
  • Anti-cheat is vastly improved. I'll not get into details on exactly how, but we've made a significant jump on our anti-cheat.
  • Communications between the server and client are now for the most part both encrypted and compressed. This should result in smaller data usage, faster loading, and improved privacy from malicious third parties.
  • Issues with steps not being counted when the game's loading of steps is interrupted should be fixed. With multi-threading, we're now able to cancel step loading with certainty when it's interrupted by an error, closing the game, and so forth.
  • WalkPedia now loads very quickly with multithreading.
  • A lot of previously reported issues and bugs have been fixed as well. There are too many of them to list here.
  • Battery consumption of the game should be even less.
  • Android version of the game now uses a new rendering engine (it's been on iOS for a while now).
  • Character save system & save data is completely new. Player save files should now be around 12 times smaller on the server, so creating backups & restoring those is now easier and more cost-effective.
  • Fixes to the Buy Me a Coffee supports not syncing up properly

What's new

  • Gear sets have been added to the game. I still want to add a bit of polish to the system after this update, but it already works pretty well.
  • In-game notification bubbles (drops, XP) have been reworked and improved. You can now see things like Realm reputation gains too.
  • "While you were away…" has been reworked and improved vastly. You can now see much better what has happened while the game wasn't open.
  • Added unequip all gear & tools buttons to the gear view.

Testing Notes:

  • Opening the game from fully closed should now take less than 3 seconds (except for the first time logging in, which takes longer as that initializes a cache on server), regardless of where you are on the globe. Please let the team if you are seeing load times longer than this.
  • There is now an FPS counter built into the game, found in the Settings menu. If you are seeing any lag in game, please send us a screenshot with the FPS counter turned on so that we can investigate!

Game now includes an FPS counter to help players send us performance reports

Game now includes an FPS counter to help players send us performance reports

Engine rework: what does it do for WalkScape?

The engine rework as a whole took a significant amount of development time, so I'd like to also clarify its importance. I know many people might feel like the time spent on this was unexciting.

WalkScape started off as a personal hobby project, and to be entirely honest, at that point I didn't have as much knowledge in everything that goes into creating game engines. And often it's impossible to plan things ahead perfectly. Over the first year of Closed Beta, we saw some issues that were simply impossible to fix or improve with how the engine was set up (losing steps on network loss, for instance), and to improve the game's performance massively, we needed multithreading. To accomplish these goals, the way the game runs needed to be reworked completely.

It was a massive undertaking. We're now looking at nearly a thousand files changed and around 10K lines of code changed, removed, or added. The way the code is now organized and structured is also much better, which makes it easier to increase the size of the development team.

Doing these changes later would've meant that there would've been a lot more to rework into being multithreading-compatible.

But most importantly: now that everything in the engine follows a very clear pattern, adding new features should be much faster, simpler, and less error-prone. Previously, when adding new features, I often had to do a lot of maintenance on existing features to make it all work together.

I want to thank you all for your patience with this. Three months without an update was a long wait, and we know that.

Going forward

In order to address the "content droughts" where new content practically can't be added to the game, we have a solution planned. We call this devtools 2.0 (we've mentioned those here and there before), and these are practically fancy tools that allow floursifter and maxchill to add content to the game without needing to do any programming.

We already had the "devtools 1.0", but those had design flaws which made them dependent on me building new updates and doing a bunch of manual tinkering whenever floursifter and maxchill had made changes or additions. And my time is often stretched thin on all kinds of things, resulting in a bottleneck. Floursifter and maxchill have already during this engine rework made several content updates worth of designs.

This is why I think after this update goes live, we need to shift our priority first to finish devtools 2.0. I'll spend the first couple of weeks fixing issues that arise with the update, but then I think we must get the new devtools ready. After that, back to roadmap.

What the devtools 2.0 will enable is that whenever floursifter and maxchill have new content ready, they can release it to the players without me needing to do practically anything. This means that our feature development pipeline is separate from our content development pipeline. Balance updates, content additions, and other things should arrive at a much more stable schedule.

I'd love to hear in the comments what you think. For the first planned content update, we only need the new tools partially completed, which I'm estimating would take me around 3 weeks to finish. After that, we can keep delivering content while I can also expand the tools while working on new features.

Until next time

Needless to say, this devblog was really long! But there were a lot of things to cover, and I hope you enjoyed reading it.

We also really appreciate feedback on the things we covered here, and filling out the survey will give us guidance on how to implement the smart watches.

That's all for today—time for me to go back to making sure this incredibly large overhaul goes as smoothly as possible.

Stay hydrated, and keep walking! ❤️

0
0 comments