Pigeon Hole Stepping v2

Pigeon Hole Stepping v2

I had originally written an article on how to implement PHS here. Having found the maps generated slightly redundant I decided to take another look. Here are the steps taken to successfully generate a more realistic "town." It's essentially a drunken walker like Diffusion Limited Aggregation mixed with a hallway constraint that mimics the large part of PHS.

  1. Start somewhere in the middle, add this and all possible directions up to a certain dynamic length (I used a standard deviation of 1.4 with a mean of 5, ) as nodes: [{x,y,direction},...].
  2. We will be looping until all nodes

Read More

Generating Ancient Ruins

Generating Ancient Ruins

While creating algorithms for random continent generation, I came across an old algorithm I had worked with called Coupled Map Lattice. Using that to create a continent was hard but I was able to accomplish it doing layers of filters:

  • generate map with noise between -1 and 1
  • apply CML using Spatiotemporal Intermittency settings
    • (a = 1.75, ε = 0.6)
    • I found that using something too chaotic didn't have a noticeable affect compared to just generating noise in general.
  • normalize values to between 0 and 255
  • apply a gaussian blur
  • normalize values to between 0 and 1
  • apply slight height

Read More

Ability Icon User Experience

Ability Icon User Experience

When using abilities within most games the user doesn't have any time to look for an ability name so recalling an ability quickly by an image or icon that accurately represents it is incredibly beneficial. Similar to this idea, there are 4 basic requirements when creating ability icons. Below they are listed in priority order.

  1. It must be easily used (click/button press, etc.)
    • The user shouldn't have to look around documentation to understand what button to press
    • The user shouldn't have to struggle to hold down multiple buttons just to use it
    • Accessibility should be taken into account (screen

Read More

Balancing Game Mechanics

Balancing Game Mechanics

Two of the most influential components to decreasing LOE in balancing game mechanics is automating the most essential parts of testing those mechanics, and providing meaningful and easy to understand graphs. Some meaningful questions to better lay the foundation of balancing and creating these components:

  • What are the actual core stat(s) that identify survival? (Usually health)
  • What are the ancillary stat(s) that help facilitate the increase or decrease that core? (damage, strength, dexterity, etc.) I'm assuming all actors here are equal and we aren't comparing apples and oranges.
  • What are the supplemental stat(s) that may contribute to

Read More

When A* Mobile Pathing Fails

When A* Mobile Pathing Fails

Recently implementing a super easy JS library for A* pathfinding called easystar, I discovered an interesting issue: All the mobiles would collide in certain locations or "hotspots" on the maps.

There are two main reasons I can see for this:
1. The map itself is most easily traversed through certain spots.
2. The map is ONLY traversable from one side to another through certain locations.

What's likely exacerbating the issue is I'm allowing a mobile to pick a random spot on the map (apparently they know all things,) and then A* pathfind to that location (yep, they're super smart like

Read More