Page 4 of 10 FirstFirst ... 2 3 4 5 6 ... LastLast
Results 61 to 80 of 186

  Click here to go to the first staff post in this thread.   Thread: Modding? Can we have it?

  1.   Click here to go to the next staff post in this thread.   #61
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    The subtitle localizations are in .sbv.z files. They are located in saga1/locale/en/

    Unfortunately, the tool does not support opening those files. I will add a feature for that today.

    JW


    Quote Originally Posted by Teomus View Post
    Dear John,

    I'm a huge fan of your game and I'm a hungarian hobby game translator, so I'd like to make a localization for The Banner Saga too.
    Thank you very much for your app, it's working perfectly, but I have some problem with the files...
    I can't find the files what contain the texts for the intro: "The gods are dead..." and the subtitle "It has been several long months on the road...".
    Thank you if you can help me!

    Best regards,
    Teomus

  2.   Click here to go to the next staff post in this thread.   #62
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    New version is up on github, including SBV support:

    https://github.com/jwatson000/tbsdec...Decompiler.air

  3. #63
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    I was wondering if there is a simple/straight/clean-through modification of a JSON file that would increase the game difficulty all-over. Like, add more (or higher-statted) enemies at all battles, in a consistent manner.

    If you have a dedicated "metric module" that, before each battle, looks at your build and generates a random enemy-build of approximately the desired power (for a given difficulty setting), then, tweaking a parameter of this module would affect the game difficulty globally, right? However, if the enemy-build in each battle is designed and balanced stand-alone/directly, for each of the three difficulty settings, then... forget it!
    Together we stand, divided we fall.

  4. #64
    Superbacker Sin2x's Avatar
    Join Date
    Jan 2014
    Posts
    21
    Quote Originally Posted by Aleonymous View Post
    I was wondering if there is a simple/straight/clean-through modification of a JSON file that would increase the game difficulty all-over. Like, add more (or higher-statted) enemies at all battles, in a consistent manner.

    If you have a dedicated "metric module" that, before each battle, looks at your build and generates a random enemy-build of approximately the desired power (for a given difficulty setting), then, tweaking a parameter of this module would affect the game difficulty globally, right? However, if the enemy-build in each battle is designed and balanced stand-alone/directly, for each of the three difficulty settings, then... forget it!
    There is a parameter called war_threat in the gamefiles, might be what you are looking for. Check the files in /convo/war folder.

  5.   Click here to go to the next staff post in this thread.   #65
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    Here's a quick rundown of how battle difficulty works. First of all, there are 2 kinds of combats: BATTLE and WAR. Let's talk about BATTLE.

    BATTLE is instigated from a BATTLE action in the script. One of the parameters of the action is "bucket". This "bucket" indicates the bucket of NPC AI enemies to spawn. For instance, the only BATTLE in vlg_strand.json is the one in the Nobleman meadhouse. It's "bucket" is set to "1_thugs". If you look in saga1.json, you see "1_thugs" defined as:

    Code:
    {
    	"ents": [
    		"thug_thrasher",
    		"thug_backbiter",
    		"thug_raider_a",
    		"thug_raider_b"
    	],
    	"name": "1_thugs"
    },
    How many units does it spawn from the bucket? That depends on a variable called "danger", which ranges from 1-20. The variable is defined in the "variables" section of saga1.json. The battle spawns a units until the sum of their ranks equals the "danger". So a "danger" of 10 could spawn 2 rank 3s, 1 rank 2 and 2 rank 1s, for example. Danger changes throughout the game based on your location an

    Now, before the battle starts, "danger" is modified by a few things. First, there is a difficulty modifier. This is defined in saga1.json:

    Code:
    "difficulties": [
    	{
    		"armor": -3,
    		"danger": -1,
    		"strength": -2
    	},
    	{
    		"armor": 0,
    		"danger": 0,
    		"strength": 0
    	},
    	{
    		"armor": 1,
    		"danger": 3,
    		"strength": 1
    	}
    ],
    They are in order of Easy, Normal, Hard. You see that in Hard mode, danger is increased by 3 under the hood. All AI enemies also have an extra armor, and extra strength point. So a very easy way to change difficulty globally is to adjust the difficulty settings above.

    1 additional factor affects battle danger under the hood, and that is the number of combatants in your caravan. If you have lots of fighters and varl, the danger decreases. This is controlled by a variable 'danger_bonus_combatants', which is defined in saga1.json, and ranges from -2 to +2.

    It changes based on a happening in saga1.json, apparently whenever morale changes, which is probably a bug. It should recompute when num_combatants changes:

    Code:
    {
    	"actions": [
    		{
    			"prereqs": [
    				{
    					"max": 100,
    					"varname": "num_combatants"
    				}
    			],
    			"suppress_flytext": true,
    			"type": "VARIABLE_SET",
    			"varname": "danger_bonus_combatants",
    			"varvalue": 2
    		},
    		{
    			"prereqs": [
    				{
    					"max": 300,
    					"min": 101,
    					"varname": "num_combatants"
    				}
    			],
    			"suppress_flytext": true,
    			"type": "VARIABLE_SET",
    			"varname": "danger_bonus_combatants",
    			"varvalue": 1
    		},
    		{
    			"prereqs": [
    				{
    					"max": 699,
    					"min": 301,
    					"varname": "num_combatants"
    				}
    			],
    			"suppress_flytext": true,
    			"type": "VARIABLE_SET",
    			"varname": "danger_bonus_combatants"
    		},
    		{
    			"prereqs": [
    				{
    					"max": 899,
    					"min": 700,
    					"varname": "num_combatants"
    				}
    			],
    			"suppress_flytext": true,
    			"type": "VARIABLE_SET",
    			"varname": "danger_bonus_combatants",
    			"varvalue": -1
    		},
    		{
    			"prereqs": [
    				{
    					"max": 100000000,
    					"min": 900,
    					"varname": "num_combatants"
    				}
    			],
    			"suppress_flytext": true,
    			"type": "VARIABLE_SET",
    			"varname": "danger_bonus_combatants",
    			"varvalue": -2
    		}
    	],
    	"id": "danger_bonus_combatants",
    	"triggers": [
    		{
    			"type": "VARIABLE_INCREMENT",
    			"varname": "morale",
    			"varvalue": 0
    		}
    	]
    },
    From the above, you can see that:

    Code:
    num_combatants      danger_bonus_combatants
    0-100                   +2
    101-300                 +1
    301-699                 +0
    700-899                 -1
    900-inf.                -2
    The other kind of combat is the WAR, which I will describe elsewhere. In WAR you can modify your danger by your tactical choices before the battle starts. The modifiers of your choices are defined in cnv_war.json

    If you choose to "Charge!" for instance, this path gets executed:

    Code:
    "youGatherYourAll": {
    	"content": [
    		"You gather your allies and tell them to get ready to lead the attack.",
    		{
    			"flagName": "war_battle"
    		},
    		{
    			"flagName": "war_danger+(1,3)"
    		},
    		{
    			"flagName": "war_threat-(2,4)"
    		},
    		{
    			"flagName": "war_renown+(1,3)"
    		}
    	]
    },
    Which means you get a danger bonus of between 1-3, war threat is reduced, and war renown is increased.


    Quote Originally Posted by Sin2x View Post
    There is a parameter called war_threat in the gamefiles, might be what you are looking for. Check the files in /convo/war folder.
    Last edited by John; 02-07-2014 at 02:51 PM.

  6.   Click here to go to the next staff post in this thread.   #66
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    Long story short, check the "difficulties" area in saga1.json

    Quote Originally Posted by Aleonymous View Post
    I was wondering if there is a simple/straight/clean-through modification of a JSON file that would increase the game difficulty all-over. Like, add more (or higher-statted) enemies at all battles, in a consistent manner.

    If you have a dedicated "metric module" that, before each battle, looks at your build and generates a random enemy-build of approximately the desired power (for a given difficulty setting), then, tweaking a parameter of this module would affect the game difficulty globally, right? However, if the enemy-build in each battle is designed and balanced stand-alone/directly, for each of the three difficulty settings, then... forget it!

  7. #67
    Superbacker Sin2x's Avatar
    Join Date
    Jan 2014
    Posts
    21
    You're awesome as always, John. Thanks a lot for this detailed description! Good thing that it helped to uncover a bug, too

  8. #68
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Quote Originally Posted by John View Post
    Long story short, check the "difficulties" area in saga1.json
    Thanks again, John, for taking the time to break this down for us

    So, you have integrated an over-ruling difficulty-parameter called "danger" that varies from 1-20 and can be related to the team power. What is not clearly stated is how is the number of spawned foes calculated (RNG or look-up?) and how are 1x1 Dredge "weighted" w.r.t. 2x2 ones. This is rather critical because, for example, { three rank-3 Scourge Destroyers , three rank-3 Enraged Grunts , nine rank-1 Slag Slingers } all amount to a dange/power of 9 but barely seem comparable, in view of Turn/Stat advantage.

    The preset difficulties {Easy,Normal,Hard} correspond to a danger/power of {9,10,13} respectively; apart from that, STR & ARM bonuses/penalties are applied "horizontally" to all spawned units. Simplest course to globally give some more bite to the game is to increase the danger-modifier for a specific difficulty-setting (e.g. make the Hard's +3 a +5) and/or the bonus stats in the "difficulties" area in saga1.json.

    I cannot really see why you modify the danger by the number of the caravan's combatants (fighter- & varl-population). And, I cannot see why you decrease the danger for a lot of combatants. If anything, I would expect an increase to the danger to indirectly increase the renown-gained and the risk casualties to weight heavier on the decision.

    Another last thing, about combat difficulty, that I'd like to ask is -- How are the deployment-zone "styles" (opposite, diagonal, surrounded, surrounding, checkers etc) related to difficulty/danger?
    Together we stand, divided we fall.

  9. #69
    Superbacker Sin2x's Avatar
    Join Date
    Jan 2014
    Posts
    21
    John, if you are not too busy, would you mind adding the search functionality to the Decompiler? It's not that convenient to browse through large files like saga1.json.z when you need to find something specific, though you can always select all text and paste it into another textfile, of course.

  10. #70
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Quote Originally Posted by Sin2x View Post
    John, if you are not too busy, would you mind adding the search functionality to the Decompiler? It's not that convenient to browse through large files like saga1.json.z when you need to find something specific, though you can always select all text and paste it into another textfile, of course.
    Indeed: an integrated find/search/replace would help. Copy-pasting to npp is what I'm doing too. Another really useful feature would be "code-folding" (e.g. between curly-braces {.}) to browse through big files.
    Together we stand, divided we fall.

  11. #71
    Quote Originally Posted by Aleonymous View Post
    I cannot really see why you modify the danger by the number of the caravan's combatants (fighter- & varl-population). And, I cannot see why you decrease the danger for a lot of combatants. If anything, I would expect an increase to the danger to indirectly increase the renown-gained and the risk casualties to weight heavier on the decision.
    Encouraging you to save more combatants, I assume. Else you could just let everyone die and have an easier time.

    Which means that if you charge into every war (as Hakon), you'll have easier battles later on. If you sit out a few battles, then latter battles becomes much harder. The indirect renown gained from killing enemies does drop though....

  12. #72
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    I understand the rationale, but in the end this just limits your potential renown-gain from Wars, why doesn't make too much sense. If you got a large army and manage it well, you should be earning more renown not less.

    I'd have left the danger (i.e. the enemy force numbers/power) unaffected by combatants, and give some other type of bonus, e.g. more renown if you win or less casualties.
    Together we stand, divided we fall.

  13. #73
    Backer Mierko's Avatar
    Join Date
    Jan 2014
    Location
    Los Angeles
    Posts
    32
    Quote Originally Posted by Sin2x View Post
    John, if you are not too busy, would you mind adding the search functionality to the Decompiler? It's not that convenient to browse through large files like saga1.json.z when you need to find something specific, though you can always select all text and paste it into another textfile, of course.
    I have just been copy/pasting it into notepad++, since it has "Find all in current document". Having a separate window with the line numbers makes things much easier to change.

  14.   Click here to go to the next staff post in this thread.   #74
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    FWIW guys you probably want to know about developer mode. Check out this document:

    https://docs.google.com/document/d/1...it?usp=sharing

  15. #75
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Quote Originally Posted by John View Post
    FWIW guys you probably want to know about developer mode. Check out this document:

    https://docs.google.com/document/d/1...it?usp=sharing
    Thanks, once again, John. This developer/console mode will prove very useful in breaking the game
    Together we stand, divided we fall.

  16. #76
    I don't mod myself, but I enjoy playing various mods that players come up with in many of the games I own.

    You definitely deserve HUGE thank you for taking your personal time to help modders learn, John! <3

  17. #77
    Junior Member joko's Avatar
    Join Date
    Feb 2014
    Location
    Phoenix, AZ
    Posts
    3
    Hm, anyone have any idea where to access the audio files?

  18. #78
    Junior Member livetele's Avatar
    Join Date
    Jan 2014
    Posts
    4
    joko > looks page 3 my post about audio files

  19. #79
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Hello all. This thread is a little dead ever since John left it, so I figured I might throw some life back into it.

    So, I was meaning to see how the entire game is structured, with all the {events, converstation, battles, traveling, cinematics} etc. I believe that I should be looking at the file saga1.json.z, that I will call the "master script", in the sense that it ties everything together. So, what can we find in that master-script:

    • buckets -- Here are the "pools" of enemy-unit-types from which each random battle enemy build is generated.
    • caravans -- This defines the ~6 different caravans seen through the game (party members, leaders etc).
    • difficulties -- This is the overruling parameters for the game's three difficulty settings, related to battles (
    • happenings -- This is the most important part of the master-script. Here are contained all the various "events" that might come to pass: from random-encounters, to units joining/leaving the caravan, to popups about morale falling etc. This is obviously re-usable code bits, to be invoked whenever needed. Every event has is own "id" tag, and it might change some of the game's variables (see next bullet) and/or direct the game-flow to some other event/conversation/battle etc.
    • variables -- This is the second most important part of the master-script. It defines ALL the variables used in the game to check events and direct the "flow". For instance, there could be variables for the game overall-difficulty, for the specific difficulty of a battle, for the renown currently owned, "flags" signifying if another event has been triggered (e.g. "Onef Joined" = true or false?) etc etc.

    Some other (minor) data are contained in the master-script, for instance the locations of the json.z files where other info is kept, e.g. the stat-costs, the ability-parameter-modifiers, the classes, the characters etc. Why aren't those included in this file too? I mean, this is already so big (~6000 lines) that a couple-thousand-lines more wouldn't hurt!

    Now, apart from the master-script, there's also many other separate files (mini-programs or -scripts) that hold & drive the code for miscellaneous stuff, like: battles (boards, tiles, deployment zones, enemy spawn locations), conversations (characters participating, backgrounds, sentences spoken, options given etc), caravan pop-up events, camping/village/town interfaces etc. Some of those mini-programs (hereafter called "misc scripts") might contain re-usable code, but most of those are "traversed" only once in the game's course (e.g. particular conversations or battles).

    I have not looked into that yet, but I believe that the game-flow is passed to-and-from the master-script and those misc-scripts, while all of them have access to the global game-variables that mainly control the game-flow.

    This is just an attempt to understand how the game is executed "as a program". Please correct me where I'm wrong!

    --Aleonymous
    Together we stand, divided we fall.

  20. #80
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Speaking of Saga modding, my thought logically drifted towards Factions "modding" too... Don't be afraid, no hacking here!

    So, my question is this: Will meddling with the units' color variations make those changes visible just to me, and not to my opponent? Say, for example, that I haven't bought any Thrasher color-variations, so I always see my TH dressed in the default beige. If I go in the game files and "swap" (i.e. rename) the default beige clothes with the red ones, then, will my TH appear, to me only, as red? For the record, unit colors are simply coded with numbers, e.g. (for Thrasher) 0=Beige, 1=Green, 2=Red.
    Together we stand, divided we fall.

Page 4 of 10 FirstFirst ... 2 3 4 5 6 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •