Introduction

I have to admit, as tired as I am, this has to be one of the most exciting sprints I’ve done (and that’s saying something considering the last two were pretty fun). This sprint is about the resolution update. What does this mean? Well, in an effort to get away from Tibia copyrighted sprites, we’ve commissioned an artist to create our own art, in our own style, and at twice the resolution.

This sprint is going to have a lot of ramifications. Some things are going to work automatically with the new resolution, however lots of other things will still be using old code that works off 32px per unit. This scope of work document is here to discover all of the things that will have to change.

Changes

So, in an effort to start somewhere, lets just start listing a bunch of things that will be changing. We’ll work out details, sort, and organize this information later on.

  • Editor
    • Removal of Sprite Editor
    • Map Editor Update
  • Assets
    • Removal of Unused Sprites
    • Deletion and Re-creation of all prefabs
    • Major cleanup of Sprites folder
  • UI
    • Client UI Update
    • In-Game UI Update
  • Scripts
    • Rewrite Outfit system

Okay, so I’ve organized the information a bit. I’m sure I’m going to discover a lot more things as we go on, but for now, lets start with each of those sections, and discuss the details.

Editor Changes -> Removal of Sprite Editor

So, the purpose of the sprite editor (which is some of my best code, and i spent 3 weeks writing it), was to enable mass-import of sprites from the unused sprites folder. This is because all of the old tibia sprites were jumbled, and I needed a way to import them quickly. With the new art assets, this becomes completely useless, so it’s time to remove it. All the code will still exist in older github commits, so no worries. The nice part is this reduces the project code base by a sizeable amount. Yay.

Editor Changes -> Map Editor Update

The map editor is a really big part of this project. Without the map editor, it wouldn’t be possible to build the world. There’s a lot of old stuff to clean up in the map editor. Lets list some of them as I browse through the code:

  • XML Maps -> these need to get converted to scriptable objects, which reduces the amount of code we have, and makes loading/saving much easier.
  • Render Function -> this still uses the old render logic. And it still renders per frame, which is stupid, since no objects are moving during the map editor.
  • Prefab Wizard Cleanup -> the prefab wizard UI needs some major work. It really sucks, especially when it comes to assigning colliders. I need to abstract collider association from prefabs. This means, if I need to change a horizontal wall collider, I want to be able to change it for ALL horizontal walls.
  • Editor Data Set, Settings, and Config -> this could use some cleanup as well. Just making them into one unified object, and passing it by default to other classes. Maybe inheritance has a role to play here.
  • Script Organization -> we could use folders to organize the code a bit more.

There’s also a bunch of features and improvements I have for the map editor, but they aren’t crucial, so I won’t include them in this sprint. I’m sure its going to be a rather lengthy one anyway.

Assets -> Removal of Unused Sprites

The unused sprites folder right now holds almost 400 pages of cut sprites, that still use the original Tibia sprites. Since we’re dropping everything Tibia related, we won’t need these anymore.

Assets -> Deletion and Re-creation of all prefabs

This is going to be a much bigger challenge. We’re basically going to wipe all of our prefabs and start over. A lot of the details regarding prefabs are handled by the prefab wizard, so re-creating them won’t be that hard.

Assets -> Major cleanup of Sprites folder

We’re removing almost all of our sprite files. This gives us the chance to organize things correctly this time. Again, everything we’re removing from the resources folder will reduce our build size.

UI -> Client UI Update

The client UI will be taking a big hit too. First off, since we only have two outfits now (human and orc), we’re going to lock and disable the other races for now. In addition, anything that holds character sprites will have to be updated since the resolution is twice what it was before.

UI -> In-Game UI Update

The in-game UI will probably see even more changes than the client UI. Lets list some of the UI components that will be changed. I’m sure I’m still missing some.

  • Removal of options/content from outfit window (temporary)
  • Action bar icons
  • Equipment UI and slots
  • Container slots

Scripts ->Rewrite Outfit system

The outfit system was one of the first networked components I wrote. Its full of old, ugly code. In addition it uses an HSVA hack to get colors working. I think if (when) I do the outfit system again, I’ll take the time to really figure out how it should work. So for now, we’re going to remove outfits, and just use character animations. In addition, I think I’m going to replace the character animation script and try to use unity’s built-in animations. This will allow me to do more complex animations based on creature states later on.

Now this is all well and good, but we’re actually short a few art assets to make everything that we’ve made, continue to work. Lets make a list of all the art assets we need to make as placeholders. They’re going to be very ugly because I’m going to make them, and that’s okay lol.

  • Items
    • Melee Weapon (sword)
    • Ranged launcher (bow)
    • Wand
    • Ranged projectile (arrow)
    • Thrown weapon and projectile (spear)
    • Shield
    • Backpack
  • Non-Items
    • Grass ground (12 corners, 3 ground variants)
    • Dirt ground (same as above)
    • Stone walls (already done)
    • Roof
    • Stairs

I’ve been working on this scope of work document inbetween other things, and I can’t see anything else that needs work. Nothing left to do now, but get started .