God’s Debris Book Review

God’s Debris is not a long book, but you might be thinking about it for a long time after you read it.

It is a thought experiment, told in a fictional conversation between a delivery driver and an old man. It seems as though the author, Scott Adams, has put a good deal of thought into the questions and answers that make up the conversation.

There are a number of topics under discussion:

  1. Probability
  2. Free Will and the Soul
  3. Light and Lightspeed
  4. Gravity and Magnetism
  5. God
  6. Awareness

As well as a few others, but these were some of the ones that came readily to mind.

You don’t have to agree with any of the points that are made to find value in the perspective. Personally, I disagree with some of the assumptions and starting points that lead to the conclusions presented.

Overall rating 10/10 because it will challenge your beliefs and make you think about things that we take for granted about the universe we live in. Maybe you don’t know as much as you think you know?

Check out the full reading list for the first part of the year here.

Keep getting wiser, stronger, and better.

A Guy Named Kenney and Free Game Art

I am not great artist. I am much better at writing code than drawing, sculpting, sketching, painting, modeling, you name it.

So, whenever I find something that helps me out with game art, either because it is free assets that help me get started or tools that help me generate art that looks half decent, I try to share it.

Fortunately there is an absolute LEGEND named Kenney who has created literally thousands of assets for people to use for FREE, no strings attached as his website says.

He provides assets for all kinds of games. Platformers, top down shooters, RTS, dungeon crawlers, city builders, racing games, pirate games, you name it. I especially like the 2D Generic Items.

You can find them on his website.

He also has a couple of art creation tools for sale (at extremely reasonable prices) to help you create your own custom 2D or 3D assets.

If you are struggling with game art or just want some placeholders as you get started on a project, try it out.

Keep getting wiser, stronger, and better.

Snow Crash Book Review

I have finished the first of the books I put on my 2022 reading list. I decided to start with the fiction story Snow Crash by Neal Stephenson.

This review is going to be short in order to try to keep spoilers out.

I cannot recommend this book enough!

This is great sci fi. Its not fantasy. The world presented seems like the technology could exist, a future like this could exist.

The Setting

The story is an wild adventure thru a crazy future west coast United States where almost everything has been broken up into “franchises”. Almost like if every fast food restaurant parking you turned into or suburban community was like visiting another country.

Technology is fairly advanced. Computers draw a virtual reality right onto the retinas. Skateboards have smart wheels that can change their shape to terrain and give a smooth ride.

There is a metaverse, maybe one of the origins of the word. A big digital planet with digital real estate. People interact, work, and communicate there.

The Heroes

The hero of the story, named Hiro Protagonist of all things, is a old school programmer who is also in a reading friend of mine’s words a “samurai pizza delivery driver.” He helped in the original creation of the metaverse.

Working alongside him is a young skateboarding delivery courier who goes by Y.T.

Both of their lives are at risk at various times throughout the story as they unravel the mystery of Snow Crash.

The Plot

The plot seems to be centered on the question, “What if your brain could be infected like the software in a computer?”

The story centers around a mystery virus called Snow Crash which is an old term for a computer crash that left your screen full of static or snow. The virus is actually a thinking virus. One that affects the brain at a fundamental level. Specifically the brains of people who understand how to program computers.

Who is making this virus and why?

Our heroes must dig up information, make daring escapes, and face the notorious big bad guy Raven.

My Thoughts

I really enjoyed the story. It has a touch of the absurd that hits my sense of humor just right. Their is a good split between computers and programming and real world mayhem. The way mythological, historical and religious ideas are blended together is done in a way that makes them seem plausible.

The idea of someone being able to program your mind if they had the right words or images is something worth thinking about. Partially because there are people trying to figure out how to do that every day. Marketers trying to get you to buy their products. Governments and politicians trying to get you to support their policies. Friends and family who want something from you or think they are trying to convince you to do what is best for yourself.

What kind of guards or anti-virus do you have for your mind to keep out the garbage that is trying to infect it?

Keep getting wiser, stronger, and better.

Iterated Testing and Delta Aerators

Today we are going to take some lessons from the physical world to apply to programming and troubleshooting in general.

Disclaimer: The following article contains affiliate links. If this article helps you solve a problem and you decide to buy the product through these links, we will receive a small commission at no extra cost to you.

The Problem: Water Pressure

