Another year and another update!

Hello everyone,

So it has been another year today since my last update. Last time I posted I did want to crank out more announcements as things were getting done. This past year a lot of work was put into creating a tile editor inside of the game client, creating tools to add special properties to tiles, create a client-updater program to make sure the desktop game client always stays up-to-date, and many other additions. Below I want to go over some of the changes since last year.

1. Game client updater.

client-updater.png



This program will keep your game and all your files up to date! This will be very useful for when the real world development update comes. As the world map changes and content gets added, this program will make sure all the game files are automatically up-to-date.

2. The World Build Menu

Screenshot from 2022-01-22 23-59-49.png


The World Build Menu is similar to the popular TiledEditor (Tiled) commonly used in game development across many game engines. When we first started working on the game project we used Tiled to create our maps. However as our ambitions grew we quickly realized that Tiled wasn't going to get the job done. So I we set out to create a tile editor inside our game client. Not only does this allow you to build inside the world, it also lets you do it with friends. That's right it is completely multiplayer capable! World builders are able to collaborate together to build a world that players will explore. Tiled does not have this functionality and many others that we have created.

Here are some key features of our World Build Menu:
  • Ability to create world maps with others in a multiplayer fashion.
  • Automatically switch layers based on what tile you want to draw on the map.
  • Sort tiles by categories or by a tag system (tags such as furniture, outdoor, plants, kitchen, dungeon, etc).
  • Ability to draw many floors (more on this later in the post).
  • Draw, erase, use wang tiles (sometimes called auto-tile).
3. Tile Property Editor

Screenshot from 2022-01-23 00-11-29.png


The Tile Property Editor allows us to tell the game client what unique properties each tile has inside the game. As an example, the screen shot above shows a large tree. This tree has been tagged with the "Plants" tag so it is easy to find on the tile build menu. Also this tree has had the collision property added to it. When you add a collision property to a tile you can select which parts of the tile image will have collision blocks (areas the player can not run over or pass into). In the example above you can see that the base of the tree can not be walked over because it is in red, while the rest of the tree doesn't have collision. When the tree is placed on the map players are able to pass behind the tree and walk around it but not walk into the base of the tree where the red tiles have been placed.

All in all the Tile Properties Editor allows us to tell the game what each tile in the game does. What job it has. And if it does something cool, what it is supposed to do.

Here are some other neat properties that can be added to tile images:
  • Block move direction (from a specific direction)
  • Collision property
  • Draw cursor image over tile (for instance putting a door cursor over a door tile)
  • Door property
  • Interactive container (think lootable containers like chests, barrels, pots, etc)
  • Interact damage (think walking over spikes or into fire to cause damage to the player)
  • Jump to direction (when you walk on a tile with this property, your character jumps to a specified direction)
  • Ladder climb
  • Walk over sound
  • Water (deep water for toggling swimming animation or for shallow water to toggle walking through water animation)
  • Wang tile (sometimes called auto tiles). More on these later.

4. Animation Editor


It took forever to get done, but here it is. A basic in-game tile animation editor. This will be used a lot in the future. Now our custom map system can have animated tiles. The world will now feel so much more alive! The example video doesn't show a proper animation, but the editor has been used to create the door-open close animations, fire animation, and more!

5. Doors and Gates


Every RPG needs doors and gates. Whats even better is that they work on the game in multiplayer. So if a door is closed you can not pass through that tile and if it is open you can. Obviously right, thats how doors work... Any way you can also troll your friends by opening and closing the door on them. Btw the simple animation for these doors and gates was created using the Animation Editor mentioned above.

6. Region Editor

undefined - Imgur.gif


Created a region editor in the game. This will be used to define regions for housing, pvp areas, world zones, and much more. And I can not even begin to describe how much of a pain it was to get region stretching and moving implemented via mouse control. But that being said, the region editor is done. Now to implement cool stuff that can be used with it. :love: In a sense I got the idea to create this from Minecraft and WorldEdit/WorldGuard. I love how you could use those plugins to create regions inside Minecraft, then you can set flags to make those regions have special properties. Then you had plugins that could turn those regions into privately player owned land. This will be a good little feature for the game that has really cool results later down the line.

7. World Chunks


Spent some time getting world chunks to load and unload around the player. This will be used to make sure the game doesn't run slow because of too many chunks loaded on the client at once. This is similar to how Minecraft works. The main purpose of this is to have maps that feel very large. You don't have to load a new map every time you run 50 tiles are so. Think of the way Stardew Valley works. When you want to go to another area, the game loads a new map and you can see the screen change. By creating the world in chunks this is prevented.

8. Multi-floor World!

undefined - Imgur(2).gif


Our world has something more 2D games do not have. A sudo-3D Z axis. What does that mean? It means we are not locked into creating buildings and areas in the game that are flat. We can make areas like the one above that allow you to go up and down the Z axis while remaining able to see the players around you on other floors or levels. Think of an example like standing on a balcony or the roof-top of a building. With our implementation you will be able to see people above you and below you on different floors of the game. If you have ever played Old School Runescape (OSRS), when you go up to another floor in the game, it unloads lower and higher floors and prevents you from being able to see players in those areas. We allow you to do what OSRS does not!

9. Wang-tiles (or Auto tiles)

program-preview.gif


Wang tiles are important when building a dynamic world that needs to be able to update itself visually. Any tile that has the "wang-tile property" added to it will automatically draw the correct tile when its neighbor tiles around it have already been placed. It is hard to describe auto tiles so I will grab a description of it from the internet.

"Tile bitmasking is a method for automatically selecting the appropriate sprite from a defined tileset. This allows you to place a generic placeholder tile everywhere you want a particular type of terrain to appear instead of hand placing a potentially enormous selection of various tiles."

You can see in the example above as tiles are drawn or erase, each tile around the cursor is automatically updated to show the correct tile, thus keeping the grass and dirt border intact. Without auto tiling you would have to select each tile manually and then place it down. Since the preview above supports 48 different tiles to draw grass and dirt together you can understand that without auto tiling, it would take ages to find and place the correct tile.

10. Conclusion

So for now I am going to wrap this news post up. A lot of work has gone into creating tools that will allow us to build worlds with ease. TiledEditor as mentioned in section #1 wasn't going to get the job done. It is great for small games, but in MMO worlds with millions of tiles, it was just not going to work on the level that we needed. Creating our own tools has been a long rewarding and frustrating process, but it has been worth it. These tools will allow content to be created quickly and in such a way that will make the world feel much more alive than using other game making tools. Now that most of the work has been done, I want to start creating content for the game and then begin creating the spell and magic editor. Once that is done, oh boy is it going to be a good time!

I look forward to another year of fun positive development on a project that I love. I hope this year I can get the game into a state that I feel comfortable sharing. When that time comes I will let everyone know!

Till next time,
unenergizer!

P.S. Make sure you join the Discord server if you want to see more in-depth coverage of the development process! https://discord.gg/5wxgRDS