Grumpy Gamer

Ye Olde Grumpy Gamer Blog. Est. 2004

Dec 19, 2020

Which of these is the newer version?

1.9.8 or 1.9.13

Dec 12, 2020

I posted before over my frustrations with Microsoft Azure taking so long to do a Windows+Mac build. The frustration reached a boiling point last week when for no reason the Windows build started generating compile errors in stdlib headers. I reverted back to the last build that compiled but the errors continued.

I’ve got to assume something changed in the Azure Windows VM, but there was no mention of it. Maybe it was just a temp glitch.

I decided the time was right to get the game building on AppVeyor if for nothing more than just having a backup.

AppVeyor has some (how to I say this kindly) horrific documentation.

It took me a day to cobble together snippets posted by others on the world wide web but it’s finally working (now I just need to get Linux compiling).

The good news is AppVeyor builds both platforms in around 5 mins (running 2 parallel jobs like Azure was).

Big win over Azure.

What’s interesting is the Mac builds twice as fast as Windows. I don’t know if this is a Visual Studio vs. XCode thing or just the VMs they are running on.

I thought I’d post my appveyor.yml so others can benefit from my pain. I couldn’t get $(configuration) (and the like) to work, so I ended by hand pasting values like Release.

If you’re a AppVeyor expert, I’m open to suggests on making it better.

version: 1.0.{build}
image: 
  - macos-mojave
  - Visual Studio 2019
platform: 
  - x64
configuration: 
  - Release
environment:
  game_name: MyGameName

matrix:
  fast_finish: true

for:
  -
    matrix:
      only:
        - image: macos-mojave
    
    artifacts:
      - path: _Build/XCode/build/Release
        name: $(game_name)-mac-Release
        type: zip
    
    deploy:
      provider: S3
      access_key_id: [REDACTED]
      secret_access_key:
        secure: [REDACTED]
      bucket: [REDACTED]
      region: us-west-2
      unzip: true
      set_public: false
      folder: appveyor/$(game_name)/Mac
      artifact: $(game_name)-mac-Release
    
    before_build:
      - sh: Bin/cmake.sh --xcode
    
    build_script:
      - sh: cmake --build _Build/XCode --config Release

  -
    matrix:
      only:
        - image: Visual Studio 2019
    
    artifacts:
      - path: _Build/VS16/Release
        name: $(game_name)-win-Release
        type: zip
    
    deploy:
      provider: S3
      access_key_id: [REDACTED]
      secret_access_key:
        secure: [REDACTED]
      bucket: [REDACTED]
      region: us-west-2
      unzip: true
      set_public: false
      folder: appveyor/$(game_name)/Windows
      artifact: $(game_name)-win-Release
    
    before_build:
     - cmake -G "Visual Studio 16 2019" -A x64 -S . -B "_Build/VS16"
    
    build:
      project: _Build/VS16/$(game_name).sln
      parallel: true
      verbosity: minimal

notifications:
  - provider: Webhook
    url: https://[REDACTED].php?build_status_appveyor=Succeeded
    method: GET
    on_build_success: true
    on_build_failure: false

  - provider: Webhook
    url: https://[REDACTED].php?build_status_appveyor=Failed
    method: GET
    on_build_success: false
    on_build_failure: true
Dec 7, 2020

Two side-by-side articles in my news reader from the same site.

Nov 28, 2020

I remember the first time I read this I just chuckled. That was 10 years ago and the myth keeps going. It’s been printed (well, web printed) so many times that it is slowly going to become fact and I want to set the world straight.

What is true

During the early days of Monkey Island I didn’t have a name for Guybrush. We just called him the “guy”.

When Steve Purcell was doing concepts for “the guy” he was doing them in dpaint. In dpaint you could select a section of the screen called a “brush” and save it out.

It was these files I got from Steve. I saw the file names so many times that the name “guybrush” stuck.

What is NOT true

I have seen multiple places recount this story (most recently) but they get one fact wrong.

The file I would get from Steve was called guybrush.lbm not guy.brush. All artwork on Monkey Island was done on the PC under MSDOS. MSDOS had a limit of three letters for filename extensions. It could not have been .brush. One of three things is going wrong here.

  1. People are forgetting or never knew that MSDOS had a three letter file extension limit and the files dpaint saved out where .lbm or .bbm files.

or

  1. The Amiga allowed longer filename extensions and people assumed we did art on the Amiga. We did not. It was all done on MSDOS using dpaint or dpaint animator.

or

  1. It makes a better story and screw the facts. Facts are so 2015.

If you read this incorrect fact anywhere, please direct them to this link.

[1] For Monkey Island 1 all the art was gone in dpaint on MSDOS. For Monkey Island 2, the backgrounds were scanned on a Mac using Photoshop 1.0 and then moved to a PC and finished on dpaint.

Nov 20, 2020

I use Microsoft’s Azure to do cloud compiles of the c++ engine for my new game. For Thimbleweed Park builds were hand compiled which took a lot of time and was very error prone. More than once I made DEBUG builds rather than RELEASE builds or forgot to change some debug setting back. It’s nice to have builds compiled in the cloud and know they are from a pristine environment each time. I also don’t have to keep a Windows machine (or a VM) around just to do a build.

Cloud builds are also critical for my (slow) move off the Mac to Linux (more on that later).

To compile the Windows build on Azure takes between 6 and 15 minutes which is crazy since I can compile the game locally in 1-2 minutes. Same with the Mac build. For me to get a new playtest or (more importantly) a dev engine build can take 15-30 minutes.

While waiting on compiles to fix a critical bug, I can’t help but imagine Azure is running hundreds of jobs on some pour Windows machine stuffed in the corner of Steve Ballmer’s old and forgotten office. I know this isn’t true, but it’s what it feels like when I desperately need a new engine.

I might give AppVeyor another try now they can do Mac builds. The .yml files for Azure and AppVeyor are annoyingly different so I’ve resisted doing a compile speed run-off.

On Azure you can pay for 2 jobs which does allow the Mac and Windows builds to compile concurrently, but what I really want is to run on less overloaded machines. It’s not worth paying for a dedicated machine due to it being idle 99% of the time. Self-hosting is another option but it defeats the purpose of wanting to make maintaining machines “someone else’s problem”.

Ideally I would be able to get builds in less than 5 minutes.

Bitch. Bitch. Bitch.

Nov 7, 2020

For the first time in four years I am slowly remembering a feeling known as calm. I look forward to Jan 21st when I can read the morning news and not feel a sense of dread.

We now have two+ months of a narcissist ranting, blaming, and of course suing. Oh, he also has nukes.

What was I saying about calm? Never mind that.