Recently we have had a problem with water pressure in our main bathroom sinks. The secondary bath upstairs had no problems, neither did our shower. But the sinks in the main bathroom were a weak trickle, even with the hot and cold water opened all the way.

It was very strange because the sinks are downstairs, the water heater is upstairs. Downhill pressure shouldn’t be where the problem is.

Guess Number One: Clogged Aerator

Many modern sinks have a part called an “Aerator” that breaks up the water flow. This serves a couple of purposes. It makes the water flow smoother and wider. It helps conserve water. It stops the water from splattering as much when it hits your hands or whatever else you put under the stream.

From a quick search, I found that sometimes water pipes get debris in them and a screen like an aerator is a likely culprit for catching this debris and getting clogged.

Now if you look up how to remove an aerator, the top results will tell you to just unscrew it from the tip of the faucet with your hand. That did not work for me. Our aerators where tucked away inside the faucet with no way to grip them.

Turns out this is called a “Delta Aerator” and you need a special tool to unscrew it. It is called a delta aerator wrench. The aerators and wrench looks like this:

So I order the wrench and it comes in pretty quick. I take the aerators out and inspect the faucet (** IMPORTANT **: make sure you plug the drain before unscrewing the aerator). No debris seems to be stuck there, but we scrub the aerators and soak them in vinegar and water solution to clean them. Reinstall them back in the faucet and . . . no change.

Guess Number Two: Clogged Pipes

The article that talked about the debris mentioned that sometimes it get stuck in the pipes and hoses under the sink and you have to clean them out. To be honest, I was a little scared of making a big water mess.

But I put on my adult hat, grabbed about 4 towels and a plastic bowl and got to work.

There is an important series of steps you should follow when messing with these pipes.

  1. Shut off the water valves – your sink may have simple valves for the hot and cold water that are easy to either twist close or push / pull closed. Make sure you do this before doing anything else.
  2. Place down towels, drip pans, or plastic sheets – just in case, put some water damage prevention measures down before unscrewing anything. No need for an insurance claim to come out of this.
  3. Turn on the Hot and Cold taps – make sure that nothing comes out. This means the valves you shut off in step 1 are working.
  4. Turn the taps back off
  5. Disconnect a hose / pipe from the tap underneath the sink and check for debris – Try running a pipe cleaner type brush through the hose or pipe. You may need an extra long one to be thorough.
  6. Reconnect the hose or pipe carefully
  7. Open the water valve
  8. Turn on the tap and test

Unfortunately, this did not fix our problem either. And it was no picnic because there was quite a bit of stuff stored under the sink that I had to pull out to get to the pipes and then put back.

Guess Number Three: Back to the Aerator

At this point I was almost ready to call a plumber. But I had one last thing to try. The upstairs sinks seemed fine. And when I had accidentally turned the water on with the aerator removed in the downstairs sink, the water came out strong (and made a bit of a splashy mess).

What if the aerator was clogged but in a hidden way or was broken or faulty? It seemed silly since the downstairs and upstairs sinks should have the exact same aerators, but I took the aerator out of the upstairs sink and put it in the downstairs one and voila, it worked like a charm. Then I put the bad aerator upstairs and got only a trickle.

Problem solved!

As a bonus, the delta aerator wrench that I had ordered from Amazon (see link above) came with a pack of various sized replacement aerators. These allowed for a much better water flow than the ones that came with the house. This made my spouse very happy, and as they say “Happy spouse, happy house.”

Troubleshooting Lessons

So what can we learn about troubleshooting from this.

First, isolate the problem area. By working my way outward from the aerator to the pipes, I was able to narrow down where the problem area was. This made the possible solutions more clear.

Second, try low risk solution first. Taking the aerators out was really no risk and the tool was very inexpensive. I tried this before moving onto unscrewing pipes.

Third, try solutions that are on the edges of your comfort zone. Use guides and risk mitigation tools (towels in this case) to stretch yourself and learn. It will help your confidence and you will grow.

Fourth, question your assumptions. I assumed that the aerators would be the same since they all looked the same and all came with the house. Questioning this assumption led me to the solution and saved me from having to call a plumber (expensive).

I hoped this helps you whether solve an actual plumbing problem or just a better framework for problem solving.

Keep getting wiser, stronger, and better.

New Years Reading List 2022

I love to read. And there is no shortage of good reading material out there. There are old classics by great authors, hidden gems from unknown authors, and new best sellers. But I did find myself rereading several books this past year and decided to come up with a list of new material.

