DeadlyBrad42

1
New version of BradMason.net I (finally) cleaned up my webpage for what has basically become version 4.1!
I looked back on my old post about the previous version, and while some things didn’t change so much (particularly the left column), pretty much...

New version of BradMason.net

I (finally) cleaned up my webpage for what has basically become version 4.1!

I looked back on my old post about the previous version, and while some things didn’t change so much (particularly the left column), pretty much everything else has been re-written from the ground up.

Some of the highlights are:

  • Newly-styled Projects and Games pages. The lists are nicer to look at and the animation is simple and interesting.
  • I improved rendering glitches in animations (as much as I could) throughout the site. It still seems (at least on Windows) that many webbrowers aren’t great at handling animations smoothly (I’m especially looking at you, Firefox).
  • I built my own little libraries for handling the single-page stuff, like routing and displaying content, since I’m pretty sure the Sammy.js project is dead.
  • Rather than serving static HTML, I’m using a JSON object to populate the data into Vue objects. This makes the code more re-usable, and saves me from human-errors while updating the content.
  • I also wrote a quick Express server running on Node.js. Paired with Azure for hosting, this let me set up automatic deployments for quick and easy updates.

So there you have it. Now that that’s done, I can get back to working on gamestuff!

1
I’ve recently did some customizations on my Powershell prompt. While there’s still more changes I can do, so far it’s been a great improvement over Powershell’s defaults (It was originally gray text on a blue-screen-of-death-looking blue... I’ve recently did some customizations on my Powershell prompt. While there’s still more changes I can do, so far it’s been a great improvement over Powershell’s defaults (It was originally gray text on a blue-screen-of-death-looking blue...

I’ve recently did some customizations on my Powershell prompt. While there’s still more changes I can do, so far it’s been a great improvement over Powershell’s defaults (It was originally gray text on a blue-screen-of-death-looking blue background!)

I added a “ribbon” above my commands to make them stand out a bit more amongst large amounts of text. I also added an information display that pops up whenever you’re in a directory with a git repository. So far it’s been super helpful, so I thought I’d share it here.

My full Powershell script can be found here, but if you just want the prompt changes from above I made a small gist with just those changes.

1

Hey guys! I kind of hate neglecting this blog (and all social media) so much that I’m forced to post an “I’m alive” post, but well, here we are.

I am alive! I’ve spent the last 5 or 6 months being super-busy with a large project at work with tight deadlines. I didn’t have a lot of free time, and any time that I had I was mostly too drained to get much done. So, long story short, I haven’t exactly been working on game development as much as I’d like.

But, there is a silver lining. We’re wrapping up our work over the next week or so, and during the holidays I’ll have a sweet, sweet couple of weeks off. I’m planning to throw together a game project over the break, and I’ll once again be updating this blog with half-finished pictures, gifs, videos, and words about the project. So, stay tuned!

downtheupstair:

hubbrad:

whenever i want to put a ¯\_(ツ)_/¯ in one of my posts i google “shrug emoji” and copy and paste it and i think the reality behind this process kind of undermines the whole blasé, “lmao, who cares? not me” feel i’m trying to add to these posts by adding my little ¯\_(ツ)_/¯ guy in the first place

every time

I built CopyPad a couple of years ago because I hated doing this all the time! I’m actually surprised at how long I’ve been using it.

(Source: dyke2watchout4)

2
Current state of “physics” in my platformer engine.
So far the engine supports gravity and basic collisions. The collisions are off-centered because they’re using the sprite’s dimensions, instead of a hitbox. Also the sprite animations aren’t in yet,...

Current state of “physics” in my platformer engine.

So far the engine supports gravity and basic collisions. The collisions are off-centered because they’re using the sprite’s dimensions, instead of a hitbox. Also the sprite animations aren’t in yet, but when they are IT WILL BE SWEET.

1

Notes on Game Design

Game design can be a pretty interesting topic because it can be one of those things that nobody ever notices when it’s done really well.

The video above (Sequelitis’ Mega Man Classic vs. Mega Man X) has been circling the internet for a couple of years now, but it has only just recently landed on my virtual doorstep. Growing up, I was always a huge fan of the Mega Man X series (although I haven’t spent any substantial amount of time playing the original Mega Man games – oops). Even though I was fairly young (or maybe because I was so young) I always seemed to notice how well the Mega Man X games teach you how to play during gameplay. Learning elements are often strewn throughout games so that a player can pick up and play without jumping directly into game manuals, but older games seem much better than modern games at leaving it up to the player to teach themselves, rather than go through giant tutorial stages or pages of in-game menus explaining mechanics like many of today’s AAA titles.

Teaching the player the game’s mechanics during gameplay basically boils down to the game’s creators doing an excellent job with level design. The way a level is designed can be used to suggest to a player whether they should choose to overcome or flat-out avoid an obstacle. Some of this can just be good conveyance (You just know not to ever jump on spikes), but an even greater amount of it comes from slowly introducing play concepts and mechanics in a safe environment. This allows the player to “fail” without necessarily dying or losing much progress. Eventually (either later in the stage, or later in the game, or both), the game designers can introduce multiple obstacles or mechanics at a time, and they’ll have some idea that the player will be better equipped to respond. It can be a tough balance to strike – games need to be consistently challenging and fun – too many puzzles at a time, or obstacles that the player hasn’t been given time to master, can seem extremely unfair. This starts to eat away at the game’s fun factor, and will eventually lead to the player quitting the game (either because they don’t know what to do next, or because it’s too difficult to be fun).

Another great example can be found in Super Mario 3D World, the newest game in the Super Mario series for the Wii U. As shown in this great article, the game’s director Koichi Hayashida has figured out level design down to a science – literally. He has come up with a four-step process for introducing new mechanics in every level that allows Super Mario 3D World to keep each level feeling fresh and interesting to the player, without ever putting them into a situation where they feel like they don’t know what to do. His procedure is inspired by Kishōtenketsu – a narrative blueprint used in Japanase and Chinese story telling. The four steps are basically:

  1. Introduction – Introduces the new game mechanic in a “safe” environment. Often allows the player to fail without any negative repercussions.
  2. Development – A straight-forward, if slightly challenging, use of the new mechanic. It’s more do-or-die than the initial introduction, and at this point players have to show that they are capable of overcoming the obstacle before moving on.
  3. Twist – The twist is where it gets interesting. At this point, the new mechanic is used in a way the player might not expect (often, it’s combined with a mechanic previously learned using this same process). This new challenge will serve to hook the player while continuing to improve their understanding of the new obstacle.
  4. Conclusion – The conclusion is the point where Hayashida expects the player to be able to prove mastery of their new skill. It’s the final challenge to overcome before the player is expected to just “know” the mechanic.

The takeaway here is that game elements and mechanics don’t have to be buried deep in a “How to Play” screen, and they don’t need to be explained to the player in a boring tutorial sequence (which often inadvertently serve to take the player out of the game experience). In fact, you can introduce new mechanics without any narrative at all, just by using smart and interesting level design. The reward is that your player will feel smarter for having solved a puzzle on their own using a mechanic that they practically taught themselves, all without deviating from the experience of the game.

New Website! Finally finished the fourth iteration of BradMason.net!
I focused a lot on using CSS animations to help me better understand how they work and when to use them. I mostly learned that complex animations can be a pain (especially...

New Website!

Finally finished the fourth iteration of BradMason.net!

I focused a lot on using CSS animations to help me better understand how they work and when to use them. I mostly learned that complex animations can be a pain (especially cross-browser), but there are way to mitigate the issues. It was frustrating at times, but the end result looks good so I’d say it was worth it.

I also designed the site as a single-page app which was much easier than I anticipated. I used Sammy.js and it was as simple as dropping the HTML for the various “pages” into the source and using Sammy to define the routes. Voilà!

As always, the source code is available here at my GitHub.