This is a Dead Blog!

In an effort to take control of my data and make publishing more convenient, I am ditching this WordPress for my own website.

Check it out.

Yeah, it’s not as pretty or featurful as WordPress, but it’s really fast and I can publish things in Org-mode format.

It was good while it lasted, WordPress.

Migrating the Blog

I’m in the process of migrating this blog over to my own server. I wasn’t very active before, but I think I could be more active with the more accessible org-mode-based server.

Deathcall Let’s Plays

ROGUELove a.k.a Virtua Sinner made a half-hour Let’s Play of Deathcall:

I’m quite proud that he took the time to explain, play, and review it.

He found a few bugs. I previously thought that the game was essentially bug-free but this definitely rejected that (of course ūüôā ).

There were two other video playthroughs that I should also mention:

I won’t criticize his terseness too much considering he was playing through all 100 some-odd games.

Jeremiah Reid (the winner of 7DRL 2018) also played:

He had more of a tough time because he didn’t figure out the strategy early. The game is very hard when you don’t know you should run for the caller.

My game was also talked about on Roguelike Radio. They mention Deathcall at around 1:04:00. They thought Deathcall was a good middle-of-the-road entry and seemed like a solid first entry. I completely agree.

People seem to like the color scheme, view fading, and sound effects (though they do think the sound effects were odd choices; I’m not surprised given that I threw them together quickly). Making Escape close the game while also having it exit Look mode was probably the worst thing about the game :).

It’s definitely a cool feeling seeing people play and explore Deathcall. It makes me feel like a real developer. Maybe more so than being a professional in the game industry and shipping a title on Xbox/PS4. That I did with a team – *I* made this :D.

RIP Galavant

(Press F to Pay Respects)

Galavant was overly ambitious. I decided to pull the plug when I realized it wasn’t increasing my happiness. I always thought it was the thing I *had* to make but after I’ve killed it I felt relieved.

7 Day Roguelike 2018 opened my eyes to how challenging creating even a small game is. It was refreshing to finish it and get positive feedback.

I’m excited to make small projects for the foreseeable future. I can actually finish something and move on when my interest is waning.

7 Day Roguelike 2018

I participated in 7DRL Challenge 2018.

My roguelike is available on itch.io and on Github.

7drlDeathCallLogo

Deathcall got 38th place out of 113 submissions. I am proud of this result. I knew I would be competing with people who had existing roguelike engines and who could work on it full time all week (I worked on it after my full-time software engineer job each day), so I wasn’t expecting to get in the top tier.

I am satisfied with how I did as well as what the judges said about Deathcall. Their feedback was reasonable and they pointed out positives as well. I am especially proud of all judges saying they found no bugs; this might be the first thing I’ve created of this scale which is basically bug-free (not counting my professional projects).

Here is the feedback (sorry for the atrocious formatting;¬†wordpress¬†isn’t cooperating; see the competition entry here):

Criteria Rank Score* Raw ScoreCriteria Rank Score* Raw ScoreCompleteness #1 4.000 4.000Roguelikeness #1 4.000 4.000Scope #18 3.000 3.000Fun #21 3.000 3.000Overall #38 3.167 3.167Aesthethics #47 3.000 3.000Innovation #89 2.000 2.000

Ranked from 3 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.
Judge feedback
Get to the end of 10 levels. I beat it on my first try. My best score is 1398 turns.
Completeness 4No bugs found.Has a win condition or optional endless mode.Difficulty of each level boils down to whether you find the caller quickly or not.
Aesthetics 3ASCII is OK.Numpad controls are OK. Arrow keys can be used without too much disadvantage.The map scrolls when you get near the edge.
Fun 3Easy, although I did have some close calls.The biggest danger is carelessness, since the enemies are sparse until you approach the caller and some enemies can attack from offscreen.Some choices about what to train and which abilities to keep.Sight range is much larger than the screen size, so playing to win involves looking way offscreen (very slow).Targeting enemies in the huge sight range takes a long time.
Innovation 2You have stamina (I never ran out).
Scope 3A few enemies/abilities.
Roguelikeness 4Turn/grid basedASCIIRandomnessPermafailureA little tactics/strategyRPG statsRecharging abilities
Death Call is a roguelike about killing summoners. Each floor has one “caller”, which can bring forth unlimited numbers of henchmen.
The balance seems a little bumpy here. A late game spell takes away about half your health. Wizards can hit you from like 20 tiles away and vice versa. Clearing out enemies then becomes really straightforward if you’re willing to cast lightning on them one by one and wait in between for your cooldown. I personally did not have the patience (but did see the end after stumbling upon a debug command which grants 10,000 HP). Monster pathfinding could use some work, as enemies can’t seem to navigate around corners (or each other).
One glaring issue is that Escape both toggles targeting modes and otherwise closes the game. I lost count of the number of times I accidentally exited, totally wiping out all progress without warning.
Having said all that, Death Call is a fully functional, if basic roguelike that has its moments. It really shines when you get swarmed by monsters, have to make a mad dash to the stairs, and are forced to utilize all your abilities. The ASCII looks good in this game. There are sounds, though the sound choices are a bit odd. There’s 10 levels, but also an infinite mode. You can even train your stats.
Great work for 40 hours! Seems like you had a really great 7DRL run this year. I played this game in WINE on macOS and it ran great.
Completeness: 4. no bugs that I could find and the UI all makes sense and works. I once spawned in a cell with walls on every side, even diagonals, but I had Phase Door so I was able to escape.
Aesthetics: 3. not the most beautiful thing I’ve ever seen but solid and easy to understand.
Fun: 3. It just felt a little too simplistic for me compared to other 7DRLs. There’s definitely enough here to have replay value, but I save my 4s for the ones I really love, and this one didn’t quite make the cut. Maybe some variety in the environments, or stranger enemies and abilities, would have bumped this up to a 4 for me.
Innovation: 2. This game is a solid recombination of standard roguelike game mechanics. That doesn’t mean it’s not a good game, this just isn’t your strongest category.
Scope: 3, pretty much what you’d expect from a 7DRL. Enough abilities and stats to make it interesting, not above and beyond.
Roguelikeness: 4. Definitely a roguelike!

