top of page
  • Writer's pictureMark Elrod

Build Week

Three weeks have passed since I started creating my own Doom inspired first person shooter. In that time, I’ve created weapons, enemies, and other little tidbits that I’ll need to create a playable level. I’ve designed a few systems that each of these needs to play nicely with, including an all-encompassing rhythm system that keeps everything on the beat. If you’re wondering how I got here, don’t worry, I’ve been sending out weekly updates on the decisions I’ve been making, the reasoning behind said decisions, and the progress I’ve made. This week, you’ll be pleased to learn, is no exception.


The Health and Armor pickups
Grab your health kits and armor, because this was one busy week

Catching Up

This project started when I decided to spend November making a game. The game would be a first-person shooter in the style of the 90’s classics Doom and Quake, for a handful of reasons. Check out November 1st’s article for more details on these decisions, and my initial thoughts on the project’s direction. One week of progress determined that building everything around a central rhythm beating in time with the background music was a feasible approach, though doing so certainly brought its own challenges. For more details on how we got there, give November 8th’s article a glance. The next step was to figure out what I wanted to include in the game, and begin the process of programming everything so that I could test it, and eventually, invite others to test it as well. For more details on what I wanted to include and why, take a minute to read November 15th’s article. Which brings us to today.


The AI

The first major task this past week was to take the AI concepts I discussed in last week’s article, flesh out their behaviors a little more, and turn them into reality. Discussing an enemy that wants to punch the player is one thing, but actually making an enemy that will regularly threaten the player is another. In short, this part took a lot more work than I had originally expected. There is a very useful tool included in Unreal that allows developers to equip actors with an artificial intelligence, enabling the actors to evaluate their surroundings, respond to changes in their environment, and perform a wide variety of tasks as designed by developers. This tool is also far from simple, and after a day and a half of tutorials and experiments, I wasn’t confident in my ability to make it accomplish what I needed it to within my (admittedly self-imposed) time constraints. Fortunately, this tool is not the only way to get enemies to perform their necessary functions. What are these functions?


The three enemies currently implemented
Left to right, basic melee, basic ranged, early ranged.

The basic melee enemy, once activated, continually chases the player until defeated. The idea is for these enemies to motivate the player to stay mobile instead of in a single place shooting from a distance. In my experience, keeping the combat mobile like this helps keep it much more exciting moment-to-moment, which is the kind of experience I would like the combat to provide. These enemies can also provide an opportunity to provide the player health, armor, and/or additional ammunition upon death, rewarding the player for engaging in combat encounters.


The basic ranged enemy, once activated, similarly pursues the player until either defeated or until the player is within the range of their weak weapon. They provide a somewhat greater threat, since they do not need to get as close to the player to inflict damage. Keeping their maximum range lower than the player’s gives players opportunities to prevent this damage; an important aspect to help the combat feel fair. This is also a necessary aspect of their combat prowess, as they damage the player immediately upon attacking, so long as the player is within their range (for those of you familiar with shooters, they essentially have a hitscan weapon).


Moving around the test level
I promise the shotgun matching the ranged enemies is a coincidence

The third enemy also threatens the player with a ranged attack. These goons are a little more substantial than their basic counterparts, bringing more health and a stronger attack. This increased attack power comes via a projectile however, meaning the player is given opportunity to dodge the incoming attacks. Their behavior is also different- instead of charging towards the player, they prefer to remain at a distance. This accomplishes two main things. Firstly, it means the player will have to deal with enemies from close (basic melee), medium (basic ranged), and long ranges, using the weapons best suited for each. Secondly, they further encourage the player to move into the further corners of the map where these enemies prefer to launch their attacks from.


The Level

The second major thing I worked on this past week is the beginnings of a level. For this level, I wanted to accomplish a handful of goals. The level has to be short enough for players to complete before the end of its song, which currently means within 3 minutes. This is because I'm currently leaning towards the player periodically taking damage once the song completes, either until they complete the level or die. This is a decision I haven’t yet nailed down however, so I’ll likely discuss it in more detail next week.


a pencil sketch of the level
Pro tip: when iterating upon ideas, use a pencil.

Another goal of the level was to introduce players to each of the types of weapons and enemies available. Since it is the only level I’m likely to create this month, it will have to serve as its own tutorial. I plan on accomplishing this by introducing enemies one at a time, so that in a given encounter the player will only encounter one type of enemy that they have not encountered before. As far as the weapons are concerned, I currently plan to equip the player with all of them at the start of the level, though as more levels are added in the future, this will be a decision I will absolutely have to revisit.


With those goals in mind, I sketched out a level. Outlining the level geometry, enemy, health, armor, and ammunition placements via pencil and paper allowed me to quickly get ideas out of my head and onto something much easier to evaluate. Once I had an outline that felt okay, I translated it into Unreal using all the assets I had spent the prior weeks developing. This is what I’ll be spending a good amount of next week inside, testing, fixing bugs, and refining encounters, and making sure that everything I’ve built thus far provides the experiences I intended them to.


A birds eye view of the level
From paper to pixels, it's coming together!

And that’s where we stand. Aside from quite a bit of playtesting and refining, I plan to spend this week also determining the art direction I want to take and start preparing all of the cosmetic assets I’ll need. You can bet there’s a list, and that I’ve been checking it twice, because there’s a lot of artwork to be done, and I’m running out of time to do it.


In the meantime, I hope your week doesn’t draw on too long, and I’ll see you next week!

-Mark


6 views0 comments

Recent Posts

See All
bottom of page