Converting Chronoclysm to Online Multiplayer. It’s About Messages.

Games are information, a very specific type of information.

In traditional gameplay we don’t often think about how the information is relayed to the player. Players often don’t even realize that the information of the game is a meta idea that could be extracted from the activity they are doing.

For an example of this lets think about playing a game of chess. If you and your friend sat down to play a game across from each other you would only need one board and one set of chess pieces. You also wouldn’t need a method of communicating what state the board is in. With your friend right there they can simply look at the same information you are looking at and boom, both of you are looking at the same game state.

Now if you wanted to play chess with this same friend over a great distance we can appreciate the reality of the existence of the games meta information. Now there is still the challenge of playing a game of chess, but there is also the challenge of maintaining the game state for two separate boards and separate sets of pieces.

Moving a game from being local multiplayer to being online multiplayer is all about making that separation between the game state and game view.

The amount of information you send is very important. You could send for instance the position of every single chess piece each round. But that’s an exhausting amount of information and in a video game you are sending this information several dozen times a second. You need to only send important information. So don’t send the entire game state, just the changes.

The major difficulty with online multiplayer isn’t the actual networking of the computers together. Which is a tricky bit in its own right. It’s the abstract need to have the game rigidly defined enough to be encapsulated into messages. It’s hard to keep all of it organized.

Chronoclysm is a game about time paradoxes. Everything players do is recorded and played back. At first I thought this would be a really big boost to online networking, since I’m already logging every single action it couldn’t be that complicated right? Well it wasn’t as simple as I first thought.

A turn based game like chess obviously has several advantages when working with a messaging system. The biggest being the speed of the messages doesn’t completely determine the playability of the game. If it took 2 days to get you my move by mail we could still enjoy a long term chess game. Since the game is actually played in discreet steps.

The messaging complication in video games is better explained if we look at it like trying to turn soccer/football into a game played over distances. Where each player is miles away from each other, the information needs to be practically instantly sent to every player. Not just what each player is doing but done in such a way that the game actually stays in sync and all the information is updated enough to play smoothly.

That’s far more of a technical frustration. You need to structure the game so that it can be kept up to date. I’m a very large believer in code following the rules of physiology and biology. That is form follows function, your heart and lungs don’t conspire to push blood through your body. Due to their structure they can’t do anything else. The structure of the code should exist in such a way as to make message sending and receiving impossible to become unsynchronized.

Early on in Chronoclysm I ran into a bug because I didn’t do this when logging the actions. Since everything you do happens again I need to record all of the actions. When I first did it I made the process as follows: A character would go through the game and everything they did would be logged. So each time they hit a button or got hit by an object I played the action out and then recorded it.

That turned out to be a critical flaw in keeping the game synchronized in future rounds. It would never play out exact enough. There was constantly little things happening that were missed or the timing was poor. For a game that is about replaying the past over and over… it was a pretty big flaw.

The main problem was that the code itself wasn’t structured to ensure that things played out the same. There was a difference between recorded actions and live actions. The fix for this was simple. Instead of playing out the actions and then recording them to be played back later. I eliminated the first playing out of the actions. Instead all actions are logged as they happen and then played back instantly if they are new actions. This meant there was no longer two different ways for actions to happen, they happened the same if they were recorded or played back. You could spend your life trying to figure out why the actions didn’t play out the same, they should have as far as I could tell.

A rule of thumb is that the greater the number of parts, the more there is to go wrong. I eliminated the problem by reducing complexity, limiting the number of ways things played out.

Approaching online multiplayer is something very similar. You want to add structure to your game so that things communicate and stay in sync, because they can’t not.

We can start by figuring out what this sort of new structure looks like. First lets make the separation between game view and game state. Game view is what any one player see’s. Game state is what the actual game is. So one player could be playing chess with marble pieces and the other with wooden pieces. The pieces don’t need to look the same or be made of the same material, even though those are chess elements they aren’t important to the game state. The game state is purely the information that is critical to the game playing out the same way.

So the position on the board is important, but not the rotation of the piece on the board for instance. This is important to understand because we need to eliminate as much information as possible from the game state. The slimmer the messages the faster everything will go for the players.

Next we need to make it so that there is only 1 game state for all players. It’s a massive headache to try and synchronize game states across a network. It’s even harder if you are trying to agree on what actually happened. Think about a first person shooter where every single player is controlling the geometry locally. There is always lag across networks even if it’s small. One player might pull the trigger on their screen and register a hit. But due to lag the trigger pulling doesn’t register on the hit player until they have moved out of the way. There is now a discrepancy, did the hit happen? It technically did and didn’t, based on who’s game state you believe. A design that basically would guarantee desynchronization.

If we make it so that there is only 1 game state then it’s much simpler. This is often referred to as a client/server model. Where one central server provides information to the many clients.

It’s important to make a separation still between the game state on the server and the game view on the server. The server should not serve itself directly, it should have its own client. This again is for synchronization. If you have the server serving itself differently than the the clients there is more room for error. You are splitting something into more parts and that increases the entropy which increases the error rate. Of course a messaging system is more complex and also more prone to errors, but it’s absolutely necessary to online play so increase entropy as little as possible by making it as simple as possible.

This is where real world comparisons kind of start to fall by the wayside. Our game state should really only exist as an abstract concept. No physical form at all. It would be like having a game of chess where both boards and pieces existed. But the idea of the game being played was in a different dimension, the pieces layout has no form just information. You should have as many clients as there are players and the number of servers as there are games (one).

What needs to go into the game state and the game view is absolutely dependent on what the game is. If chess utilized the rotation of the pieces for instance it would be important to send that information, but it doesn’t so it isn’t. There is no rule for what is important, it’s contextual to the game state you are following.

