It's A Process

Development Update
I’m working on the integration of the items/stats/cooldown systems. Specifically, adding affixes to items that will alter player stats and cooldowns. Some examples; increases player’s dash duration by 10%, decrease dash cooldown by 25%, increase speed by 25%. It works, nothing else to report. The next step is to work on a system for showing the cooldowns on screen. That will be the first major piece of the HUD that I write. I have an idea how I want the HUD layed out, it’s designed around the fact that you are a robot and your HUD is really just part of your vision. Why does a robot need a HUD? It’s just for the robot’s developers to do some debugging I guess. The T-800 has a HUD…


Stats Management

Here is how I handle stats on game objects in Pastel Future.

Begin Step, Step, End Step
A little GameMaker context… There are the three Step events in GameMaker 2. Begin Step fires on all objects, then Step, then End Step. The idea is that you know every object has performed its Begin Step if you are in Step. Same goes for Step and End Step.

Stats, Modifiers, and Final Calculations
This is the basic system for applying stats to an object. The part I’m not sure about, is when using this method, you have to perform all of your actions in End Step after the final calculations. I don’t think there’s anything inherently wrong with this, but you end up setting variables in Step and acting on them in End Step. You also effectively lose End Step functionality, since every action is occurring in End Step, leaving you no way to know if you are acting after all per-frame actions are complete.

We perform all of our logic in Step though. So maybe since we’re normally checking a variable set in Step to decide if we perform an action in End Step, we still make End Step work. Not sure.

Variable Names
Example variables names for Damage stat.

  • _stat_damage_base
  • _stat_damage_mod
  • _stat_damage_mult
  • _stat_damage: holds final value for use in object actions

Set base values (Begin Step)
Set the base values for all non-aggregate stats in this step. Something like Damage is set to its base value of 10 in this step. However, a stat like Miles Walked would not be set here (would be done in Create), as it is cumulative and only needs initialized once.

Stat value have three types: BASE, MOD, MULT

  • BASE: Set to the base value of a stat. In this example, base Damage is set to 10.
  • MOD: Initially, there are no modifiers applied. This is set to 0.
  • MULT: The multiplier is always applied in the final calculation, meaning a default value of 1.

Calculate Modifiers (Step)
In the Step event, all modifiers for a given stat are applied to the MOD and MULT variables. This is where items, enemies, world events, etc apply their buffs and debuffs. Let’s give the example of a player wearing gear that gives them +18 damage. The player is also buffed by a world event to have quad damage.

  • BASE: The base value, with no modifiers or multipliers.
  • MOD: This is an absolute value. In the case of +Damage: 18, MOD is increased by 18
  • MULT: This value is multiplied by the sum of the BASE value and MOD value. In the case of a buff such as Quad Damage, MOD would be set to 4.

Calculate Final Values (End Step)
The final Damage value is determined using this formula:

_stat_damage = (_stat_damage_base + _stat_damage_mod) * _stat_damage_mult

Every action we perform that requires a Damage value will use the _stat_damage variable.


Pastel Sunrise

Pastel Sunrise

I was working on some ideas for a company or game intro and got on to the idea of a Pastel Sunrise. A pink sun, rising over a black horizon. This is a quick attempt at that, in engine.

While I was thinking about the sunrise, I had an idea to mimic the text style from the intro of The Terminator. That was pretty fun to do. I’ve worked out a way to create different styles and plug them in as needed. I’m thinking that this is how I’m going to do the HUD text, which I want to have an interactive element to it. I want it to be able to ask you questions and request a multiple choice response. Here is a short video of the Terminator text.

Writing a Story
The original Vapor Story had a fairly fleshed out story that was driven by my desire to explain some of the unkown or mysterious events on Earth with story elements. I had seven or eight that I really liked. At some point though, I fell out of love with that story. I was having a lot of trouble tying the story elements to the type of gameplay I wanted in Vapor Story. As disappointing as that was, I am having a blast writing the new story. I feel like being able to make the game activites seem like a natural part of the story is important to a good design. The name Pastel Future is rooted in both the story and the mechanics of the game. I’m very happy with it.