Here is a list of books I plan to read sometime in the next year.

Disclaimer: the following are affiliate links. If you choose to buy something by clicking thru one of these links I will earn a small commission (at no extra cost to you).

Atomic Habits by James Clear

The Gulag Archipelago by Aleksandr Solzhenitsyn

God’s Debris by Scott Adams

Unknown Market Wizards by Jack D. Schwager

Six Easy Pieces by Richard Feynman

Snow Crash by Neal Stephenson

This might get me thru the first half of the year depending on how much time I put aside to read. You can see other books I have read in 2017 and in 2016 for an example.

If you have a must read fiction or non-fiction book, I would love to hear about it.

2D Pathfinding in Javascript for Phaser 3

Working on one of the subgame prototypes for a larger game idea and needed to implement pathfinding on a 2D map.


One of the most common algorithms for this kind of pathfinding is called A*  (read as A Star).  The precursor is doing just a Breadth First Search.  I was going to make a full A* implementation but the breadth first search was more than fast enough for my small, 2D maps. And as this is a prototype, going with good enough while I flesh out ideas.


The Algorithm

To begin we want 4 things: the map, your starting point, your target point, and some way to keep track of where you are going next and where you have been.


The explanation I was following referred to the places you have to visit next as the “frontier” and I liked that name so we will use it here.


Begin by putting your starting point in your frontier.
Then we loop over the frontier like this:

  • Get the next location from the frontier
  • If this location is our target point
    • We are done. Exit the loop.
  • If we haven’t visited this location before
    • add it to our visited list
    • get all of its neighbors (up, down, left, right)
    • add them to the frontier if they are not walls
    • mark this location as their parent or previous tile.

Once this loop is complete, because either we hit the target or can’t get to it.  Take the last tile we visited and build a path by backtracking thru the parent or previous tile property until we get to our starting point.

Really a fairly straightforward algorithm that was actually kinda fun to implement and then see working.

This is the rough code I used for the prototype:

class Pathfinder {

    // map is a 2D array of integers, where 0 is a wall and anything else is walkable
    constructor(map) {
        this.map = map
        this.map_width = this.map[0].length
        this.map_height = this.map.length
    }

    findPath(start, end) {
        start.parent = null
        let frontier = [start]
        let neighbors = []
        let visited = []
        let current_point = start
        while (frontier.length > 0 && (current_point.x !== end.x || current_point.y !== end.y)) {
            current_point = frontier.shift()
            if(Object.keys(visited).includes(`${current_point.x}_${current_point.y}`)) {
                continue
            }
                
            neighbors = this.getTileNeighbors(current_point)
            neighbors.forEach(function (n_tile) {
                if(!Object.keys(visited).includes(`${n_tile.x}_${n_tile.y}`)) {
                    frontier.push(n_tile)
                }
            })
            visited[`${current_point.x}_${current_point.y}`] = current_point
        }

        let path = []
        while(current_point.x !== start.x || current_point.y !== start.y) {
            path.unshift(current_point)
            if(current_point.parent == null) {
                break
            }
            current_point = current_point.parent
        }

        return path
    }

    getTileNeighbors(tile) {
        let neighbors = []

        if(tile.x > 0 && this.isFreeTile(tile.x - 1, tile.y)) {
            neighbors.push({ x: tile.x - 1, y: tile.y, parent: tile })
        }
        if(tile.y > 0 && this.isFreeTile(tile.x, tile.y - 1)) {
            neighbors.push({ x: tile.x, y: tile.y - 1, parent: tile })
        }

        if(tile.y < this.map_height - 1 && this.isFreeTile(tile.x, tile.y + 1)) {
            neighbors.push({ x: tile.x, y: tile.y + 1, parent: tile})
        }
        if(tile.x < this.map_width - 1 && this.isFreeTile(tile.x + 1, tile.y)) {
            neighbors.push({ x: tile.x + 1, y: tile.y, parent: tile})
        }

        return neighbors
    }

    isFreeTile(x, y) {
        if(this.map[y][x] === 0) {
            return false
        }
        return true
    }
}

To make this into a more efficient pathfinding algorithm like A* you would need to change the Frontier into something like a Priority Queue that sorts the next tile to check based on a heuristic like distance to target.

You can find another good article comparing Breadth First, A*, and Dijkstra algorithms here.

