BIS Weekly May 8th

Currently you sell for 25% of the buy price... Generous? Stingy? Who knows.

Currently you sell for 25% of the buy price… Generous? Stingy? I have no idea.

The "density" font isn't working for me, but it's fine as a placeholder

The “density” font isn’t working for me, but it’s fine as a placeholder

I feel good about this week: Difficulty and Stations/Shops. I’m actually a little bit surprised at how much more fun the game is now. It’s feeling more like a legitimate game rather suddenly, and that’s a great feeling.


Difficulty

For Difficulty, I changed planet generation to increase the toughness of tiles as you get further into the planet. You find significantly more pips, of higher quality, but it demands better blocks.

The rate at which this increases depends just on the planet’s “richness”, for now – the richer the planet, the faster “density” increases. (I don’t love that term, but for now it’s what I’ve got.) You can see to the right how this is indicated – for now these gradients down the sides of the play field show the current density, and how far until the next step up.

You can also see a somewhat subtle change in the screenshots: block shadow and glow (the outline when a block is ‘selected’ or ‘active’) are now tinted in the block’s overall color. I find this really helps emphasize the color-centric identity of blocks.

For the time being, this is poorly balanced. There are two main reasons for this:

  1. Density and “tile value” don’t increase in lock-step, nor are they proportional.
  2. Density doesn’t translate directly to difficulty. If your blocks are all power-1, then density 1 tiles are effectively the “minimum” difficulty, which we’ll call “1”. Then a few layers down, you run into density 2 tiles: these seem at least twice as hard to clear, since they muck with your careful planning.

    It’s even more obvious when you consider having a bunch of power-3 blocks. Density 1-3 are all effectively the same difficulty. Then 4-6 are essentially the same difficulty as density 2 was when you had power-1.

    Essentially, each block power you gain, you add 1 density (8-12 layers) to your ‘easy’ list, another 2 to your “2-clear” list, another 3 to your “3-clear” list, etc. So by power 5, you can dig down to density 15 (average ~100 levels) in just 3 clears per line. Depending on what your ‘sweet spot’ is, that could be very rapid acceleration.

The consequence of this lack of balance is that optimal behavior is to clear as far into a dig as you can doing one-clear-per-line (maybe two-clear), and then move on to another dig site. I don’t think that simply restarting is a fun path to push players onto, though, so I’ll be working on ways to fix this.


Stations/Shops

The changes to stations and shops have really helped increase how rewarding gameplay is.

The gist of what has changed is this: Each space station has its own shop, those shops have their own unique inventory of random (for now) blocks, and you can sell/buyback your own blocks.

Coupled with the “block deck” functionality added middle of last month, you’ve now got a little bit of character growth and a little bit of customization:

  • You can buy higher-level blocks (since blocks don’t level up yet, this is the only way to gain power), and
  • You can buy different block shapes, so you aren’t forced to use shapes you don’t like. (Looking at you, S, Z, and U.)
  • I guess if you really prefer certain shades, you can keep an eye out for high-level versions of each block in that color.

On the right you can see the ‘sell’ tab, which looks mostly the same as the other tabs, ‘cept it shows you which blocks are in your current deck (glowing/highlighted).

Lastly, a sort of meta change: I finally put in a “save screenshot” debug command, so now I can start grabbing consistently-sized screenshots. What a concept.


Next Sprint (or 2)

I think it’s time to add a new gameplay mode: Tinkering.

Now that blocks are inventory items that have level and power, and now that that matters in some sense (thanks to density), I think it’s time to enable the first bit of real ‘character growth’ via Tinkering.

The core idea behind Tinkering mode is that you can tinker with any complex technology you own: your ship, your blocks, your ship and skill modules, your AI crewmembers, etc. Successful tinkering makes that technology better, and that’s the raison d’être for the mode.

Tinkering is a more strategic mode than the classic vertical style. You can move pieces freely in order to achieve the best possible solution. The quality and properties of that solution yield different effects.

What all will be impacted by tinkering is still to be decided, of course. The base goal is simple: a scalar Tinker-success metric translates to a scalar improvement in the object. E.g., you made it through three rounds of tinkering on your new U-block, so now it has +3 base power.

