Oh boy… What to do here…
Oh boy… What to do here…
Although the Unreal Engine automatically applies occlusion culling, a lot of the traps and mini-games we make have code, animations, and particle effects that run in the background, even if they aren’t in the camera’s view. Most of it is quite trivial, but given that the traps are the most frequently used asset in the game, we thought this was an excellent area to perform a stress test on several gaming computers and see how it would impact performance in terms of frame rate, frame latency, and online networking.
For this build, we procedurally generated the entire dungeon from the beginning (as opposed to generating and deleting on the go) and spawned roughly 300 traps. All the in-game meshes were placeholder and do not have any materials. We’re fully aware that materials and textures are an entire field of its own that needs to be efficient, but that’s a topic we’ll handle later on when we have official assets.
While we were at it, we wondered if it’d be fun at all to have a dungeon crawler that went to the extremes and had nothing but traps at every step of the way. Would it be so painfully punishing and yet rewarding that players would call it the “Dark Souls” of multiplayer party games?
To get a fresh perspective on our game, we invited a friend of ours, Alex, an avid gamer, to playtest with us. Here’s some gameplay footage.
So, it was definitely not Dark Souls-like at all. In fact, it was such a pain to get through the pathways, especially with the poor visual cues and the inability to move an inch without falling off the platform.
Back to the main goal at hand…
Frame rate and frame latency were great and stayed steady throughout the playthrough, even when the camera view zoomed out and a significant number of traps were being rendered.
Online networking, unfortunately, suffered and issues with server-client desyncing made it unplayable at times. The players on the client side would report walking through the trap meshes, teleporting across the screen, and getting damaged by a trap before it even activated. By the end of the playthrough, the server saw all the pendulums moving, but none of the clients saw the pendulums moving.
Basically, a lot of the remote procedure calls (RPC)—multicasts and rep notifies—were getting lost in the lag. As we got further and further into the map, it became more apparent that the later traps and mini-game rooms were missing some RPCs that should’ve been called (e.g. the pendulums moving only on the server side). This is likely due to how our procedural generation works at the moment, where the entire world is generated at once, making the number of remote procedure calls to send from server to client quite large in such a small amount of time.
This week we’ve made some great progress and resolved a majority of those issues by running periodic checks, using a blueprint interface to communicate values calculated from the server’s end, reducing the number of remote procedure calls, and reworking the procedural generation to create and delete the world as the players move forward, rather than all at once.
Roughly every two weeks we do a check-in with each other on the game’s progress. We sync up all the work we’ve been doing, make a build, and playtest the crap out of it to make sure it’s still headed in the right direction and to prevent any game-breaking bugs from carrying forward.
This week’s build consisted of over 15 different pathways, 10 mini-game rooms, and 3 bosses. To no surprise, we playtested it over 20 times and found a whole bunch of game-breaking bugs, such as gates closing on the players before they could leave the room and items not getting deleted when the mini-game ends. Now we have this massive list of things to fix before our next build. Yay!
An interesting finding was that platforming, specifically jumping across suspended platforms, was not good for pacing. It was really frustrating to fail the jumps over and over, and it became something only the more skilled players could pass through quickly. For a party game with a low skill cap where players gain enjoyment from messing with each other, this was not a desirable outcome. As a result we removed all the platforming-heavy pathways.
On the upside, good progress was made on a few things. The procedural generation is efficient and very speedy. Online networking is working much better—nearly all the replication issues we had previously are now taken care of. Lastly, the mini-games are turning out to be a lot of fun.
Happy New Year to you all!
*cough* We’ve been slacking off a little on the weekly updates—new year resolution duly noted—but we’ve been hard at work! Here’s what’s been goin’ on since December of last year.
As some of you may recall, Mind the Traps is a dungeon crawler designed around pathways and rooms. In each room the players duke it out in fun Mario Party-like minigames yelling at each other and gawking spit from uncontrollable laughter. Between each room are sets of connecting pathways, a highly varied assortment of pillars, floating platforms, bridges, spikes, hidden traps, obvious traps, monsters, etc. etc. This is where all the devious fun comes in muahahaha.
Jodie has too many coins? Let’s smack her into the pit of lava. George winning too many minigames? Just let the monster snatch him up and feed on him until his pockets are empty of coins.
During these past couple weeks, we’ve been planning out all the minigames, traps, types of monsters, bosses and pathways and have been gradually crunching them out. The plan is to have a fully playable version by the end of this month, featuring 5 bosses, around 12 minigames, and about 30 pathways. Here’s a screenshot of us playing with fog and new procedurally generated pathways.
Here’s a teaser for one of the boss concepts we’ve been playing with.
We wanted the story and narrative to scream Stanley Parable and Battleblock Theatre—ridiculous and sarcastic humor. The team got together this past week and spent a good day chucking out a narrative. For now, let’s just say it involves puppy treats and squirrels, but we’ll reveal more later on. 😀
And the results are in… *drum rooollllll*
As hoped, White Rose scored pretty well in graphics! Woot! For a game with around 3000 contestants, that’s awesome.
Our UE4 guru, Michael Lee, just finished his finals last week and of course couldn’t wait to get back to work. In a few days, he got the online networking to work! Woo! Trying to get this to work has been a huge pain for Chris this past week; apparently, it’s because of the way our router is set up.
Integrating online play is still up in the air. Mind the Traps is a party game that you enjoy with your friends, and if your friends are around you as opposed to behind the screens then it’s even more fun. Playing online actually does more damage than give convenience. There are a lot of games out there that only offer local play, e.g. Towerfall Ascension, Spelunky. It’s not an all-or-nothing option for the player.
Chris and I will be finishing up the technical portion of Mind the Traps by the end of January, and our artist will come onboard around the February timeframe to touch up the game, add in new characters, design the bosses, etc. His artwork will be a strong tool for marketing and building up hype for our Kickstarter campaign in the summer.
The elephant in the room. Running a business means everybody has to get paid! We’re very fortunate to be working with a flexible group of people that isn’t worried about being paid in the immediate term. Kenneth has been working on a profit sharing plan, which is a payment model in which everybody is compensated only when the game makes a positive profit. Everybody takes a percentage of the profit sharing pool based on how much time they can commit to the game’s development.
Judging is still ongoing for another week. If you’re a current participant, it would be an awesome Christmas present if you vote on our game!
There has been some interest in the style of White Rose, so we would like to share the creative design process behind the game.
Synesthesia is a neurological condition in which different senses are linked together. Our character is a blind boy who has audio visual synesthesia and sees a plethora of colors with each bump to the beat. You’ll first notice this when you pick a song and press play. The layers of warm color fade in and suddenly give depth (parallax scrolling) and life to an otherwise dark and empty world.
Unfortunately, due to time constraints we couldn’t add in the rhythm mechanics where you can combo to the beat of the song and be rewarded with more spectacular visuals. We noticed in your comments that this was exactly what was missing, and we love how you guys totally get it! We’ve been listening to your feedback and are working on a rhythm-based combo system. It’ll be available for fun as a post-compo version (not to be rated for this jam), so stay tuned!
If a blind person has audio visual synesthesia, what do you think he or she sees when music is playing? I don’t know myself since I don’t have the condition, but I imagine it being a vibrant, abstract painting on a black canvas that continuously bursts with more color to each beat. To signify that, we used paint splatter sprites and particle effects that exploded out in the direction of each punch.
You can never have too many particles… until the FPS drops and the game crashes… then it’s too much… But until then, particles are just so amazing and easy to implement, and add a lot of extra satisfaction to every punch.
If you pay close attention, you’ll notice that the boy is a 3d model while the monsters and the rest of the world are 2D sprites. From a technical development perspective, animating the run cycle for a 3d model takes less time than drawing enough sprites to account for 8 directions of movement in a 2D isometric view. From a design perspective, we wanted a clear distinction between the “real” him and the abstract painted environment that only exists in a world created from music. What better way to distinguish that than with a 3D model and 2D sprites?
We hope you enjoyed the game and good luck with the next 2 weeks of Ludum Dare 34! Feedback is always greatly appreciated!
In a world created by sound, play as a boy with synesthesia as he fights the ever growing darkness with music and his fists, painting the world in color with every damaging blow. Destroy the monsters before they spread the ever-growing darkness. Turn up the beats and enjoy the visual experience.
White Rose was actually one of the first concepts we came up with when we got into game development, so we were really excited to be able to turn it into something playable. Unfortunately, due to time constraints for this jam we couldn’t implement all the features, such as combo-ing to the beat of the music and adding a rhythm element to it. Check out the game and have fun!
See summary below.
Two days left to vote for the Itch.io Loading Jam, and our submission has been rated an UNBELIEVABLY AWESOME 2 times so far. Yea! Fingers crossed.
In case you haven’t see it yet, check out submission Paradigm at the Itch.io Loading Jam page. Paradigm is a mystery visual novel with thrilling, alternate endings and it features pixel art, puzzles and nerdy humor. This time around we wanted to test ourselves and make something different from what we’re usually comfortable with. We stayed true to our studio values of integrating deep underlying meanings and created a game that was less mechanic-centric and more story-driven. Admittedly, we broke some rules from our “How to Make a Game in 1 Week” post—specifically not to waste time learning new skills—but we wanted to spice up our creative juices.
Unfortunately, writing a mystery visual novel game turned out to be a lot harder than we expected. Branching dialogue (storyline changes depending on how the player responds to questions) requires a dialogue manager, which also needs to initiate sprite animations and cinematics. The more branches our story had, the more complicated the coding got.
In regards to the story, writing a text-based adventure requires well-paced dialogue that develops the characters’ personalities and makes reveals without revealing too much. Guy Hasson’s Gamasutra post on how to write a mystery was extremely helpful. The following picture shows our brainstorming of possible story routes, with each smaller post-it being a sub-mystery that builds up suspense for the final reveal.
For two engineers who haven’t done any creative writing since high school, writing dialogue was… quite a challenge! It ended up taking us 4 days to fully flesh out the story, leaving us only 3 days left to code, write the dialogue, and draw the art. You can imagine the smiles on our faces when the jam was extended 3 days.
I [Kenneth] personally used to be kind of… anti-pixel art. Not in a bad way. It wasn’t until I tried it this past week and saw how much potential it had that I became fully converted. I was inspired by Hyper Light Drifter and Doko Roko and wanted to take advantage of this short break from Mind the Traps to try it out. It turned out to be so much fun.
I just put together a pixel art tutorial on the basics and tools you need in GIMP to get started. It’s a 3-part series (the other 2 are still in progress).
This past week was a lot of fun, but it is time to get back to work on Mind the Traps. We’ll be completing a couple mini-games by the end of this week so stay tuned for screenshots!
One and a half weeks later, this game jam has been conquered. You can find the download link here. You can support us by playing the game, giving us feedback, and rating us on the jam site! It’ll be greatly appreciated. In the meantime, check out some screenshots below.
Paradigm is a visual novel, mystery thriller with alternate endings. It features puzzles, humor and pixel art.