This is great. Keeping UVs at 90 degrees never occurred to me but it makes so much sense it seems obvious in retrospect
Unless I'm mistaken, this is how Shadow of the Colossus handles the fur on the Colossi
Awesome breakdown Simon!
Thomas Kole is a game developer from Belgium, who has worked on an impressive number of various projects. Apart from being a productive creator of various tools and a lover of high-quality 3d environments, he also builds free games. His most recent release, Half-Line Miami, is a game mashup between Half-Life 2 and Hotline Miami. We’ve talked with Thomas about his new game and the way he built it.
Coming into Game Development
My history with gamedev goes back a long way. I suppose I started with 3D just before highschool, I was maybe 12 years old (20 as I write this). Sketchup was my gateway 3D software, I got into Blender shortly after, a 3D package I’m still very much in love with.
I was never much of a gamer, but I did like making things in 3D, and I always thought about how to represent the world in 3d. I’ve been involved with some projects, mostly as an artist, but none of them ever released. My programming experience doesn’t go back quite as far. I started programming about a year ago when I started my school career at Digital Arts and Entertainment, a game development school located in Kortrijk, Belgium.
I went there with the intention of becoming an artist, but I fell in love with programming instead.
I was intrigued by the idea of SuperHot, that one game where time moves only as you move. I wanted to make a 2D version of it, as a way to learn C++. First I started working on a sidescroller called “Somewhat Hot”, but it didn’t work out so well. Then I saw Hotline Miami in my steam list, and it was obvious.
Then Super Hotline was birthed. You might have played a Super Hotline, but that is not my Super Hotline! Someone else (@Albattr) came up with the idea completely independently. I never released mine. It was my first big project and the code was a big mess.
There was a big upcoming assignment for school. I came up with the idea of mixing Half-Life 2 and Hotline Miami in my sleep, and I had to choose between redoing Super Hotline from the ground up or making Half-Line Miami. I chose the latter, because I wanted to do something new, and it had to be physics-driven.
Uniting Hotline Miami and Half-Life 2
It’s tough making a mashup. You alter peoples favourite games, but they might not like it. I’ve heard a lot of people criticize the game for being too little of Hotline Miami. You must however analyze the game on all its properties, not just the visuals. You will definitely “feel” the Hotline Miami in there.
There’s really no secret, you just have to do it by intuition and experiment. Don’t be afraid to scrap a day’s worth of work if it just doesn’t feel nice.
Creating the Engine
It’s not my own engine, it’s an engine that was made by the teachers of my school, although quite a few modifications have been made by me. It’s a purely C++ engine, one that draws bitmap and has a Box2D wrapper. There’s a lot of plug-and-play engines out there, but I needed more control. Going with a pure C++ engine without any restrictions was a good idea. Not only did it allow me more control over the way the game feels, but it was a good learning experience too. I made a lot of mistakes in the process, and learned a lot.
Figuring Out the Gameplay
The game is not very serious. It wasn’t supposed to be a complete makeover of Half-Life 2 in 2D, there’d be no point in that. The gravity gun was fun to use, and guns would be too overpowered.
It brings with it some level design complications. You need to give the player enough room to pick up and shoot objects, but if you make the playing field too big, the player becomes disoriented and will be shot by enemies off screen. You can use these limitations to your advantage sometimes too, or bend the rules a little.
Making a map requires some technical/artistic skill. It’s not like Hotline Miami’s upcoming editor. You make the ground bitmap in software like GIMP or photoshop, and you create the hitbox in a vector graphics editor, like Inkscape. You use the inbuilt editor to place gameplay items, like enemies, physics objects, and pickups. A big plus is that you can change any bitmap into a physics object. You can read all about it once the game is done, there will be a few tutorials.
Feedback from Hotline Miami Team and Valve
I haven’t heard much actually. Hotline Miami’s twitter account tweeted at me, but didn’t say much. Valve are known to be careful with their words. Maybe when the game releases.
Building the Community
There’s a forum/subreddit in place where people can upload their custom maps if they want. It’s reddit.com/r/HLM. You can just download a map and place it in the Levels folder, no problem.
I can’t release the source files of the game, because of the engine, but the game is mostly loaded from files. Someone could go in a replace all the images used in the game, like the menu text, sprites, the fonts, etc, and recreate a Half-Life 2 episode, or a whole different game! I would love to see that happen. Steam might happen, but I can’t quite say at this point. First I’ll release the game on Itch.io. For free, of course.