online networking

Mind the Trap

Week 16: Traps Stress Test


No Comments

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?

IMG_3157.PNG

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.

Mind the Trap

Week 9: Online Networking Works, Next Year’s Plan, Profit Sharing Plan


No Comments

Online Networking

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.

Plan for Next Year

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.

Profit Sharing Plan

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.

Ludum Dare 34

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!