Christmas season is all around and it sounds like a great time to release Knights Province Alpha 13!
It has been two long years since the last big release of Alpha 12. A lot of work has gone into making the game look better, play smoother, and, most importantly, Multiplayer!
Why Alpha 13 matters
Alpha 13 is a noticeable milestone in the development of Knights Province. For the first time, the game expands beyond single-player with the introduction of multiplayer. On the other hand it keeps on laying down more and more of long-term technical foundations that future development will build upon. Deeper mission scripting and storytelling tools, performance, audio, and visual improvements, all this keeps on moving Knights Province towards a more complete and engaging RTS experience.
What’s new in Alpha 13
Multiplayer finally here!
Alpha 13 introduces long-awaited multiplayer. There are already a bunch of servers to join with friends and play. The game allows for PvP and cooperative experience, alternatively you can just spectate. Maps and saves can be shared between players easily.
More expressive missions and storytelling tools
Animated map objects and addon objects allow mapmakers to create more dynamic scenarios and richer narratives. Together with heroic unit support – enabling unique unit names, stats, size, morale, and behavior – scripted missions now have far greater creative freedom.
A darker world with new neutral threats.
Skeletons enter the world of Knights Province as new neutral units. They know neither hunger nor morale, adding fresh tactical challenges and a distinct atmosphere to missions and campaigns.
There is a whole new campaign
“Burning Hay” is a new campaign by Amaroth. Featuring 8 missions to play. As the author describes it himself – “As a young and until now insignificant knight who never cared about the kingdom’s politics, you find yourself pulled right into the middle of a sudden civil war. Story-heavy, no tutorial. Challenging, especially for beginners”. There are new single-player and multiplayer maps as well.
A major visual upgrade
Trees now have fully reworked foliage, giving forests a decent look that better matches the game’s tone. Combined with new terrain surfaces, sun settings, mapmakers can fine-tune lighting and mood to make maps feel more alive than ever.
Foliage trees
Smoother performance and GFX
Alpha 13 brings performance and rendering optimizations, a new underlying sound engine (based on raudio / miniaudio), and a new text renderer with tag support (mixable color, underline and strikethrough styles are just a start).
Better support for localizations
Alphanumeric localization keys simplify translations for addons and missions. Oh, and Greek localization has been added.
Among other features
Semi-automatic highscore verification on Knight Tavern for competitive play. Savegames are now bundled into a single file, making sharing much easier. There are many more smaller changes and improvements included in Alpha 13. The full and detailed changelog is available in-game on startup and from the Options menu.
Armor workshop got nicer model too
Looking ahead to Alpha 14
While Alpha 13 is a major milestone, there are still several areas that require further designing and development before the game can move into the Beta stage. These will be addressed in Alpha 14:
Horses and farm animals breeding (should they be handled similarly to sheep, I say yes)
Sturdier walls and improved AI handling of them
Trade between players (market, trading post, wagons?)
Siege machines (?)
Additional assets and content (building models, unit models, animations, etc.)
Recently I have discovered that GitHub markdown seamlessly supports Sequence Diagrams and it is awesome!
What are these words you may ask? I thought I’d make a short post about that.
First and foremost GitHub is a place where Knights Province code lives. You may have already seen public Knights Province resources there. There is an Issues list that holds the bugs and improvement ideas for the game (link). There’s also dynamic scripting Wiki (link).
Markdown is a set of special terse text format rules that allow for a number of formatting styles and features. Starting from simple ones that make text look bold (with asterisks), or italic (with underscores). Most of the modern Web platforms support it to a different extent. Unfortunately it is not standardized, but usually the basics work the same. More sophisticated expressions allow to generate tables or style whole sections of text as a programming language with syntax highlight:
Sequence Diagrams are a nice way of presenting sequences of events happening over time in a graphical form between several entities. Here is a short example of how a phone conversation may look like in this notation:
I won’t bore you here with details about Sequence Diagrams rules, just the basics. Actors are listed on top and repeated on bottom. Diagrams are read from top to bottom. Arrows denote control flow. Thick sections on actor verticals mean some processing is going on.
And there is a fourth piece to this puzzle – Mermaid. It is a certain diagram generation library that was seamlessly incorporated into the GitHub markdown processing. It supports a number of diagram styles, but we are interested in the Sequence Diagrams, since this is what Knights Province needs at the moment. If the text will have certain magic words in it spelled in the right order, they will transform into a picture:
Sweet thing about it is that the “code” for the diagram is in simple text form and is very short. Those 8 lines fully describe the diagram.
Lately I have been working on bringing Knights Province Multiplayer up to shape. In the past few months a lot has been improved and changed for a better gameplay and UI experience in the networking and multiplayer code. For example the players roster has changed, but that’s a different story, maybe for another post.
Networking code is quite different from the rest of the game though. It is riddled with asynchronous (non-immediate) events and their handling between separate entities located hundreds of milliseconds apart – players, host and servers. Those data exchanges and states form up quite a complex and intricate shape. Now, Sequence Diagrams are ideal for showing those interconnections and events relations. Having the things laid out on paper (yes, I even printed some of them) is a huge help in figuring out weak spots and places for improvements.
So, here is a sample diagram visualizing how a new client may enter a multiplayer room, get his role (become a Host or a Joiner) and get to setting up the upcoming game:
It is time for Alpha 13 to enter its so-called “wip” stage. I gave some consideration regarding the number 13 perceived as unlucky, but then again, I’m not superstitious, so 13 is perfectly good! Now it can be playtested parallel to the ongoing development. As always you will find that some new features are already in the build, some are being developed and some are just planned or not even heard of. It’s a great time to affect the game’s development course.
There is a bunch of big things planned for A13. Let’s talk some more about each (trust me, best one is listed last)
Animated map objects
Game needs to be more interactive – cue in animated stateful map objects! With the new support for animated map objects it is possible for objects to have a state and animations within and between states. For example now there is a dungeon door or a chest that can be open or closed (controlled via script as well!). Or a single table map object with several different things laying on it. Important to note, that these states are not purely visual. An opened door can be walked through, while the closed one is impassable. As with other things – this can be controlled from dynamic script.
Addon map objects (eventually mods)
KP was always planned to allow for mods. Addon map objects are a first attempt at that. Just imagine what possibilities it opens for mapmaking! Mods will be explained in greater detail in upcoming posts. For now there’s just a short sum up. Mods can affect specs (object properties) and/or assets (3D models and textures). Mods can be global (affecting the whole game and all the missions you play, unless they specifically forbid so) and local (acting only on the current campaign and/or mission). Mods will be loaded in layers and will be able to affect each other. For example one could have a global mod that adds 10 new types of trees and each mission will get them, but some specific mission could contain some specific quest objects it needs. If everything goes well, other basic game domains (like terrains, decals, etc.) will allow for mods soon too.
Skeletons!
Reason for them is two-fold. Firstly and foremostly, skeletons were planned to be a part of unit death animation and corpses decay visualization. Units would gradually decay revealing a skeleton which would disappear after a time too (think of how Warcraft 1 and 2 did it). This feature came out to be quite a lot more complicated to properly rig and animate than it seemed at first though, so it is currently postponed. However, skeletons themselves looked really nice and easy to integrate with the existing animation and rigging systems, so .. given the playful game art style and mood, now the skeletons are part of the game. Currently only available to be placed in MapEd and via dynamic scripts. However in the future it is quite possible that they will have a dwelling / spawning structure, similar to wolves and bears. Maybe a crypt? Feeling strong Warcraft 1 dungeon missions vibes now.
Heroic unit attributes
Units can be tweaked quite a lot more from the dynamic script now. Following attributes can now be changed: Max HP and HP regen, sight radius, flag color, banner display for group leaders, morale. This will allow mapmakers to create (and edit!) hero units in a manner similar to how Warcraft 2 had them. For example a quest hero unit could gain more and more HP over the course of the mission and have his flag color turn bluer or redder depending on the progress. Or simple yet effective sight radius reduction in the cave sections. It is not a full RPG yet, but still a good step into the right direction.
Weather effects
Now mapmakers can change lighting conditions. This means sun and sky color, sun position in the skies. Among other things this also allows for ambient lit missions taking part in dungeons and caves. As with other aspects, lighting can be changed from dynamic script. Other weather effects like clouds and precipitation are planned, but not scheduled yet. Fully dynamic lighting like torches and other light emitters are not available yet (and probably wont be for quite some time).
Anti-cheating
Highscores became engaging enough to the point where the game had its first major cheating event. This is a great milestone! Now, combined with the new mods feature, anti-cheat measures had to be improved. Now highscores will register more of the game’s properties and a replay file, making any major attempts to cheat fruitless. This will warrant reset of the Highscores in the Knights Tavern in the near future.
.. and finally Multiplayer!
I’m excited to announce that Alpha 13 is planned to have multiplayer enabled! It will take some time to stabilize the features presented above, but after that is done, the MP button will be activated and we’ll see how much time and effort it will take to make it properly work.
With everything described above, I’m happy to direct everyone interested to the Discord server where Alpha 13 wip builds are going to be published in the #new-versions channel:
Decided to take a small detour from major Alpha 13 features (separate post on that matter is coming later). New localization is being added into the game (credits to Absinthe for translations):
Game font used on buttons and big captions did not have Greek letters. Had to draw them from scratch (largely borrowing from similar looking Latin and Cyrillic letters). Here’s how the le letters look so far:
If you have comments or constructive suggestions on the writing (or maybe you want to help to bring another localization to the game) – please contact me on Discord 🙂