Sorry, it’s been a while…

Time is limited

Since the last blog post regarding upcoming changes, the roadmap is still the same. Lots of Skills coming, plenty of bug fixes and optimizations, and various improvements to existing Skills.

However, what hasn’t been moving is the progress of creating these new Skills. Unfortunately over the last year, most of my time has been consumed by real life things and the small amount of time I have to work on the game is only enough for bits of improvement on existing pieces.

Saying good bye to ALPHA

I’m finally getting some time to work on the game once again but I don’t know how fast progress will be made but things ARE moving ahead again. I’m intending on making 0.25.0 ALPHA the last ALPHA version release. Afterwards, I’ll be moving forward on doing some polishing for BETA phase(after a whooping 4 years of on and off development).

In this final release of ALPHA phase, there are massive changes to some core gameplay as well. Along with new Skills being introduced, Stat point distribution has been adjusted and equipment rolls now give random stats instead of a fixed stat. These changes intend on giving players some freedom of creativity for build diversity. Hopefully, players will find fun and interesting builds to fit their playstyle!

BETA Roadmap

For BETA phase, there are definitely plenty of things to polish up and new systems to introduce.

The road maps at the moment looks like:

  1. Equipment re-roll system
  2. Soul Stone purchasing system
  3. Simple equipment crafting system
  4. A currency to support the new systems
  5. Polishing up some effects, leveling up, stun and knockback indicators.

Some other improvements and features that further down the line:

  1. Polishing up menu screens.
  2. Easier way for players to enter and play games.
  3. Massive player lobby map

Thanks for catching up with the development here!


Oh boy, that’s a lot of work

For the next major update, 0.25.0, the focus will be on improving the new player experience.

For the Newbies

If you’ve tried out the game, you’ll notice that there’s a whole load of information about Skills dumped on you without any sort of “easy” quickstart guide. This makes choosing Skills rather confusing. The update will introduce a level requirement before being able to access a certain Skill.

Screen Shot 2017-09-08 at 10.25.59 AM.png

This will alleviate some of the decision making burden off newer players until they spend some more time in the game. This also gives players a sense of progression as they level up, unlocking new Skills.

Shaping Things Up

Of course, there will also be Skill changes to make them feel better to use. But no much to say here just yet.

Drop rates for each equipment type has been updated to be even across all types. Previously, it was heavily favored towards swords because there was simply more swords that could be dropped.

Behind the scenes there are plenty of backend changes and bugfixes that improve both server and client performance. Also save files are moving to a more appropriate location. This means you are going to need to manually transfer your existing save files to the new location. Sorry!

Big Things Coming!

As you know, you have 12 slots to fill with Skills you want to bring into a match. As of 0.24.2, there just isn’t enough Skills within each weapon category to incentivize making meaningful choices on what Skills to take in. The end result, just take every active Skill and fill in extra slots with Passive Skills.

Screen Shot 2017-09-08 at 10.26.05 AM
Hmm so many options…

The problem is that the resource given to players is not limiting enough to encourage making a choice. Think gold in an MMO and how players manage what they use the gold on. In this case, the resource being given is the number of slots. There are currently 30 Skills in total. With 12 slots players can pick up to a whopping 40% of the available Skills.

Screen Shot 2017-09-08 at 10.png
What choice?!

In practice due to weapon requirements, the amount of Skills available is closer to 18 which would mean players will pick up to 66% of the available Skills. That’s clearly not very limiting when you can pick two-thirds of the Skills. You are utilizing the MAJORITY of what’s available and that’s not good. It homogenizes builds to only picking different Passive Skills.

Rethinking Skills

Over the last month, I’ve been thinking over how I can expand on Skills to give variety to existing Skills and decrease the utilization percentage of available Skills down from 66% to below 50%.

Two straightforward approaches are to decrease number slots a player is given or increase number of Skills available. The former is the easier approach but makes the game less interesting for players. So I decided to take the latter approach, which also means a lot of work.

So in the upcoming update, existing Active Skills will have non-leveling Passive Skills which alter their effects. Pick these up in your Skill slots to get their effects!

Along with these new Passive Skills, I look to bring in new Skills to give more build diversity in each weapon category.

Screen Shot 2017-09-08 at 10.26.54 AM.png


Still moving… Steam Direct maybe?

This is going to be a short devlog. I’m really hoping to put this on Steam Direct, but I have a lot of concern regarding what quality of game is required to get published on Steam.

Will the game need to be fully completed? Is early access still an option?
How much can I charge for {Soul}Ascension to keep the servers running?
How will I advertise this game?

There are far too many questions for me but I do hope I can get on Steam especially early access.

I haven’t released any updates in a long while, but I really look forward to putting out something players enjoy playing. Hitting a 100 concurrent players would be a dream for me!

Connecting Together

As you already know {Soul}Ascension is a server based multiplayer game. As such, I gave a lot of thought on how to approach player connectivity. I did some prototyping on P2P model but I eventually stuck with a client-server model instead. This meant I had to decide between whether or not I should delegate the hosting responsibility to the players or myself.


Of course there are pros and cons to both choices. Delegating the hosting to a player’s machine meant that all players can play the game at anytime as well as have good latency between themselves and others within the same region. But using that approach introduces a few questions to address. What are the system requirements for the hosting player? How can I keep all the players to the same version of the game? What if the host radically changes the game settings? What’s an inexpensive way to prevent cheating?

Screen Shot 2017-03-17 at 10.19.41 AM
Running server console

If I were to be hosting, I could maintain all control and consistency for the game between all players. You would have to be on the latest version of the game if you wish to play with others on the server. I could alter the game experience however I wanted and the changes would be propagated to everyone. This approach sounded great for keeping a consistent game but it did have a few draw backs. I would have to pay for a server to host the game. I would need a way for players to discover the servers I’m hosting. Should I still allow players to host their own servers? Which regions should I host the game?

Screen Shot 2017-03-17 at 10.06.32 AM
Cost of running the game server

In the end, I decided to be responsible for hosting the game server.¬† I decided to host in 2 regions at the time, Australia and US West, as I expected only a few people to give the game a try. This also meant I had to address the server discovery problem, which I used a simple central hub design to solve. However, by hosting only in these regions it excluded a lot of potential players due to latency and poor experience. This didn’t mean I abandoned the idea of letting player’s to host entirely.¬†Players are able to host their own using a few launch options, although not officially supported. I gained a few a bonuses from implementing the ability to also let players host. It introduced ways to alter many settings for the game server without needing a release and encouraged me to come up with a few primitive ways to combat cheating.


Now, after a few months of maintaining the game server in production, I gained some insight I didn’t expect I would have. By running the servers myself, I collected statistics about the server’s health, the game server’s stability and performance, and more importantly the cost of running it. It also taught me how to maximize my the machines’ resources since I was trying minimize cost without hindering the game’s overall experience. What I really didn’t expect was gaining confidence in my server code. After seeing it had ran well and good in the last few months of production, I was hugely confident in it’s stability! Any hiccups or issues that did occur I had already implemented self-recovery and they worked, which was great! Even though hosting my own servers costed me some money, I have to say it was an excellent experience. For the future, I’m looking to use more Cloud engineering techs to potentially scaling servers to meet demand rather than have them on all the time to save costs.