Start Your Engines

Technical Design
Today, I’ve been working on the Inventory system. I’m thinking of it as two pieces. Take the Diablo 3 inventory screen and break it apart, top and bottom. That’s what I’m calling my ‘Active Gear’ and ‘Inventory’ respectively. They can be displayed together like in D3, or they can be displayed independently. I would like to be able to popup a selection list, like Breath of the Wild, for any gear slot. BotW allows four different popups, one for each d-pad button.

Ultimately, I want you to be able to select your most important pieces of gear, with the fewest required actions possible. I’m not sure how much that will matter, given that I don’t know the exact role gear is going to play in the moment-to-moment action. It will be interesting to see how inventory space, including the ‘vault’ or ‘stash’, plays into the feel of the game. I’m sure there is a balance between having infinite space and not having enough. My feeling is that you want to be able to make it through a play ‘session’ without having to stop and organize your gear. Session being some event, length of time, number of kills, etc… I’m positive that whatever I decide, it will not be enough.

Diablo 3Breath of the Wild Floating Inventory

Start your ENGINES!
I’ve had this thought in my head for a few days now: “Did I pick the right engine?” I’m not sure. Choosing to roll my own engine is a huge undertaking, which could pay off big time or cause the game to die a slow miserable death. I can honestly say that I’m totally happy writing my own engine, as long as I can confidently say that none of the available engines would be a better choice. Now, what has been eating at me recently is that I don’t feel 100% confident that another engine isn’t the answer. I have to stop for a minute and fix this. I’m going to rebuild my prototype in a variety of ways. These will be…

The first three in this list are unbelievably powerful, affordable, well documented, and suited for the type of game I want to make. They have assest stores, tons of tutorials, huge communities, and include every feature I need. I threw Godot in because it’s kind of a lite version of the first three, as far as I can tell.

I haven’t spent more than 30 or 40 minutes with any of them and for my own peace of mind, I need to give them a really solid look. I don’t think for a second that I can build anything to rival even the most basic time tested engine. Making an engine is very hard, and hopefully very rewarding. Before I start, I want to make sure that doing so will make the game better for the players as well as its sole developer.

 

H T M L

I went with a little more of the Twin Peaks color theme. I think all I need now is the theme music playing as a midi when the page loads. With that and a few animated gifs, we’d have the perfect late 90’s Geocities fan page.

 

The Story So Far

The Story So Far
The story for Project Ever has gone into orbit. It’s getting good and I’ve started on my research to fill in factual details. I’d like to share something soon, I was thinking about one of the in game backstory items, like a journal, that type of thing. I know a few specific things that happen, when they happen, and who they involve. One of those would fit the bill.

Technical Design
I have been looking at using an IoC container, mostly StructureMap, but so far have decided against it. Maybe I’ll regret that decision later on, when I’m pulling my hair out over some lifecycle bug.

Misc Stuff

  • John Carmack’s .plan PDF: This is a collection of John Carmack‘s .plan entries from Jan 12, 1997 to Dec 31, 1997. Some developers used to keep .plan files, which you could get access to by ‘fingering’ them. This would be the equivalent of a current day Developer Blog. This .plan features a lot of stuff about the development of Quake 2 and QuakeWorld, the tournament held to win one of his Ferraris, and some cool info about the inner workings of id at the time.
  • Mathematical References PDF: Described as “This section describes the methods that I found useful while making this game.” I have no idea who “I” is, or what game they are talking about. It’s a good reference for a lot of game related math though.
  • Writing Testable Code: A lot of good stuff here. Seems to go overkill in some places just for the sake of testing, introducing excess code with no real purpose other than supporting tests. There is a good middle ground between where I am and where this guy proposes we go.
 

The Mysteries Begin

Game Design
I’m working on the story a little bit today. I drew up some kind of triforce like talisman. It’s supposed to represent a cave entrance at the site of two mountains. Maybe the compass shows you where to go once you find it? It’s really just a demo of an idea, and builds on the idea of a Trifoce like object that must be collected and put together as part of the main quest.

