I’ve been putting a lot of thought into the textures for my dungeon crawler. This is a screen recording showing one of the possibilities I’m exploring:Continue reading “Texturing the Procedural Dungeon”
WIP Random Monsters, Combat, and Loot
Last month I showed off grid-based movement in a randomly generated dungeon, but now I’ve added the beginnings of combat, the beginnings of loot/treasure, and (most crucially) randomly generated monster sprites! Here are screenshots of the enemies taken from different play sessions:Continue reading “WIP Random Monsters, Combat, and Loot”
Grid-based movement for both Player and Enemies
Last month I had implemented dungeon generation for my first-person roguelike/RPG game, but it wasn’t populated yet, nor could you move around it. Well, I’ve since programmed that stuff.Continue reading “Grid-based movement for both Player and Enemies”
Two additions: BSP dungeons and A* pathfinding
As I blogged about a couple months ago, I’m writing a little RPG for a fun hobby project. I was inspired by this twitter thread about a random monster generator, and I designed a tabletop rule system to use. Since then I’ve been implementing things in Unity, and this month I want to talk about the first two things I programmed: procedural dungeon generation, and grid-based A* (or A-star) pathfinding.Continue reading “Two additions: BSP dungeons and A* pathfinding”
Talk on Procedural Generation in Unity
Very brief post: I’m doing a talk at this meetup tomorrow!
Working on an RPG: Generating the Map
I’m now over a month into the basic RPG I mentioned in the last post, so a bunch of systems are in place. In my last post I talked a lot about the narrative system Ink, but this time I want to get back to what is a frequent topic on my devlog: procedural generation of maps. Here is what I came up with for the map of city regions:
(The weird batches of horizontal lines are actually lines of text. That’s just to test applying textures to quads strewn about the map, and will eventually be replaced with images of buildings and trees.)
Procedural Gear Generation
So I’m homebound, just like most everyone else. I was actually already working remotely most of the time so this hasn’t been a huge change for me personally, but the pandemic is causing big difficulties for everyone around me. Like, say, my mom who lives in South Korea, or my sister who is a doctor in New York City.
As for my coding projects, quite a while ago (around a year) I’d seen a reddit post about this interesting approach to generating pixel art equipment. I’ve had it bookmarked all this time, intending to try this myself.
Outline Both Squares and Hexes
So I’ve been experimenting a lot lately with rendering lines on the ground, for the map in strategy and tactics games. Last post I already had this effect working for a square grid, but it wouldn’t work for hex grids because it was dependent on drawing pixels to match the grid. I ended that post by brainstorming ways to support hex grids, and have had great success working on the problem since then.
I uploaded a WebGL demo to try, and here’s a video showing the territory outlines shader working on both square and hex grids:
Shader that renders Border Outlines
Merry Almost-Christmas! I normally do a blog post every month on the 25th, but I wanted to do this one a few days before then because of the holidays.
Last month I had described my plan to render border lines on the ground (think territory in a strategy game, or movement ranges for tactics games). Here’s an image showing the result of my experimentation:
Hey, looks pretty good if I do say so myself! That’s a smoothly glowing outline drawn on the ground, surrounding a discrete region of a square grid, with the outline nicely rounded at the corners.
Border Lines on a Strategy Map
A couple months ago I was noodling on techniques for displaying the map in a strategy or tactics game. Well, lately I’ve been thinking a lot about one specific aspect of how those maps work: representing borders on the map.
I’m talking about the colored lines on the ground in this screenshot: