Future Plans - Looking back at the year and forward to what may come

Previous topic - Next topic

JunkDealer

With the upcoming roll out of Nocturne and the year rapidly coming to an end, I'm left wondering what to do.  It's been no secret that my preference has been for AI, Offline, and Campaign play so I'm one of those who have been waiting for an offline client.  Granted I don't mind playing online and have periodically topped up my subscription to include Empires.  I will do the same again when Nocturne rolls out, but before I decide how long to extend my subscription I'm looking back at the Top Priorities list of 2017 and wondering if ShuffleIt's license will be extended or not.

Here's my look at the top priorities of 2017... Comments are completely my own based on my experiences with the game.  I have no knowledge of which of these the ShuffleIt Team considers complete, still planned, or scrapped.


  • Finished - Add retrievable gamelogs, rating, leaderboard
  • Stash still outstanding - Finish implementing cards
  • Started? - Improving AI
  • Still Planned? - Adding Campaigns
  • Finished - Adding German, Russian and Japanese support
  • Not complete - Card animations: animating all card moves
  • Finished? - Expanding on friend list
  • Still Planned? - Create an IOS and Android app
  • Started? - Adding features for Kingdom selection, e.g. to help new players learn cards gradually
  • There was a tournament... I don't think there are any features to support it though - Adding tournament support
  • Started? - Further improvements on AI
  • Still Planned? - Offline client
  • What does this one mean? Smart timing rules
  • Started? - Autoplay features
  • Started? - Add logsearch

Would love official communication, but will accept any speculation or rumors based on information not generally available.

Thanks!

Stef

I know there has been a lack of communication here, Nocturne has been pretty overwhelming.
I still don't have much time, but a bit of reflection never hurts.

We squeezed in some features with Nocturne that will help the general client.
- duration attacks are now visible, and enchantress has the pig
- your starting cards are shown at the start of the game
- revised kingdom layout in the client

Thursdays release will have Nocturne fully implemented, but also:
- autoplay (finally)
- improved undo vs bots

After Nocturne goes live, we will continue with...
- rewriting the client. The goal here is
  - clear domain model & readable/maintainable code
  - full control over zones displayed; always find a spot for all zones with cards in them on the screen
  - full control over animations; enable users to animate all cardmoves and do something special for moves that change ownership
  - visualize the ordering of abilities
  - if all of the above succeeded, we can by default turn the log off.

- refactor the gameserver. Currently my gameserver has a problem. It's about states & asynchronous programming.
I use constructs like these:

    public void onPlay(Context context, Player player, PlayCardAbility playCardAbility, Handler<Void> handler) {
        player.addBuys(1);
        List<Card> estates = player.getHand().getCards(c -> c.getName() == CardObjectName.ESTATE);
        context.ask(new WhatCardToDiscardOptional(getCardObjectAssociation(), storyOf(QuestionId.BARON), estates), discardMe -> {
            if (discardMe.isPresent()) {
                player.discardFromHand (context, discardMe.get(), getCardObjectAssociation(), discarded -> {
                    player.addCoins(context, 4);
                    handler.handle(null);
                });
            } else {
                player.gain(context, getCardObjectAssociation(), CardObjectName.ESTATE, gained -> handler.handle(null));
            }
        });
    }

This works fine, but I'm not in love with using handlers this way, and it's no longer sufficient. Suppose you have played the baron, and there aren't any Estates left in the supply. Now you could decide not to discard an Estate. After you decided that, the gamestate changed, even though there wasn't a single card that moved or counter that got updated.

Also you see a difference in how I add buys and coins. Adding coins could have some side-effect which needs logging (the -1 coin token) and buys can not. I don't like that it makes that distinction; in the new situation I want to have a more general idea of moving from one state to the next, even after something as insignificant as adding a buy.

The big problem here is that I can't fully reflect on the state I'm in. This baron is only moving forward.

In the new situation, I want to add the concept of a "stage" I'm in while executing the Baron, and let every stage create some kind of Mutation I apply to the gamestate to move to the next stage. This Mutation will also have a function to undo itself, and needs to hold enough information to perform that undo.

Off course baron is one of the easiest cards here. It gets significantly trickier with cards that target other cards (throne room), could lose track of things or interact with your opponents. It will be quite an undertaking to apply these changes to all cards.

But the reward should be significant: then I can move forth and back through a game. This will allow the gameserver to support a much more powerful "delayed decisions" like we have on mining village now. But most importantly it will allow me to start working on a real AI.

I want to be able to synchronize both those gamestates and the Mutations. This should allow for a much more powerful logging system, allow you to save/load games, and most importantly: create a script that has direct instructions for the gameserver.

I want that to develop into a scripting language that allows the creation of campaigns and tutorials.

I would like to give more attention to compatibility with Android and iPad devices.

Oh and I want to hammer down the known card bugs; at least all the ones that aren't interface related.

jeebus

It seems that adding more staff is kind of required to be able to do all this within, let's say, a year? (I assume it's still just you.)

JunkDealer

Hey Steph,

I was reading through your response and realized nowhere in it did you make reference to an offline client.  Is that still in the plans?

Thanks

Linda B

Seconding a request for an answer about an offline client, and adding this thought: Whether there is going to be an offline client or not is a factor in my decision about whether to pay for a subscription through the upcoming year or not. I'm holding off investing my scarce coin until I have some evidence that there is a willingness to communicate with the player community about such a critical question. Blindsided once by the previous provider of the game, shame on them. Blindsided twice, shame on me.