Friday, 18 November 2016

BattleScribe 2.0 Released!

Current Situation

[As of writing, the current versions are as follows. Android: 2.00.12. iOS: 2.00.07. Desktop: 2.00.05]

As you're probably aware, BattleScribe 2.0 launched about two weeks ago, and we've had a bit of a shaky start. There are always going to be some issues with any big release, but this is no excuse for the series of nasty bugs and crashes, particularly on Android. This was my fault entirely, and I apologise for any issues or inconvenience you may have experienced over the last week or so.

That said, we are finally out of the woods: all known major issues are resolved and performance has improved considerably. The data community has also been hard at work updating their files for BattleScribe 2.0, so make sure you update your data regularly.

This post has been a little late as my focus has obviously been elsewhere!

If you are having trouble, I have posted solutions to problems and answers to common questions separately as FAQs, rather than making this post any longer than it needs to be. I encourage you to read and share them:

Coming Up

There is always more work to do of course. Currently Dropbox synchronisation on mobile can be pretty slow. I am currently working on a new approach to Dropbox file synchronisation. Consider disconnecting Dropbox for the time-being to improve loading times considerably. I will also be constantly working on fixing any existing bugs as and when I identify them. Rest assured I am on the case. Expect frequent updates - make sure you keep the app up to date for the latest fixes.

With that all said, what actually is BattleScribe 2.0, and what's changed? Brace yourself.

If It Ain't Broke, Don't Fix It

This is a phrase I wholeheartedly agree with. But there is a qualifier: "If it ain't broke". While BattleScribe 1.x wasn't exactly "broke", it had certainly hit the limits of what it was capable of without major rework. It was bursting at the seams.

The wargaming scene is an ever evolving and expanding beast, whether you are leading a small group of gang members through wrecked city streets or recreating entire historical battles with a cast of thousands. BattleScribe has always striven to be a universal tool that covers all situations, and must have the room to expand to support future developments in this great hobby of ours.

When I first started writing BattleScribe back in 2010, the wargaming landscape was a simpler place. Since then it has exploded in scope and complexity, and the original assumptions underpinning BattleScribe's design no longer hold true. The data community have had to work harder and harder to find elaborate ways to work around BattleScribe's limitations when creating their files.

It was time to rethink things.

2.0 Is Born

Some time in early 2015, I began work on what was then going to be version 1.16.00. The core aim was to overhaul the data format and core systems in order to expand the scope of what BattleScribe was capable of supporting and address the needs of the data community. The data editing tools would be reworked to support this.

It soon became clear however, that the nature of the changes required to achieve these aims would have wide-ranging knock-on effects throughout the app. It would not be possible to update individual systems in isolation. What was needed was a step back to rethink the overall design of the app as a whole.

This new holistic approach provided the opportunity to review every aspect of BattleScribe. It was time to brush away the cobwebs left by years of incremental updates, and work to refashion the app into a platform that can expand and evolve with the wargaming world for years to come.

This was going to be BattleScribe 2.0.

Sounds Neat. So What's Changed?

Almost every line of code in all versions of the app has been rewritten, reorganised, refactored or removed. All major systems have been redesigned and rebuilt. BattleScribe is reborn. But what does this mean for you?

When it comes to creating army lists, not much has changed on the surface. The user interface on all platforms is pretty much the same as it ever was in terms of placement of buttons, navigation and so on. If it ain't broke, don't fix it, right? The mobile versions have had a new coat of paint and now look and behave as modern mobile apps should.

There is one new feature for BattleScribe supporters: Quickview. This is the ability to open rosters for viewing without loading all the data files. Other than this, the first priority was to ensure that all features from the previous version are present and correct. Going forward, you can expect new features and functionality, expanding on the groundwork laid down in BattleScribe 2.0.

The changes for data authors on the other hand, are huge and wide-ranging. The data format and editing tools have been redesigned to improve ease of use, efficiency and quality of life. This should benefit everyone by way of higher quality data files, improved support for a wider array of game systems, and faster data updates.

I encourage anyone interested in data authoring to try the new Data Editor! You should find it a much more powerful, intuitive and pleasant experience.

Android and iOS
  • User interface redesigned.
  • New roster creation flow so it's not all crammed onto one screen.
  • Supporter: Quickview rosters without needing to load the data files.
  • Supporter: Redesigned dice tool.

  • Added keyboard shortcuts for new, save and save as.
  • Supporter: Quickview rosters without needing to load the data files.
  • Old Game System Editor and Catalogue Editor tools are now combined into one Data Editor. which handles both types of file.
  • Data Editor: Redesigned edit panel is consistent for different element types.
  • Data Editor: Added keyboard shortcuts for cut, copy and paste.
  • Data Editor: Added right click option to "follow link".

Engine & Data Format
  • Game System and Catalogue file formats are unified. All data elements (e.g. Forces, Entries, Rules, Profiles...) can now exist in either file type.
  • Elements in a Game System file are available in a Catalogue.
  • Shared elements in a Game System can be linked to from any Catalogue files, so global elements can be shared by all Catalogues.
  • Entry elements (ForceEntry, CategoryEntry, SelectionEntry, SelectionGroupEntry...) are unified and work in a consistent way.
  • Info elements (Profile, Rule...) are unified and work in a consistent way.
  • New CostType element so you can represent games with multiple "currencies". 
  • The CostType element can be used to name "currencies" - you are no longer restricted to just "points".
  • Entry element min/max fields are replaced by a Constraint query element so you only need to apply constraints that actually matter (or omit them entirely).
  • Modifers can be used to change more fields and work in a consistent way between the different elements they are attached to.
  • Modifier repeat fields are replaced by a Repeat query element, so modifiers can have multiple repeats.
  • Query elements (Condition, Repeat, Constraint...) have been unified and all work in a consistent and logical way.
  • Query elements are much more powerful and customizable, with more control over scope and target elements.
  • Link elements can have the same Modifiers that their target can have.
  • More elements can now have "book" fields (book, page...).
  • Probably more I can't remember...