Keep getting wiser, stronger, and better.

Book Review: Stress Less, Accomplish More

This book is about meditation. Not the clear your mind, think zero thoughts kind of meditation. But a sit alone quietly with your thoughts style that the author call Ziva meditation.

Most of the book is explaining the range of benefits you could get from a regular meditation practice. The primary benefit being the one mentioned in the title, you become more productive with less mental stress.

I am not going to list out everything the author claims could be improved. But the list is rather long. The most interesting claim to me was that meditation improves the communication between the two halves of the brain. This would unlock creativity and some more clever problem solving. I need more of that in my life.

Another portion of the book is spent explaining why most people give up on meditation. They believe it is trying to completely empty your mind of thoughts. Most people get frustrated by their inability to empty their minds and give up, feeling like failures.

The author takes the position that the mind thinks automatically, like the heart pumps. The style of meditation she proposes is about letting your mind go to all the thoughts that are cluttering it up so that you can process them and clear them out. Most of us are walking around with unprocessed past trauma or stress that is affecting us in a variety of ways.

The basics of the meditation are this:

  • Do some sort of routine to get you into the present moment. The author has a sensory exercise for this.
  • Sit quietly with your eyes closed just letting your mind think, but occasionally bringing it back to a focus with a mantra word. This is done for 15 minutes.
  • End your meditation with gratitude and a positive vision of the future.
  • Repeat this whole thing twice a day

I picked up this book back in 2019 and liked the the meditation practice so much it has become a daily habit.

One of the warnings given in the book is that you might feel some strong emotions. Some people may even feel like quitting their job or crying at the very least. These responses are from confronting the past emotions that haven’t been dealt with. The author asks you to promise not to end any relationships or quit any jobs for the first two weeks.

While I did not have this strong of a response, I definitely had some old memories dredge up that were emotional in nature and that surprised me a bit. My personal recommendation is to add some journaling after your meditation, especially early on, to help process whatever emotions you dig up from your past.

Needless to say, your mileage with a meditation practice may vary. However if you do not already have a practice that works for you, try this one. Everyone could use a little clearer mind for decision making and less stress for living a kinder life.

Keep getting wiser, stronger, and better.

You can find more about the author, Emily Fletcher, at her website Ziva Meditation.

A Year in Day Trading

First a few caveats. It seems industry standard to say that I am not a financial advisor and this is not financial advice. I am not recommending you buy or sell any stock. This is for information and education purposes only. There, that is out of the way. We can begin.

Up until last year I really did not care much about what was happening in the stock market. I had some vague ideas and theories about proper long term investing strategies from various books I had read. I did a little research for retirement investment, but the day to day ups and downs of the prices of publicly traded companies did not get my attention.

About three years ago my interest was sparked a little in day trading after watching an interview Tom Bilyeu did with Tim Sykes. Tim had a lot of energy and apparent conviction about what he was teaching and doing. After some investigation, it required too much up front capital and more risk than I was comfortable with at the time.

Then the perfect storm happened.

At the end of 2019 a bunch of brokers started moving to a low or no commission stock trading. This allowed small trades to test theories and learn without getting killed on commission. When I had looked a couple years prior the cheapest trades where something like $5 per trade.

Then the pandemic hit the market, sending tons of stocks tumbling as people panic sold. This looked like a perfect opportunity to pick up some solid companies at a discount and ride the rebound.

Third, I received a small bonus that gave me a little extra money I was ok risking to learn trading with.

Before making my first trade, I did several weeks of education. There are tons of free resources available between blogs, streamers and youtube videos. Granted they all need to be evaluated cautiously as some of the “gurus” out there are just trying to get a group of followers to pump up stocks.

A couple years prior I had bought and read The Complete Penny Stock Course which is basically one of Tim Sykes student’s notes on his high dollar training courses. It is probably the best budget guide to some basic trading strategies. I read it again.

Until you do something, you don’t really know what it’s like. If you are thinking about getting into trading at all, you should definitely educate yourself about the major pitfalls and some basic strategy. But there is no substitute for actually making some trades.

You should not trade with any money you are not willing to lose. Day trading is very risky and their are tons of professionals out there with big money who are ready to take money away from new traders stepping into the ring.

The market is like a wild animal. Like any wild animal, when you hop on its back it will do its best to throw you off.

