Page 1 of 2 1 2 LastLast
Results 1 to 20 of 37

  Click here to go to the first staff post in this thread.   Thread: Technical Blog #6

  1.   Click here to go to the next staff post in this thread.   #1
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413

    Technical Blog #6

    2014/04/24

    Hello everybody! We’ve been very busy over the last month.

    We got word today that the translation is partially complete. 3 of 6 languages are completely translated. There were about 99,000 words of text that got translated. I will be taking the first delivery of that, and integrating it into the game. We’ll plan on sending it back for a revision if we find anything of issue. I’ll also need to do some work making sure everything fits in the space allotted. Some of our GUI elements are already pretty smart about shrinking the text if it would not fit otherwise. Some of the elements I’m sure will have text overruns, and will require a little GUI rearrangement. Once we have it ready, I’ll open a beta for anyone who would like to come in and do some testing in their native languages to let us know if we’ve missed anything or gotten anything wrong.

    The wheels of console porting are turning steadily, but slowly. I am currently evaluating 3 different development organizations that can help us do the ports. The way our game code is structured is fairly esoteric, so finding the right people is a challenge. The task requires previous experience with a fairly specialized piece of technology (Scaleform). However, I am in discussions with some people with very strong backgrounds in that area.

    Autodesk, the company that owns Scaleform, has been very responsive so far. We encountered some early problems doing a rudimentary wrapper for our game, and they were very helpful in identifying the problem and possible solutions. We have been using the next generation ActionScript Compiler (ASC 2.0) for some time, but it turns out that the ActionScript Bytecode it generates (ABC) is not compatible with scaleform. We have found a way to switch back to the legacy ActionScript Compiler, and those options are starting to yield results.

    The iPad port is coming along slowly but steadily as well. One of the first issues to be resolved is the problem with loading all the GUI elements into the game. Currently we load the GUI elements as Flash SWFs at runtime, as they are needed. However, a bug with the way the SWF Loader works on iOS prevents this from working on iOS. Basically, the SWF Loader throws an error if the loaded SWF contains any ActionScript Bytecode (ABC). Even though there is zero actual functional ABC included in our GUI SWFs, the ‘exported symbol’ functionality creates boilerplate empty class definitions, which are technically ABC. Instead of being sensible and recognizing the difference between actual functional ABC and empty boilerplate definitions, the Adobe Loader just craps out.

    The solution that we are taking is to link all the GUIs with the game executable at compile time. This has the potential to increase the size of the executable by 100 MB or more, but we have implemented a system that allows us to strip out the large bitmaps from the GUI SWF, and load them dynamically at runtime. The work of changing over the GUIs in this way is something that has to be done one by one, with a good bit of manual labor and testing at each step.

    Another issue that has arisen is the limitation of iOS application size. The iOS application file, called IPA, has a maximum size imposed by Apple of 2 GB. Our game with all its assets is around 2.5 GB in size. Some of the biggest assets are the videos and sound, followed by the numerous massive bitmaps used in all the scenes. We deliberately made our textures large to support retina displays and future large displays. The GUIs and scenes are all authored for a native resolution of 2731x1536 (that would be the resolution of a Retina iPad if it were extended horizontally into Cinemascope aspect ratio). We can probably reduce the resolution of the cinematic videos, which will save us quite a bit, and increase the compression of the sound and music. If this doesn’t buy us enough, we can evaluate whether _all_ our scene textures really need to be at retina resolution.

    Another issue we have hit is that our video playback doesn’t work on iPad. We are currently using flash.media.Video, and I think all we need to do is convert this to a new technique called StageVideo. This is pretty low on the priority list at the moment.

    We have been investing a lot of time planning and scheduling the work for TBS2. Alex and Arnie have hashed out the details of the story and the characters, and artwork is underway on that. I’ve built out my schedule for the new features and improvements we want to include.

    At the beginning of our project, I invested in a top of the line 27” iMac with maxed out RAM, CPU and SSD, which was a great investment and really helped me get the project done quickly. However, one downside is that although the SSD is very fast, it is also very small in modern terms. So I was always struggling with keeping space clear on it. As our project size has grown, and we are starting new projects, it becomes more difficult. Additionally, I need to have a natively installed Windows development environment. Rather than settle for the inelegant solution of simply attaching an external drive (which I did do for a long time), I decided to take the whole thing apart and install an additional hard drive. It took me quite a bit of time to find the correct cables, but I finally did and everything works like a charm!




    Earlier this month, the internet was hit by the Heartbleed exploit. We spent a good bit of time upgrading and hardening our own servers against it, which involved some Factions and Website reboots. Heroku had some rolling downtime while they patched their services against the problem as well.

    Until next time!

    JW

    Previous: Technical Blog #5

  2. #2
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,442
    Hi John! Good to hear that ScaleForm and iPad porting is progressing, even though they both fall outside my area of interest, as I am a Windows-man I do have access to a Mac laptop whose RAM died on me (again), so I might do some meddling with i-hardware too, in the near future

    I'd happy to help with beta-testing the new multi-language release. I can speak a fair bit of French, and it would be a good practice for me as well as an extra bit of help for you. Concerning translations, a tricky thing I identified (which you're surely aware of) is the bubble-quotes that some characters speak while in-combat; I found that this text is directly placed into the btl_files (as happenings/actions), and not linked to the locale\ language-file(s).

    Any update on the Xeno "master-tool" progress? I can't wait for those modding tools to ship I am planning to add a small scripted-event, with a bit of dialogue options (in pop-up style, like the random-events) and a small battle. I think I've got most things laid out clearly, so I might not need any help just yet. Here is a funny little bit of modding I made -- https://www.twitch.tv/aleonymous/b/522735233 (also related to the translations issue I raised just before).
    Together we stand, divided we fall.

  3. #3
    Junior Member Narf81's Avatar
    Join Date
    Mar 2014
    Posts
    8
    I want help too. German


    Greez

    Narf81

  4. #4
    Hey, hey! I too want to help('0')/
    Russian

  5. #5
    Junior Member ebagist's Avatar
    Join Date
    Apr 2014
    Posts
    2
    I would love to see TBS go to Japan someday (I know Stoic is small; no pressure ), with their love of the genre. I lived in Japan for a few years (and have a Japanese degree), so I often think of their culture: many themes in TBS match really well with Japanese culture (for reference: https://en.wikipedia.org/wiki/Japanese_aesthetics). Awesome to hear of the progress for you guys! I'm really glad I ran into The Banner Saga a few months ago, it is a beautiful game/world.

  6. #6
    Superbacker gripho's Avatar
    Join Date
    May 2012
    Location
    France
    Posts
    62
    As a French native speaker, I'd be glad to help with the Beta

  7.   Click here to go to the next staff post in this thread.   #7
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    FWIW the first 3 languages delivered are: French, German, Portuguese (Brazil).

    Regarding Japanese and other languages, we are definitely open to the idea, and would like to keep going with localization if it makes financial sense. We were originally going to only do the top 3 most popular languages among our player base (German, Russian, French), but got a good deal on adding Portuguese, Polish, and Spanish so we went for it even though it was larger than what we had budgeted for. It's over $60,000 USD total to get those 6 languages translated. We hope it pays for itself and we see enough new players show up for those languages that we can invest the money in more languages, like Japanese.

    Regarding the Zeno tool, it is packaged with the game now, on the development branch, and will be present during the languages Beta testing.

  8. #8
    Junior Member Legendra's Avatar
    Join Date
    Apr 2014
    Location
    France
    Posts
    1
    I'll be glad to help you, I'm French
    Last edited by Legendra; 04-27-2014 at 11:52 AM.

  9. #9
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,442
    Quote Originally Posted by John View Post
    Regarding the Zeno tool, it is packaged with the game now, on the development branch, and will be present during the languages Beta testing.
    Awesome news Alas, I was too anxious to start going "deep" into modding, so I am struggling with the JSON-decompiler tool you supplied. It does everything, mind you, but it just needs two things imo: (1) search/find, (2) having multiple files open at the same time, e.g. in tabs or otherwise. I am sure Zeno will included both these functions and much more!
    Together we stand, divided we fall.

  10.   Click here to go to the next staff post in this thread.   #10
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    With Zeno there is very little direct JSON editing... the tool handles most of it. Some of the newer features require going into JSON, as does editing abilities. But at any rate, Zeno should produce folders full of JSON files that you can edit with whatever text editing tool you like.

    Quote Originally Posted by Aleonymous View Post
    Awesome news Alas, I was too anxious to start going "deep" into modding, so I am struggling with the JSON-decompiler tool you supplied. It does everything, mind you, but it just needs two things imo: (1) search/find, (2) having multiple files open at the same time, e.g. in tabs or otherwise. I am sure Zeno will included both these functions and much more!

  11. #11
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,442
    Quote Originally Posted by John View Post
    With Zeno there is very little direct JSON editing... the tool handles most of it. Some of the newer features require going into JSON, as does editing abilities. But at any rate, Zeno should produce folders full of JSON files that you can edit with whatever text editing tool you like.
    The only thing that I currently feel quite limited with, is the character-portraits used in conversation mode. Those are loaded from the SWFs, right? Will Zeno "break them apart" too, into editable pieces (e.g. bitmap, vector art), and "put together" new ones properly designed, or that is out of the question? Adding new characters (portraits and sprites), that don't rely on existing "units" and color-variations, would require that sort of functionality from Zeno. Well, I hope that at least some things like changing the colors of sprites (e.g. clothes, hair) will be relatively possible!
    Together we stand, divided we fall.

  12. #12
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,442
    Will Zeno provide some sort of easy means to share mods with other users? Or will that have to be done "manually" by the modders and the users-of-mods? I guess that if a mod is only about changes (edits) in the JSON files, a simple-installation tool could be made. But, if new content is added (new PNGs, new JSONs etc), then things would start to get more serious. Well, it should be trivial for you.

    Speaking of this, I am kinda anxious about the automatic nature of patching in steam. I guess it will overwrite/delete all the mods I did to existing files, right? Is there any problem if Steam finds that several files have been changed? Are user-added files safe in the game-folders, or are those cleaned (all content deleted) before patching?
    Together we stand, divided we fall.

  13. #13
    Junior Member Mrozie's Avatar
    Join Date
    Jan 2014
    Location
    Wroclaw, Poland
    Posts
    1
    Quote Originally Posted by John View Post
    but got a good deal on adding Portuguese, Polish, and Spanish so we went for it even though it was larger than what we had budgeted for.
    Wait, do you mean The Banner Saga is going to be availaible in Polish?

  14. #14
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,442
    Quote Originally Posted by John View Post
    Some of the newer features require going into JSON, as does editing abilities.
    A small question about editing abilities: As the AI is apparently "hard-coded" (not data-driven, via JSON), is it capable of handling "other" abilities? For example, if I assign a Skystriker unit in the enemy/NPC team, will the AI be able to make good use of it (or will it just crash! )? Also, what would happen if I edited an ability or created a new one? It seems to me that most units exhibit some sort of "class-specific attitude", e.g. Raidmasters, Strongarms or Stonesingers etc, all act in way that feels "personal" to that class. Consequently, creating/editing an ability assigned to enemy units means that the corresponding "sub-module" of the AI should also be created/edited, to make proper use the ability...

    I believe you guys have put a lot of work into making that AI fun to play against. Just wish to understand some things so that we might be able to help you improve/expand it!
    Together we stand, divided we fall.

  15. #15
    Junior Member ebagist's Avatar
    Join Date
    Apr 2014
    Posts
    2
    Quote Originally Posted by John View Post
    Regarding Japanese and other languages, we are definitely open to the idea, and would like to keep going with localization if it makes financial sense. . . . We hope it pays for itself and we see enough new players show up for those languages that we can invest the money in more languages, like Japanese.
    Awesome! I hope something turns out for Japan. Not native, but I'm fluent in speaking, reading and writing, so I'd love to Beta test anything you had in Japanese if you ever get a good opportunity to do that/if it makes financial sense.

  16.   Click here to go to the next staff post in this thread.   #16
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    AI usage of abilities is not based on the abilities themselves, but on the properties of the abilities. In particular anything that affects an ability, such as range, target rules, or move limitations. Additionally abilities can be configured with the following AI specific properties (which you see on some but not all abilities):

    Code:
    aiRulesAbilityId
    aiPositionalRule
    aiUseRule
    aiTargetRule
    aiFrequency
    So for the most part, AI handling of abilities is data-driven. The relative weights of defense, offense, str damage, armor damage, positioning, are hard-coded though.


    Quote Originally Posted by Aleonymous View Post
    A small question about editing abilities: As the AI is apparently "hard-coded" (not data-driven, via JSON), is it capable of handling "other" abilities? For example, if I assign a Skystriker unit in the enemy/NPC team, will the AI be able to make good use of it (or will it just crash! )? Also, what would happen if I edited an ability or created a new one? It seems to me that most units exhibit some sort of "class-specific attitude", e.g. Raidmasters, Strongarms or Stonesingers etc, all act in way that feels "personal" to that class. Consequently, creating/editing an ability assigned to enemy units means that the corresponding "sub-module" of the AI should also be created/edited, to make proper use the ability...

    I believe you guys have put a lot of work into making that AI fun to play against. Just wish to understand some things so that we might be able to help you improve/expand it!

  17. #17
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,442
    Quote Originally Posted by John View Post
    AI usage of abilities is not based on the abilities themselves, but on the properties of the abilities. In particular anything that affects an ability, such as range, target rules, or move limitations. Additionally abilities can be configured with the following AI specific properties (which you see on some but not all abilities):

    Code:
    aiRulesAbilityId
    aiPositionalRule
    aiUseRule
    aiTargetRule
    aiFrequency
    So for the most part, AI handling of abilities is data-driven. The relative weights of defense, offense, str damage, armor damage, positioning, are hard-coded though.
    Mighty interesting, thanks, John!

    My first attempt of "granting a new ability" to a Dredge Scourge (Bring-the-Pain replacing its Tremble) proved ill fated: The Scourge did activate the ability by hitting enemy's Armor but (a) something went wrong with the animation [I thought BtP animation was just a regular attack, that's why I used it -- probably not so simple! ] and (b) when I melee-hit the Scourge, i didn't take back any break-damage [that's probably due to the fact that BtP acts in complement with RtF]. It seems like I'll need to do so more research on those. It's true that the ability files are much trickier to "read" than the rest of files I meddled with, mostly due to the use of your jargon (e.g. "autolevel", "caster", "ops", "phantasms" etc)
    Together we stand, divided we fall.

  18. #18
    Junior Member default_name's Avatar
    Join Date
    Feb 2013
    Location
    Moscow, Russia
    Posts
    7
    Hey-hey! I can help with localisation testing too (Russian and French)!

  19. #19
    Junior Member Narf81's Avatar
    Join Date
    Mar 2014
    Posts
    8
    What day is planned around for the beta?

  20. #20
    Hey, great news. I would love to help and test the german version

Page 1 of 2 1 2 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
  •