Saturday, December 19, 2020

Black Company #1 - "Everything so far"

I've been essentially using the spoilers channel of my Discord as a blog up to this point, but I thought it'd be worthwhile to begin using an actual blog site again for archive purposes as well as being able to make the content more available to everyone interested.

So this first post is just everything I've posted to my Discord so far as well as some private posts I made before that in chronological order, starting from the first post. And an explanation of the initial intention of the game. If you just want to see the pictures, you can skip over this first section. Enjoy!

Art

Initial thoughts:
Lets do a game with an art style that we can handle doing on our own for the most part. Inspiration for the original art style was Among Us. I personally do programming as my full-time job as well as on every game I've worked on, so this time around I want to do mostly art. We decided to go with the Universal Render Pipeline because we knew it was the standard Unity would be pushing and we wanted to get used to it, but also so we had access to new features such as Shader Graph. The performance gain was a bonus but not the driving cause. Although after we learned of the performance differences we made a joke that the game should be able to "Run on a phone", although we didn't necessarily intend for it to be available on mobile.

Reality since then:
We're still dedicated to doing an art style that we can manage in-house but are no longer opposed to using third party assets. As polishing has continued the realization of just how many things fall under the umbrella of 'art' continued to grow and I knew that I wouldn't be able to dedicate the time both to creation and utilization. You'll notice the game using all original assets from the very beginning but by the time it goes 3D we rely more and more on them. At first it was just special effects, then textures, and finally models. The game originally was going to be solely 2D and hand-drawn similar to Among Us. After awhile, we decided that because we hadn't fully settled on an art style that quick iteration was important and switched to a 2D tilemap. This is where we learned of the shadow limitations of the built-in Unity tilemap. I considered programming a map editor that generated 3D meshes projected 2D orthographic so that we could use built-in 3D shadows but one of the big inspirations of this project was to be something much more simple and easy to work on than previous games. But we thought lighting was important enough for us to switch from 2D to 3D since 2D tilemaps inside of Unity didn't yet contain this functionality.

Originally we were just going to be "3D" but 2D projected using things like wall prefabs. But I pitched to Phineas: "What if we did a 2D/3D mix like Wolfenstein or DOOM"? The idea was that interactable or important objects would be 2D and the scene would be 3D. He agreed, although later I found out he still thought we were going to be orthographic so it took some convincing to try out this new art style where it was a 2D & 3D mix. In these posts you'll see us transition from 2D to 3D as well as experiment with the perspective we want in 3D. I give props to Phineas since I was doing art & he was programming, he had to redo several systems to convert them from 2D to 3D. We also originally wanted the map to operate on a relatively flat surface so later when we added more verticality he had to reprogram things to support that as well.

It was Phineas who also pitched the idea of having guns be 3D which at the time I wasn't able to visualize, but since has proven to be what I consider a very good idea. Later when I implemented animations I was very happy that I wouldn't have to learn 2D animating since I already knew 3D.

Gameplay

Initial thoughts:
Waves of zombies like in Call of Duty, but using Team Fortress 2-like classes. We also want to do something a little more unique where the map is divided into sections and if you zombies overrun a section, you no longer own it, and your goal is to defend all the sections of the map. Each section has some sort of benefit to the player that is lost when zombies overrun it, although they can "repair" that section so it's not lost permanently if you're able to recapture it.

Reality since then:
Waves of zombies like in call of duty and using TF2-like classes has remained the same, but we eventually got rid of the zones idea. I don't quite remember why we abandoned it. I had many ideas of "Constant events" inspired by Among Us such as having to now & then repair the water pipes or a section of the map would become flooded but we ended up scrapping that to, although I'm still fairly confident it might see an appearance in the game after the first map.

Notes on development

The reason I'd had the idea of using classes alongside zombies was because of Team Fortress 2. Every year for around the last 6 years I kept trying to get into the game but I never enjoyed playing it, even though I really wanted to like it. Eventually after several years of trying (about 100 hours worth by early this year) it finally clicked for me and I began really enjoying it. My current main is the demoman and I now have, at the time of writing this, 538 hours in the game.

