Greetings warriors of Calradia!
Mods have always been a huge part of the Mount & Blade experience. Over the years, our talented and dedicated modding community has created some amazing mods which have expanded on concepts and features in our game, such as Diplomacy and Pre-Battle Orders and Deployment, or completely overhauled the game to create unique and engaging gaming experiences, such as Brytenwalda and Prophecy of Pendor. Some of them have brought RPG elements and character progression into a multiplayer setting, (Persistent World, cRPG) while others are just plain silly and fun, (Gangs of Glasgow).
In this week’s blog we would like to reach out to our modding community by answering a selection of questions from our official forums which were compiled by a key member of our community, our modding moderator “Duh”.
1. What language will be used for modding?
We are using C# as the scripting language. Data files are generally formatted in XML.
2. Which IDE will have support (like Visual Studio Express) from TW?
You can use any version of Visual Studio 2015 (e.g. Community edition)
3. Can you provide us with screenshots and/or a list and description of the various tools that you use and that may be made available to modders?
Also, the runtime performance profile tools that we use will be available for modders. They will be able to check the performance impact of their changes.
4. Will modding tools be made available prior to release and/or as part of an early access?
5. Will we have a TW developer working with the community to support modding (learning, tools, tutorials, feedback, etc.)?
We will share a documentation site and we are planning to make some tutorial videos. Also, we will be taking feedback and engaging with users on our forums.
6. With Warband the list of hardcoded features lessened as time progressed. Will this be the same for Bannerlord as you decide over time what should and shouldn't be hardcoded?
7. Will there be an in-game/engine tool/camera to create FMV sequences?
We will provide a replay editor.
8. Will we be able to launch/select several mods (like elder scroll games) or it will be one module at a time (like Warband)?
The game will support multiple mods at the same time.
9. How will (texture) folder structure be handled? Is it still a single folder like in Warband with all textures placed together or will it have subfolders for things like ground textures, armours and such? And if so will the subfolders name and structures be moddable?
You can use any number of folders for resources but it is a flat system, so we don’t support subfolders within folders.
10. How is the code split between hard-coded (engine) and modsys (open to the modding community)? What level of access do we have to the game UI code, AI, etc.? Could you provide us with an example of what will likely remain hard-coded?
Unlike Warband, the vanilla game scripts will not be directly modifiable by modders. However, it will be possible for modders to add new scripts as plugins and also have modifications for XML data files. In Warband, we had the problem that, whenever we released a new version or patch, almost all existing mods would immediately become incompatible with the new version and modders had to go through the lengthy process of reapplying their changes on the new version’s scripts. Moreover, it was impossible for players to run multiple mods in conjunction. The new system will make modders’ lives much easier and also support multiple mods.
By changing XML files, it will be possible to modify or add/delete most types of game objects such as items, characters, factions etc. Of course it will also be possible to add new assets such as meshes or textures.
Modders will be able to add new campaign behaviours, mission behaviours and quests. Campaign behaviours are executed while the player is spending time on the campaign map, whereas mission behaviours are executed when the player is in a scene. For example, if you want to create some extra bandit parties every few days, you can do that with a campaign behaviour.
Modders will also be able to change most of the formulas used in the game. For example, if you want to add a special item that makes you move faster on map, you will add the item through an xml file, and also modify the formula for campaign map speed so that it returns a higher number if a party is in possession of the said item.
Modders who want to change an existing behavior (like party members deserting when morale is low) will have two options: Either they will modify the default formula, or if that’s not adequate for some reason, they will be able to disable the default behavior entirely and add a new one from scratch.
11. Will we be able to seed a randomized number? This is highly important in order to seed a randomized process and utilize pseudo-data. Is it possible to procedurally generate the terrain/towns/castles/villages/NPCs?
You can use random seeds and any kind of random number generator.
12. How has the Dialogue system been improved? Is the Dialogue system dynamic?
There is a very powerful string processing system, (you can pretty much embed programs into the string itself.) Dialogs, game menus, and everything text related can make use of that.
13. How many factions can this system support? Are there easy mechanisms to create/modify factions?
You can add as many factions as you like. Technically, creating factions is just a method call, but of course making them interesting would be the harder part!
14. Will battlefield AI (Both the troop AI and the strategic AI) be accessible or hardcoded?
Lowest-level troop AI is hard-coded, but you can customize it somewhat by changing aggressiveness, maximum speed etc. You can also give AI target movement points.
Formation AI and overall battle AI is extendable and modders can add new tactics and AI behaviours.
15. Will troop and party pathfinding AI be accessible or hardcoded?
Pathfinding will be hardcoded. You can turn faces on/off in a navigation mesh though, so there are ways to control path-finding behaviour.
16. Assuming that the AI takes into account terrain - will we be able to translate this understanding of the battle scene into a graphical representation? In other words, while you decided against a minimap in the main game, do you intend to provide us with a framework and/or operations that will enable us to generate a simplified visual representation of unit locations, terrain details and possibly even AI strategy?
It will be possible to draw graphical primitives on screen. Also, one can render multiple scenes on the screen for other uses. (As long as they are lightweight, they won’t affect the overall performance that much).
17. Will there be greater control over the core variables and Booleans of the core combat mechanic? For example, will we be able to directly edit the code used for horse charge damage, hit detection, AI movement and so on?
It will be possible to change certain variables, but a lot of constants may remain hard-coded.
18. Will it be possible to alter where the AI aims with ranged weapons?
You can give them an entity to target.
19. Is it possible to combine designed elements with procedurally generated elements into the same scene?
Of course. Script components can be used to add, alter or remove stuff from the scene. Materials, other scripts, physics and polygon attributes can be changed at run time.
20. How does the AI pathfinding work? Will sceners have to create AI meshes for their scenes?
Yes, scene makers will need to create navigation meshes. The scene editor has a tool to create the nav-mesh automatically but results vary and we generally prefer to create them manually.
21. Is there an inbuilt method to voxelize the scene in order to use cheap ray-tracing for global illumination?
22. Are seasonal effects generated or will they have to be manually added? Will it be possible to preview them in the editor?
You can definitely preview what the scene will look like in different seasons and different atmosphere settings in the editor. You can set alternative terrain materials and alternative foliage for different seasons. It’s all very customizable.
23. Will it be possible to make caves/ tunnels in the map/scene editor? Will it be possible to alter terrain during play and/or will modders have the tools to enable/alter such a functionality?
For tunnels and caves you need meshes, the terrain system does not support them. We do not currently support dynamic changes to terrain height-maps during the game.
24. What is the biggest scene the editor can handle?
Depends on the power of the computer and available RAM. Our typical scenes are not too large because we want scenes to load quickly and not take an excessive amount of hard disk space. We experimented with larger scenes on a few occasions but this is not something that’s a priority.
25. Do you think the level editor will support multi-user working? I.e. Cooperative scening over a server.
No. The editor does not support that.
26. How will movable scene props/objects be handled? Will they meet the same limitations as they currently have in Warband (e.g. polycount, collision detection, etc.)?
The physics objects for dynamic rigid bodies will have some polygon count restrictions.
27. Will we be able to simulate the flow of time in a scene without forcing a re-entry? (Morning-Noon-Evening-Night)
The atmosphere system is not designed to update in real-time, so you cannot simulate that without stutters. Maybe you can darken the screen, change the atmosphere and then do a fade in.
28. How will scene files be organized and managed in Bannerlord? Will terrain codes and scene prop files remain separated?
We divide scene files into two groups. One is the editable data for the scene editor (some binary, some text) and the other one is loading time optimised binary files.
29. Is Armour created the same way as you have shown the weapons to be created?
The crafting system only works for melee weapons. Armour, shields, bows and crossbows cannot be crafted.
30. Does this mean that creation of arms and armour now are internal to the game superstructure and if so, does this support independent artists from adding their own weapons and armour to the game?
Crafted and non-crafted items are added in different ways, but modders can add both. For crafting, modders can easily add new crafting parts. They can also add new weapons by editing an xml file only, specifying which parts the new item is made of.
31. Will we be able to add custom skeletons and new bones? If yes, would it be able to support static object bones for real time animations (e.g. destruction effects)?
Yes, you can add custom skeletons to meshes.
32. Any information on model dimensions etc.? Poly count?
Poly count is very varied but we use LOD meshes heavily.
33. Any information on average texture sizes? Will 4k be supported?
Average texture size is 2k. You can add 4K textures to the game.
Model / Animation Viewer
34. Will every piece of equipment have physics options (tassels, cloth, etc.), including weapons?
Not every piece probably, but modders can add it to all types of equipment. Weapons can have them as cosmetic only, so no flails with cloth system.
35. Will we have access to shader source files?
36. What level of moddability can we expect for the new PBR engine? PBR relies less on the shaders and textures themselves and more on skymaps, screenspace posteffects, and the location and detail of lights. Can we expect to be able to implement dynamic GI, for example? Can we expect GI and SSR at all?
We have good variety of post effects, and you can probably add new post effects. We have SSR. It should be possible to add dynamic GI in theory but in practice it can be very hard or even impossible.
37. Can we force certain body parts/bones to play specific animations and apply ragdoll physics on them? (Useful to simulate various injuries on different body parts)
Sorry, the game engine does not support that.
38. What modelling/viewing program(s) will or should be used for Bannerlord?
For basic polygonal modelling, our artists use mainly Max, Maya and Blender and we will document work flows for these. We also use a ton of other tools for sculpting, painting textures, viewing etc.
39. What tools support animating campaign map icons?
We have some script components, which can add simple looping animations to entities in any scene. It is not as complicated as the animation system of characters in battles.
In next week’s blog we will be talking to Meriç Neşeli, QA Lead and Game Designer. If you have a question you would like to ask then please leave a reply in the comment section and we will pick one out for him to answer.