Update 0.6.4 – Major Overhaul of Combat

Featured Video Play Icon

Hello, Engineers!
Medieval history has countless examples of conflict and war. For this reason, combat has always been part of the plan for Medieval Engineers. So for 0.6.4 we have overhauled the combat mechanics entirely to make the combat feel more alive and exciting, and to provide more interesting fights. Additionally, we have overhauled the resource balance, updated the HUD for readability, implemented a new chat system, and many quality of life improvements. There’s bound to be something for everyone in this patch!

Marek’s blog post: https://blog.marekrosa.org/2018/08/me-major-overhaul-of-combat.html

UpdateBanner

Combat:
The first major change is that we have introduced a very elegant form of target locking, where your character, once equipped with a weapon, will attempt to track your enemy. You remain able to look around while tracking, which is important because it leads us to the next change!

We have added a directional attacking and defending system to the combat. Looking to someone’s left side will cause your character to change their posture and your next attack will then come from the left. Looking to your target’s right side will cause an attack from the right side. And of course this also applies to your enemy, so in order to block an attack on the right side, you have to aim in the right zone and block.

These two changes, along with a lot of new animation work, sounds, and other touches, have created a combat system that looks, and feels, more alive than ever before!

Resource rebalance:
With 0.6.1 we introduced new resources and we found that people spend a disproportionate amount of their time gathering resources. We want to balance it roughly into three stages, gathering, processing and building. After detailed analysis we realized that the percentage of the time spent gathering was significantly higher than processing and building combined, so we want to address this issue.

With 0.6.4 we made some changes to the balance with this intention in mind, it should now be possible for anyone to complete a very simple wooden house in their first game session, so you will feel proud of your initial achievements. We also standardized the large block building, all large blocks (with only a handful of notable exceptions) now require only 1 bundle of sticks, and then mostly their primary resource.

You will see the largest change with the stone walls. Rather than having them use large stones, we changed the recipe to utilize small stones. Mining stone was not altered, it still provides large stones, which then have to be processed (crushed!) into small stones. This allowed us to alter the ratio of mining to building by changing the yields and stack sizes. An added benefit is that small stones are no longer a dump-resource, and the stone blocks looked like they were built out of small stones already.

Research QoL improvements:
With the character saving changes done in 0.6 we now store the unlocked research on the character data as well, this allowed us to add a small indicator on top of newly unlocked blocks and crafting recipes to show you that this was recently unlocked. When you then select the crafting recipe for the first time the asterisk will go away again. This will help you quickly identify what you unlocked when you complete certain research.

HUD Improvements:
A longstanding requested feature by players, we finally have a nice chat that has chat history, support for private or house messaging, and a clear interface. There is support for several chat commands, like /wave, or /save for the server admins. See a list of commands by typing /help. We also added a background to the quest tracker and the chat, made the text size a little larger to make it easier to read, tweaked the colours, and added some indenting.

HUD with quest and chat visible

Death Notifications:
We added death notifications that show in the chat. These will let you know when your friends fall in battle and who killed them.

Toolbar improvements:
For a long time, the toolbar has served us well, but it always had weird little quirks in the code that sometimes caused items to not activate correctly, it did not support equipping multiple items at once very well; for example equipping the torch and axe at the same time would only highlight one of the two. These issues have been resolved, and now the toolbar behaves as expected.

FOR MODDERS
Lots of things were updated, changed, or otherwise touched, so for modders 0.6.4 also brings a lot of new things, but also some changes. Here is a short list of modding changes, for more details, there is a post with modding changes in the modding subforum.

Updated subpart system:
One of the big modding changes in 0.6.4 is actually done in preparation of 0.7. We have introduced a new system for defining subparts on blocks, animating them, or providing the visual inventory system. The old system was hardcoded to only function with blocks, the new system is way more flexible and can be attached to any entity. The old system will be removed in 0.7, so consider this a planned transition period where you guys have all the time to update your mods to utilize the new system. This will make your life a little easier when 0.7 comes around.

The new system provides attachment points, which are an easily externally referenceable set of points that allow other systems to attach entities to them. This is just a complicated sentence for “You can now attach one entity to another.” It replaces the CubeBlock Subpart Component.

This is precisely what Visual Inventory does, it attaches logs or timbers to the parent block, and it has a more fine-tuned interface now for determining how inventory slots map to the visuals. It replaces the Stockpile Component.

