24 Dec 2018

Hordes development & Christmas event!

Dear players, for this Christmas I'd like to give you a little sneak peek into the current Hordes.io development, as well as letting it snow in Hordes.io :)

Santa is letting it snow in Hordes.io - hes also dropping some presents in the form of extra EXP!

Jingle bells
  • EXP gained increased by 50% during the Christmas Event! 🎅

Hordes development

As some of you might already know, I have been busy working on Hordes over the last months. Usually I prefer not to tease what I am working on too much - but I think its time to let you all know that Hordes is still very much my favorite project, and I have big plans - Follow me on Twitter for the latest development previews!

When I started working on Hordes, I was very new into web development. Hordes is my first web game. For this reason, the Hordes client in its current form could use some improvements - it is somewhat "dated" in a way. Please understand that everthing posted below is a preview and may change - also, I am still very far away from finishing it.

Detailed shorelines and water interaction in the new Hordes.io client.

So, what I have been working on is pretty much a complete rework of Hordes. This includes the client, the server, and also some major game features. As a result the game will be improved on pretty much all fronts.

Of course, a complete rework will take a lot of time. One may argue that I could just keep on patching together updates for Hordes.io in its current form and keep on improving, but there is a problem that pops up somewhere down the road with most ambitious projects, and it is called technical debt. Technical debt happens when you start developing a project and make tradeoffs for speed at the beginning, which you need to repay later with prolonged or complicated development. For me, this means that anything I work on takes way longer than it should. How can we fix this problem? We need to create a proper base game. Thats what I am currently doing. It is an investment in the game which allows me to keep developing in the future and iterate on the game more efficiently.

Lush flowing rivers

The biggest changes will happen on the client side (the thing that you open up in the browser). First, the renderer will be rewritten completely and hence, much more optimized for Hordes. In the current Hordes.io client, the rendering (3d graphics) are based on Three.js, a free rendering library. This comes with certain limitations and overhead, and in itself, Three.js is already 500kb+ in size. My current, self written renderer is about 30kb in size. The game runs drastically faster, even on low-end systems. Yes, that is right - the game will look better, while running faster.

Large forests

On the topic of looking better: The game world will be bigger by a factor of 10 to 50. This will be made possible by dividing the world in small chunks, a type of world data storage that some of you might be familiar with. That way, instead of having to constantly load and display the entire world, your client can simply load nearby pieces of the terrain and does not have to be concerned with anything else. By doing this, it will be possible to craft a world the size of a proper MMORPG. You will be able to explore the world for many days, and every level segment can have its own region, each significantly bigger than the current Hordes.io world. There will be different types of areas - forest, deserts, mountains, swamps, you name it!

More improvements will also happen on the net-communication between client and server. Currently, communication is based on Socket.io, a library with again, ease of use, but also very big overhead in the performance department. For this reason I am writing my own binary based network protocol. This means that the data sent over the network will be much smaller; so we can send much more, much faster, and with less lag!

Bigger worlds - this location is made up of 6 chunks, in an area that is 100 chunks in size

The new Hordes version will come with a world editor that allows me to create the world with ease. As you know, Hordes is developed by only one person - but this could change in the future! I plan to focus on coding for the most part, so if I happen to find a skilled world designer, it is possible that we team up. Feel free to send me a mail if you have world design experience and show me some of your creations!

For the Hordes rework, many other things will also be improved - Party system will be in by default - and hence the class balance will be changed completely. You will have to team up with your fellow faction mates and grind in a group! I also plan to add more skills to the current classes, however a new class is not planned during the launch of the new client. (But it may happen later on).

Thats it from me for now, I hope you all have a great christmas and enjoy your time in Hordes.io :)

- Dek ❤️