For this terms PIP (Personal Interest Project) I decided to try and create what I was calling an "arena shooter"
I'll go over the baseline for how the games main game mode is designed, attempting to make it easy enough to understand while being in-depth
The core concept is that there are X amount of teams, all fighting to complete the same objective (typically in the center of the map) which grants them the win. Objectives can vary in what they need the teams to do, but some objective ideas I've come up with so far are:
KOTH (King of the hill) where you essentially need to be actively defending the objective the whole time. The keyword there is "actively defending", you can't just "start" the objective, and then run off and do something else. You need to be actively making sure you're in the objectives "area" (the area is the zone where you need to stand in, in order to gain points which results in the victory)
Hack the device/Decrypt the file: I don't really have a good name for this one, but it's similar to KOTH in a few ways, while being vastly different in others. This one, you need to passively defend the objective. You'll turn on the laptop, start "hacking" the files or something, and leave it running for a while. You could technically leave the laptop and just away if you wanted. The difference is, you must be at the laptop once it's done hacking, or someone else might steal the "hacked files" and win instead. This objective also takes significantly longer to complete/win, because it's passive rather than an active one like KOTH.
Each team has roles, where their loadouts are tailored to their specialty. For example, there might be a medic, a rifleman and an engineer. The rifleman would mainly be fighting the enemies, medic supporting the rifleman and healing any wounds on anyone, and the engineer for example could barricade the objective, making it harder for enemies to get in etc. Their weaponry would also reflect their specific role etc.
I wanted the game to be HEAVILY reliant on you doing the OBJECTIVE, not just fighting the enemies and instantly winning. I feel like if I am effectively able to make the objective the core part of the game, it would make the game itself a lot more engaging and enjoyable. Strategic plays and clever map design could create awesome and fun matches.
For this part, I'm going to show off certain stages of the project, where I think it's needed
I officially started on the 7th of may (but had been working on it a few days prior), with attempting to model an ak74m. The 3d modelling aspect of this term quickly faded away, i was more interested in learning about s&box rather than modelling. So i'd consider the 8th of may to be my REAL start date
8th of may was a huge day even though it was so early in the term. I had set up three key backend parts of the project, being each of the "managers", these would ensure the game went smoothly by handling all logic and edge cases. The three managers were:
> Game Manager: The overseer of the whole game. Makes sure everything is in order, tracks players that are in game, tracks current gamemode selected and tracks player spawning.
> Round Manager: Handles specifically each round of the game. Each “game” is split up into a few “rounds” and this is the part that handles the pre-round stuff, starting the round and ending the round depending on if all conditions are met (objective is complete, all players are dead etc)
> Team Manager: Specifically handles dividing all players up into their respective team. Currently, this is random. It randomly selects all connected players and puts them on teams. In the future, I want this to take in to account when people want to “party up” and specifically be on each other's teams. Maybe, I do it in a way where you select a team (eg. Red, blue, green, yellow) and the game starts when the host wants to start it)
“It randomly selects all connected players and puts them on teams”, you might have spotted the word connected. I actually got multiplayer COMPLETELY working by that point in the project, and I was super happy about it
18th of may is where the "objective" system really started moving. It now actively tracked which team is currently capturing an objective, what team finished the actual capture cycle, which player specifically started capturing as well as a few other small fixes. Before, it was just starting the objective and it wouldn’t really do much else, but now it could be properly implemented into the game
21st of may was one of the biggest days of the whole term, but not for this project. I will go into more detail after this section.
28th of may is where I really started focusing on the "mutliplayer" aspect of it. Before this point, I was simply testing it with two separate instances of the game on my computer, but on this day i successfully published the game to s&box (as a private game) and managed to play it on my computer & my dads computer simultaneously. This marks the "mutliplayer" part of the project essentially implemented, there was no more setup it's just me making sure all new code is "mutliplayer compliant", so it works for all players.
1st of June is where I started to focus on the Player versus Player aspect of it. I fixed the hitboxes (bullets were now able to hit different parts of players bodies, dealing different amounts of damage) and I also added a small GUI for me to debug my game easier. It showed nerdy stats and some helpful things to know while testing multiplayer features (are you the host of the game? etc) Another thing that was REALLY important today that I got finished was that you could now PLAY the game... If you completed the objective, the match would properly award you the win, and it would restart. This completes the "game loop"
2nd of June was a huge day for the Weapon System.
3rd of June: I made a small prototype map for a 1v1 version of the gamemode. One person spawns on either side of the small military base, and their objective is to place a C4 explosive on the tank in the center of the map. This was mainly just used to test with a limited amount of players, i wanted rebuild a new map later on with more of a multiple player team v team in mind (2v2v2, 3v3v3 etc)
After this point in the term, I started heavily losing motivation. The project got boring to me. This doesn't mean I was doing nothing though, I worked on other projects to fill the void as best I could, regardless of whether or not it was apart of my initial PIP idea.