• Category Archives Miscellaneous
  • Procedurally generated awesomeness

    Have you heard about No Man’s Sky? Currently in development at Hello Games, it is an exploration game involving space travel between colorful worlds. Players will be able to travel between and explore different planets, solar systems, and galaxies within an infinite universe. There will be countless creatures and terrains to discover and explore. The possibilities within this game are theoretically infinite.

    Sounds impossible, doesn’t it? Creating a space exploration game would traditionally involve imagining, coding, and designing every star, planet, creature, and everything in between. The possibilities within the game would be limited by the imagination, time, and budget of the development team. So, what makes No Man’s Sky different? Procedural generation. I’ll embed an IGN video interview with Sean Murray, Founder of Hello Games, in which he discusses the technology that makes this infinite universe possible. The short of it is that they have developed an algorithm that creates the universe using mathematics. Rather than creating each planet and creature individually, they have developed base assets that the game draws from and morphs into seemingly infinite variants.

    The possibilities of this excite me to no end. I recall my brother and me playing Star Trek: The Next Generation – A Final Unity on our Windows 95 PC back in the 90’s. That game gave the player free will in terms of what destinations to set for the Enterprise. However, these destinations had no gameplay behind them unless they were connected to the main story. I remember understanding then that it was limited by what the developers could program into the game and wondered at the possibility of going beyond this limitation.  I wanted so badly for each of those random new worlds to which I traveled to offer a new and unexpected adventures and alien races. It looks like twenty years later, No Man’s Sky is going to offer that!

    I am left wondering what else this means for the advancement of game design. Clearly, levels and worlds can be left to the system to generate according to the rules set. No Man’s Sky has even found a way to alter and mutate creature design so that artists do not have to design 1,000’s of individual creatures. Is it possible procedural generation (or a process like it) could advance to a point where designers provide even smaller building blocks (think atoms), and the system practically generates the art (according to the rules set, of course)? Even more of a challenge: could procedural generation move beyond level and creature design and revitalize the stories and AI we encounter in our games? That may be a “square peg in a round hole” -type of issue, so who knows what innovations in game design will bring. All I know is I am eager to see what comes and extremely excited to experience the seemingly endless possibilities of No Man’s Sky.

  • Hearthstone – delaying the victory

    I recently started playing Hearthstone and have really enjoyed it. I had avoided the game for quite some time because I used to get a little too obsessive about Magic: The Gathering, and really did not want to devote all my limited game time to it. However, when it came to mobile, I decided to give it a shot because then I could play it in those odd moments when I have 15 minutes to spare but I am not on my PC (or even home).

    I have really enjoyed playing the game. I will admit that I am not good, often losing more games than I win. However, it is all those losses that has led me to an interesting and curious observation. I noticed that my opponents often delay inflicting lethal damage. Often they will play some unnecessary spells and minions, or throw out some complex combo. This happens frequently enough that I am left wondering why.

    The “benefit of the doubt” answer is a situation I have experienced myself: they simply did not realize they had lethal on the board. I have had a couple instances in which I got too focused on the strategy and took a defensive maneuver before realizing the offensive kills shot was available. I have also miscounted the damage I had available. My funniest experience I to date is an opponent who clearly had the upper hand and had lethal damage in play, when including the hunter’s hero power. However, they spent all mana on new minions, leaving me with one health. On the next turn, I was able to buff my remaining minion to lethal and won the game. I really think this individual got too excited about what they had available, or miscounted mana.

    However, this seems to happen all too often to be nothing but simple mistakes. Take a match I just finished for instance. I did all I could, but had to end my turn in a checkmate situation. I had 7 life remaining with no taunt minions on the board. My opponent had an 8/8 and one other minion on the board. It was obvious one quick hit with the 8/8 would end the match, but my opponent instead hit with the other minion for 3 damage, cast a spell that damaged all minions, wiping away one from each side and leaving us each with one, and then cast Power Overwhelming on the 8/8 minion to hit me with 12 for a 8 damage overkill. So, why go to all the extra trouble? Was my opponent trying to fulfill a daily quest for spells cast or damage dealt? Or, were they trying to rub in the victory? While I don’t want to assume the worst, I would also note only about half of those that take these extra steps respond to my “Well Played” in kind.

    I may never know why other players prolong an obvious victory, but it certainly is a curious thing. I know the obvious way to avoid this is to just concede when the game is lost, but if it is a close match I like to stick it out for the tiny possibility they will screw up and fail to make the killing blow. Honestly, there is no harm done; the match takes an extra minute or two is all. More than anything, this is just a curious observation of a behavioral “meta” I have noticed in my short couple months in the game.


  • Fear of Embarrassing Failure – The Anxiety of Being Bad at a Game

    I love multiplayer games. They add an element you just don’t get from the singleplayer campaigns – human thought. Developers are constantly working to make artificial intelligence within their games more human-like to make singleplayer modes more compelling, but they never quite have that full sense of competition and unexpected tactics and interactions you will see in a multiplayer setting. Nevermind game elements that require real interaction, such as strategic diplomacy or team cooperation; AI simply cannot imitate the feeling you get working with other gamers in these ways.

    Despite my enjoyment of multiplayer, I find I do not play it all that often, and when I do, I barely get the multiplayer for all its worth. I find this is especially true in team-based games such as Battlefield or Insurgency. It used to be that I would only play Battlefield if a close friend was playing as well. It was not until I became significantly more comfortable with the game that I would play solo, and even then I don’t initiate interaction with squadmates, I follow the lead of others, and I don’t stray beyond my comfort zone for modes, loadouts, etc. I think Insurgency is a really high-quality game, but I cannot bring myself to jump into it alone.

    I blamed it all on my social anxiety and decided it is what it is: I still have fun playing and that’s all I need. However, it still bugged me, especially as I realized that some things about it made no sense. Of course, anxiety as a whole rarely makes complete sense in that we know deep down there is no real harm to fear, but it still persists. Why would I be socially anxious playing a game online? No one can see my face. I am using my gamer handle rather than my real name, so no one really knows me personally. My anxiety is usually at its worst when I am in a crowded room of people I don’t know and may not share interest with (think business mixer). However, in a gaming environment, it’s a virtual room full of gamers there to play a game. Clearly, we all have a shared interest. So, why so anxious?

    I have come to realize that much of this anxiety comes from a fear of failure and therefore a fear of embarrassing myself. I avoid playing games I will enjoy. I avoid making new friends. I avoid having new experiences and learning new things. I avoid becoming better. I avoid all these things because I am anxious about sucking at a game. I am anxious despite not truly caring how good I am (I just want to have fun). I am anxious despite knowing we all start  as noobs. I am anxious despite knowing it is just a game. I am anxious despite knowing the only way to get better or have any fun with the game is to play. Sure, there are valid reasons for anxiety, such as the vitriol found within many gaming communities, but negative experiences would be outweighed by the positive, you would hope (have found this is not always the case, which has exacerbated the issue at times).

    I am sure I could spend quite a bit of time doing some psychological analysis to determine if this is all due to some adolescent experiences or something like that, but I am sure speculation will get nowhere. In the end, I come back to, “it is what it is.” Sure, I will keep pushing myself, but I know it will always be there.

    I am not sure what my end goal was in writing this. Maybe it was to share my thought process on the subject, or maybe I figured it would be therapeutic. Perhaps someone else not sure why they are uncomfortable in a multiplayer game will stumble across this and have an epiphany. All I can say is I have found multiplayer gaming easier to do with friends because they help you see past the anxiety (at least when they support you rather than making you feel judged about your skills), but it is also more fun that way because it is usually a higher-quality interaction. Even so, there is still A LOT of quality single-player out there, so don’t fret either way you go.

    Oh, and if you see me out there, feel free to say hi. Receiving interaction from others usually reduces the anxiety quite a bit.

  • DIY PC desk – build log

    Over the course of the past week, I built myself a new PC gaming desk. I sold my old desk before we moved, having anticipated moving to a new state rather than across town. Needless to say, I found myself unable to game with nowhere to set up my PC. Having felt rather handy with all the home improvements I have been doing, I decided a DIY PC desk would be the way to go.


    I started brainstorming and sketching, trying to come up with something unique with an industrial/modern flair. I tried to sketch out some really weird leg shapes and decided nothing would really look the way I wanted AND be a properly supported structure. Eventually, I happened across a post on Reddit (I believe) that lead me to an Imgur album of a desk made using black iron pipe that turned out to be my inspiration. After a little searching online, I decided to aim for a standard dimension desk: 60 inches wide, 30 inches deep, and 30 inches tall. I was in the process of refinishing my laminate countertops using Ardex Feather Finish to give them a concrete look and decided a (faux) concrete desk would be the perfect industrial look. I also decided to suspend the PC shelf with cables for that modern feel.


    Feather Finish

    My girlfriend and I found the idea to do a faux-concrete finish (I call it faux because it is not a traditional poured slab of concrete, though it is technically a concrete product) over our ugly almond-colored laminate countertops in the kitchen after happening across a how-to on the Young House Love blog. I learned a lot from the process and decided to use my leftovers to make my desk.

    The finish is done using Ardex Feather Finish (Henry Feather Finish if you get it at Home Depot) and skim coating the surface a few times. The process is simple, but requires a lot of hard work: mix a small batch and coat, allow to dry, sand, repeat. Feather Finish is fairly easy to work with, though it sets up fast, so you have to work in small batches at a reasonably quick pace (though you don’t have to rush). It creates a very natural light gray concrete finish. If you want it any other color, know that Feather Finish does not accept stain well (it just sits on top and no longer looks like concrete), so it must be mixed in when you prep the concrete. Feather Finish is mixed at roughly 2 parts mix to 1 part water (I usually go a little over 1; maybe 1 1/4 parts), and I eyeball the amount of stain I add (variations between coats helped the overall look, in my opinion).

    I created the desk top by gluing and screwing together a couple pieces of 1/2-inch plywood cut to 60 inches by 30 inches. I also cut my PC and monitor shelves to coat. I did the first two coats of Feather Finish using a wide putty knife (6 inch, I think) for a thicker coat, so I mixed a bit more for these batches; probably around 16 ounces of Feather Finish, 10 ounces of water, and 1-2 ounces of stain (I used a dark slate gray stain). With the first coat, I found it rather difficult to coat the sides cleanly with a putty knife, so I switched to a paint brush for the sides on the second coat.

    DIY computer desk Feather Finish second coat
    Sanding the second coat

    After each of the coats dried, I smoothed out the uneven and rough patches using 120 grit sandpaper on an orbital sander. This creates a lot of fine dust, so a mask is necessary. My goal was not a perfectly smooth finish, as the differences between the highly sanded and lightly sanded portions is part of what makes this look the way it does.

    Faux concrete desk 2nd coat sanded
    2nd coat after sanding
    Feather Finish close-up
    Close-up after sanding with 120 grit

    I mixed the batch for the third coat of Feather Finish using approximately half the quantity of mix, but with a little extra (proportionally) of water to make it a hint thinner. I did this because the third and final coat was meant to be my thin aesthetic coat, and a thinner mix made it a little easier to apply that way. After the third coat, I skipped the 120 grit sandpaper and went straight to the 320 grit for a very smooth to the touch finish. Of course, I went through sheets fast because I didn’t knock down the really rough stuff with a rougher grit first, but I was afraid of sanding through my thin coat. This gave it a nice smooth finish, but left some color variegation from my brush strokes.

    Feather Finish final coat
    Final finish with brush strokes

    SealersTo provide a general protection from spills and stains, I gave the desk two coats of 511 Impregnator and one undiluted coat of V-Seal TK6 Nanocoat X-tra Low Gloss. The 511 soaks in and provides resistance to liquid penetration from within, while the TK6 does a bit of that, as well as forming a thin layer to help protect from scratches. For my kitchen counters, I followed the TK6 instructions and did two coats, the first one being slightly diluted. However, this desk is not expected to see the same type of use or risk for acidic stains and such. I also passed on using a wax to protect the sealers like I am using in the kitchen. I applied both of these using a small dense foam roller. I did it in the backyard, so the layer created by the TK6 has little bits of stuff dropped by the trees above stuck in it, but it’s pretty minor and I just consider it character.


    I built the “skeleton” of the desk using 3/4 inch black iron pipe. My brother works for a plumbing and HVAC supplier in town, so I was able to get everything for a decent price. It would have cost at least double for me to pick up these supplies at a big-box store. My final parts list for this was:Black Pipe parts laid out

    • Round floor flanges – 16
    • T-fittings – 8
    • Elbows – 4
    • 4-inch pipe – 8
    • 6-inch pipe – 2
    • 8-inch pipe – 2
    • 10-inch pipe – 4
    • 12-inch pipe – 4
    • 24-inch pipe – 4

    Spray-painted pipe

    I spray-painted the pipe a flat black to give them a more even and consistent color. As you can see in the previous image, the floor flanges, t-fittings, and elbows are a lighter color than the pipe. Because I was hurrying a bit, I did not take the time to clean the pipe. Some of it was a bit greasy, and many had tape around the middle to secure part numbers, which left a lot of adhesive. Leaving all this on messed the paint finish up a bit, especially when I started piecing it together before the paint had fully cured, but I decided to go with it…for character. 🙂

    I figured legs of black pipe would be heavy and unwieldy, so I assembled them in the office where desk was going. Assembling the legs was as simple as screwing it all together, at least once I remembered what my plan was because I seemed to have lost my sketch. I found that I frequently over-tightened the pipe, which made it difficult, if not impossible in some cases, to unscrew slightly when adjustments were needed.

    Black pipe legs assembled
    Black pipe legs assembled (upside-down)

    Black pipe and concrete desk partsOnce the legs were assembled, I brought in the desk top and shelves and placed the desk top top-down so I could set the legs in place. I then measured the leg lengths and screwed/unscrewed as necessary to get them all to roughly the same length. I found at this point that I had over-estimated how much pipe length I would lose when the parts were screwed together, or perhaps I had under-estimated the length of the t-fittings. Either way, the desk height came out to approximately 31 1/2 inches, rather than the 30 I had planned, which is taking a little getting used to, but it is not the end of the world (probably just poor ergonomics).

    Once the legs were positioned, measured and adjusted, and screwed in place, I flipped the desk and mounted the monitor stand on top. I made the monitor stand using the 6-inch pipe, which combined with the extra 1 1/2-inch height of the desk, made for a rather high monitor position. Though these images show the raised monitor stand, my current set-up has the black pipe removed and the shelf sitting directly on the desk for a little 1-inch boost. The 6-inch pipe was poor judgement; I should have only used 2-inch, though screwing on the flanges may have been impossible in that case, so I am still considering my options for the final iteration of the monitor shelf.

    My last step before set-up was to suspend the PC shelf. I attached eye screws to the underside of the desk and the top of the shelf and then looped the wire through and secured with a ferrule. It was a bit of a challenge to get reasonably level, but not too bad. Then, I breathed a satisfied sigh of relief as I stepped back and admired the finished product (“yeah, I know I need to get a good set of wire cutters to trim off that excess,” I said to the judgmental cat).

    DIY black pipe and concrete deskDIY PC deskAnd here it is all set up with my (unintentionally) Iron Man-esque PC case:

    DIY PC Desk - Finished

    So, there you have it: my DIY computer desk! If you have any questions about the process or want more on using Ardex Feather Finish, just let me know in the comments below, or contact me on Twitter.