Before even being able to send messages across a network you need to be able to break your game down into messages. I’m taking the approach of decoupling of the game state and game view. This means that things like collisions and the reaction to collisions don’t happen in line.

This would be pseudo example of tight coupling of the game state and view:

public void ExplodeBomb()
     Collisions[] effectedbyexplosion = PhysicsEngine.GetCollisionsInCircle(Position,Radius);
     for(int i = 0; i < effectedbyexplosion.Length;++i)
         if(effectedbyexplosion[i].Health <= 0f)

At the same time we find the entities effected by the explosion we also tell them to take damage. Afterwards we check to see if their health is below 0 and destroy them.

So we have taken the concept of a bomb explosion and tied it directly with damage and character death. What happens if we have another type of explosion? Or how do we handle other types of damage? Maybe we just write the same code in those functions too, it would work. It’s just tightly coupled.

In the above code if we made that run on a network we would have to make sure each computer co-ordinated their explosion the same and hit the same objects. Also all at the same time. It’s an exercise in madness.

Instead we can decouple things. Do something like this pseudo code:

public void ExplodeBomb()

public void HandleBombCollision()
     Collisions[] effectedbyexplosion = PhysicsEngine.GetCollisionsInCircle(Position,Radius);
     for(int i = 0; i < effectedbyexplosion.Length;++i)

//In the game object class
public void HandleCollision(int collidingid,CollsionTypes col)
    if(col == CollsionTypes.Explosion)

public void TakeDamage(int amnt)
    Health -= amnt;
    if(Health <= 0)

public void HandleDestruction()

While making it a lot more complicated we have also gone ahead and allowed there to be messengers in the process. So instead of having all the clients handle whether the bomb collided or not. Only the server decides if the collision actually happened. While we also make it so the animation is separate so that all of the clients can call it without affecting the game state. If one of the explosions on one of the clients lags they will just have a small visual issue. The game itself will retain its integrity.

Also inserted a message between damage and death. They are very similar but because a character might not die when they get damaged and there might be other reasons to deactivate a character. We will make them separate messages. So if the character dies we send out a message to destroy them. This was the clients all know when they died at the exact same time. Keeping congruence.

That’s the idea behind tight and loose coupling. Do you have two lego’s that come together to make one bigger structure? Or are your lego’s glued together so they are now one inseparable piece. Both have advantages. The glued one breaks less when you drop it, but good luck changing it in any way. To make a game work over a network you’ll need to break it up a lot more so everyone knows how to build the legos the same.

Of course it’s a fine line, if you break your legos down into atoms so you can mold them into any shape… well that’s certainly more decoupled. But you also are going to be spending an eternity just making 1 brick. It’s balancing the two that’s important.

The rest of converting Chronoclysm is going to involve going through the entire game and decoupling the game state and view. Which is the first step and it’s going fairly well thus far. I’m writing this because I think I finally have it mostly figured out. Once I have it decoupled I need to do the actual networking with sockets and stuff. Which is going to be a different bag of fun but shouldn’t be too hard since steam offers a lot of help.

Then there will be integration of a lobby system so that you can find people to play with. Which is similar to the other networking things but it’s a separate design challenge in its own right. I’m going to start dev logging more of this stuff, mostly because I find it absolutely fascinating and want to share.

I’m also available if you want to talk about converting your own project. I’m happy to offer any guidance or assistance. Happy gaming!

Chronoclysm Level Editor and Skins

Been working on a level editor. All the levels thus far have been created by hand. I use a tile sheet of sorts but mostly just did it myself. So I modified some sheets to conform to a more consistent set of rules.

Here are 18 potential skins I’m working on. I dunno, the blood might be a bit much haha. Very much inspired by some of my favourite locations from videogames growing up and now.

Chronoclysm Skins

As well there are these screens so far with the level editor

Chronoclysm Level Editor Progress

Perfectionism: The Dream Killer

It’s more than having high standards. Perfectionism is deceptive. It’s a concept people use in a search to do great things. But it’s an impossible goal. It’s a search for utopia, the fountain of youth. The moment you hold any “perfect” as an ideal you have already defeated yourself. You have designed yourself for failure.

Why? How can it be a bad thing to pursue perfection? Surely wanting to create only the highest quality content is not a bad goal. The problem is that is not what perfectionism is. The comparison between high quality and perfection could be made numerically. High quality is ANY number. 500 , 600. You want to strive for a high number. Perfection is a number too… infinity. It’s a concept that only exists as a concept. You can’t actually make it. I mean by even trying to measure it you have to agree that there is no perfect way to measure anything. Once we get to atoms we run into quantum problems. Perfection is actually impossible.

It’s not actually a reason either. We are pattern recognizing beings, we see things and put things together. It doesn’t mean they are correct, it’s just a pattern. Like an optical illusion. You fill in gaps and come to conclusions. Right now I am having perfectionism issues trying to create videos to reach out to people. I tell myself the sound is bad, people won’t like me because I’m ugly, etc etc. I have an idea of what circumstances I would be able to make these videos in, I just need to lose a few more pounds and put up some sound absorbers. These are not untrue things, but they are not the reason I am not making videos. When I really reflect on it… I’m scared. That’s it, I don’t want to because I’m afraid I will experience bad things because of it. It’s my own insecurities about being confirmed a failure that keep me from making videos. It has nothing to do with my equipment or how I look. Boogie comes to mind, a fairly famous youtuber. He is popular and he is very fat. Not holding it against him, I’m saying it’s proof that I’m wrong. I can be listened to and be fat (I’m not even! I lost a lot of weight!). I don’t believe that I am attractive. If someone confirms that then I will be hurt.

All of these things I had to come to through reflection. It’s so automatic for us to overlook these problems and assign the cause to external factors. You think about doing something, you notice a problem and you say “Well I can’t do it because of X”. Your talent does not solve this problem, the same way weight loss does not imbue confidence magically. You need to reflect upon what is happening.

When you want to do something, you begin a series of mental processes. You are biased towards the status quo. Changing how you currently are is the hardest damn thing to do. Perfectionism is a cop out for looking at your deeper problems. If you wanted to make games, the reality is you would be making them. Every moment you put something between you and making games is you making up excuses as to why you can’t change the status quo. You don’t want to make good games. You DON’T want to be a person who makes bad games, because you believe you CAN already create great games. You somehow just haven’t done it yet.

It’s such a problem to paint yourself into a corner like that. “I don’t know what tools to use!”, “I can’t draw!”, “What if I’m not original?”. Checkers is a game, it involves colored circles and squares. It was played and enjoyed for CENTURIES. Tic Tac Toe! Dominoes! How many damn games can you play with a pack of cards? There are a million more games that could be invented with these concepts. People aren’t being stopped from making games, people don’t even know what they are! They are being stopped from discovering this by their own fear of failure. By defining what games are acceptable to make and what ones aren’t people completely shut themselves out from trying any of it. The reason again is actually fear of failure.

If you want to be doing something that you aren’t. You are afraid of failing. If you weren’t afraid of failing and wanted to do it… you would be doing it. The problem that arises is not reflecting on WHY you fail to do the things you want to. Excusing it as perfectionism IS the symptom that you will never make ANYTHING. Let alone anything you will be proud of.

This may seem all very discouraging but take heart! I have great news! If you think you have been doing this then you were just going to keep failing anyways! The ONLY thing to do is pause your desires now and really really reflect. What do you want to do? What are you afraid of that stops you from doing it. If you do not find fear there then you aren’t looking deep enough. This shit is difficult and is the reason that meditation provides clarity. You realize these things absolutely ONLY ONLY from self reflection. Failure is anxiety and makes it hard to relax enough to enable self reflection. Many many people follow this cycle to their grave. Keep yourself so busy you never find how to live. You never do what you desire and you find that in the end, dreams don’t come true.

The one and only way to prevent this is meditation. Really think about what this means, our brains are a series of neurons. So many connections they outnumber the stars. That is an incredible amount of data flow. Meditation is a process of data validation. Our emotions are powerful things but they are filthy lying bastards too. You can feel so strongly about stupid stupid things. Your emotions will betray truth IF you let them. This is how perfectionism keeps you from acting. Your emotions keep you from looking further, it feels weird and uncomfortable. The goal with meditation is to put all external stresses out of your mind. You MUST do this because the moment you try to go digging you are going to want to RUN. Any external influence your mind will use to take you out of the emotional task. You must be patient and seek complete calmness. Otherwise your mind will happily use the stimulus to avoid what you are trying to accomplish.

I have post traumatic stress disorder. I have come to learn that living with the condition from a young age I was tipped off to these concepts. I have been forced to learn to meditate because what I experience is so overwhelming I become paralyzed. Left isolated and confused all I could do was reflect on these things. I believe the only reason I have not followed through with another suicide attempt is due to meditation. If I have any hope in this world it’s that through self analysis and calm emotional awareness I can move forward. I don’t think these concepts are intuitive and I want to try and help others to self reflect more.

The best meditation guide I have found are Chakras. I originally was exposed to them through their mention in Avatar. Which sounds funny I know but they are sneaky about it. They drop in this amazing knowledge bomb while disguising it as entertainment. It’s not their work of course. Chakras are ancient things. Now some of you may be wanting to check our right now. I don’t like “auras” or stuff like that either. I’m not talking about Chakras as a meta physical concept. I’ve come to think of them more as mental debugging. The 7 chakra points are 7 specific emotional issues that humans experience. All the other spiritual stuff I want to leave behind and talk about the concept of these Chakras.

Avatars Guide To Chakras. Some of the stuff is specific to the show… “the avatar state” for example. We could consider the avatar state to be our not encumbered by perfectionism state.

Perfectionism is Fear

The first Chakra is fear. Fear is the root of perfectionism. It is literally being too afraid of failure to proceed with even trying. You place a perfect ideal for your action as a way to excuse your behavior. You must accept that you will fail. There is no other option but failure. You can only proceed by accepting the reality that you will fail and that is OK! You cannot be too afraid to continue if you are going to begin at all!

There is something in your life that makes you afraid of failure. Something along your path has convinced you that failure itself is bad. It’s not, it is the only way to do things. You can only get over this fear by accepting it. It will not go as you plan but you will get there if you begin!

That’s why it’s the first Chakra, you can’t even begin if you are immobilized by fear. DO SOMETHING! DO IT DO IT! JUST DO WHATEVER IT IS YOU WANT. DO IT POORLY! JUST START!

Do you want to make games? Find the simplest thing you can do that is a game. Start with whatever you have available and make a damn game. Do grab some damn rocks and string and make some rules with gameplay. Start making games and you will figure it out. You just need to let go of your fear of producing something you won’t like and accept that you will learn only through failure.

It may feel like you are far from your goal, but you also have never been closer. Imagine, this is the day it actually begins. Today you made your first painting! Today you wrote your first short story. Stop holding yourself back. Reflect on what your fear of failure is and let it go. Our society teaches us to fear failure through grades and other metrics. But being wrong feels exactly like being right. It’s finding out we are wrong that hurts. You must learn to accept the little bit of pain that comes with failure. It does not mean you are bad, even if you are… you are only going to get better by failing a little further next time. You want to be able to tell if the test is wrong, not if you get it wrong on the test.

