December 10, 2017

dexGame damage update

This will be a quick update, but a few things have been added where the game is at an actual playable point!

Here’s what has been added since last post:

  • player damage
  • basic hud showing health, for above damage system
  • player damage opened a wormhole of other stuff needed
    • player respawning
    • player gibs
    • etc..

So now, you can spawn into a game, run around , shoot and kill someone and they will respawn. This is also the first time I’ve been easily been able to see the player model and boy is it bad (or to theme…), but the weapon mount system is working well.

dead1dead1 don’t worry, dexGame is so advanced, it has no crouching so you cannot be teabagged.

The gib system is still WIP, so right now i just draw a red beam where you died. Eventually, chunks of your player model (im thinking wireframe shaded chunks of player model) will go flying. Not because I’m anti violence, but because real gibs require you to know what you’re doing


impending rip gibstick2

It’s also quite jarring when you die, you pop to a 3rd person free floating cam where you died. But the spectator camera doesn’t inherit movement and stops cold, and loses all inputs. This is the stock spectator camera built into the engine, so I’ll have to make a custom one that is a little more friendly.

I spent hours trying to get the above features working in a true network game and was led astray quite a few times, but at the end of the day it came down to a missing one liner for a network message constructor :(

debugging Sorry to anyone who has me on snapchat

November 30, 2017

dexGame rocket progress

Building a solid, real-deal game foundation this past week, I have only done some minor tweaks and cleaup to the following:

  • Player model, physics/movement
  • Rockets now have pushback / rocket jump (very ghetto atm)
  • Slightly less stupid visuals

I made the rocket look somewhat like something that would kill you and tweaked the player model to be more in the corner because this is clearly a critical issue. There is also support for left/right handed player models but its not yet exposed to UI. A settings UI is badly needed.


Yes, that is a bad version of amphi. Next I will move on to the following:

  • Damage system (which will then require player state/health)
  • Next weapon
  • Gamemode manager

I should also mention I’m using teamcity to automate all my builds + update this site which will make further updates easier.

November 26, 2017

big dexGame push

This thanksgiving break, I got my nerd on and made some good progress on fundamentals for ol’ dexgame’. The following boring-plumbing-things are in place (first passes..) so its shaping up to look like a real game:

  • Input and basic menu systems
  • Player joining & spawning into network games
  • Networked player movement
  • Base weapon system
  • A few lame maps


On the player spawning stuff, I thought I was done a long time ago initially before I dug out a real second machine and tried it. I was slapped with reality and all sorts of bizzarre stuff was wrong. At first, players would spawn but have no control (this was caused by not tying a model to a controller). Then the first player in the server controlled ALL clients, which was moderately funny.

Finally, I got it working and I was greeted by my placeholder player model collapsed completely into its head. So I have replaced it with cylinderdudette (tm). It turns out getting not-shitty feeling movement in a rigid body physics based engine is easier said than done, but I got something OK going.

Call me old, but coming from the source engine which has two weapon models - an explicit one for first person model, and world model (view_model / world_model), it was very convienent just gluing a single model to the player on a mount and then transforming it a bit in the player view. Marvel at my first person model for a rocket launcher. Accepting offers for s1ck 3D gfx artist


The rocket was par for the course with a backwards quad effect for the flame:

first rocketfirst rocket

However it is all spawning in game, working, moving around etc, so its getting fun

October 28, 2017

Starting dexgame

For quite a few years, all of my spare time on hobbies that werent games have been spent on ruthlessly utilitarian projects (or I felt pointless’ if they didnt serve an immediate purpose/learning). With that in mind, and to get on the fact I’ve been saying I want to do this for a while, I’m going to actually make my own game.

Unfortunately I suffer a severe case of jaded bitter gamer vet syndrome (tm) and I only like niche fast paced arena shooters of yesteryear like quakeworld and quake3 mods like CPMA, so it will probably be a simplified, modern version of a fast paced arena shooter with not much more to it. And no, many games coming out calling themselves fast paced’ or old school’ are anything but.

Astute readers may be wondering, Why?” - this is a fair question, especially with games like warsow (which i contributed to for years), nQuake, Reflex (RIP), etc still readily hitting this niche quite nicely - all of which have virtually no players - why bother?

A few reasons: Firstly - I want to make it for me and no one else. Besides, I way too much of a realist about indie game development, its a diluted sea of garbage, just take a look at new steam releases. Endless asset flips and unreal engine hello worlds make it impossible for people to find your game by chance. That coupled with this ruthless, unwelcoming gameplay is a recipe for disaster.

Second, I want to learn an engine from the ground up so I have an effective way to play around with ideas. For this reason I will not be using UE4 or Unity, but will NOT be trying to create an engine because that is guaranteed failure. I’d like to really learn things like modern C++ (which I truly hate), 3D math, and maybe give some bot ai a stab. Third and last, I want to get the hang of 3d asset creation, I have done very minimal tweaking of assets in past but thats about it.

With that said, I’m about as creative as a honeydew in a spelling bee so I’ve calling the project just dexGame’ internally, but I’ll probably call it Bad art arena” in homage to the impending chunks of double digit tris polygons pretending to be art’.

Development is underway, still mostly toolchain/setup phases. I’ll try to update somewhat regularly as motivation ebbs and flows.

September 27, 2017

google keep UX sucks

At a previous job many years ago I used evernote heavily, but only in a simple way , creating new plaintext notes in notebooks. I figured I could switch to something more simple and that happened to be google keep.

At first it was fine, it was easy to create new notes on the web interface. The site was very simple and lacked virtually any features. For example there was no tagging, reminders, categories, colors or anything. Just plain old notes, which was exactly what I was after. I used it lightly for a few years in this manner.

Over the years they added a few big-ticket features like tags, etc while also making the website slightly more and more annoying to use. These small things slowly but surely grated on my soul to the point where I hated it. Some more recent changes are more gratuitious and make it pretty obvious they dont seem to care about keep’s usability anymore.

For example, here is some of the most grating experiences keep has:

  • Notes load in slowly. despite being basic text (which they store as HTML) it crawls.
  • Takes 5 clicks + 2 spinner selections for custom time on reminder (in fact, custom no longer works in firefox)
  • Cant create a note with a title without clicking twice.
  • There is no way to see the FULL DATE of a note. Only month and day regardless of how old.
  • Changing layout of notes clears position, notes and reloads all notes from server everytime you click it.
  • They did add keyboard shortcuts, but they are very bizarre. Sorta like vim, (j+k but j is next) and no key for archive, etc.
  • You can only upload images to a note.

I only used the android application and it had no redeeming qualities as well. Anyway, you get the idea, I’m not a fan. I like to vent about software (just ask any of my few, brave twitter followers) but if they fixed the issues in bold I’d deal with it. Nevertheless, I decided to switch to OneNote and give it a try with its crazy freeform UI and glorified microsoft advertisement for office baked in.

Todo/Note keeping is the epitome of the simple webapp demonstration’, (even before TodoApp react days), but it goes to show simple human interface to anything is never so simple.

Bonus! If you export your notes from google takeout they get awful, inconsistently named html files, mostly dates, some randomly named other stuff and all in HTML regardless of contents.

I cant help but be tempted to create a simple note taking site, with code snippet support.

complaining keep note-taking
September 3, 2017

free AWS Certs on non-static sites

In this post I will cover how to use AWS to host dynamic content with a free AWS SSL cert. Not much background, the reason I did this is I had a static website I wanted to move to having some light dynamic content without having to switch up hosting too much. Doing this with static content is easier and mostly well known (just upload to S3 and cloudfront, good to go):

Route53 SSL->AWS CloudFront -> S3 bucket set to hosting

Even with purely static content, this worked OK until I tried clicking on a link ( which S3 blew up as a bucket identifier, since it does NOT have a file structure. I immediately decided to scrap that idea and just do some actual webhosting.


  • Amazon AWS account (duh)
  • domain managed by route53
  • ec2 or beanstalk instance running your stuff


  • Free SSL certs
  • Free wildcard SSL certs (!)
  • automatic management of certs (easier than even letsencrypt certbot!)
  • potentially free

New approach

You cant set a service alias in route53 directly to an EC2 instance (I didnt check EBS but..), The trick is essentially this:

  • Setup Route53 service alias to elastic balancer
  • Have elastic balancer group have a single target, the EC2 instance (haha)
  • profit

Route53 SSL -> EC2 elastic load balancer -> target group forwarding BOTH HTTP And HTTPS to EC2 HTTP port 80

The load balancer listeners look something like this:

ELB listenersELB listeners

The web’ target group port is set to 80, protocol HTTP and has our EC2 instance in it. If you care about health checks, you will need to tweak it to accept a 301 or https.

On the EC2 a normal nginx installation serves up the content normally. Only a minor tweak for redirecting non https is added:

    # in your server block:
    proxy_set_header X-Forwarded-Proto $scheme;
    if ($http_x_forwarded_proto != 'https') {
        return 301 https://$host$request_uri;

With all that done I wrote a helper script to build the site and shoot it to the webroot over scp. If you’re using debian/ubuntu based distro, nginx will be using www-data, so you can set permissions like so:

    sudo chown -R "$USER":www-data /var/www/html
    sudo chmod -R 0755 /var/www/html

Currently I’m still just using hugo to mostly kick out a static site. To easily rebuild the hugo site and shoot it up:


    #pull these values out if you want to run ssh commands after scp (permissions etc)

    scp -i $key -r public/* $host:/var/www/html

Hope this saves anyone else that needs to similar some time and money.

AWS DevOps SSL site