Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

atiaxi

18
Posts
2
Topics
11
Followers
1
Following
A member registered Nov 27, 2015 · View creator page →

Creator of

Recent community posts

Hi all, long time lurker, first time Real Project releaser: My game Tyranny of the Labyrinth is now in a releasable* state!

(* read "I'm not utterly mortified to have the public view this")

Tyranny of the Labyrinth is a combat-focused roguelike where your actions change the dungeon's denizens.  Defeating any of the Labyrinth's four Tyrants allows you to take a portion of their power, but makes the remaining creatures that much more dangerous.  Defeating the last Tyrant gives you sole control of the labyrinth, and unlocks that Tyrant's class for future playthroughs.  In short, the very monsters you battle become part of your character's build!

Here's what the whole thing looks like:


And sure, that looks like any other roguelike, so here's the game's unique thing: Taking power from the defeated bosses!


More links:

Feel free to comment with feedback / bug reports / how the weather is in your area, here or on the game's forums or on the gitlab tracker or whatever works for you.  And (hopefully) enjoy!

As an update, I was able to recreate what everyone else in the thread is saying:  On a separate (non-shared) runner, everything works fine.  So the workaround for the issue is to set up your own runner.  Upsides are that it's actually pretty easy and quite a bit faster than shared runners, downsides are that you have to have a spare machine somewhere to put the runner on.


I've sent this info to the GitLab runner team, but since it seems to be butler-specific (downloading butler works fine, connectivity to api.itch.io works fine) there's probably not going to be a fix coming anytime soon unless someone's really willing to dive into it.


I'll update the thread if anything changes; thanks again to everyone for reading this and the advice!

Hi Leafo, thanks for reading through all that :)

Interestingly enough, butler login did work... that one time.  It hasn't worked since, so most of my latest experiments have been tried without it.  I still get the "ContentLength=71 with Body length 0" error.


As far as I can tell, the butler_creds file has a valid API key.  I unmasked it and put a `cat` line in there and it looked identical to the one I have on my local machine.  I copied it to my local machine and verified it was working.  Then I revoked it and got a new one because that project's visible to the whole world :)


Everything works perfectly fine on my local windows machine.  Using an invalid key here gives me an invalid key error, so whatever the problem is remotely, it's (probably) not that.

Here's a minimal repo to reproduce the problem: https://gitlab.com/rostrander/itchio-butler-test

(Still failing, but more info)


Just in case the culprit was the docker image, I changed my CI file to get butler itself and run that:

itch:
  stage: deploy
  when: manual
  script:
    - mkdir -p ~/.config/itch
    - echo ${BUTLER_API_KEY} > ~/.config/itch/butler_creds
    - curl -L -o butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default
    - unzip butler.zip
    - chmod +x butler
    - ./butler -V
    - ./butler login
    - ./butler push ./build/unstable atiaxi/tyranny-of-the-labyrinth:web --userversion-file ./VERSION.txt --verbose

The result of `./butler -v` was:

v15.21.0, built on May 11 2021 @ 18:18:40, ref 6ad656eebbb5b80bf2065644d8bf9e40a15e8276

And I get the same errors (context exceeded for the login, unexplained if I skip login and just try push).

(1 edit)

Welcome, all, to the rabbit hole that has been me trying to get butler to work even a little bit on gitlab CI.

Here's the relevant bits of my CI file:

itch:
  stage: deploy
  image: dosowisko/butler
  when: manual
  script:
    - mkdir -p ~/.config/itch
    - echo ${BUTLER_API_KEY} > ~/.config/itch/butler_creds
    - butler login
    - butler push ./build/unstable atiaxi/tyranny-of-the-labyrinth:web --userversion-file ./VERSION.txt --verbose

Now, if you've seen any other "how to deploy using butler on gitlab CI" tutorials, you may be wondering what the deal with `butler login` is up there, because none of them have it.  The deal is, without it I get this error:

$ butler push build/unstable atiaxi/tyranny-of-the-labyrinth:web --userversion-file ./VERSION.txt
creating build on remote server: Post "<a href="https://api.itch.io/wharf/builds">https://api.itch.io/wharf/builds</a>": http: ContentLength=71 with Body length 0
Cleaning up project directory and file based variables00:01
ERROR: Job failed: exit code 1



Note that is not a "you have bad credentials" error (that would have given a useful error message, as I verified by deliberately mangling the credentials), it's just some bizarre error that doesn't explain itself and diving into the source told me nothing.  I can provide a verbose version of this error if needed, but it contains no useful additional information (the traceback just points to the `.Post` calls, as you'd expect).

So, I added the bit where it puts the API key where butler expects to find it, and then it logs in.  And that worked!  Exactly once.

When I revoked that key (because, in my debugging, I'd resorted to straight-up just printing the stupid thing out) and tried a new one, it failed again.  Did it fail with a reasonable error message?  Well, this post isn't titled "several different reasonably-explained ways that butler is failing" so no.  Instead, this!

$ butler login
validating credentials: Get "<a href="https://api.itch.io/wharf/status">https://api.itch.io/wharf/status</a>": context deadline exceeded

Google tells me that the answer to this error is "get better internet lul" which doesn't help much.  Fortunately those answers are old, because since the time they were posted butler added a handy command line flag to actually tell it to wait longer!  Useful...

$ butler login --context-timeout=120
validating credentials: http: read on closed response body

unless of course it's the server that's decided to (presumably) time out for - wait for it - unexplained reasons!


So after spending a solid several hours on and off throughout the day trying to get this to work, I'm officially throwing in the towel and asking here.  Is there anything I haven't tried that I should be trying, or things I have tried that I shouldn't?  What on earth is happening here?  Why does every other butler problem on the entire internet that I've googled have reasonable error messages except for this specific one that's afflicting me?  Why am I so hungry and tired?

Actually, I'll take care of that last one right now, I think.  Thanks for reading through this half problem half rant of a post.


(Incidentally, of course, all of this works entirely flawlessly on windows, because linux hates me today I guess).

Awesome!  It's a great feeling watching people play a game I made :)

It was a pretty awesome experience to watch someone stream my game :D

I didn't get to watch it live because I didn't know when it was happening; is there a schedule generally posted somewhere on YouTube or do I just have to get the timing right?

I am absolutely  awful at this game.  Couldn't get past the first screen.  Though I did discover that nothing prevented me from going left off the screen :)

The first thing I did was accidentally cut my own lifeline :)

Very scenic

Leaving unrated because I can't get it working in the browser; I can change the direction I'm looking but can't actually move.

This is the first game in this whole competition that I actually won.

"I'm very concerned about this person's rhythm and lack of a QRS complex" - my wife, who has a medical degree.

It's very fun to play, the screenshots don't do it justice.  My son also laughed his head off every time I died.

Reminds me of a 2D audiosurf.  I'm not great at the game but it has a very nice feel to it.

I'm pretty awful at this game, though my strategy of going slowly and trying to take them out before they got me worked okay-ish.  I don't have the patience for that though :)

Beautiful art, puzzle solutions that made sense, this was pretty great across the board.  My only complaint is that the dragging is somewhat finicky (at least on my browser, Chrome 75), especially when I was trying to drag from the inventory to the board (it often thought I wanted to scroll the inventory)

Once I realized I could scroll down to see more buildable units, this got a lot more fun :)