I want to live in a world where people are not afraid to try something, where they feel they can. I don’t know who you are but if you are reading this I want you to succeed. I want this to be the moment you begin reflecting on what is holding you back. I want to make myself available to anyone who wants to start. email be at or put anything infront of really. I don’t know what I can do to help but if you don’t know either maybe we can figure it out together.

Perfectionism is not the desire to produce quality. Perfectionism is a rationalization in response to fear. Instead of accepting fear of failure we create reasons for our task to be impossible. Recognize when you are doing this. We all do it at some point. Use meditation to identify the emotional cause of the fear. What are you afraid of confirming to yourself? Realize that it is impossible for one thing to define you. That it’s the culmination of your actions that really matters. By letting fear guide your behavior you are preventing yourself from accomplishing your actual desires. What your culmination of actions will amount to is… not much because you never tried. Failure is not only an option… it’s the only option.

Response to “Voting is a Waste of Time”

It is a waste of time and that’s what is so tragic about it.
Apathy is not the fault of the apathetic. Apathy is a response to a system that cannot be effected in a meaningful way.
A large crux of this issue is we don’t have terms and concepts to really understand what is happening. If you have a system of moving parts that interact with each other… there are certain rules about that. It’s strange but there are fundamental concepts that arise when you increase somethings complexity. The weirder thing is that it doesn’t matter the particulars about how a system is moving, just that it is and has reached sufficient complexity. What I mean is water isn’t really water until enough of it is gathered together. The difference conceptually between a half dozen water molecules and a half trillion is immense.
This is all very abstract I know but its really part of why voting is so damn worthless. It is simply not a sufficient means of participation, the entire reason we vote representatives in is because at the time of creation there was no feasible way to get all interested parties together to cooperate. I mean logistically it would have been insane with the technology to even fathom doing it any other way.
Representatives worked when we were much less connected and much much smaller. The issue with representatives is not that they wield their power poorly. There is way too much fucking power. The average citizen has never been so worthless. Human labour is barely worth anything. Our governments are bigger and represent a larger number of people than ever before.
Voting worked when the orders of magnitude were lower. There was good reasons to implement it at the time. Take a step back and try and see history through a lens that recognizes nations as very new and not overly tested. Why do we have the current economic system we do? Because 500 years ago the resource and technological stage was set for insane expansion. The first nations to tap those undiscovered powers had an entire planet to try and conquer. The exact size wasn’t known. We like to think of story as this narrative, that the glorious or horrifying english sailed around purposefully conquering the planet. However they were merely the eventual biggest ones to stumble successfully onto the right combination of actions to fit their environment. They didn’t come to dominate the world with anymore purpose than the shark species chose to dominate the ocean niche.
So our current way of existing has a lot more to do with how a bunch of apes with new boom sticks and choo choo boats acted, and a lot less to do with science or rational thinking. Nation states are a concept born out of a time where various interested parties were zipping around trying to secure resources for very rich people. They have never ever ever been about people gathered together for each other, that has simply happened because its what people do.
So the entire system is a waste of time for representation. As a design its fucking hilarious, if it didn’t control my life I would swear it couldn’t maintain itself… which it can’t in the long run, nothing can. I do believe we are actually witnessing the death throws of some of these concepts. Again not because of the concepts themselves but how they fit in the greater workings, they do not work with the new niches that are emerging. The world is no longer a disconnected wilderness where you can pay top dollar to bully for new territory, territory stopped trading hands majorly long ago. Then it was about economics and abstract concepts. Now in the connected world we live in, its much much harder to hate someone from another country when you can play starcraft with them. What’s the point to war if it does not change territory, ideologies, or economies? I haven’t heard of a war that does anything but destroy those things for a long time. Prior to the world wars but that was prior to the second stage of nationalism as well. (I think the world wars have more to do with todays economic climate than we discuss)
The term democracy is meaningless. If a term can mean anything it also means nothing. So lets not view our collection of people through that lens. Lets ask ourselves if people can have an effect on their lives and the lives of those around them. Is a communities immediate surroundings more controlled by them or by groups of people miles away? Can someone who may be unskilled but willing, able to participate in some meaningful manner (accounting for socio economic barriers)? Over and over I cannot see a way in which people can participate in the country democratically.
Voting does not make a difference because it cannot make a difference, the rules have changed and we have not kept up with it “democratically”. Every Canadian except those at the top should be very interested in having a conversation about moving well beyond our current government setup.
The size of this system makes it absolutely impossible to police using conventional means. No watch dog group or privacy advocates will ever be able to shine enough light. Then the issue is made worst by obfuscation, the tendency for people with exclusive information to obscure that information so that their own value is increased relative to the information. Corruption is caused by a lack of transparency, the size of the system ensures that within the system there cannot be transparency because the system cannot support it. It’s a paradox, you could never pay for the amount of transparency in a capital system to keep it from becoming corrupt. Because as you pay for things you introduce money into the system, the money itself is the system so the act of enforcing transparency makes it less transparent. Because the lack of transparency comes from issues with the size of the system so increasing the system makes it worst.
Since I’ve written all of this out I’ll give an off the cuff method of maintaining privacy that could actually work in this technological market. There needs to be a system that has complete transparency, which up until recently has been absolutely impossible. Now however we have the internet, giving all of us access to one source of information. Think wikipedia, human knowledge with one consistent source. I’m sure you’ve already spotted a flaw. If you ran a government where any citizen could participate, how could you prevent power users and coalitions from not just taking over, changing things and controlling the servers to cover it up. The one difference it would need beyond wikipedia is a backup policy. Everything that is done is recorded as per usual, however any citizen can also download a current copy of the data. Meaning that no one can ever be quite sure who has what data from what days. If you tried to do something and cover it up there would be no way to ensure that someone, somewhere did not have a previous version. It’s not free from abuse but the transparency is a different concept entirely.
We have the ability to do it now, yet we don’t. We don’t because before we were born something was set in motion and it has just kept going. Help make that change, stop voting and stop thinking that people who don’t vote are doing something morally wrong. Voting is consent, it sends the message that you believe on some level change can come from this system. It absolutely cannot for the reasons I listed above. Therefore the better choice is to join in the silent majority who already know what bullshit all of this is. We cannot make change while we cling to the status quo.
TL;DR Voting might not be so hot for complicated reasons, sorry for the word vomit.