Finally, the Attachment Animation Component allows you to keyframe animate your attachments so the blocks, and other entities, can continue to look cool. This replaces the Subpart Animation Component.

For more information, we wrote a guide on the new system which you can read here: https://forum.keenswh.com/threads/7401856

New biome definition format:
In order to reference to biomes more easily and more accurately, we updated the planet generator to include a collection of biome map value (blue channel) to biome definition. This allows us to create game rules, in the ambient sound system for example, that rely on the biome the player is currently in.

For programmers you can obtain the biome, and some other information, about a location on the planet by calling MySectorWeatherComponent.CreateSolarObservation() and pass it the time and location you want to observe. You can enter a time in the past or the future to get the appropriate information.

New ambient definitions and system:
We updated the ambient sound system, and the matching sound rules. They used to exist in the planet generator definition, but we moved them out of there, and made them a separate system. Now, the sounds are instead driven by biome and other rules.
For examples of how it works, take a look in the Data/Audio folder, and look at the Biome_…sbc files. They will show you how we set it up.

New Chat System:
Modding support for the chat is also pretty rich, you can create new channels, easily add custom chat commands, or create your custom sender filters. To create a custom chat commands you call MyChatSystem.Static.RegisterChatCommand(), and make sure you Unregister() your command as well!

To create a custom chat channel, simply create a new chat channel definition. Look at the Data/GUI/Chat/Channels.sbc file for examples of chat channels.

To create a custom chat sender, you will have to inherit from the MyChatSender class, and override the SendChat method to pass the message on. After that you will have to add a sender definition, examples can be found in Data/GUI/Chat/Senders.sbc, and you will have to create, or edit, a chat channel that utilizes the specialized sender class.

Death Notifications:
We added death notifications that show in the chat. These notifications are generated by damage type and are located in Data/Game/DeathMessages.sbc. Attributed messages take arguments for player names. See the localized strings for existing definitions in Data/Localization/DataTexts.resx.

New entity effects:
Part of what makes the new combat system work well is our new stats system that was introduced in 0.6.3. We used, and added, a selection of new effects that allowed us to create a more interesting combat system than previously possible.

We have added effects with control over audio, field of view, effect operations, and animations so that we can make the game react to what goes on in the world. Some cool examples are that by executing a perfect block your adrenaline increases, allowing your next attack to be faster, or sprinting affecting your field of view to emphasize the feeling of speed, or the stun effect to cause your character to shake his head.

For more information, we wrote a guide on the new system which you can read here: https://forum.keenswh.com/threads/7401856

FOR SERVER ADMINS
Finally, server admins get some goodies too. With the introduction of message of the day support, chat logging and remote API access, it should be much easier to administrate your server!

Message of the Day:
With 0.6.4 we introduce a message of the day feature for the server. You can configure it in the DS configurator, or by typing /motd <message> in the chat. Players will see the Message of the Day in their chat upon connecting to the server, and they can request the message of the day by typing /motd in the chat.

Only people with admin or moderator rights have permission to set the message of the day.

Chat logging:
With 0.6.4 we also introduce the ability to log all of the chat for dedicated servers. You can disable this chat logging on your server by unchecking the server side chat logging checkbox on the configurator.

Remote API:
Identical to Space Engineers, we now support a remote API for Medieval Engineers dedicated servers as well! The same remote client works for our dedicated servers, and this will allow you to easily manage your servers remotely, without having to log into the server with a game client. The server remote client is available to install for free by going to tools inside of your Steam library menu.

The Remote API is disabled by default, but you can choose to enable it. Additionally, there is a publically accessible interface which can also be enabled or disabled. The public interface doesn’t let people make alterations to the world, but they can read out data, such as who claimed which area, etc.

For those intrepid developers, you can explore the API by accessing http://server_ip_address:remote_api_port/vrageremote/api which will give you the full list of accessible paths. Additionally, each path responds to HTTP OPTIONS requests to tell you what input and output you can expect. The API is based on a Restful principle and communication is done using JSON.

Save Specific Log Files:
With the introduction of more save specific log files, we noticed the dedicated server directory would get very cluttered. So we moved the Watchdog and Chat logs to Save/WorldName/Logfiles, where they can be easily found on a per-save basis.

Thanks for reading!
Keen Software House team

Medieval Engineers is still in development. Everything in the game is subject to change.

Like and comment on our forum:

Share on social media
Facebooktwittergoogle_plusredditpinterestlinkedintumblrmail