You might not believe this but the *original original* pitch of the game was to be something we could make in a couple of weeks. Phineas was taking a road-trip with his family and I suggested that they swing by Michigan and drop him off, I'd pay for the ticket for him to fly back after a couple of weeks. That gave us a deadline to work towards. But once he got here, and we actually had to spend time to decide what the heck it was we were making, we decided to for something longer.

Up to this point I finally got Phineas into TF2 and we were playing together regularly. So while at my house it became a habit for us to work for a few hours, play a competitive match of TF2, then repeat. The first ~4 days or so of him being here we were still coming up with ideas so it's no wonder we eventually landed on a game with TF2-like classes. I even bought a white board for us to use, on one side my stuff, on the other side his stuff.

The original 3 classes of the game were going to be Engineer, Demoman, and Soldier. But we eventually landed on Demoman/Demoknight hybrid, Engineer, and Ranger. Because these classes were so heavily TF2 inspired, and because we knew that previous games had used Valve IP (Such as "Hunt Down The Freeman") I decided to get in contact with Valve about having the game legally take place in the TF2 universe, in a parallel reality of course, nothing canon. They said no, which we figured would be the case, but it doesn't hurt to ask. Although the criteria they used to say no was interesting and gave leeway to potential other games that could, just not this one. So who knows maybe a Blake Gillman game might someday take place in the Valve universe.

That all being said, I've been very happy with how development has been going. In the last month or so, some major changes to gameplay have had to occur as in play testing and design planning I've discovered that there wasn't enough for the classes to do, and that with the way we had things planned that if a team didn't have an Engineer they'd be pretty screwed. So I've been spending a lot of time on the white board planning more things and we've recently begun work on a tablet that should help balance that by giving non-engineer classes access to some of the things that were originally engineer only as well as a few other cool things that we can now add because of it.

Last thing I have to say before getting to the posts is a reminder that my focus on this project was to be anything but the programming. To learn all the various aspects of game development that I had neglected (Although as an indie developer, still knew a moderate amount about). Previous games sound effects & visual effects were just quickly thrown on afterward because that's just what you're supposed to do. But with Phineas taking care of 70% of programming (I still do some) I've been able to really focus on it and get better at it. Everything from audio priority, volume, UI, visual effects and feedback, even game design I've gotten a lot better at and spent plenty of time watching GDC lectures on.

So now, enjoy all the posts that show development from the very beginning to now.

Development posts

Post Key:
D: Came from public Discord
P: Private post I made to friends or whatnot (There are plenty of those, so I only chose ones I thought were interesting in one way or another)

P > 10/23/20
Original quick art concepts for the game





P > 10/24/20
A progression of the main character's design, ended up going with a variation of the 2nd to last


P > 10/26/20
Friend asked what we were working on, so sent him a couple of pictures. These are of the new tilemap approach we began using after switching off a completely hand-drawn map. It also highlights a "Z ordering" script I had written that automatically draws objects in front/behind of others depending on their Y position.



D > 11/3/20
First public post. Asking which of these 3D perspectives people like more. Originally we were going to have a standard walk animation with the legs but inspired by Among Us & RimWorld I decided to go with a legless bobbing. File sizes had to fit Discords 8Mb limit, so quality is reduced.



D > 11/9/20
Development has been going hard and you can already see very good progress. The first UI has been added as well as a test gun referred to in-engine as "Test Pew Pew". This is also where I began early work on game feel such as damage numbers and blood effects to give a better feel for when an enemy is hit. You can see from the second player, that this is when the orientation of 2D objects was still determined by the position of the players camera. The "remaining enemies" at the top left also didn't work. I don't remember if there are any sound effects this early into development but I'd be skeptical of there being any more than a few.


D & P > 11/12/20
More focus has been placed on map design as well as some on game feel. This is the first time third party assets are used in the game. Up until this point it had all been originally produced, but this is where I tried out using some third party textures & models. Phin's brother jokingly said "Bomb has been planted" when he saw the second picture. The reason it had an "A" was because of the game's original intention of having zones.



P > 11/13/20
Funny glitch where the camera never cleared the frame when rendering the cursor.


P > 11/15/20
The earliest screenshot of the new map. The last map (the one shown above) was based off of the game being about zones as well as the layout not being original. This new map was then created now that we knew the game wouldn't be about zones and the entire layout I had planned out in-advance on the whiteboard, although it has had several significant changes over the course of its development. This is also when I first implemented walls that would go invisible if you had a greater Z position than them.