A Response to “It’s always going to be who you know”

I understand the dismay but might if I may use your comment as a baseboard for a thought on frame of mind.

We work by association. We don’t remember memories by looking them up in a catalog. We can only access memories via association. Something has to prompt us.
Now this is why I want to bring up frame of mind because I in no way disagree who you know is important.

Instead I want to address how crucial it is to believe that it isn’t always going to be this way.

If we have the thoughts that things are stuck then we wind up only thinking about things in a frame of mind where they are hopeless. You can’t honestly see a future where it changes if you honestly believe that it will always be that way.

And so paradoxically, you wind up ensuring that you work towards the very future you fear. You adjust your plans for a world that cannot change and ensure that you live in a world that cannot change.

If you can imagine a world that is far more free and open then you can plan on how to get there. Finding the steps needed so that “It’s always going to be who you know” becomes “It doesn’t have to be, it’s who you know”.

I try not to be negative like this without backing it up and I hope I can present a realistic idea that makes it seem like it can be more than who you know.
How many people are in this sub? 20k? That is a number 4 times larger than my home town. That is a lot of people and we are all here. We talk a lot about minimum incomes in this sub so what’s stopping us from grouping together? We could organize even internally here and come up with minor money making ventures. However instead of doing it for individual profit we pool the income into a public fund. From that we can distribute a minimum income to anyone who wants it.

Maybe we are all broke as shit, we could start our own crypto currency or use an existing one as well. The boundaries of organization shouldn’t be limited to geography now that we have the internet. Completely independent of what is already established we can organize and provide outside that.

So you might be asking yourself. “Why is he still writing?”. Because attitude is so so so important. Maybe my idea is stupid, that’s not the point. The point is that its a vision of a system that does not require you to have intimate connections to be a part of something that has a purpose.

We don’t have to be lost. We can stop at anytime and look around ourselves, see what is happening and find ourselves. We just need to be able to imagine a future that its possible.

Getting into Unity

Hey Guys,

This is part one of a series on learning to make games with Unity. I will be attempting to put this through to an intermediate level. In order to understand this guide I will expect that you understand fairly advanced operating system ideas. Like I should be able to tell you to install something somewhere and through your own knowledge / Google find out how. As well I will assume you are somewhat familiar with what a game is and why one would make one. Unity is a very powerful tool for developers and artists a like. You will not need either skills for this tutorial but again you need to know what a developer does and what an artist does. I will show you how both can use unity as well. Giving an overview of the graphic components and scripting components.

Gettin Unity Installed

First things first is we gotta get unity installed. Go to that link and grab unity. Start the download now because it is massive.

In a weeks time when you have it finished we can begin ;). Go through the install setup, putting it anywhere you want I’m not aware of it being overly picky like some programs can be.

Creating A Project

Once this is done we will need to begin. So now we need to create a project. When you first open unity it will present you with the unity Project Create Wizard. Go to the “Create New Project” tab and you will see a project location text box. This is the place for your new game and the title of the project will be based on what is put in at the end. Replace “New Unity Project” with your working title.

Creato Project

Next there is a big intimidating box of check boxes we can totally ignore for now.

Ok defaults, I’m gonna level with you and say I work in 2D almost exclusively. Its almost purely because 3D is more complicated. Why is it more complicated? Orders of magnitude. Any concept in a 2D environment will be limited to 2 dimensions. Which is x * y. When you add the third dimension you add an order of magnitude to the concept of the game. This is not bad but just conceptually harder. When trying to do the math on games I get frustrated easily so I stick to 2 dimensions because I can literally picture it better. So you can go either or but I’m going to stick to 2D for the tutorial. The differences are minor though and if you go with 3D it should mostly be the same.

Anyways hit create project and it should g-g-go.

You will be presented with unity. Maybe some pop up, I can’t remember but make it go away and get to the program.

What is a “Scene”. Unity first look

This is the main hub of making the game but you should not think you are looking at a pulled out view of your game. Unity breaks things up into “scenes” which are isolated areas of game play. At no point in unity are you pulled out to look at how all the scenes fit together. Instead unity is like a scene editor and when you finish one you can direct it over to the next one.

So very early on you want to start thinking about your game in this structure, because if you are going to do it in unity then that’s how its broken up.

What this allows us to do is to group things into concepts in the game. So you might have a scene for your opening credit and splash shit. Then a scene for the intro. Then a scene for the main menu, then from there branching into other scenes as the player picks them.

You may have 6-8 scenes in a game and 1 of them is just way way bigger because its most of the game.