What I hope to do in addition to this is to allow for more nuanced change, so that in addition to “how well did you tinker?” there’s an orthogonal “what other interesting success did you have while tinkering?” E.g., if you managed to have only 2 colors, or all like-colors were contiguous, you might get boosts to the coloration power of a block, or maybe your AI will have an extra rank in “color awareness”, able to utilize color better than before.


Roadmap

  1. Persistent Space: See last week’s Roadmap
  2. Coloration & Combo gameplay: See last week’s Roadmap
  3. Ship & Ship Modules: In the run-up to combat modes, I’d like to allow for the purchase and upgrade of ships and specific ship modules. The basic dig and space travel modules are always (maybe?) available, but you’ll be able to buy a tinker module, upgraded engines, guns, and smelting, modules, etc.

    For the time being I’m thinking your ship frame/hull will have numeric stats on its own, as well. I would like to avoid simple statistics like “armor”, “health”, “speed” in favor of something a little more interesting. For example, instead of “speed”, a ship might have extra tactical positions available each round. The impact is similar (more mobility in battle), but feels higher-impact than saying “This ship has 2.4 speed vs. the normal 1.8… … Do I care?”

See you next week, same Space Robot time, same Space Robot channel!

Posted in BAWD, Developer Blog Posts, Games, News

BIS Weekly May 1st

Still a work in progress, but much more colorful!

Still a work in progress, but much more colorful!

A very red planet indeed. Also, new tile artwork that helps differentiate inside from outside

A very red planet indeed. Also, new tile artwork that helps differentiate inside from outside

Not quite “weekly” this time – the last two weeks turned out to be quite busy, so I spread out the same tasks over twice as much time. That said, it was a pretty good couple weeks, feature-wise.

As described in the last update, this sprint was about ‘coloration’ and ‘pips’. It also became a bit about procedural generation.


Coloration

Previously, a dig site was made of this column of generated ‘materials’, mostly stone. At the surface you got a lot of dirt, and once you got to deeper depths you found more and more precious metal. The entire tile was colored according to this, so a ‘gold tile’ was literally that: a block of gold.

I found this weird – I wanted color to be a little less restricted. If I wanted a planet to be 30% yellow, I can’t just make it 30% gold without completely cheapening the concept of precious metals. Instead, I decided to go a little more abstract – the core colors are shared between blocks and planetary tiles. Now, any given tile can be any color – it doesn’t affect what you get for clearing that tile, nor the difficulty of clearing the tile.

A nice effect of this shift is that I was able to use the color distributions to produce colors for planets. Space looks much more interesting now, and planets seem distinct, different. When you arrive on a planet, you can usually see immediately why it looked a certain color. If it’s purple, it might be made of purple tiles, or it might be blue and red tiles, or some other mixture.

Clearing a tile of a given element gives you one unit of that “element”. Elements are tiles with ‘core’ colors – these will factor into a growth mechanic later, but for now they’re something like a “base crafting material”.

It may be easiest to think of these in Minecraft terms, honestly:

The Elements correspond to ‘stone’, ‘wood’, etc. You’ll be able to sell them as raw materials if you like, but I’m also considering adding another minigame/mode where you smelt them to try to get additional pips out.


Pips

In addition to ‘elements’, clearing a block can yield ‘pips’ of two varieties.

The “Metal Pips” are similar to the metals in Minecraft – you use them as the base material for craft-like work. In BIS you can also sell them for a tidy profit.

The “Special Pips” are 50% “unusual Minecraft materials like Lapis Lazuli”, and 50% skill point. In BIS, I intend to use these as a rare ‘gating’ material for significant upgrade paths. E.g., maybe you need to find two red pips to upgrade your Orbital Laser technology to rank 3.

Pips embedded in a given Element color will have a higher chance of matching that color, so you can go mine a planet with a lot of yellow tiles to increase your chances of finding yellow pips.

The ‘smelting’ mechanic is a way to let players target specific pips even more than that. If you really just need a lot of blue pips, then instead of selling your blue element drops, you can smelt them and hope to get pips. The odds are low, but it would be a parallel activity to mining, and lets you target your growth as needed.

I may or may not implement this mode/mechanic – being able to target planet colors might be sufficient.


Procedural Generation

As I was implementing the Element change above, I recognized it as a good opportunity to add the “hand-crafted” feeling.

By “hand-crafted”, what I mean is that there’s a sense you get when playing a game that helps you tell whether the content you’re experiencing was made by an algorithm or by a human.

In general, I think what makes content feel hand-crafted is patterns. This is of course a huge, nuanced topic, but in the small I think it can be summarized as “patterns”, maybe “templates”.
5/4/16 Edit: Slightly less in the small, I think this feeling is somewhat like the uncanny valley, but as a good thing. Too much order (patterns) and it looks synthetic. Too much chaos and it looks random. The goal is to walk a thin line between these, to impart a sense of meaning to the content without looking formulaic. The template system I describe below does not accomplish this, but it does move in the right direction. How to get BIS closer will be a topic again in future sprints.

So: the Elements a planet has are generated using four types of templates: “Uniform”, “King of the Hill”, “Power of Two”, and “Three-Tier”. For each type, we have at the very least two categories of elements, the ‘heavy’ and the ‘light’. For a couple, there are more.

  • Uniform: This splits the elements into two randomly-sized sets. The “light” set elements all have low odds of generation. The “heavy” elements appear at the same rate.
  • King of the Hill: One element is selected from the “heavy” elements and promoted to have a majority of the odds. The ratio from King:Heavy is the same as Heavy:Light.
  • Power of Two: The heavy elements are assigned a ‘weight’, each weight is 2x the previous weight. So if you have 4 heavy elements, they will be weighted 1:2:4:8. Those are then normalized and the Heavy budget is assigned to them.
  • Three-Tier: The elements are split into three categories, heavy, medium, and light. Budget is distributed so that Medium elements are always twice as likely as Light elements, same with Heavy vs. Medium.

The intent of this was to provide distinct patterns to how elements are distributed, rather than choosing random values. Although this is obviously still quite random (rather than “procedural”), the effect should be fairly similar, and can be made procedural very easily.

So far it feels pretty good, though I think there might be a bit too many “chaotic” options – it doesn’t look great when there are a bunch of single-element tiles scattered around the top of the dig. It doesn’t feel intentional.

I’ll leave it as-is until I have time to implement “micro-templates”, then re-evaluate. Micro-templates are a way to add patterns within the dig in addition to simple color distribution. E.g., the “great storm” from Jupiter, mineral veins, stripes, zig-zags, etc. Things people do if they were manually designing levels.


Next Sprint

The main two topics next sprint are Difficulty and Stations/Shops.


Difficulty:

The effort to clear tiles is currently static in a dig site, and the same between planets. The first change is to make it so that as you get deeper in a dig site, difficulty goes up. That is, each tile becomes harder to clear, demanding better blocks or better use of color/combo/etc. (Which isn’t in, yet.)

To provide some more difference between planets/moons/etc., I’ll be giving planets a ‘density’ parameter, which determines how fast difficulty increases. For moons, it will usually be slow. For planets, it depends on the size and density of the planet. Density will generally correspond to the richness of tiles as well, so you are rewarded for the extra work.


Stations/Shops:

Currently, stations/shops are mostly placeholder code. The inventories are fixed, all stations are identical, etc. Moreover, their inventories are pointless – you can’t buy real blocks, real upgrades, anymore.

The first change will be to give shops a real inventory of new blocks to sell, so that players can start to customize their block deck. This will also include the ability to sell your own blocks to the store, so long as you have enough to build a minimal deck.


Roadmap

  • Tinker Mode: With these two changes in place, I should be ready to add tinkering, so you can start upgrading blocks. With Tinkering, I’ll also be adding “ship inventory”, in the sense that your ship has certain modules equipped. Those modules can also be upgraded with Tinkering (so you can tinker to improve your tinker lab, etc.)
  • Persistent Space: Currently the solar system you’re in generates anew each time you reload the game. Dig sites are impermanent as well. Once this is fixed, you’ll be able to select which dig site you want to dig at on a planet – or so I intend. There are some risks to enjoyment around that feature, so I’ll be evaluating it.
  • Basic Coloration and Combo gameplay: With the coloration work finished in this sprint, and the difficulty work next sprint, I’ll ready to introduce mechanics to take advantage of the two. “Combo” for now simply means the traditional “clearing more lines = bonus!” idea, but will soon grow to something much more nifty.
Posted in BAWD, Developer Blog Posts, Games, News