A Change in Direction

I haven’t touched Galavant in about two months because I had serious doubts about doing the project. A lack of motivation to work on what I was currently doing kept me away.

I realized that I don’t want to make Galavant a game. I want to make a Galavant a simulation. The distinction is important. Games must be “fun”, have tutorials, play well, etc. Simulations don’t have these constraints.

Rationale

Galavant has always been a project where I focused on pleasure of development, not pleasure of play. Because I never cared about making money releasing the project, it is fine to change the project to make it even less likely to be a product.

The problems I am interested in solving do not revolve around the player’s experience, which is absolutely critical when making a successful game. I am more interested in solving problems related to making my agents and the world interesting, which are not necessarily conducive to a good player experience.

Implications

Redefining Galavant as a simulation unties my hands in many ways. I no longer have to sink a seemingly infinite amount of time into creating a good player controller. I can focus on agent behaviors which don’t necessarily result in fun gameplay. I can take a more freeform approach to development based more on interest than concrete milestones.

Despite now being a simulation, Galavant will still have a player controller. It will remain interactive in that the user can take over a single agent and do as they please. I will continue to make systems which will make it interesting to play a single agent, but not all systems have to fulfil this requirement.

Conclusion

The most important thing this change accomplishes is keeping Galavant alive. Focusing on the game aspect of it put the project dangerously close to termination. Galavant as a simulation should stay alive for the foreseeable future.

Approaching Galavant’s Two-Year Dev Anniversary

Galavant’s GitHub repository was created October 17, 2015. This means the two-year development anniversary is coming up.

I find the fact that I’ve been working on Galavant for two years both upsetting and acceptable. It is upsetting to me because it doesn’t seem like I’ve come very far. It is acceptable¬†because of my approach to working on it. I have only worked on Galavant when I have wanted to, which means long stretches of time occasionally pass before I feel compelled to pick up where I left off. The advantage of this approach is that it makes it harder to get burned out by a project. The large disadvantage is the slow rate of progress if you don’t often want to work on the project.

 

sporadicCommits
My sporadic development approach

 

I am a professional software engineer by day. Work takes a lot out of me. I rate my own comfort and relaxation as more important than a strict development schedule.

To give you an idea where I’m at:

  • PLog had to be discarded due to memory allocation fighting with the Unreal Engine setup. I ended up writing my own C-style string only Logger with feature parity in a couple hours. This proved to me that PLog was way more complicated than it ought to be
  • Agents have gotten to the point that they can get hungry, set a goal to find some food, formulate a plan to find food, follow the plan to the food, pick up the food, and eat the food. This is the core of Galavant’s AI design. By piling up needs, resources, and actions, emergent behaviors will result in agents having diverse and hopefully interesting interactions with each other, the world, and the player
  • Combat has begun development. I haven’t thought much about what I wanted from the combat system in Galavant. I know for certain that I want it to be relatively fast-paced, unforgiving, and more on the realistic side than the game-y side (i.e. you get hit in the head with a sword, you’re dead). Chivalry has been a big source of inspiration for me recently. The current state of combat is that the player can use an attack, animations are played, and different CombatActions can be created, but they don’t actually do anything yet
  • I’ve added a simple procedural world system and Actor/Entity LOD management. This is the structure which the infinite world will be built upon
  • The Entity Component System has gotten several small revisions. I’ve been refining and refactoring it to minimalize boilerplate

The big target I’m after now is getting Combat stood up. Agents, needs, inventory, items, equipment, and numerous other systems will all be involved in getting it ready. I’m going to hold off on world generation, building, and such in favor of working on fundamental gameplay interactions (like combat, needs, and managing inventory).

My goal is to turn this tech demo into a game that can be played. Here’s to another two years!

Bonus Gifs: