Soldiering On

It’s been over two months since my last post. I thought I’d have Infinitris 1.2 out by now, and maybe it should have been. I’ve deliberately not made any updates to the official page since my last release, mainly because I’ve invested a lot of time (and a decent amount of money too) into this game now and I haven’t wanted to release anything half-baked, even if it does follow my original strategy of a minimum viable product.

Anyway, I’ve completely replaced Infinitris’ old look with Rob’s new design, from the ingame assets to the landing page and user interface. Registration and logging in are now possible from the landing page, and once logged in you can choose your block colour and pattern, and also unlock achievements. Player status (guest, logged in, premium) can now be distinguished by a players’ nickname above their block.

block-select

Infinitris is starting to feel a lot more polished and immersive. The shitty graphics are gone and the connecting of blocks to form patterns is pretty satisfying. The new scoreboard makes players want to reach the top (rather than just plain text statistics) and the ability to customise your appearance really gives players a sense of individuality.

ingame-1

There’s still a lot to be done, but I’ve decided it’s time to stop hiding and “kick it out” as my Russian friend likes to sometimes say.

I’ve signed up to showcase Infinitris at the Armageddon expo in my home city next month (June 3rd) as part of the NZGDA booth. This should be a good way to kick things off and gain some exposure, lots of playtesting, make a few contacts, etc.

This means I’ve got a bunch of things to do before then:

  • Add a “How to Play” guide that pops up for new players before they join a game. This is incredibly important because people find it hard to get past the basic mechanics of Tetris and realise that this might be something new. This isn’t Tetris! The aim of the guide is to explain the controls and mechanics in a quick, entertaining and easy-to-read way.
  • New UX – Apart from the camera shake when a player makes a mistake and the player drop effect, I need to redo everything else (clearing lines, phase shifting, grid reset, cell stealing, stomping, valid block placement, grid expansion).
  • Add a persistent scoreboard. I think this will help with player retention, especially while I’m trying to grow a player base.
  • Add a new cell stealing mechanic – wrapping another player’s cells with your own blocks will steal them. This came from playtesting the existing stomp mechanic – we discovered that adding more ways to sabotage and compete with other players is a great way to make the game more fun.
  • Add a basic lobby chat system. Players can chat with each other from the landing page and organise games.
  • Add the Paypal button to activate premium (It’s not an MVP until you can buy the game right?)

I doubt I’ll get all these done, but let’s see how far I can go. I now have a deadline, and I’ll be releasing Infinitris 1.2 before Armageddon no matter what state it’s in. Once 1.2 is released, I’ll go back to my original strategy of frequent updates on the release branch.

I’ve asked Rob to create a couple poster designs and a business card design so I have something to bring to the expo. I’m looking forward to seeing what he comes up with – I’m sure it’ll entice people to try out my game!

– Roland

Art Ahoy!

infinitris-assets-testing

Over the last few months I’ve been working closely with Rob Hayes on perfecting the Infinitris theme. It’s been a bumpy ride of daily emails with multiple revisions, conflicting opinions and compromises based on the resources I have available. I think he’s done an amazing job! Infinitris has truly transformed.

Here’s a few screenshots of our journey:

1-0-5p infinitris-initial-concept-2 infinitris-initial-concept-1 infinitris-initial-concept-3 infinitris-initial-concepts-2-paralax-effect-1 infinitris-initial-concepts-3-paralax-effect-5

infinitris-initial-concepts-3-paralax-effect-6 infinitris-initial-concepts-3-paralax-effect-6-without-gameplay infinitris-initial-concepts-3-paralax-effect-7-without-gameplay infinitris-initial-concepts-3-paralax-effect-7

infinitris-assets-testing infinitris-logo-icon-concept-1

main-menu-logo-with-text

Development-wise, I’ve been doing a lot of behind-the-scenes work:

  • SSL connection for infinitris.io
  • User registration, activation and login
  • Multiple room support
  • Mobile input
  • Paypal IPN listener for premium activation
  • Admin login
  • Spectator mode

Now that these are done, it’s time to get Rob’s assets ingame!

Infinitris 1.2 – Coming soon to a port near you.

– rolznz

1.1

These last two weeks have been pretty hectic for me. I actually haven’t written a single line of code on the game since Monday (5 days ago) but by no way does that mean I haven’t been working hard making my vision a reality. I’ve negotiated and signed an art contract, pushed out a release with a number of new mechanics and organised a playthrough event at work, this time managing to get 11 concurrent players ingame.

Here it is. Infinitris 1.1.

1.1_LARGE_when_wrap_kicks_in.gif

I’ve added two new core gameplay mechanics: block stomping and phase shifting. I’ve also  changed the mistake detection algorithm (see below) and added a minimap. There’s a bunch of other small improvements which you can read at http://infinitris.io/changelog. I also want to say thanks to my good friend AL who really helped me with testing and pushing the minimap idea through a day before my scheduled test game (which was pretty vital when the player count went up).

Below shows the change between the old and new mistake detection. Previously, when a player makes a mistake, cells will explode around their block. This fixed the issue where you could place blocks that would make it impossible to place any blocks in the gap the previous blocks created, but it was a hack required by my poor mistake detection algorithm and really didn’t work well. You can read more about this in my previous blog post. Now, it’s impossible to leave a gap that no block can fill. This means I don’t need to destroy any cells that exist on the grid. Only the player who made the mistake is affected.

old_mistake_detection.gif
OLD

new_mistake_detection_v2.gif
NEW

 