Where will it take you?

 

Twin Peaks and Notes

Inspiration
I’ve been reading The Secret History of Twin Peaks, and it’s really amazing to me how Mark Frost is able to take the story of TP all the way back to the days of Lewis and Clark.

A vastly layered, wide-ranging history that deepens the mysteries of the iconic town in ways that will thrill disciples of the original series and will prep fans for the upcoming SHOWTIME series like nothing else out there.

Four original Twin Peaks cast members who are appearing in the new Twin Peaks for SHOWTIME - Kyle MacLachlan, Russ Tamblyn, Michael Horse, and David Patrick Kelly - join three new actors - Amy Shiels, Robert Knepper, and James Morrison - to voice the audiobook edition of the novel along with cocreator Mark Frost and original cast member Chris Mulkey.

Game Design
I want to share some notes I’ve been keeping, just to show some things I’m looking at…

Weapon Design
Need to implement weapon states
if a weapon is reloading, call Reload()
if a weapon is firing, call Fire()
and; Idle(), Empty()

Prevent having to set explicit timers for things by using the states, and tracking the amount of time spent in each state

Sound Effect Component
Build a way to load a ‘sound bank’ which will be a group of related sounds. For example,
firing sounds for the SMG, would be one bank. Then, have a way to play a random sound from
an specified bank.

During content load, individual weapon configuration files are read to create the weapon banks.

World Manager
Some things to think about for world management…

  1. Do we need managers for related entities? ie; Items (drops, gear, weapons, mats), Projectiles (bullets, casts, bombs), Actors (player, enemies, NPCS)
  2. Is the world instanced or static? What do we get from either method?
  3. When do we start thinking about serialization?

Misc
Size = how big something is or how many something can hold
Count = how many something currently has
ex:
MagSize = how many rounds a magazine can hold
MagCount = how many rounds a magazine currently holds

 

HUD and Pictures

Misc
I don’t have any video game work time scheduled until Saturday. In the meantime, here is a video showing the HUD, which has ammo current and current weapon.

My office

Engine Diagram

 

Inventory

A Video
I gave the player an inventory, let the player pick up guns, and added some sounds. Here is a video of that in action…

 

Item Spawning

Technical Design
Guns guns guns! I spent the day working on weapons! I worked on attaching items to an actor, spawning items, drawing items on the ground, and general world item management. In the video below, you’ll notice the Jade Rabbit littering the ground.

Tomorrow, I’ll work on item pick ups and hopefully weapon firing.

 

Dependency Injection

Technical Updates
I’ve finished the first version of the Controller Debug display, which allows you to seen when a button is presed on the gamepad. I’m still fleshing out the input component, which I’ve hooked up to the player component to an early version of movement going.

The more general engine work has been focused on understanding and implementing a dependcy inject based design. I’ve been reading a lot about it, here are some links…

Now is a good time to go back to my list of Prototype Goals and cross off the ones we’ve completed. I will complete this list this week.

  • a moving character
  • animated sprites
  • a weapon that shoots bullets
  • hit scan bullets
  • traveling bullets
  • joystick input
  • a few sounds
 

General Updates

General Updates
After two scheduled days off, I’m back! I’m on my second listen of Blood, Sweat, and Pixels. If you have any interest in game development, I highly recommend this (audio)book. Maybe I can be in the sequel?

In Blood, Sweat, and Pixels, Jason Schreier takes listeners on a fascinating odyssey behind the scenes of video game development, where the creator may be a team of 600 overworked underdogs or a solitary geek genius. Exploring the artistic challenges, technical impossibilities, marketplace demands, and Donkey Kong-size monkey wrenches thrown into the works by corporate, Blood, Sweat, and Pixels reveals how bringing any game to completion is more than Sisyphean - it’s nothing short of miraculous.

I made a little object factory demo. I’m still not really sure this is right, but it seems to work as it should.