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.

Desktop
  • 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...

Sunday, 31 July 2016

BattleScribe 2.0 is Coming

I wanted to give everyone a heads up and get some feedback. It’s a bit of a long post, so hold on to your hats! Please have a read through and let me know what you think - good or bad. You can leave your comments on Reddit.

BattleScribe 2.0 is an (almost) complete re-write of the app, and has been my main focus for the last year or so. The target for the first release is to have all the same features (Pro or otherwise) as before - so there won’t be any big new features right away. That said, the user interface on mobile has had a huge facelift and looks much nicer now.

The main changes are “under the hood”, along with a huge overhaul of the data file format and editing tools. This should make the lives of data authors much easier, leading to better data files for us all. The re-write of the app also leaves it in a much better state going forward, making it much easier for me to build upon with new features and updates in future.

Suffice to say, this has been a huge effort. BattleScribe’s core systems have been completely rebuilt to enable a brighter future for the app and it’s ecosystem for years to come. If you’d like to give it a go, you can find the Alpha version here: https://github.com/BattleScribe

Now the hard part. BattleScribe 2.0 is going to be a “new” app, separate from the old one, and will require you to pay again to unlock Pro features on all the various platforms. This update truly deserves the “2.0” name though. It really is a completely new beast. Of course this brings with it some issues.
  1. Existing Pro users who’ve already paid for the old version may well be upset, particularly if they only recently bought the previous Pro version. And justifiably so - I completely understand why you might feel this way. 
  2. Some time in the future, there will likely be BattleScribe 3.0 (followed by 4.0 and so on), which would again require a new purchase. And we will have to go through all of this again. Essentially there is some amount of uncertainty about how long your purchase will last (at least going forward). 
So the plan right now is to move to a “Pro Pass” model for BattleScribe, where you would pay to unlock the Pro features for a certain period of time. Your pass/time remaining would be associated with an account you create on the BattleScribe website.

Don’t panic! Let me clarify and lay out my thoughts on how this would work.
  1. The “Pro Pass” for one year would be priced a little lower than the cost of the Pro app right now. You would also have the option to purchase passes for different lengths of time (1 month? 10 years? etc). 
  2. I should be able to implement a system where existing Pro users who have bought the old version of the app will get their first year pass for free or at a heavy discount ($1 for example). 
  3. It removes the uncertainty about when/if a new version is coming. The app will just continue to be updated and you will always have access to it. You can purchase a Pro Pass as and when you want to, and the app will just revert to the free version when your Pass runs out. 
  4. With an account, it would be possible to extend your Pass across platforms - Android, iOS and Desktop. This opens the option to have a “Bundle Pass” that unlocks Pro on all of your devices/systems. 
Essentially, BattleScribe’s development is an ongoing process that never really ends. Any veteran BattleScribe users will know how much has changed and improved over the years! And it will continue to do so as I work on introducing new features and improvements over time. I feel that a time-based system for purchasing BattleScribe Pro would better reflect this continuing work.

What about this “account” business? I guess some of you might be uncertain about this, and to be honest I was very uneasy about the idea at first too. So let me explain.

Firstly, BattleScribe would use a “login with Google” (or Facebook or other trusted third party) system that I’m sure you’ve seen before. BattleScribe would only have access to your email address and name (so you can be contacted in case of a problem - it would never be shared with anyone else, ever). This is just a way of confirming that you are who you say you are so that BattleScribe can securely look up the Passes you have purchased.

An account brings some big benefits.
  1. The passes would be stored in the BattleScribe database, outside of Google’s and Apple’s (restrictive) store systems. This gives a huge amount of flexibility over how they can managed. For example it allows me to extend passes or gift them to people. 
  2. Passes could be shared between all the devices and computers you are logged in on. This means that you could buy a pass that unlocks pro on all your devices at once (for example). 
  3. It opens up a lot of options for future BattleScribe apps/sites that may come along. I don’t know what those are yet! But being able to bring your data with you between apps is very powerful. 
OK I’m done now! Here are some questions.
  1. What do you think about having an “account”? 
  2. Would you buy BattleScribe Pro on a yearly basis? Are you an existing Pro user? Or someone who was thinking about buying Pro? Does this change things? 
  3. Do you buy “consumable” in-app-purchases in other apps? For example currency in-game-currency?