it’s still possible to place blocks in a way that leaves gaps that can be filled but are completely sealed off by other blocks. One of the two new mechanics fixes this in an awesome way. I call it phase shifting. The ability to teleport downwards through cells to fill a gap directly beneath your block. See below!

phase-shift.gif

However, my mistake algorithm combined with phase shifting is not 100% perfect. It depends on the block collection and there’s still a small chance of creating gaps that cannot be filled. I’ve come up with another idea which involves the server to very slowly but routinely fill empty cells from the bottom up. This isn’t in existence yet but I’ll be trialing it very soon.

Here’s my second core mechanic: Block stomping. This comes from the realisation that there really wasn’t a reliable way to sabotage other players. This certainly does it 😉

By dropping your block on another player, your block will stop and theirs will be forced down, without them being able to move or rotate. If they land in a way that causes an unfillable gap, they’ll be destroyed and their points will be reset.

block_stomp.gif

Although all these changes are a definite improvement, some of the players in the test game found it difficult to understand the mistake detection with all the other effects that were going on at the same time. This is something I’ll be working on for the next release. At the very least, I’m planning to add “how to” slides to the game so that players are given the option to read a quick tutorial before they jump straight in.

Now, back to business. I’ve signed a contract with Rob Hayes and have been preparing asset lists and design requirements, searching for inspiration on google images and creating gifs of existing mechanics. What I’m really trying to do is give Rob all he needs to do an awesome job.

This is the first time I’ve paid for any work to be done on anything I’ve developed. You could say I’m getting pretty serious about this 😉

11 / 100.

infinitris_wrap_boosting.gif

– rolznz

The Missing Piece

Today at lunch I unveiled Infinitris to several of my work mates.

At the office as devs we have relatively large screens, so it wasn’t until the 5th player joined that the horizontal wrap kicked in. But what an awesome moment it was :-).

As I develop, I run up to 3 instances of the game at once to “simulate” gameplay, but I can only control one player at once. I can work towards the vision that’s in my mind alone – on mechanics, features, and bug fixes, but I can’t get the true feel of the game. The balance, the social aspects of cooperating and competing with other players. It’s almost impossible to see what’s missing.

These playtests are proving over and over how important it was to develop a minimum viable product and continue based on the feedback and suggestions from real human players. New players have open minds. I’ve laid the foundation and shown them the jump from classic Tetris, a game that has barely changed in over 20 years, to something that has never been done before. Something with infinite possibilities. This change in outlook promotes the generation of new ideas, ideas that I can filter and fuse with the design that currently exists within me.

One idea which was brought up today was around collision. Something I was reluctant about, because although it adds new mechanics, it’s also restrictive. Collision is also limited as blocks only have truly free movement on the vertical axis.

the basic premise of multiple people on one board I think points to one obvious mechanic and that is interference

This was identified in the first test game. But it’s not easy finding a simple mechanic that fits with the existing game core and still improves the balance between cooperation and sabotage.

My team leader came up with an idea – What if you could drop on other players’ blocks while they are in midair? What if, by doing this, you could take some or even all of their points? I have a feeling a revised idea of this “block stomping” could be the missing piece to the game. I’ll be experimenting with it in the coming weeks.

Apart from some cool new ideas, our testing also uncovered some big issues – which is just as useful. Because a seemingly minor bug like the one I’m about to mention would probably kill any chance of massively multiplayer working as the game stands right now.

Something I identified in my first test game with two other players – a flaw with my mistake detection algorithm – became very visible today as a complete game wrecker when the player count went up. Currently, if a player makes a mistake by placing a block that causes an unfilled cell to be blocked (there is no path from the unfilled cell to the roof), their block (and the cells around it) will be destroyed and their score will be reset to zero.

The reason I had to delete the cells around the block of the player who made a mistake was a terrible hack to cover up a big problem: You can place blocks which do not block any paths from unfilled cells to the ceiling, but you can create gaps that are unfillable by any block in the room’s block collection. My current algorithm is way too simple to pick this up as being a “mistake”, something I sorely need to fix before the player count increases much futher. As is, the grid quickly turns into a minefield which is impossible to score lines without purposely killing your block in order to explode the cells around it and clear the unfillable gaps.

Fixing the above issue and trialing “block stomping” will be my main focus for version 1.0.1.

1-0-5p

95 to go.

– rolznz

Infinitris 1.0

Today, 07/01/2017 marks the launch of Infinitris 1.0. Starting off small, I’ve setup a few accounts and posted on HTML5Gaming.org showcasing the prototype of my new game.

I played with my friend Tabnir today and one random (who must have joined from my recent post on the HTML5 development forum).

The random player (named “dude”) stayed on for about 30 minutes, completely silent, just placing blocks. Right at the end before he left, he said “Thanks roland” and “bye”. I’m not sure why, but those three words inspired me just as much as how long we ended up playing (To be honest, I was expecting a few minutes).

Talking to Tabnir afterward about the feel of the gameplay, he made the following remark:

Right now i feel very conflicted as to whether I want to be cooperative or if I want to sabotage… maybe that is a merit in itself

This is exactly what I want to build upon.

In Tetris-like games, the player only has control over certain aspects such as moving and rotating your block, but the blocks given to you and their consistent movement downwards are out of your control. It’s like real life. Maybe that’s why these types of games have such a therapeutic and hypnotic affect.

Infinitris takes things further, adding something that is sorely missing – the ability to socialise, influence and be influenced by those around you.

This is so-far the maximum number of human players I’ve had concurrently ingame (3). My goal is 100. Let’s see what the next few months bring 🙂

Roland “rolznz”