In order to work well with a development environment you need to make your designs match the designs of the environment. This is why I am stressing scenes now, if you do not design your game with scenes in mind then it will be confusing when you need to work within that structure. Plus you may try and do concepts (switching game states) that are just so much better done with scenes. Anytime the entire gameplay method changes its probably a scene change.

Gameobjects and Prefabs


The second thing to keep in mind with unity is that it works with an Object component model. If you are familiar with object oriented programming I would like to make a mention here. If you aren’t skip to the next paragraph because this may just complicated things for you. OOP is about hierarchies and inheritance. Objects only gain functionality because they have it or their parents have it. So you design things by abstracting them out to their base classes and adding functionality as it becomes less and less abstract. Animal, to mammal, to ape, to human kinda idea. Now unity uses a slightly different model and if you go in thinking oop you are gonna be like… oops (OMFG HAHAHAHAHAHAHA). The component model means that every “object” is just a shell of a very basic function. I’ll explain more later about it but the gameobject can be viewed like a gameobject base class. Its the thing that is also everything deep down. You don’t create your structure from inheritance though. Instead you give it a component. So instead of a dog getting the ability to bark because its parent class has the function “make sound”. You would create a component (script most likely) that would play another component (an audio source). The sound is then an argument to be filled in later. So if you wanted to make an “animal” class so you could have cats, dogs, sheep, cows. All with similar attributes but different sounds you could make an “animal” component that would give them a basic set of data. It could call the “make sound” component too though so each animal would walk around the same but make their different noises. Additionally its easy to adapt for a lack of component and if we had a “rabbit” object that had an animal component and no make sound component its easy to adapt for that by doing a small check at some point. So instead of thinking of things like a tree think of it like a power bar. You can really plug things in freely and create this crazy components. Its a bit of a wild west I would think if you don’t maintain some sort of personal organization, far less structured then oop and you have to keep that in mind.

Ok so I’m going to try and explain at a fairly high level what the basic structure for unity is. Like what you are “making” to make the game. In Unity there are scenes as I have explained before. Scenes are like universes. Inside each universe is its own collection of physics and objects. The objects in unity are called gameobjects. All of the game objects for the scene show up in a menu called the “hierarchy”. This is how the objects are organized, this is done in a nested structure. Like how folders are nested. Each gameobject has something called the “transform” which is a representation of its place in space. So the position, scale and rotation. These gameobjects and space nest properly. Nesting is done with parents. So a gameobject with a parent will move with their parent, scale with their parent and rotate with their parent. Later on it becomes important for all sorts of things. However we know that game objects need to be structured like this so I will try and show you how to mentally visualize your game as gameobjects.

Gameobjects allow structure to be enforced on the objects in your universe. So if you have a spaceship with a gun but want to change the gun then you need 2 objects. The spaceship and the gun. The gun does not fly and is dependent on the spaceship for everything about where it is. So the spaceship owns the gun, otherwise when the ship moved the gun would just stay. Now we need the gun object because sometimes it might be a different type of gun, like you get an upgrade. Additionally the gun can have its own local rotation so it can move relative to the ship. So we need to know both the rotation of the ship and gun. If we only had the ship object then we would need to do a lot of complicated math to add a gun that you could aim independent of the ship. Unity allows you to set all of that up instantly by using the hierarchy like this. So if two objects move independent of each other they are likely not owned by each other. If one objects position is dependent on another then they are likely supposed to be parent/child. This of course is different than 2 objects causing each other to move because of physics as in a collision. We are trying to conceptualize our game as a hierarchy. You want objects that are independent of each other to not share immediate parents and then establish relationships for close knit objects. You may have a “world” object for instance that all enemies and players are children of. This makes sense if they all depend on the world. Try and find what order things should be owned. Body > Arm > Upper Arm > forearm > hand > finger etc etc. Each part is dependent on its position in the world by its parent and should be grouped as such.

Its also good to structure less physical things into the right gameobjects. You may need non visual concepts in your game as well. Something that keeps track of a score for instance. You need to house this code in a gameobject, it will have a position but its not really relevant. Still if things make sense to have a logical hierarchy it makes sense to structure it that way as well. When you delete a gameobject all of its children are deleted as well. So for modular design (which is generally awesome) we encourage always grouping things into nice hierarchies. It may be tempting to not but if you are strict about it then your objects have a lot of integrity which is proper and shit.


Prefabs are short hand for “prefabricated objects”. Once you have designed an object and added all of the components (discussed below). You can save it by dragging it from the hierarchy window to the project window. It will change color indicating it is no longer a scene gameobject but a prefab.

Prefabs can be based off of each other with different component variables. Maybe you have 2 enemies that look and act similar but slightly differemt. You can make them share all the same components and be identical except for the few changes they need. Since they share the same components there is still a relationship in similarity but you can also build structure by making prefabricated objects.


So that is almost all of the structure of a unity game we just have one thing left which is where the variety really comes in: Components.

You may notice that the structure of unity is pretty much just things inside things inside things inside things. Scenes are in your project and gameobjects are in your scenes and components are in your gameobjects!

Components describe what a gameobject is. You could add a camera component to it for instance and now your object is a basic object and a camera. If you wrote a script that made the position of the transform move up every frame then suddenly we would have a moving camera! Add a sprite renderer with a sprite of a ship and boom we got a ship with a camera attached. From there we could do the smart thing and make the camera another gameobject that has a script to track the ship.

The components are all of those different functions and I don’t wanna undersell how powerful this is. This makes it super easy to structure your game. Picture components like grammar for objects. The gameobject by itself is like a formless idea. You use components to express what it is. “It walks” because it has a movement component. “It looks like a bug” because it has a sprite renderer and with a bug sprite. “It gets squished” because it has a set of physical geometry that can be compared to other objects in the world, also because it has a health component that gets decreased upon the geometry being entered. Think about what your object does and figure out what components can be made to make it do that.