Needless to say my first few trades where absolute embarrassments. I bought high and sold low. Thankfully I took miniscule positions risking only $2-4 per trade. But even small amounts of money like this can make you feel emotional about the stock turning against you.

Part of the reason to do these first few trades is to make you aware of the emotional rollercoaster that trading can put you on. Anger, elation, hope, despair, the full gamut of emotion may hit you. Regardless, your emotions will affect your trading. Greed is the big killer. It will make you get in too big and stick around too long in a loser.

Before every trade you should make a plan. You should answer some basic questions. How much money are you risking? Why is the stock moving? Where will you take profits? What is your edge?

If you don’t have an edge, you probably shouldn’t be in the trade. Very few traders are right much more than half the time, which means your winners need to be bigger than your losers.

Trading is an Infinite Game. The point is to be able to play for as long as possible. In order to play for as long as possible you have to protect your capital using risk management. There are several risk management strategies to help you figure out how much you should risk. A popular one is the Kelly Criterion.

In this way trading is like Poker or any other gambling game where people can make a living over time using an edge and good risk management.

I took half of the money I had for trading and bought a handful of companies whose stock had been beaten down and that had been around a while and where likely to recover. I got lucky and picked up most of them near their lows in March. My goal was to see if I could take the other half of the money and out perform the recovery of the other stocks.

This is the point as I write that I realize this is going to be a very long post. Not only because it is describing an entire year, but also because trading is just super complicated.

So I need to pause and talk about the 2 basic kinds of accounts you can have. The default account is a Margin account. This account lets you buy and sell stocks to your hearts content with your buying power. Except you can only make 3 round trip trades (a buy and a sell on the same ticker counts as a round trip) every 5 days if you have less than $25K in your account. This is known as the Pattern Day Trader rule, or PDT for short. When you are trying to just test a bunch of small trades to learn patterns and strategy, this can be very limiting.

The kind of account I went with is a Cash account. With a Cash account, as soon as you buy a stock that buying power is tied up until the purchase “clears” which takes a day or so. So if you bought $100 worth of Ford on Monday and then sold it immediately for no gain or loss, that $100 would not be available to your account again until Wednesday typically (barring any holiday interruptions).

One of the other limitations of a Cash account is you cannot short sell. You can only bet on stocks to go up, not down. But you have the ability to make as many day trades as your buying power will allow. So I chose to set my account to Cash to give me more small trades for learning.

Some people spread their money across multiple brokers in order to get access to margin trading and short selling but still have more than 3 trades per 5 days.

When you are starting out building any new skill, finding a mentor or at least someone who is just ahead of you to learn from can be very helpful. There are absolutely oodles of communities to join with hot picks and stock bros posting in chat. There are also some expensive paid learning programs.

I found a small streamer on Twitch name TradingForKeeps. He was on most mornings and seemed to be trying to trade a similar strategy as me, so I stuck around and chatted back and forth with him. Definitely recommend checking out his stream, blog, and podcast.

I also would catch the Pre Market Prep around 8:30 Eastern with Tim Bohen on Youtube to get some news and ideas.

One of the best friends of any day trader is a stock scanner. A good scanner will let you create a list that filters out most of the stocks you would not have any interest in. For me, I was looking for low priced stocks with a lot of volume. Then I would manually filter that list down based on things the scanner wasn’t able to look for.

I had lots of ups and downs. It was a hot market in 2020 and people who knew what they were doing were cashing in. But I was just learning and making all the beginner mistakes. I cut winners early and let losers run. But because of good risk management, at the end of December I was only down about $50 total.

Then, just after the first of the year, I found a trade with a really good edge. I saw a passing comment from someone I was following on Twitter about a stock that I had seen on my scanner many times. This stock moved around a lot but just never really seemed to be going anywhere.

This leads me to mention another important tool for traders, SEC filings. These are public documents that companies traded on the listed exchanges (NASDAQ, NYSE, etc) have to file for press releases, stock offerings, and other events affecting the stock holders. This is a whole topic in itself and I recommend learning a good bit about it as part of your trading education.

This particular company had a filing that it needed to get its stock price up to $1.00 by a certain date in order to stay listed on the NASDAQ. When I saw this and checked the company’s current price, it was around $0.30. Now I have a clean risk to reward, and I have an edge.

I took about 1/3 of my buying power and tied it up in the stock. Because of my information edge I was able to ride out a bunch of choppy ups and downs and nearly 3x my money on the trade.

