Indie MMORPG Solo (#3 Month): The Data Loss

Charles Brant

02.05.2020

Sword Mouse Based Combat Between Player & NPC

Yes. The title of this post is what it is. I’ve lost over month of work. But to avoid confusion I’ll say this upfront: It’s not over, as I’ve already recreated most of it.

Month #3 was spent on programming and making all the things that were already done. So how this happened?

Ironically, when I was attempting to automate my backups to Git, my local project folder got overwritten with backup from over a month ago. It was terrible feeling.

However that taught me important lesson: backup your projects regularly, and when experimenting with anything that copies files directly from your project folder, make sure to copy that folder first.

Ironically once again, my game is in better state now than it was before. I’ve recreated from scratch or from certain point all the systems that I lost.


Now they’re:

  • Faster.
  • Better.
  • Have cleaner and smaller code.


All the systems that I’ve coded before, lost and recreated:

  • Inventory & Items: added armors, stopped keeping items in memory, which results in bigger performance. Inventory sprites are also no longer kept in memory, which together with item models will give big speed benefits when I get to the point of having many items.
  • Arm Movement: previously my arm movement was done in hackish way because the change was not synced through network (or rather, was synced and then overwritten by animator). Now, by using default Unity’s IK, I’ve got more performance, less objects, code and hacks.
  • Colliders: Replaced heavy mesh colliders with fast box colliders wherever possible. They also spawn at runtime, and their size depends on model size.
  • Animations: Replaced 24 FPS animations with 60 FPS and added new ones. Remade animation controller. Got rid of triggers and use bools now as they’re synced better. Character animations look way more smooth now.
  • Character Controller: Optimized movement code. Huge performance boost as that code is executed every frame, so making it optimized will certainly help.


Additionally:

  • Connected my project with blender using this simple trick. It will help me with creating models faster.
  • Removed few third party assets from my Unity project and replaced them with built-in solutions.
  • Probably did few other things I’ve forgot.
  • Discovered better back up solution, now I am backing changes every hour or few.
  • New hit system. Players and enemies hitting each other now as a whole take less colliders, physics layers, objects, code, and are more accurate.

Here are some screenshots…

Simple menu:

Indie MMORPG Solo (#3 Month): The Data Loss 1

Before leaving the city:

Indie MMORPG Solo (#3 Month): The Data Loss 2

Unfinished concept of one planet:

Indie MMORPG Solo (#3 Month): The Data Loss 3


I still have to restore few things, and thinking about it pains me, but my project now is so much better than it was before. Features are more polished, performant and better thought. Code is cleaner. I don’t think I’d ever fix them if I wasn’t forced to recreate them from (or almost from) scratch.

That said, I’d rather not lose data in the first place. And how beneficial the data loss was (or whether it was beneficial at all) only the time will show.

One thing is certain, few things I’ve implemented have insane results on game performance, and I would most likely never implement them if not the data loss. And performance is exactly what you want in a game that will be played in browser.

In last post I’ve mentioned releasing first beta version in a month or two. I think that’s not possible anymore. However I’ll keep my steady pace and keep on trying to make this project playable.

Comments (Guests Allowed)

Write A Comment