Its About Structure

Anytime you create anything you are going to need to work within the tools you are using. The paintbrush is not an obstacle standing between you and expressing your ideas clearer. It is only through proper understanding of tool selection that you can make the brush strokes you want. Learning how the components of your medium works and going with it instead of against it.

Unity will force you into things, it will make you structure your game in certain ways. These restrictions are the trade off for gaining the power that it has. So the very first thing anyone must do when wanting to use unity to create a game is adapt your games structure to how unity works. Try thinking about how you would implement classic games in this structure. Hell give it a shot. Try and break tetris down into unity. Even if you don’t write any code, or draw anything. Just think about how you would structure Tetris into scenes, prefabs and the components in them.

Once you know how to structure the game for unity its way less intimidating and frustrating to work with it. You understand how your tool works. If you approach painting for instance wanting to do all sorts of fancy things with one horse hair brush you will be frustrated. Sure maybe with enough work you can do it but there are different brushes for a reason, because what structure you put into the process is important. You can’t create something with a tool if you don’t understand how its supposed to accomplish what it was designed for.

Games in unity require you to turn your designs into a unity structure. Its not good or bad its just how we need to think about our designs to begin.

Divergent Thought and Paranoia

Well aren’t I popular lately? Anyways someone asked about a reddit post so I’m extracting it here for an external link. I believe it has enough context by itself

Weed increases divergent thought.

Divergent thought is the process that makes connections between concepts. So if I say “dog” there are things that immediately come to mind. With weed and other things that increase divergent thought, you literally come up with more things.

That is what is behind the paranoia. You are making more connections, which means more creativity. BUT it doesn’t mean those connections are valid. Paranoia is the result of those new connections instilling fear.

I’ve rarely had issues with even minor paranoia when smoking. I wondered about this for a long time. I have a mix of mental health issues. PTSD being one of them. The reason I don’t get paranoid when I smoke is because I am used to grounding myself. With mental health issues I regularly experience stimulus that isn’t “real”. I’ve had to learn to figure out what is myself exaggerating stimulus and what is actually real.

If you regularly experience paranoia here are some tips

Paranoia can be seen somewhat as being “triggered”. When I am triggered into something my mind is taken from me and I need to work on returning it to where I want it. When you are taken by paranoia your mind is going somewhere that you don’t want it to. The techniques I use to prevent myself from being triggered are the same techniques someone with paranoia issues can use to stay calm.

Grounding is the name of the technique. The concept is to bring yourself back to reality by focusing on what you know is real. Grounding objects can help, like in inception. Something that you personally know, something that ties you to something you know is real. Carry a marble that reminds you of your mother, when you start to get paranoid. Rub it, and think about what you know is real.

Touch a surface near by, close your eyes and concentrate on a sound that you understand like birds or water.
Your mind is running away from itself, it’s creating a false reality without your permission. You can’t simply will it to stop. You have to show it that the reality it is creating is wrong. That’s what grounding is. You reminding your brain what is real and what isn’t.

My biggest experience with smoking and paranoia was in the first year of smoking. I got incredibly high and suddenly got the idea that my heart had stopped beating. I was freaking out for about a minute when it occurred to me: “My heart COULD have stopped beating, or I am high and imagining it” and that was enough to calm me down, remembering I normally don’t control or feel my heart.

Let go of the ground and explore the cosmos. But when things get out of hand bring yourself back. Remind yourself what is real and what is not. Practice mental control and happy tripping.
Paranoia is caused by divergent thought, and can be helped with grounding techniques

The Invisible Finger of the Market

As I am want to do I wrote a novel on reddit, under a users suggestion I’m moving it here for blog type purposes

Some of the wisest words I ever heard were “The purpose of an activity, is the activity”. Its a very powerful phrase when you apply it to where you put your energy. Its something to remind you when they start talking about censoring the internet to keep people away from bad things for example. The purpose of censorship is censorship. If you believe censorship is bad then you can never use the activity as an end to a mean.

Its a razor that can be applied to any action or attempted action. Occupy itself falls under it. The purpose of occupying a space is to be there and simply occupy it. We can understand well what that accomplishes and what that doesn’t. I’m certainly not so naive as to say occupying public property has no effect. In this case the activity of occupation causes the sensation of being a spectacle. Before a bunch of people simply existed in a park for a cause people talked about inequality much less, we had fewer terms for these things in the common speech. Now simply because the activity of occupation actually was effective we have more awareness. Because occupying a space is something that people notice and thus the activity is aligned with the desired outcome.

However what we don’t have is an activity that moves equality forward. There are several reasons for this. Individual humans have never been so worthless. Think about how many of us there are vs how many it takes to produce. There is no inherent economic value to a person anymore. Not substantially at least. For a period of human history it was a thing to collect people because even against their will they had a lot of value. You rounded people up to add to your nation or religions numbers. Since the industrial revolution the value of human labor has been plummeting. Since the computer revolution human thought has been losing value as well. You used to be able to be paid for calculating things, you were actually called a “computer” because you computed. Being a software developer and having done automation I feel fairly educated on just how fucking worthless humans are going to be in a few years. I mean I can make a robot that does stroke research. That should terrify you because I was born a poor redneck that had a fucking outhouse on their home property. Sure it was out of use but my god. I’m not even 30 either, that is the pace of change and the state of education. You can be born into corn and make robots. So I don’t even know where kids born today will be with the pace of computing. Not just that but getting clever with it. I digress, the point is humans have 1 remaining economic usefulness.

