Vlambeer News Roundup – April 2013
This month, we spent most of our month recovering from the Indie MEGABOOTH madness at the Penny Arcade Expo and the Game Developers Conference. Rami visited Boston again after the Game Developers Conference for somewhat of a week off after two weeks of conferences as Jan Willem started wrapping up the final interface tweaks for LUFTRAUSERS. Zach Gage, Greg Wohlwend and us started working on a minor update for Ridiculous Fishing. We’ll finally be updating Super Crate Box iOS shortly (think two or three weeks) and if things go well, a minor next project is already lined up beyond that and we’re pretty excited about that one.
Polygon launched the Human Angle article they’ve been working on for almost two years now. After news of the LUFTRAUSERS clone hit Pocketgamer and sent Rami into a frenzy of answering emails aboard a German train, Polygon also conducted a quick followup interview with us about our game development process and why we release freeware games first, products second.
We visited FMX in Stuttgart to talk about games and Ridiculous Fishing and then spent the last few days traveling back and forth between Indievelopment in Amsterdam and A MAZE Festival 2013 in Berlin. Rami hosted Indievelopment and fulfilled his jury duty at A MAZE Festival, where Henry Smith’s Spaceteam was unanimously voted to be the Most Amazing Game of 2013. Jan Willem hosted Local Multiplayer Picnic A MAZE edition and jammed on ‘Fold’ for Ludum Dare #26 with a bunch of friends.
In terms of nice things, Eirik ‘Phlogiston’ Suhrke joined with Sanjjib to record a celebratory Ridiculous Fishing rendition as a thank you for the many people that bought the Ridiculous Fishing soundtrack already. We’ve been discussing streaming on Twitch.TV a bit more often – maybe once a week or two weeks, so we might start doing that after LUFTRAUSERS is done. Crunch isn’t all that exciting to stare at.
As some of you have noticed, we’ve been at the center of more cloning controversy than we signed up for. Rami spent most of his day convincing German train officers to let him use the first class WiFi aboard the six-hour train ride he was on to be able to respond to the whole thing going down.
We obviously endured a bit of a scare when news arrived of LUFTRAUSERS being cloned and released ahead of our own release schedule by another developer. This time, however, it’s not ‘just’ the idea of the game that has been cloned, but also the visual style. This gives us much more room to fight the whole thing, and we fully intend to. The developer of the clone has gotten in touch with us after Twitter exploded and let us know that ‘acttuly we genrated our assets, Codes and all newly’ and that the gameplay as indicated on the screenshots ‘is not there in game as in the screen shots. We just done those screnshots for public attraction’. They signed off with the note that ‘we really dont think it links your game at all’.
We simply can’t deal with the stress of another cloned game, so we’ve gotten in touch with Apple and Google to see if there is a way for for the issue to be resolved without us getting involved in yet another clone war. They’ve requested us to file a DMCA filing, which we (and the handsome men at Devolver Digital) have done and we’re awaiting the results of that now.
We’re more than happy to see games inspired by our works and we encourage anyone to practice game design and development by recreating personal favorites – in fact, many of our games have been cloned dozens of times without us complaining – but the clones of both Ridiculous Fishing and LUFTRAUSERS take ‘inspiration’ a step too far and into the marketplace. We’re extremely exhausted from dealing with this type of cloning and even though this is an important issue to stand up against, we had hoped that we could just release a game without the cloning debate happening for once.
Ultimately, we refuse to accept this as a part of our industry. We believe that showing our games to our fans early is a better way of developing Vlambeer games than keeping secrets and just dropping the final result on people when it’s done.
Now that we’ve got the chance, we’d also like to take a few seconds to use the clone as an argument towards why LUFTRAUSERS is almost certainly not coming to mobile – we just can’t find a way to make it work as well as it should on touchscreen devices. LUFTRAUSERS requires you to keep track of three things: steering left or right, accelerating or stalling and firing or not firing your weapons. You’d need one input for each of those pairs – so on keyboard, three fingers or on a controller an arrow, a button and a trigger. On touchscreens, you’d need three thumbs.
LUFTRAUSERS is still hitting PC, Mac, Linux, Playstation 3 and Playstation Vita – with the latter being the most interesting device for those of you who would like to play LUFTRAUSERS on the go. We’ve been wrapping up development and we are on schedule to release the game later this spring.
Thank you so much once again to the fans, friends and press that have helped us out with Ridiculous Fishing and thanks so much to everyone for standing with us once again with LUFTRAUSERS. We hope this will be the last time we have to deal with this, but we’re encouraged to know that if it’s not, we won’t be alone.
P.S. We really like the idea of a Vlambeer clone game jam – we might organize that after we’re done crunching on LUFTRAUSERS.
If you all don’t mind, we’re going to take a nap now. It’s been a long day. We hope to be back soon with nice news.
Random level generation in Wasteland Kings
Wasteland Kings is a game we made in three days for MOJAM. It’s an action roguelike about mutants blasting their way through dangerous areas while searching for powerful weapons and growing new limbs on the fly.
Because we had a very limited timeframe to make this game (and JW doesn’t know any maths) everything was made with super fast, hacky, dumb logic. Our level generation was made in a couple of hours, but turned out very decent, supplying players with an infinite amount of very playable levels. This post is about how we did that.
Take note that our solutions are all hand-tweaked for this particular game. Some things might not make a lot of sense or have any reasoning behind them, but that’s just how we make games. Massive thanks to Paul, Jukio and Joonas, because respectively their art, music and sound effects really made the game what it is today and kept us inspired and working hard all the way through this project!
Let’s get started.
STEP 1: make some floors
Every area starts by creating a FloorMaker. Every iteration a FloorMaker will move 1 tile forward and make a Floor. Depending on what area (Desert, Sewers or Scrapyard in this case) it is generating there will be different chances for it to turn 90, -90 or even 180 degrees. For example, the Scrapyard has no 180 degree turns and thus moves straight forward more frequently, giving it a lot of long, straight corridors.
STEP 2: make some rooms
To allow for more interesting gameplay, FloorMakers have a chance to place Floors in a shape. In the Desert there is a 50% chance for it to place 2×2 Floors. This will create more open areas. In the Scrapyard there is a 11% chance for 3×3 Floors to spawn, creating little rooms, perfect for interesting shootouts and tight dodging.
At the Game Developers Conference in San Francisco (we’ll have a write-up on GDC and PAX soon) JW talked to Beau Blyth about his game Shoot First, one of the many inspirations for Wasteland Kings. It turns out he used a very similar technique for his levels!
STEP 3: splitting the corridors
We wanted players to do some exploring. Every frame a FloorMaker has a small chance to create a new FloorMaker. The chance of a new FloorMaker to appear depends on the amount of FloorMakers already active and the area we are in. Sewer for example has a lot of corridors, because we allow it to spawn a lot of FloorMakers. If more than one FloorMaker exists, they get an increasingly large chance to destroy themselves, to make sure the levels don’t have too many long hallways heading in different directions.
STEP 4: placing chests
There are three types of chests found in levels in wasteland kings. We have Weapon Chests, big Ammo Chests and Experience Canisters. Usually one of each is found in every area. We wanted to spawn these in interesting places (mainly dead ends) in the levels, to reward players for exploring. The way we did this is horrible but effective.
Whenever a FloorMaker turns 180 degrees, it spawns a Weapon Chest. Whenever a FloorMaker destroys itself, it spawns an Ammo Chest. Whenever the level is reaching its final size, FloorMakers spawn Experience Canisters.
After the level generation is done all but the furthest (with a bit of a random offset) chests of each type are removed.
Fun fact: When making the animated gifs for this posts we found out that the weapon chests are placed after turning 180 degrees and moving one tile, instead of on the tile of the turn itself.
STEP 5: level size
The game counts the amounts of Floors. In our case, the max is 110 Floors per level. When a FloorMaker notices there are more than 110 Floors it does one more step and then destroys itself. The amount of Floors divided by 110 is the percentage shown while the game is loading.
Because we still place one more set of Floors after reaching 110, the game usually loads to 101%. We kept that in to show the world we put a lot of extra effort into our games.
STEP 6: placing the Player, Enemies and Walls
WARNING: The way we did this is very dumb.
The Player is simply spawned on the place we spawned the first FloorMaker.
Enemies can spawn anywhere far enough from the Player as long as there are no chests there. We just check all the Floors and give them a random chance to spawn some Enemies depending on the current difficulty. Enemy type and rarity depends on the area. For example: a tile in the desert can spawn either a Bandit, Maggot, Corpse, Scorpion or a group of unwise Bandits warming themselves around an explosive barrel.
We then place Walls around all the Floors. Every Floor has a small chance to spawn a Wall on one of it’s 4 corners. Finally, there is a 14% chance for a Wall in Scrapyard to become a firetrap.
It later turned out these randomly spawned Walls were able to block corridors. We tried fixing it in the last 7 minutes of the jam but it turned out we failed. Luckily, occurrence of this is super rare, seeing we were testing the game for three days but only saw this happen once.
STEP 7: graphics
Every Wall side, Wall top and Floor has 4 different versions per area. The first graphic is very common, second or third are shown 22% of the time. The fourth one was supposed to show less than 1% of the time, but the code for that was broken and nobody ever saw these. Sorry.
STEP 8: gameplay
Finally and most importantly, make sure your gameplay is suitable for these kinds of levels.
Our enemies drop experience and sometimes items when killed. These drops and experience disappear over time. This encourages people to move into places they normally wouldn’t need to go.
Our exits spawn when the final enemy is killed, this allowed us to not have to worry too much about exit and start placement. A problem with this was that sometimes people missed some items because they were sucked into the exit. On the other hand, this also generated some cool gameplay when people where already being sucked into an exit, but still managed to shoot an experience canister, leveling up just a split second before going to the next level. (Our exits also suck in experience and smaller pickups to let people not have to deal with that manually after beating a level.)
Our classes use space in an interesting way. Fish rolls, crystal can shield himself from damage, plant can create choke points and pin enemies down and eyes can move enemies and enemy projectiles around. Melting even uses enemy corpses as a resource (blowing them up), which suddenly makes positioning them relevant.
Enemies are always moving around a bit, even when the player isn’t anywhere near them. Some enemies charge at you, some flee, some just dance around. They fill spaces differently.
Shotgun bullets bounce, bolts pierce, melee weapons can be used through walls but have less reach.
The way you and the systems interact with the level is way more important than the shape of the level itself. The level is just there to bring people what they want. In this case we brought them an infinite wasteland filled with monsters, weapons and treasure. We wanted them to have fun.