There was the risk that the company never got its price up and got delisted down to the OTC exchange or even went out of business. But it was calculated and I was prepared to lose a portion of the money I had on the trade as part of the risk.

It wasn’t long after this that the Gamestop and Robinhood fiasco happened. A simplified summary is that a group of traders who frequent a subreddit called wallstreetbets figured out that Gamestop (GME) and a few other stocks were being heavily shorted. So they conspired together to buy up the supply and squeeze the shorts out by pushing the price up.

This happens all the time in the markets, usually done by the rich guys, but I am not sure it has ever happened before like it did to the GME shorts. The price exploded and so did a hedge funds accounts. The Robinhood trading app that let people trade simply from their phones plus some stimulus checks from the government helped make this possible. This got everyone talking about the markets.

Some sketchy stuff happened with lots of brokers stopping people from buying the “meme stocks” to apparently try to let the hedge funds that were short get out without taking too catastrophic of a loss. One more thing to be wary about when trading. If its free, like any other service out there, you are probably the product.

I was busy working on moving during this time and missed the madness. However even at the time of this writing the meme stocks are making another run.

That is another lesson about the stock market that I learned. Stocks that have run once, are more likely to have another run in the future.

There is probably more to write and tell but that is as good a dump I can get out right now on a sleep deprived brain.

In summary, I made a ton of small low risk trades to learn the basics and get some grips on my emotions. Using good risk management I was able to protect my account while I learned. From all the learning and practice I was able to find a few trades with an edge so that I have currently made money for 3 out of the last 4 months. I hope to be able to continue and scale this skill eventually to gain some financial freedom.

If you want to learn more about trading, I would recommend that book I listed above as a good place to start. Tim Sykes also has a free sort of autobiography of how he got started called “An American Hedge Fund” that you can get from his website.

Until next time, keep getting wiser, stronger, and better.

WebShipBattleChess Prototype: Part 1

Quick note about motivation and actually getting started and finishing your game. If you find yourself just not working on your game or having trouble getting started, you are probably trying to build something that is too far outside your skill set or with a tool you are not familiar enough with.

Tricks to try:

  1. To get started, follow a basic tutorial to get the boilerplate code of your game setup.
  2. Scope the complexity down even further, even if it is already pretty simple.
  3. Use boxes, circles, rectangles or other basic shapes as placeholder art.
  4. To finalize your game, polish one area at a time. Just like cleaning a house you don’t do everything at once. You clean just the floor or you clean just one room.
  5. To add complexity, do it step by step. Don’t try to add to many things at once and test things as you go.

As a practical example, I was having trouble getting myself started on this game. Part of the problem was trying to make it too complex to start even though it is only a sub game of a even more complex idea.

The original idea was to make the game network multiplayer from the start with a python server and SocketIO. But writing the authentication, login, etc. was like a wall that I just did not want to deal with right now.

Once I realized this I changed the scope. Right now I am working on just getting the client working as a local multiplayer with no backend server and no authentication. A lot simpler which means I got started and made progress. The progress has me feeling good and more motivated to add more things.

To start with I found a nice set of boilerplate from https://phasergames.com which let me put the skeleton of a PhaserJS game in place and start adding features.

The first thing I added was a single scene with an image in it.

class SceneMain extends Phaser.Scene {
constructor() {
  super("SceneMain");
}

preload() {
  this.load.image("light_freighter", "images/light_freighter.svg");
}

create() {
  this.add.image(100, 100, "light_freighter");
}
}

For a nice free tool to make quick placeholder images, you can download https://inkscape.org

Keep getting wiser, stronger, and better.

Game Design Rough Draft Part 1 – SpaceShip BattleChess

As part of a larger game, I am building sub game prototypes to test out and tweak the rules and features of each sub game to make sure they are fun standalone before integrating them into the whole.
The first subgame that I want to make is very similar to a game I have made in the past. The basic idea is a turn based space ship combat game where the ships move on a grid and fire their weapons at each other in sequence. Ultimately the ships turret loadout will be customizable and the ships will have a captain and crew with various properties.
I am looking to build the bare bones of this prototype in about 2 weeks with a little time each day. After that I will plan out follow up work to add features and test them out. The first 2 weeks is just getting the basic move and shoot functionality.
Currently planning on using PhaserJS, Flask, and Socket IO.