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?

Wednesday, 23 September 2015

BattleScribe 1.15.07 Updated on Desktop!

First off, I'll get this out of the way: This isn't the big update that many have been waiting for! This release is just a refresh of 1.15.07 to bring some improvements to the installer and auto-update functionality. In addition, BattleScribe on desktop now requires Java 7, and should solve some launch issues on Windows 10.

  • BattleScribe now requires Java 7 - go to www.java.com to update if you think you need it (or if you're unsure).
  • Fixed issues launching BattleScribe on Windows 10 - you might need to manually re-install using the Windows setup.
  • Auto-update will now work on Mac OSX, using the Mac installer disk image.
  • Windows auto-update now uses the Windows setup for cleaner updates.
  • Fixed clicks not working on the "update available" and advert images on OSX.
  • Changed the style of the Mac version as the libraries required are no longer being maintained by the author. On the plus side, this reduces the size of the download significantly.

This has been a slight detour from the main project at hand: a big rebuild of several core components of the "engine". This coming update is intended to bring BattleScribe to a state that can better support future updates and improvements. The main people this will effect will be the data authors out there - I hope this should solve some long-running requests, or at least provide a platform to solve these issues in future.

It's a big job and has been in the works for several months now, but things are starting to come together. I'm currently "rewiring" the desktop interface to work with the new engine, so I should have a beta ready Soon™. The desktop version will remain in beta until the mobile versions can be completed, with a view to releasing all three versions (desktop, Android, iOS) at once.

I won't give you any predictions on time to release, but do know that Progress is being made!

Tuesday, 17 March 2015

BattleScribe 1.15.07 Released on Android and Desktop!

Today sees the release of BattleScribe 1.15.07, with some nice bug fixes and a nice new feature.

First up, a new way to share your list: You can now save the View Roster output as an image, which is really nice for sharing on Twitter and other social networks. No idea why I didn't think of this before, but thanks to @iosefward on Twitter for that suggestion!

Second, a nasty bug that's been dogging the desktop version for some time has finally been resolved. When adding or removing certain items, the app would sometimes crash/freeze, blanking parts of the user interface or leaving it unresponsive. Of course let me know if you still see similar problems in this version.

On Android, an annoying little issue has now been fixed: when going back a page, the scroll position of the list is now remembered. No more endless scrolling in those long lists.

Now we get to see how well the auto-update feature works on desktop!

All Platforms
  • Share/save the roster output as an image for easy sharing on Twitter or other social networks
  • Fixed occasional crash when adding or removing items
  • Fixed issue where some modified profiles would not show up in the roster output

Desktop
  • Fixed occasional crash when adding or removing items that would leave parts of the UI blank or unresponsive
  • Toolbar in Roster Editor will now scroll when the window is too small
  • Forces and categories can now have negative minimum points values in Game System Editor

Android
  • List scroll position remembered when going back to the last screen
  • Fixed issue where the wrong points value would sometimes be displayed on list items
  • Fixed occasional crash when returning to the app after some time

As usual, the next job is to bring these changes and fixes to iOS, so that should be coming soon.

Tuesday, 3 February 2015

BattleScribe 1.15.06 Released on Android and Desktop!

Another new release today!

1.15.06 brings the usual bug fixes and improvements, along with a new feature for Pro users and auto-updates on desktop.

The Pro version adds a statistical breakdown of your roster when viewing it, for the stats nerds among you (like me). This shows the number of units, models and upgrades you've selected, the points spent and the percentage of your total points spent on them, broken down by force and category. This is heavily dependant on the data files being configured for this though, so it might take some time to become accurate.

On desktop, BattleScribe can now auto-update itself when new versions become available. Since new versions are fairly regular, this should make life much easier! All you'll need to do for future updates is click a button and let BattleScribe download and install the new version for you. This is not available for the Mac installer version (at least for now) since it's somewhat different to the Windows installer and Any Computer zip versions.

I've also moved the ad on desktop to just below the roster tree (in the middle). This is to try to save on the wasted space either side of the ad where it was before.

As usual, the next job is to get 1.15.06 ready for iOS, so it will be available on iPhone soon.

All Platforms

  • Pro: See a breakdown of unit/model/upgrade counts, points spent and percentages when viewing your roster.
  • Fixed crash when creating/loading rosters using old/broken data files.

Desktop

  • Free: Moved ad to just below the selection tree panel to save wasted space.
  • BattleScribe can auto-update itself when new versions become available (Windows installer and Any Computer zip versions only).
  • Fixed show/hide modifiers on profiles/profile links giving errors in Catalogue Editor.
  • Fixed new links not generating a unique ID in Catalogue Editor.
  • Fixed bug pasting IDs into modifier child textbox in Catalogue Editor.
  • More tweaks and bug fixes.

Android

  • Pro: Fixed crash when editing a selection's custom name/description.
  • "Low memory mode" can be turned on/off from the menu.
  • Fixed several crashes caused by rotating the device with a dialog box showing.
  • More tweaks and bug fixes.

Thursday, 8 January 2015

BattleScribe 1.15.05 Released on Android and Desktop!

Not a lot has changed on the surface in this release - it's nearly all under the hood. There have been a large number of small bugs and issues fixed, plus a big focus on performance and memory use.

I've gone through the code to identify and eliminate many areas where memory (RAM) was not being efficiently used. This leads to improved performance, shorter loading times and reduced memory requirements. Some Android devices were struggling when using large or complex data files, and would "randomly" crash when they ran out of memory. Hopefully, this situation should be much improved. In addition, Android devices with particularly small amounts of available memory will not load rule and profile data to minimise memory needs, so at least you can build lists.

On desktop, as requested, the preview popups have been adjusted so they take a bit longer to show up, and are positioned to not hide the thing they pop up from. There's also now an option to turn off the preview popups entirely.

As usual, these changes will be coming to iOS soon - I'll be submitting a new version to Apple in the next day or so.

All Platforms
  • Output now shows custom roster descriptions.
  • Improved performance and memory management.
  • Fixed bug where hidden items would sometimes not stay hidden.
  • Various other bug fixes.

Desktop
  • Adjusted preview popup delay and positioning.
  • Added option to turn preview popups on/off.

Android
  • Low memory devices will not load profile and rule data to avoid running out of memory.

Thursday, 1 January 2015

BattleScribe New Year's Half Price Sale!

To usher in 2015, BattleScribe Pro is on sale: half price for a week!

You have until 23:59:59 GMT on Wednesday January 7th to pick up a copy on the cheap. You can get a desktop key from the BattleScribe store, or the mobile versions from Google Play, iTunes or the Amazon app store.

Happy new year!

Friday, 19 December 2014

BattleScribe 1.15.04 Released on Android and Desktop!

Here we go with one final release before Christmas, and in contains a present for you...

Back by popular demand, preview popups have made a return on desktop! I hope you'll find them much improved over the previous implementation of them - they are scrollable (rather than sometimes taking over the entire screen...) and can be copy/pasted from.

Other than this, there's just the usual batch of bug fixes and tweaks. As always, this update will be on it's way to Apple for review, and will become available for iOS once it's approved.

Merry Christmas!


All Platforms
  • Rule summary can now be shown when viewing single selections.
  • HTML output now correctly shows newlines in rule descriptions.
  • Fixed crash when adding forces to a roster in some cases.
  • Fixed crash when creating a roster with a data file that has broken profiles.

Android
  • Fixed restoring roster when returning to the app after some time.
  • Added workaround for crash bug in Samsung's version of Android 4.2.
  • Fixed occasional crash when dismissing a fullscreen ad while creating a new roster.

Desktop
  • Preview popups are back! Better than ever, they're prettier and can be scrolled (rather than taking up the entire screen).
  • Fixed double clicks not adding selections on OSX.

Wednesday, 26 November 2014

BattleScribe 1.15.02 Released on iOS!

Today brings 1.15.02 and it's bug fixes to iOS. Unfortunately, I haven't seen as big a performance boost when loading and creating rosters as was seen on Android devices. This may just be that my test device is slow though (a 5th generation iPod)! I'd be interested to hear if you see an improvement in this area on iPhone 5s and up. There's still work to do though, so hopefully a bit more speed can be squeezed out in future releases!

One thing to note: If you have had problems with your data (e.g. missing categories) since the last update, it might be worth deleting and re-downloading your data. This FAQ answer describes how do do that.

Without further ado, here's the release notes:

iOS
  • Fixed crash when adding certain selections to your roster. 
  • Fixed crash when opening certain categories or scrolling through the list. 
  • Fixed "Direct Parent" conditions not working in some cases. 
  • Fixed output showing needless decimal points for characteristic values.

Saturday, 22 November 2014

BattleScribe 1.15.02 Released on Android and Desktop!

Today's release is mostly just bug fixes and tweaks, resolving a couple of nasty crashes that came up after the last release. It's available on Android and desktop right now, and as usual is currently being reviewed by Apple for release on iOS devices. I'll post again when it becomes available in iTunes.

One other thing to note: If you have had problems with your data (e.g. missing categories) since the last update, it might be worth deleting and re-downloading your data. This FAQ answer describes how do do that.

Without further ado, here's the release notes:

Android
  • Improved loading times when creating or loading a roster.
  • User interface tweaks.
  • Fixed occasional crash when moving between screens.
  • Fixed crash on startup on Sony Xperia Z devices.

All Platforms
  • Fixed crash when adding certain selections to your roster.
  • Fixed crash when opening certain categories or scrolling through the list.
  • Fixed "Direct Parent" conditions not working in some cases.
  • Fixed output showing needless decimal points for characteristic values.