P > 11/16/20
Showed me planning out the formula for how many zombies to spawn on a given round on the white board. Although the formula we decided to go with (pink/red) looks identical to the blue one, its important difference is on late rounds.


D > 11/17/20
The first implementation of visual effects as well as showing off the sticky launcher, which Phineas renamed to "Gumball"s.




D & P > 11/18/20
Showing off an editor tool I wrote to visualize where buyable doors would open to. This is also where the layout of the map had been finished (Would later get changed) and I was beginning a graphics pass & adding textures. It's pretty amazing to see how many different designs the map went through before later becoming what it is.







D > 11/19/20
Video showing off the launcher some more. As well as much of the new audio and visual work I'd been doing:


D & P > 11/24/20
At this point, because of how cartoony it all was, we needed to make a decision of how much we wanted it to be cartoony vs horror. Phineas was more in-favor of a horror night-time aesthetic, whereas I was more in favor of a cartoony day-time aesthetic. So I created 2 different versions of the map to screenshot and ask people which they preferred. The night-time version won the vote but I still preferred the day-time.




D > 11/29/20
Phineas has insisted that once lighting is done that night time will be shown just how much better it looks. So I've spent a lot more time on the map and once again put out a vote showing both day and night. This is where I finally agreed to stick with night time, although not ruling out a day time variation in the future.



D > 12/1/20
Phineas takes a few screenshots for the Steam page (which we haven't launched yet)





P > 12/3/20
An annoying glitch where if you switched class in the waiting room your guns would no longer be orientated correctly toward the cursor.


D > 12/8/20
Call of Duty: Cold War has released and it's the first time I've enjoyed COD again since Black Ops 1. Although I used to play it on PS2 all the time with my brother, after Black Ops 1 I was just too much into PC games and didn't care for its style anymore. I also was on a multi-year long section of my life where I no longer enjoyed first person shooters which ended earlier this year. It was exactly the game that let me isolate what I call the "3 rules for UI" which I called "Informational", "Non-invasive", "Aesthetic". I liked how their UI was done so much I decided to implement it into our game and which also gave me an excuse to reprogram large sections of the UI code that I was unhappy with. I thought it was a good base and more iterations and originality can be added to it as development continues. I believe this is also the first screenshot after implementing post processing.

In that same post I also posted a screenshot of what the game looked like only 2 weeks prior to highlight the progress that had been made. I won't put it here to avoid confusion for people who don't read the text but it was taken from the video posted on 11/19 which you can scroll up to see.

P > 12/13/20
It surprised me to learn I never posted any pictures of this publicly. You can see in the above post that I had added a barrel. Inspired by all the pointless breakables in Dark Souls & Half Life I had always intended for random breakables to exist around the map. In this screenshot you can see me having shown & broken one of the barrels that were now placed in one of the maps corners. Phineas referred to this as a "waste of time" since he thought I should work on more important things like the visuals for the various player classes (which I still haven't done, I've been working on the map). So I have since referred to as "the most important thing in the game". I absolutely love random things that serve no practical functionality but which are just fun to do, like breaking props in games. I also only spent about an hour on it since we already had a barrel model. So take that Phin.
*also to clarify he wasn't actually upset about it so don't go hating on him, it was most just an off-comment regarding priorities. Which is odd since that's usually me saying stuff like that.


P > 12/14/20
A weird problem where a certain part of the map had the bloom effect go crazy. This is the point at which I was running into enough bloom problems where I removed it from the game entirely.


P > 12/16/20
AHAHAHA another random destructible prop. Take that Phin! I had also made the destruction of props slightly randomized so it doesn't play out the exact same way every time.


D > 12/19/20
Spoiler showing off a part of the map as well as a mysterious lever. What could it mean?


That's everything. I didn't take a screenshot or video of every part of development and there are many things I wish I had but I think this covers much of the important stuff. I intend to continue posting to this blog and linking to it on the Discord (which you can join here).

This was originally just going to be literally copying and pasting the stuff I had posted on Discord but I decided to instead take a more thorough approach, I hope you guys appreciate it. It helps to type 130WPM!

Sincerely,
Blake Gillman