Game Design, Programming and running a one-man games business…

Combing two dialogs into one, A GUI rethink?

My car factory game currently has two separate dialog boxes launched by these two icons on the top interface strip in the game world:

The one on the left is the ‘car showroom’ dialog and it looks like this:

…and the one on the right is the car design dialog and it looks like this:

I have some design issues with the way this works, in terms of it being a nice logical and intuitive user-interface. Firstly, those two icons are not really distinctive enough to show that one means ‘the car market as it currently is, plus your showroom’ while the other means ‘design of your cars’. Secondly its not immediately clear why they are separate dialog boxes at all. There is some justification for having 3 buttons and 3 windows (market, showroom and designs) or a single one with 3 tabs called ‘cars’, but very little justification for the current layout. In addition, the car designs window is currently different dimensions to the showroom, which feels weird when switching between the two, and to further complicate the issue, clicking a design in the showroom dialog launches the car design window to show that model…

My gut instinct is that this is just poor design, resulting not surprisingly from the design evolving during the games development. Initially the showroom was a single window, then it got the market added as a new tab, and the overall design of this stuff has not been revisited with fresh eyes since it got added.

The problem with just changing it, is that existing players of the game are going to initially wonder what happened. I can put a note in the change-list, and mention it in my next blog video, maybe even have a first-run popup, but there is always the possibility that some players may prefer it the way it was. Of course the game is still in Early Access, so really players should be expecting that the design would evolve, and I think the majority would welcome the change, but its still something I hesitate to do without canvassing some players opinions.

For existing (or for that matter new or potential…) players, what do you think about changing this?  Would a single window (and thus button) make more sense?

 

New Production Line Developer Video!

No time to write anything else, as I have 2 bugs I want to squash before I upload a new version of the game…but here is the latest developer video:

Shadowhand coming on 7th December, New trailer!

Before I go any further in talking about the card-battling RPG/Adventure?Visual Novel/Unique game we are publishing called Shadowhand…check out the trailer..

If you have not heard of the game before, its an interesting mash up of a whole bunch of genres. The basic card game is solitaire, but revved up to the max with power-ups, special cards, and a unique ‘combat’ mechanic version, all wrapped up in a cool story about an 18th century highway-woman with two identities. I recommend checking out our website with more information about the game here.

Shadowhand is being developed by Grey Alien Games and published by me. The game was originally planned to come out about a year ago, but the games scope changed a bit which pushed it to January, and then…well to cut a long story short, it took longer than expected, but the end result is truly awesome and I’m very excited that we are about to release it to the world.

Oh yes…I haven’t mentioned yet that the release date is now 7th December. Thats a proper, public, its going to happen release date, even if I have to break down jake’s door with a bat-leth and grab the final build from his desperate claws to upload it to steam…

Shadowhand will be extremely interesting as a publisher (although TBH I am moving away from publishing games directly now), because it represents a unique experiment. The developers (Grey Alien Games) have a lot of game development experience, but that experience has mostly been in casual games, of the sort normally sold by the big casual sites like Big Fish games, and back-in-the-old-days, RealGames and Yahoo Games, IWIN and so on. It was all those years ago that I first met Jake, who was selling games through those sites (and eventually went to work for a big casual games developer) at the same time I was selling Kudos and eventually Kudos 2.  There was a time back then when a decent, experienced indie game dev could make a reasonable liviung from making casual games and selling them direct, and also through the big portals for casual games.

All that changed with the consolidation of casual games publishers, combined with a shift for that game style to first facebook, and then mobile. This led to lower revenues per game, lower game prices, and a miniscule revenue share for the actual game developers. Suddenly the smart money was in ‘hardcore’ games on steam and GoG, instead of the ‘mass-market’ casual games often sold to ‘soccer moms’.

Thats a long history to explain why the developers behind Shadowhand have so much experience, but so few well-known games on steam. The problem was, selling on steam was ‘different’ to selling casual games through other portals. Also, the level of polish, game design and user experience often demanded by casual games was often actually higher than the typical indie steam game. This is especially true now, where most games launch into early access with bugs ahoy and placeholder stuff everywhere.

So together, me and Jake hypothesized that he could take his design skills and experience of user-interfaces and game-polish, and bring that sort of game design to steam gamers with a suitable theme. The idea for shadowhand was thus born. If it works, it proves there is a gap in the market for taking what casual games do best, and applying them to serious hardcore game designs for the steam audience.

I strongly think its going to be a success.

Shadowhand will be out soon for $14.99, 10% off at launch, and you can add it to your steam wishlist right now, (which might be a good idea, as you will get a reminder on launch day). If, in the meantime you have a need for some similar entertainment, Grey Aliens previous game ‘Regency Solitaire’ is already out on steam…

(Nothing to do with me, this is a game Grey Alien Games made and sold themselves).

The big Production Line performance issue: route-finding

Unlike a game its often compared to (factorio), Production Line has intelligent routing. In factorio, things on conveyor belts go in the direction you send them without thought as to if thats the right way. In Production Line, every object has intelligence, and will pick the best route from its current location to its desired location, which allows for some really cool layouts. It is also a performance nightmare.

Obviously every time the game creates a new axle, wheel, airbag or other component, we dont want to calculate a new route along all the overhead conveyors. Thats madness, so we cache a whole bunch of routes. Also, when we decide which resource importer should be assigned with (for example) airbags, we dont want to do a comparison of routes over every possible combination, so we also cache the location of the nearest 2 import bays. Once we have worked out the nearest 2 bays, we never EVER have to recalculate them unless a bay is added, deleted, or a piece of the conveyor network is added or deleted. So thats cool.

The problem is, this happens ALL THE TIME, and its a big part of gameplay. If we have, for example 100 production line slots, and 20 import bays, then we need those 100 slots to check 20 routes each, every time we change anything related to the resource network. Thats 2,000 route calculations per change. if the player is slapping down one every 3 seconds, then thats 600 routes per second, so ten routes a frame, which isn’t *that bad*.

If the map is bigger and we have 200 slots and 40 bays, then suddenly its 40 routes per frame that need calculating. Very quickly you end up with profiling data (multithreaded) like this:

There are multiple solutions that occur to me. One of them is to spread out the re-calculation over more frames, which means that the import location could be sub-optimal for a second or two longer (hardly a catastrophe). Another would be to do some clever code that works out partial routes and re-uses them as well. (If my neighbour is 1 tile away and his routes are optimal, and I have only one possible path from me to him…calculating new routes entirely is madness).

In any case, I have some actual proper bugs relating to routes *not* being calculated, which is obviously the priority, but I need to improve on this system, as it is by far the biggest cause of performance issues. FWIW, it only happens on really super-full large maps, and custom maps, but its still annoying… Eventually I’ll find a really easy fix and feel like an idiot.

Meanwhile Production Line was updated to build 1.38, with loads of cool improvements. Hope you like it.