Step 0: AWS Visual Novel GameDev

GetPut Adventures Banner

Last year I started working on GetPut Adventures and then let it slide onto the backburner after NaNoWriMo was over. I’m picking the project back up again– only to find that the notes past-me left future-me leave a lot to be desired.

So, welcome to the first of the many ‘how they heck did I do this again’ posts! ๐Ÿ˜‚

Anywho.

My current setup is:

RDS – has the MySQL database
Elastic Beanstalk – has the backend Java/SpringBoot .jar file (manually updated)
AWS Amplify – has the Angular frontend setup to auto-update from the GitHub repository

I’ve got a whole bunch of tickets set up in JIRA already to track the things I wanted to do, but I don’t have them broken out into what order to do them in (or anything useful).

The very basic gameplay exists (and works!), but the story isn’t complete and I still have to manually enter things in the database. I also ran into some issues while playtesting that mean I may need to overhaul how the game works for parts of the storyline.

Also, the program also only supports one story and I’d like to expand it to house a library of stories with similar but not identical gamestyles.

Thus Step 1 is going to be to step back and re-architect the whole thing. Whee! (Coding-wise, Step 1 will be to get the GameMaster’s interface setup and working so I don’t have to interact with the database manually.)

Step 0 is going to be making sure everything is setup correctly on my computer (and on AWS) so that I can properly deploy and test things.

Step 0: Download updates, SSL, Test current build

I’m using IntelliJ for the backend work and Visual Studio Code for the front end, so went and pulled updates for both. I’ve been kicking around the idea of using Docker for the GM side of things (since it’s meant to be separate from the actual gameplay side), so I updated that as well.

The project is up on GitHub and although there’ve been no changes, I’ve done a pull and verified that it thinks it’s up to date. (I’m using GitKraken because everyone needs a little mythical sea creature in their life!)

If you click my referral link for GitKraken here, they’ll give me stickers/t-shirts/socks as rewards if enough folks use it and upgrade to paid. Silly, but fun! ๐Ÿ˜‚

Right now I’m still using a public repo for everything, but I’m swapping that to private. That means having to buy an upgrade to GitHub ($48 year) and GitKraken ($49 year), which isn’t that bad. I already pay IntelliJ $89 a year, so I suppose that’s not really insane for a hobby/jobskills investment.

I made sure getputadventuresweb and getputadventuresweb-ui still build and run locally without issues (other than the fact my SSL has expired).

Updated Postman (since I need it for testing) and checked through my notes for renewing the SSL certificate from Let’s Encrypt using Certbot. They are… not good notes. So, time to try, try again!

Setting up Let’s Encrypt SSL Certificate on an Elastic Beanstalk Environment with domain hosting by Sitegrounds

Yeah… So this may not be useful to anyone but me, but I’m going to document it anyways! ๐Ÿ˜‰

  • Connect to the environment via PuTTY
  • Install Certbot and ask for a certificate (four steps below)
wget -O epel.rpm โ€“nv https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y ./epel.rpm
sudo yum install python2-certbot-nginx.noarch
sudo certbot -i nginx -a manual --preferred-challenges dns -d your.domain.here --expand
  • It will give you something like this
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.your.domain.here with the following value:

blahblahblahIamAcodeblahblahblah

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  • On SiteGround go to the Websites tab
  • Click on Site Tools under the domain you are using
  • Then click on Domain on the left-hand menu
  • And then on DNS Zone Editor (in the submenu that opens)
  • Create a new TXT record using the Value that Certbot supplied (you need to add _acme-challenge in front of whatever domain you’re using so it can find it)
SiteGround TXT file creation for CertBot verification

If all goes well you should get a Congratulations message with information on where the certificates have been stored.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourdomaingoeshere
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: youremailaddress@here).

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:

Then just doublecheck to make sure things are working again and huzzah! (They did work, thank goodness!)

To Renew an Expiring Certificate

The Let’s Encrypt certificates have a limited lifespan so from time to time, you’ll need to go in and renew them.

I always somehow manage to let mine expire, but when I get the chance I’ll come back and document the proper steps to renew (instead of starting from scratch).

  • Connect to the environment via PuTTY
  • ???
  • profit!

At some point, I need to go back and recreate the whole Elastic Beanstalk environment so I make sure I get all the setup steps written down properly. For now, this will work!

Now it’s time to sit down, break out the doodling paper, and start Step 1 (architecting the GM’s interface).

ONWARDS! ๐Ÿ˜

Martha Bechtel

My name is Martha Bechtel and I write fantasy and science fiction stories, paint small model horses silly colors, cast resin and plaster magnets, code random code (and Wordpress plugins)... Come on in and join in the fun!

Leave a Reply