We are the major consumers, people are the ones that buy things still. Even though it is pretty irrelevant how we come about our money. You need to find someone who you can tell the right lies to in order to get paid to consume. The psychology of it all smoothed out so you land in debt before your realize that you aren’t winning the game, you aren’t losing either. There are just a bunch of people running around pretty unsure of what they are doing but damnit they are gonna do it better than anyone else so they can live the sweet life. The existing status quo lumbering on just because it has so much momentum.

We only have economic value in our ability to consume correct? With current technology and knowledge we absolutely do not require the overhead of the current economic system. People speculating on crops that decide who starves where. Even though there is enough food for everyone the mechanisms of the economy do not allow it to reach the mouths of all of the hungry people. This is not due to anything other than the current economic involves “The invisible hand of the market” which is to say the whims of supply and demand. That shit comes from Adam Smith who died in 1790. The best example in the entire fucking universe of good economic design is life itself. That’s what ecology is, how organisms exchange units of energy. Its not different in any way abstractly from what we do. However we have not studied it a lot. Adam Smith died nearly a life time before Darwins Origin of the Species came out (1859). Which as we know revolutionized the way we look at life and led directly to our understanding of ecology. Through the lens of science we can now look at better examples of economic exchange. Showing that the invisible hand of the market is not that competent. That left to “natural” devices systems can centralize until they collapse. The collapse comes not because the organism destroys itself, instead the collapse comes when the entire rules of existing suddenly change and the old organisms cannot continue reproducing. Almost always this is in a state of stability and stagnation. Therefore the pattern to look for in bad economic design is the tendency to centralize. (Centralize may as well be the opposite of diversify)
In our current economy most organisms just consume. Sure we “produce” but most people are not doing things in the grand scheme of things that increase diversity. Instead more and more we have to assist in centralization. So we are essentially consuming resources and lowering diversity in the process.

We can no longer strike to get what we want. Humans have no economic power in their labor or their thought. We can’t fight either. When humans gained the ability to destroy each other it ruled real fighting out. No nation is ever again going to do classic terrain taking warfare. Its too dangerous because escalation is destruction. So even if occupy wanted to say raise an army (terrible idea) it would never work either. Not because people aren’t afraid to die but you just can’t convince people to go and kill as easily as in the past. (The Crusades are a great example of murder and conviction). So its really a good thing imo that warfare is off the table as a possibility of change. Social awareness is just that… social awareness. So standing around in a park will certainly get you noticed. But so what? How does that actually change anything? We don’t need more awareness. We need to limit power while empowering everyone.
I used to work maintaining debt collection software. I also worked for the insurance industry and even under former finance minister Jim Flaherty. I’m not just against corporate and government practices because its in vogue. I voted for Stephen Harper in 2006 for goodness sakes. I really bought conservative ideas. I actually had easy time finding work in 2008 (debt collection software) and still have one of the human skills that are relevant (for now). I’ve come to all of this because as a software developer my job is abstract system analysis. I can’t help but do social debugging.

I’ve been thinking about it since occupy and I think I have an idea of something we could do to collectively still have power. It wouldn’t be something you could attack because it wouldn’t really exist. It wouldn’t be something you could disband because it would have no central organization. It wouldn’t be about revoking labor or threatening violence. Those are also useless. Instead it would rely on the one thing we all seem to have no problems with: debt.
It works on the principal that the economy is simply a relic of our ancestors that has now been appropriated by clever people to use for their own massive massive gain. It does not in fact do what it says on the tin. Dead dove do eat. The one thing we have left is our ability or lack there of to consume. The corporations and global finance sector all are fed by the economy. The economy is like the water cycle, moving around in a pattern keeping things going. It doesn’t work anymore for most and I honestly believe the ensuing “drought” is killing people. Every problem I analyze the biggest issue comes down to powerful companies maintaining the status quo.

So if the economy only serves the elite then why bother with it at all? What if we blew up the current economic model so spectacularly that it couldn’t function anymore? We can’t stop the corporations but we still can hold debt. Companies currently are banking on this to continue the shell game. We might not be dealt very good cards but we can force the game. Since 2008 the response to the economic crisis has been to go back to school. In this time tuition has skyrocketed as a response to the even greater influx of money. Student debt is now massive. We can never hope to stop everyone from buying things, or from not going to work. But what if we convinced everyone to stop paying their loans? The beauty of it is that we wouldn’t need everyone. Just enough, maybe 15% of current loan holders agree on a date. Knowing full well that there will be a fucking reaction but thats the point, there is no way with all of the other problems going on that they could respond. A mass debt strike.

Like a giant tied up in its own red tape. All we need to do is get it to try and swat at us and it will all come tumbling down. By organizing a mass default we end the economy and save lives. It breaks the status quo and that is the biggest problem right now.

Maybe its not a good idea and reoccupying could be a thing. But if the purpose of the activity is the activity then organizing a mass non paying seems like a great way to stop a bunch of thieves from taking money.


Anxious anxiety angrily asking me why I don’t just go to sleep.

Over and on to me, ever the wandering close your eyes and sleep.

Still its worstening, pulse quick, trick, slick, pick bic, rip.

Into the maddening ever the saddening go the fuck to sleep.

12 hours on, still going strong, droopy eyelids already adrift.

Sleep ceasing, dreams being, nightmares still awake.

Into the after, I slather the laughter unto the crease of my brain.

Crushing and cracking, continues the racking, history come to claim.

Fuck your society and the audacity of continuing being alive;

Muck stuck crystal palace, comes up, over, malice.

Seeing the dawning over the yawning, WHY AREN’T YOU IN BED!