Over the past few years Bram “Pericolos0” Eulaers has been working on GIBHARD. His very own run and gun FPS. It’s a throwback to the early 90’s when games like Doom and Quake defined a genre. Games that were unforgiving and focused on speed, guns blazing and gore. But GIBHARD is more than just old school. It adds procedurally generated worlds and a roguelike flavor to the mix. Since Bram “Pericolos0” Eulaers is one of our most senior members, I could easily guilt trip him into doing this interview. Because it’s important for our community to know everything there is to know about GIBHARD.
What inspired you to make GIBHARD? More importantly, what keeps you motivated? Seeing as how GIBHARD is a one man endeavor that’s eating up a lot of your free time.
It pretty much started with me doing a bunch of little game prototypes and programming experiments. Unity kind of renewed my interest in programming, something I hadn’t done since college and I was basically just having fun with it. I was fascinated by procedural generation techniques. I wanted to see if I could make something with simple procedurally generated levels. GIBHARD actually started out as a 2D game at first!
Just for fun, I threw an FPS controller into my 2D prototype. From there on it quickly turned into a pretty fun Wolfenstein style game, and I realised I had everything put together to make a fun retro FPS. I primarily referenced Doom, Quake and Quake 3 for the movement feeling. There’s actually a procedural level generator tool for Doom called Oblige which was a big inspiration for the procedural generation in GIBHARD. For the art I looked at old Bitmap Brother games like The Chaos Engine and Z. Spelunky was huge inspiration for the overall way GIBHARD is structured.
Anyways, I thought I could turn this into a complete game in about 6 months hahaha. It turned out to be quite a bit longer, but I’m enjoying every moment of working on it so that keeps me going!
What can you tell us about the gameplay in general?
It’s a straight up fast paced FPS made for quick intense and fun play sessions. You’ll be running through increasingly more difficult and larger levels, picking up weapons, keys and finding secrets. You will likely never play the same level twice and you start over when you die. Along the way there are NPC’s you can interact with, and you can even buy items and upgrades from them using ore crystals you collect.
There are currently 10 weapons in the game. Your default weapon is the warp gun, which is sort of a physics manipulation weapon that doesn’t use any ammo. The other weapons are divided over 3 different ammo types: blue for bullet/shell based guns, green for energy weapons and red for explosives. Some weapons you’ll only find in certain playthroughs, other’s you can buy from NPC’s.
The game has over 10 different enemies, with varying attack styles, and 3 boss fights at the end of each zone. Some enemies will group around larger “leader” types. Others will give enemies around them energy shields making them invulnerable. You’ll have to take out the “shield givers” first. Some move around fast, dodging your bullets or fly around with jetpacks. I’m still hard at work on tweaking their attacks and abilities. I’m also coming up with new ones like a kind of sniper enemy I’m currently working on.
What about the story and music?
The story is pretty vague and is mostly implied through snippets of dialogue from NPC’s. It’s not a very big focal point of the game. It’s mostly a self aware FPS universe that’s all about running and gunning and respawning. But the enemies definitely look like they belong to some kind of larger ecosystem. What’s actually happening outside of the game world is up to the imagination of the player.
The music part of GIBHARD is still taking shape and that’s one of the main reasons why I haven’t put together a trailer yet. There’s currently a few tracks that work pretty well. It’s kind of a minimal electronica thing with some Bobby Prince (Doom) influences. There’s also a procedural aspect to the music in that the tracks are layered and get more intense depending on how much combat you are experiencing!
You’ve stated that players can manipulate the environment in the game. Does this mean that there are destructible parts or are you referring to something else?
The level geometry itself is pretty static, it’s not minecraft, but the maps are filled with physics objects that you can manipulate. The primary weapon in GIBHARD is the warp gun, which you can use to pick up any object and turn it into a projectile. You can grab a dead enemy’s head and use it to kill another enemy. You can grab enemies and grind them up in a ventilation fan or throw them into lava. There’s a bunch of destructible objects, often explosive and some destructible walls leading into secret areas.
The game has a very unique look. Mainly due to the lighting that looks absolutely stunning. How did you come up with this?
Getting the lighting right was something I was really struggling with and probably one of the reasons I felt I was spinning my wheels for a while. Back when I switched to Unity 4, all my shaders broke, so I was in the process of rewriting all my shaders. I wanted to learn shader code so I didn’t have to rely on third party node based editors anymore. Around the same time I saw Oskar Stahlberg’s 3D tile based experiment. The way he used a volumetric texture to create ambient occlusion made me realise I could use a similar technique to create ambient lighting for GIBHARD.
I ended up generating a sort of 2D lightmap that gets projected on the world geometry to create nice soft lighting coming in from skylights. The same technique is used in reverse to create soft lighting coming from below for glowy lava and toxic goo. Because the world is generated using a 2D tile based grid, I can generate this ambient lighting texture very fast on runtime, without any loading times. It’s a very simple system which really only works for how GIBHARD levels are set up, but it gives a nice global illumination look for basically 0 performance cost.
Lighting is everything! Good lighting helps you read to world so much better and to pull it off everything has to work together. Which is why a lot of the 2D sprites in GIBHARD have normal maps. Pretty much everything you expect to emit lighting of some kind has a dynamic point light attached to it. I think that this blend of next-gen style lighting and shaders, with the low-fi textures and retro FPS aesthetics, is what gives the game it’s unique look.
GIBHARD shares a lot of features with Strafe. Both are old school run and gun FPS games that take place in a procedurally generated world. Both are single player only and there’s no mod support as of yet. What makes GIBHARD different?
All FPS are the same amirite? It’s true that the overall structure of both games is very similar, but they play very differently. If I’d have to make a comparison, it’s that GIBHARD is a lot more like Doom and Strafe is more similar to Quake 2. The approach to procedural generation and level design is very different. The weapons and movement feel very different and even though they both have a retro look to them, I think the visual style is also very different. I think there’s definitely room for both of us and more! I’ve played Strafe and it’s a lot of fun. I’m looking forward to the release! We’re definitely not the only retro FPS out there with procedural generation. There have been a few more popping up. I’m personally very excited seeing this retro FPS revival happening!
What engine are you using and why did you pick that specific engine?
I’m using Unity because that’s what my original prototype started out in and I had already gained a bit of experience creating various small games with it. Something about Unity really clicks with me. It’s simple, yet very technical and I feel free to make whatever I want in it. You only add the things you need and put together the tools you need to make your game. It feels very much like having a game engine of your own doing exactly what you want it to do. It’s also incredibly stable, which is a huge plus for me. I’ll have Unity running for weeks sometimes without it ever crashing or having to restart it.
Your professional focus is Environment Art. Now you have to deal with all aspects of game creation. Have you experimented outside of Environment Art before or did you have to learn everything for GIBHARD?
My background back when I was a hobbyist has always been one of level design. I’ve been making tons of levels, both multi and single player for various games (Duke Nukem 3D, Half-life) before I actually started making my own textures and models. When I started my professional career, I’ve always had little side projects going on that weren’t environment art. Like terrible attempts at making 3D characters, little game programming experiments in Flash, Flixel and Unity and music experiments. Things like that. GIBHARD basically became my project hub, the side project I can always go to to play around with anything that isn’t environment art. It’s a really nice thing to have. A project you can contribute things to that aren’t necessarily your core professional skills, but you’re never really doing throw away work either, as it’s all contributing to this one game.
What kind of difficulties did you have to overcome during the development of GIBHARD?
Oh wow, too many to name! Making a game from scratch for one. Where do you begin? What choices are the right choices? Funny enough, I’ve found the programming part of developing GIBHARD a lot easier than the art and especially the game design part. When you write a program, it either works or it doesn’t work. But with art and design, there’s no objective way to know if the choices you are making are the right choices, it’s very nebulous. Even though it’s a fairly straight forward FPS, a lot of the art and design went through a lot of iteration and retries. I think I did about 4 different attempts at a tutorial, ultimately landing on something that’s kind off seamlessly integrated into the game itself. I’m now at a point where the art and design, save for a few small things here and there, are pretty much figured out. It was a crazy hill to climb!
The level generator itself was a big struggle too. I went through about 3 different versions of it, each being faster and having more features. It went from taking sometimes over a minute to generate a valid level, to currently only a few milliseconds. Getting it to be very fast was very important as I did not want GIBHARD to have any loading times or progress bars at all. I got it to a point now where it generates the next map during gameplay spread out over a bunch of frames, so the gameplay never pauses!
Can you tell us something more about the level generator? Is it going to put Level Designers out of a job?
Haha, I doubt any Level Designers will be replaced by a program any time soon. The level generator for GIBHARD is designed purely for the constraints of the game, it couldn’t really be repurposed to work for another game. Procedurally generated levels will never be as good as something designed by a person in a modern game, however I’m doing my best to make the levels as good as I can within my abilities. The GIBHARD generator will generally spit out levels consisting of rooms connected by hallways, that make sense design wise. There’ll always be a main path with some optional side paths in the layout. The generator will for example place keycards and locked doors which will require you to explore the maps and backtrack every now and then.
I discovered very early on that too much randomness can get weird and is hard to control. So a lot of things in the maps are tightly controlled using various parameters. This can be room shape, number of elements, visual style of a room and more. I have a lot of control over how a level looks and feels like, so even though it’s procedural, it’s also very designed. Translating how I would design a certain part of a level into parametrically controlled code has been a very interesting experience.
Any do’s and don’t you wish to share with aspiring Indies?
DO: Make sure the game runs at all times, with good framerates. If your game is unstable or has unplayable framerates even in the beginning of the project, you won’t be getting much done. You can’t make a game, if you can’t play the game. Try to have as little downtime as possible and make sure the core game loop is always functioning. You’ll have a lot more fun working on the game!
DON’T: Overdesign the scope of the game. Keep it simple, don’t try to make an MMO. Always assume everything will take twice as long as you think it will take. The last 20% of your game will take 80% of the development time. Seriously, too large of a scope is the number one problem that bites everyone in the ass. Both for Indies and AAA developers! Make something that’s very small and simple and fun.
Since you are going retail, how did you figure out the business side of selling your own game and getting it on Steam?
I plan to launch the Steam Greenlight campaign as soon as I’ve set up a good trailer, so fingers crossed that it will get approved! I haven’t decided yet whether or not it will launch in Early Access first. But that’s something I’ll have to figure out soon! As for the business side of things, I’ve set up a business entity to sell the game under.
Is it GibHurg? Can we expect Mapcore easter eggs? Maybe a little hint? But seriously, when can we expect to play GIBHARD?
Haha, I like the sound of GibHurg! I’ll definitely have some Mapcore easter eggs and they will be very obscure. You’ll have to be hardcore Mapcore to get it. The game is pretty far along, so if I decide to go Early Access I think I can get it in people’s hands in a few months. Either way I plan for a 2016 release!
I want to thank you Bram “Pericolos0” Eulaers for doing this interview with me and sharing it with our community. I wish you good luck on finishing GIBHARD. You know where you can find a lot of eager beta testers! Be sure to check out the official GIBHARD website and follow Bram’s progress on Twitter.