There were two new big features developed in this past month. The first, we are tentatively calling Draw Container (which was an overhaul to the text box system described in the post Day 32), is more technical in nature. Thus, I am going to do a separate post very soon about the feature because we want to open source this code for others in the Game Maker community to use.
The second, less technical feature built this month was adding a more interactive map that the player can use:
Though this map has been in the game for some time, there was no interacting with it. We’ve now added a couple features to make the map more usable:
- The player can now fast travel. The feature will probably mature over time. But at this point, blue dots on the map are points we can travel to. There’s no animation currently, as the way we’ve built the engine, no loading time is required. However, instantly moving feels a little jarring and will probably add something to make it feel right. If the player fast travels, they leave behind a point in which they can fast travel back to. This is great, for example, taking advantage of bringing found weapons back to the shop to get weapons upgraded, and then, returning back to where we were just at.
- Green dots show locations of interest. One thing we noticed when people first started playing was trying to figure out where things were at. Granted, having signs on the trails, or signs on the houses would help (which we are planning on adding). But we thought it would be helpful to add these points on the map.
- Yellow dots show points of interest and Red dots are the main objective. In the tutorial, one of the characters tells the hero that yellow dots on the map should be visited, while the red dots are the objective. Eventually we can get all fancy with how we color and display these dots — but the ability to have objective markers show up / disappear on maps exist even better now.
- The player can zoom / pan the map. We’ve all used Google Maps, we expect some sort of panning and zooming these days. Thus, the ability to zoom and pan the map exists. If the map is all the way zoomed out, the cursor will simply move without being in the center of the screen. Otherwise, if we are zoomed in enough, we’ll keep the cursor in the center until we are approaching the edge of the map. There’s a little bit of polishing still to be done on this, but overall, it works pretty good.
Other Notable Features and Fixes in the Past Month
In this past month, I’ve had a few co-workers and friends play the game either for the first time ever, or the first time since April of last year. It was exciting to see them play and to gather their feedback. Though we were planning on doing a map eventually, we decided to act on the feedback and add some kind of workable map now. Anyway, here are the those items:
- Dpad UI Update. It was unclear which item was equipped at the top of the screen. We were programmatically highlighting the color of the weapon. However, gray and yellow don’t mix well, which many “metal weapons” are colored in gray. An awesome suggestion from one of my co-workers was to simply highlight the Dpad direction that was equipped. Simple enough, easy to understand. This might change as graphics and UI get updated, but for now, simple enough solution to a bad UX.
- Interacting with Objects — Specifically Doors. Out of the same playthrough came another annoying issue. Many objects, especially doors, expect the player to be facing the object (mainly how the hitboxes are working behind the scenes). The problem that was occurring was players would get close to the door, but when a collision happens, to make the hero “slide” against walls, a new vector gets determine, which causes the player to face a different direction. Therefore, running into a door on a slight angle would force the hero to face a different direction, making it annoying to open a door because they were no longer facing it. This has now been polished and fixed.
- Better Algorithm for Enemy’s Weapon Rank. Last month we talked about how we were randomizing enemy’s weapon and their rank. One issue I was noticing was if we didn’t have a certain weapon, and we ran into an enemy that was supposed to be “strong”, the weapon would still rank to the worst ranking. We ended up updating the algorithm to account for weapons the player doesn’t have, or has low ranking of, relative to what an enemy should be ranked at.
- Moved the Initial Chest House, Shop and Dojo. One of the NPCs currently say in the demo “A weapon? Tell you what. I have a few chests in my shop right over there. You’re welcome to take what is in them.” Currently on the screen at the time is a house. So naturally players went into that house — only to find out that it was the Dojo. We ended up moving around these houses / shops so that it felt a little more natural based on how players were initially moving.
- Knocking Enemies Off of Cliffs if they’re Stunned. This has been something I’ve wanted to add for a while. Now, if the player or an enemy get stunned, and their force is in the direction of a cliff, they will fall down the cliff and take damage.
- Added a Temperature Gauge. For a while, we’ve had the weather in the bottom right corner of the HUD. However, we can easily tell what the weather is based on visuals — like seeing rain or clouds. We decided to add a gauge that shows whether the player is getting hot or cold.