Alan Edwardes

Cloud Software & Game Development
  • About
  • Projects
  • Blog

Most Used Tags

  • code
  • estranged
  • player
  • level
  • email
  • website
  • mesh
  • streaming
  • pi
  • data
  • engine
  • unreal
  • dns
  • light
  • asset
  • map
  • script
  • lambda
  • amazon
  • s3
  • editor
  • game
  • camera
  • blueprint
  • file

Posts in 2022

  • Live GivEnergy PV Inverter Data in Home Assistant on 10th of Apr
  • Useful ffmpeg Recipes on 31st of Jan
  • Force Refresh Rocket.Chat Snap SSL Certificate via Caddy on 29th of Jan

Posts in 2021

  • Pushing to Public AWS Container Registry with GitHub Actions on 23rd of May
  • Graphing Sensor Data from a Raspberry Pi with Grafana on 22nd of May
  • Create Meshes from Height Maps using Blender on 16th of May
  • Recording Camera Animations for UE4 with a Phone on 15th of May
  • The Art of Mirror's Edge on 11th of Apr
  • Serving Static Websites Using Lambda@Edge on 20th of Mar
  • Thread Safe Random in C♯ on 16th of Mar
  • Spotting Fake Indie Game Key Requests on 11th of Mar
  • Jenkins Library for Unreal Engine 4 on 13th of Feb
  • Three Approaches to Readable Materials in First Person Games on 7th of Feb
  • Cheap Synthetic Monitoring with AWS Lambda on 24th of Jan

Posts in 2020

  • Generating Mipmaps for Render Targets in UE4 on 24th of Dec
  • Routing DNS over HTTPS Using Raspberry Pi on 6th of Oct
  • Tips for Building Games with Unreal Engine 4 on 3rd of Oct
  • Serving Localised Assets from S3 Using Lambda@Edge on 17th of May

Posts in 2019

  • Automating macOS Notarization for UE4 on 23rd of Nov

Posts in 2018

  • ISO Country Code to Unicode Flag in C♯ and JavaScript on 22nd of Jul
  • Serverless Git LFS for Game Development on 6th of Jan
  • Adding Custom Map Checks in UE4 on 3rd of Jan

Posts in 2017

  • Building and Deploying a React App Using AWS Lambda on 24th of Dec
  • Git HTTP Username and Password in Environment Variables on 22nd of Dec
  • Capturing and Uploading Screenshots in UE4 on 20th of Dec
  • Using Capsule Shadows on Large Objects in UE4 on 8th of Dec

Word "email"

Viewing subset of posts matching the word "email".

Force Refresh Rocket.Chat Snap SSL Certificate via Caddy

Posted January 29th, 2022 in cloud-software

I use Rocket.Chat installed via Snap on a Ubuntu VPS instance. The instance automatically manages its own SSL certificate via Caddy, using Let's Encrypt as the certificate issuer.

It has been working well for a few years, however today I opened up the web interface and was greeted by this error:

SEC_ERROR_REVOKED_CERTIFICATE

Fortunately I remembered the following email from Let's Encrypt, which I had completely ignored at the time:

Please immediately renew your TLS certificate(s) that were issued from Let's Encrypt using the TLS-ALPN-01 validation method and the following ACME registration (account) ID(s):

Continue Reading »

Spotting Fake Indie Game Key Requests

Posted March 11th, 2021, updated October 12th, 2021 in game-development

If you're an indie game developer, you will very likely see key requests from bad actors trying to get game keys to sell. It's par for the course unfortunately, but it's increasingly difficult to distinguish genuine review requests from fake ones (especially when juggling a game release).

I recently released a game on Nintendo Switch after releasing it on Steam a year prior, and I noticed a big increase in how sophisticated the illegitimate requests were for the Switch release.

Continue Reading »

Cheap Synthetic Monitoring with AWS Lambda

Posted January 24th, 2021 in cloud-software

I have a few miscellaneous services which I host for various personal things; MediaWiki, Jenkins, Grafana, Rocket Chat, etc. These are usually hosted on VPS machines with Docker, which means a "one size fits all" monitoring solution is hard.

If I were operating as a business, I would just opt for an off-the-shelf synthetic monitoring solution with a support contract and call it done, but in a personal capacity I don't particularly want to pay.

I had a few criteria:

  • Cheap/free
  • Ability to write synthetic checks using HTTP requests (not a headless browser, that is a bit OTT)
  • Synthetic checks preferably in C#
  • Alerting via email for when the checks fail
  • Hosted redundantly & managed (e.g. AWS, not on a VPS)
  • Low/zero maintenance

Continue Reading »

Building and Deploying a React App Using AWS Lambda

Posted December 24th, 2017 in cloud-software

If you use React with a static frontend web app, the deployment steps may comprise of the following:

  • Run npm install
  • Run npm test
  • Run npm build
  • Deploy build folder to Amazon S3 & invalidate CDN cache

The first part of the build only requires node.js & npm, and the second part can be written in JavaScript too as a package.json script (I'll go into that more below).

Since node and npm are both available on Lambda, we can write a Lambda function invoked using a post-commit webhook (from GitHub or BitBucket), which builds and deploys the React application.

A few advantages to doing this:

  • You don't need any orchestration infrastructure (Jenkins) or cost overhead of BitBucket pipelines and similar solutions
  • Since the environment is completely managed, the only changes you may need to make are updating the Node.js runtime version as Amazon release newer versions
  • Access to the S3 bucket is controlled using IAM roles, no access key/secret

Continue Reading »

Æ

© 2022 Alan Edwardes