Here is something from an earlier post:

Right now, the scope of Pastel Future is more than I can handle. An immediate goal is to determine what stays and what goes.

That’s a big thing. I still struggle with the decision to use GameMaker Studio for Pastel Future. Not that I don’t like it, but I keep going back to a 2D not having that same feeling of immersion and scale as a 3D game. The Unreal Engine is so accessable… it’s keeps calling me. How do I compare the different requirements for assets between GameMaker and Unreal Engine? A big advantage that Unreal has is that you can go into the marketplace and buy a skinned, rigged, and animated model. Then start programming with it in just a few minutes. It won’t be what you release with the game, but there is something for you to work with VERY quickly. Contrast that with getting a test character in Game Maker. This usually amounts to searching Google for spritesheets that have animations that kind of resemble what you’re looking to do. Unreal seems better there.

A big hangup with Unreal is that I’m not very strong in C++. You can do a lot with blueprints in Unreal, but eventually you’ll need to start writing code. Simple things in game turn into massive spaghetti looking blueprints pretty quickly and I think most pro devs do their final logic in C++. Maybe a middle ground like Skookum script can help with this? Really, I highly doubt I can do final art for either engine, so I guess cost is a big factor too. For your money, wihch one is better?

I leave you with the Pastel Sunrise!

Pastel Sunrise

Free Writing

Free writing
I watched the first couple episodes of Double Fine Adventure last night. It’s a documentary about the first huge Kickstarter and the game that came out of that. The second episode showed Tim Schafer going through the beginning of the game design process and the tools he uses. It turns out that his main tool is dedicated free writing time. He starts a notebook and just free writes until the ideas start to come out. I like this and will do it. I’ll use my bus rides every day as my free writing time.

My desktop machine is in the middle of a Windows Reset right now, so I’ll start my free writing off as a way to vent some frustration…

I think about a game that I want to make and the things I want it to have. This normally leads me to a list of a bunch of points, probably like:

  • retro shit
  • crafting
  • farming
  • exploration
  • discovery
  • synthy music
  • puzzles
  • fuschia
  • turquoise
  • 80s
  • machines
  • character unlocks
  • progression
  • character fashion
  • randomly rolled gear
  • etc etc etc

What the hell do I do with all of that? My favorite games over the last few years have been Breath of the Wild and Red Dead Redemption 2. They share a lot of similar gameplay elements and I find both of them very relaxing and rewarding to play. Immediately, the thing that jumps out about these games is that they’re huge, massive games. The kind of game that takes a big team, years to complete. Obviously, we don’t have those kind of resources, so we need to compromise.

The compromise has to start with the size of the game, right? None of the world map content in those games is procedurally generated. Everything is carefully crafted to work together. You can really see this in the way the maps are laid out. When you are near points of interest, there are multiple points of interest visible in the distance. As you move through the games, you are always teased with that next thing off in the distance. That seems to me, to be a source of the satisfaction you get from exploring.

  1. Find some point of interest
  2. See another point of interest in the distance
    3to that point of interest
  3. Satisfaction…

How tough is that to do in 2d? It seems very tough, but that’s a problem for another day. Anyway, we’re trying to find a compromise, to cut the workload. Map size is an obvious target. Does a smaller map take away these moments of ‘hey look at that, let’s go there?’ and crush our ATMOSPHERE? Seems like it might. Can you create a large map, hand build the points of interest and then procedurally generate the rest? Maybe even define some placement rules for the points of interest and have those placed by the engine too? Need to think on that.

BotW and RDR2 are great games, but yhey’re not exactly the style I want. That lies more with games like Hyper Light Drifter, Hotline Miami, or Axiom Verge. More on that later…


Guilty Pleasures?

Good Music
I don’t know why Spotify calls this a ‘Guilty Pleases’ playlist. These are good songs! Maybe not ALL of them, but most.

War Room
I have a war room setup going in my dining room. I should be streaming this! Today I’m whipping up a crafting sample: run around, pick up items, use those items to craft new items.

In my first project, I’m going to have some fun with crafting. Building recipes, checking item requirements, unlocking recipes and actions based on item inventory… all on the list for this project. I’ll also figure out how to populate an area with certain items, given a target density and list of items. I picture creating areas on the map where certain types of plants grow, then over time, plants will spring up in the designated area until a certain regional species density is reached. As you pick plants, new ones grow back to fill the region. This will require instancing plant objects and tracking overall population. Maybe a plant factory?


My Favorite Number is 19

Every year I start off looking to do better than last year. I put in a solid six months of work on the Vapor Project last year, but things took a nose dive around my birthday.

Pastel Future
Crafting, building, farming, fighting, walking, talking, and exploring all played a part in the evolution of the vapor project. Pastel Future distills these activities into an enjoyable and inspiring experience, while shading everything with a bit of nostalgia and a hi-tech fantasy. Right now, the scope of Pastel Future is more than I can handle. An immediate goal is to determine what stays and what goes.

My Future
It feels good to be thinking about and working on my game again. So yes, I will do better this year. This year, GlitchRock Games will become what I’ve always wanted it to be: a game studio.


Back in the Game

I’m trying to get back into the programming / creative groove. I’m going to do some small projects to help that along. First, I’ll make something to do with crafting. Maybe just a crafting interface? Something like a ‘Pasetllizer’ shader would be cool too.


Merry Christmas!

So this is Christmas and what have you done
Another year over, a new one just begun
And so this is Christmas, I hope you have fun
The near and the dear ones, the old and the young
A very merry Christmas and a happy new year
Let’s hope it’s a good one without any fears
And so this is Christmas for weak and for strong
The rich and the poor ones, the road is so long
And so happy Christmas for black and for white
For yellow and red ones let’s stop all the fights
A very merry Christmas and a happy new year
Let’s hope it’s a good one without any fear
And so this is Christmas and what have we done
Another year over, a new one just begun
And so happy Christmas we hope you have fun
The near and the dear ones, the old and the young
A very merry Christmas and a happy new year
Let’s hope it’s a good one without any fear
And so this is Christmas and what have we done
Another year over, a new one just begun


Pastel Future

I’ve been working on a world that takes place in an alternate 2005. In this version of the world, the 90s were not the decade of grunge, blonde tips did not exist, and Pulp Fiction was a neon-noir film masterpiece. On the eve of Y2K, instead of hiding in their basements with a two year supply of canned food, people jack in and build a collective experience that accelerates the world’s technology growth exponentially.

Steve Jobs introduces the Apple Watch over a decade earlier than we are used to. It includes a feature that covers you in a protective pill shapped bubble from head to toe; very important when Infection is on the rise! Meanwhile, Quantel combines forces with Lecktrik Systems to create the world’s first line of smart clothing, with Cell Touch technology.

Miami Vice is longest running show of all-time and Don Johnson is the highest paid actor in the world. Jan Hammer tops the charts on an annual basis. What a world!

Telling a Story

I’ve written some short stories before, but nothing on the scale of this game. I have a lot of threads that I need to tie together. The story is a variation on the Hero’s Journey:

In narratology and comparative mythology, the monomyth, or the hero’s journey, is the common template of a broad category of tales that involve a hero who goes on an adventure, and in a decisive crisis wins a victory, and then comes home changed or transformed.

You can read more about the Hero’s Journey on Wikipedia.

Black Market Clothing

The first quest in the works has you getting involved in the black market. In our new world, certain types of clothing are banned because of how they are used in the world of recreational drugs. This particular item that you are searching for has a combination of Cell Touch and Quantel properties, which allow it two do two things:

  • Transport matter from a remote broadcast system to the garment’s internal molecular delivery system.
  • Transfer matter and data into the skin at the molecular level.

Enterprising parties use these two properties to facilitate the remote delivery of illicit substances. A string of underground clubs are built around the use of this type of clothing. These clubs are very exclusive and highly illegal. Your client wants to obtain some of the clothing required to attend such clubs and since she has something you need, you’re on the hook to find something she can wear.