G-Mare

G-Mare was my entry to Cromulentville, the second 50 hour mapping challenge run by RunThinkShootLive. The theme of the challenge was as the name suggests; “Cromulent”, which was explained as:

Your task is to create a perfectly cromulent map.

Is your map silly? Absurd? Weird? Hilarious, crazy, or a complete joke? Great! These are all cromulent maps and they’re exactly what we’re looking for.

Use this opportunity to embiggen your creativity.

If your map leaves players saying, “WTF did I just play?” – perfect!

Make players laugh, make them cry – but make them FEEL something. You have 50 hours!

I’ve never made a level of this sort before, so I knew it was going to be an interesting challenge from the start. It actually turned out to be a bit more difficult than I expected, as I had some trouble coming up with interesting gameplay mechanics in the time frame that made sense with my idea.

My idea was essentially something that would leave Gordon Freeman tossing and turning in terror.

20170709034924_1
Behold.

Yep. For whatever reason, there are some HL1 g-man textures lying around in the HL2 files so I decided to use them for my level. I created some cubes out of brushes, applied the relevant textures to them, made them func_illusionary and assigned them to the relevant attachment points on some NPCs (Metropolice, Hunter and Gunship). I came up with this very early on, and started making a house to support the my first idea – a dream, or rather, a nightmare. Initially I wanted the entire level to take place in the house so I made it rather large for the first grey box. It didn’t feel like there was much of a use for the g-man enemy in this situation though. Nothing I tried to do sat well with me so I decided to change my idea, aiming for a comical rescue mission where you have to rescue Dr Kleiner from the evil G-Man corporation. I started on this idea but stopped for the same reason, with the additional issue of the time constraint. I then started on my third idea, where the player would fight through a small space ship where citizens were getting turned into G-man monsters. I stayed with this idea for a while before I dropped it as well. All of these ideas felt like they were either trying a bit too hard to be random or nonsensical, or would take longer than I had to complete to a reasonable degree.

Eventually at the end of the first day I decided to revert back to my original idea, but change it so the meat – the dream part of the level, would take place in a more surreal environment instead of the house. I only had about 32 hours left at this point so I locked in this idea and told myself I wasn’t allowed to make any more major alterations, regardless of how it turned out. I removed a portion of the house to make it easier for the player to find the bedroom, locking irrelevant doors and adding an Easter egg to the bathroom as a treat for players who bothered to check every door.

20170710142950_1
Doctor Freeeeeeeman…

The dream itself was in a temple setting, with lots of stone and flame illuminating the large G-Man faces that would cover the walls. I chose the temple setting because it felt strangely fitting, like some disturbing place of worship for an equally disturbing deity. I also chose it because it required simple brushwork that didn’t eat up as much of my remaining time.

20170720181541_1
First area of the dream.

The first area of the dream was designed with the intent to have as much playable space in one large room as would be considered appropriate. I didn’t want to have lots of hallways and corridors, as they’re boring to make and not very interesting to play through. I initially had issues with the enemies above the player being a bit overwhelming once being unleashed (for lack of a better term, explanation incoming), but some careful wall and cover placement solved that issue. When you first entered the room the only threats present were the ones in front of the player and the ones on the bottom floor. The player had to move to the bottom floor to find a button to remove a series of pillars blocking the player from progressing along the upper walkways. When the player presses the button however, it would also cause a series of G-Man cubes to disappear revealing a new series of enemies. This was done out of necessity as I couldn’t spawn them in with monster makers, as the G-man body part attachments were dependant on each metro cop having it’s own name. It also added a little something more to the “strangeness” of the level, so I was happy keeping it instead of finding a more hacky but correct way of achieving the same goal.

20170720181603_1
Second area of the dream.

The second area of the dream is a simple arena where the finale of the dream takes place. After leaving the first area, the player follows a short corridor to a prep room where they can arm up and heal for the coming fight. Once they step into the arena, 3 hunters spawn which the player has to fight and kill. If the player has gone out of their way to collect all of the items in the previous parts of the level then this fight is a breeze, if not, then they’ll have to do some work with the SMG. The level caps off with a fight against a gunship, also G-manified, which appears after pressing the button on top of the G-man head in the centre of the arena. They’re provided with an RPG and an ammo crate, as well as multiple item crates located in the safer spots in the arena. After the gunship is destroyed the dream ends and the player wakes up, marking the end of the level.

I finished the level at around 4:30am, with around 2 and a half hours to spare before the deadline. I’d spent around 18 hours straight on Hammer at that point and I was more than ready to sleep.

Ultimately I’m happy enough with the level, given the time frame we had and the amount of time it took me to come up with my final idea, but of course there are things that I think I could have done a better job on. For starters, the gameplay, while featuring a unique looking enemy, is typical and rather average for Half-Life 2 as far as combat goes. It doesn’t really bring anything new or overly interesting to the table and I feel like more could have been done with my idea. I’m also fairly disappointed with the house that the player starts and finishes in. While it isn’t bad as far as a layout for a modern house is concerned, it’s bare, uninteresting and was a bad choice for the Half-Life 2 universe. The brushwork is very very simple, the textures don’t fit in at all and there is barely any furniture. I’d considered earlier on remaking it into a smaller but more detailed log cabin or something fitting the Half-Life 2 aesthetic but ultimately did not have the time. I keep telling myself that the house was a product of the time constraint, but it still bugs me immensely.

On the other hand, I’m happy with how the layout of the level turned out and how the gameplay I did manage to implement performed on that layout. It might have been a little easy, but for these challenges I prefer to make combat less of a challenge so I don’t have to spend more time than I have to fine tuning it.

20170720181533_1
The feedback has also been favourable, which is always a good feeling.

You can download G-Mare as part of the Cromulentville mod here.

Next Steps

Now that I’m done with the LFC maps and Primus is slowly trucking along I’ve started thinking about what I’m going to do next.

Finishing Primus is a priority but I’ve been running into some issues caused by a lack of knowledge on how things in Black Ops 3 work. There is no documentation that I can find and scripting tutorials for BO3 Mod tools are almost entirely zombies focused. I’m having some trouble figuring out how to create the scripting required to get certain things working, such as aerial score streaks. I’ve investigated the example map Combine, so I know what entities to use and what user-defined KVPs to add, but I still feel like I’m missing a lot of context around what the chains they’re placed in do specifically and what their purposes are.

To explain further, so far I’ve added  around 5 different entity chains to the level which I can only assume are related to aerial score streaks. I’m presently either recreating the chains based off of what I am seeing from Combine or copying them directly, and so far all score streaks aside from the Wraith, the Mothership and Raps work. I’m assuming these last three score streaks are dependent on the last chain I have to add, but when I add this chain and compile I can no longer start the map, instead experiencing an infinite load screen. Clearly something is wrong, but I’m still unsure as to what and am currently trying to isolate the problem within this chain specifically.

troublemaker
The troublemaker.

Aside from this though it’s been smooth sailing. The optimisation is about as complete as I can make it and I’ve done additional polishing to make gameplay in some areas a bit more smooth and natural. My next major steps after figuring out the score streak scripting issues are to fix up and create more nodes for bots and to go through the process of creating a mini-map (a guide was provided, thankfully). I also might see what other game modes I could include, but at the moment the above things are my priority.

In other news, I’ll be starting a new project alongside Primus. I’ve been thinking about what to make over the past week and have come up with a number of ideas, and have ultimately decided to continue working on a Half-Life 2 level I started around the beginning of MinimalismVille. It will have the aesthetic that I came up with for my alternate version of what ended up as Abstraction (and ultimately was used for LF5), but with gameplay elements proposed in my LDD of my level for BridgeVille, a project which was never truly started as I decided to continue to learn Radiant to work on Primus instead.

20170522173226_1
An older picture of my alternate idea from the day I did Minimalismville. My new level will be sharing this aesthetic.

That’s all I have for now, have a great day folks.