About Shempi

I'm a big fan of video games and playing them. My favorite genre is Arcade. Currently playing: Darkest Dungeon, Binding of Isaac, Hearthstone, Overwatch, The Last Guardian, Civ VI, Gears 4

BCEmachine: Constructing our mobile PAX booth

Recap

Hey y’all, Shempi here to talk about our month, and wow what a crazy month it’s been. The team had the chance to pitch our game at the MassDigi Game Challenge in February. We were awarded runner up in the College Alpha/Near Release category! Congrats to the category winners Obio and BareHand, and extra congrats to Small Squares for the Grand Prize win for May’s Journey, an adventure/puzzle game that teaches programming fundamentals. Overall it was a really fun experience where we got lots of valuable feedback and a ton of people loving our game! If you’re in or around the Boston area, definitely check it out next year. The real reason I’m writing this post is to talk about the BCEmachine, though, so let’s get into that.MassDigi Game Challenge

BCEmachine

You’re probably wondering, what’s a BCEmachine? The BCEmachine was our mobile “booth” at PAX East 2017. I built a costume to wear at PAX that turned me into a walking, functional arcade cabinet minotaur thing. It was pretty awesome. In the following section, I’m going to explain why we did it, how I built it, and the experience of taking it to PAX.BCEmachine

The Motivation

You can say your game is fun as much as you want, but that doesn’t help you sell your game. We’re at a point with B.C.E. where we’ve found the fun. That’s supposed to be the hard part I guess, but really the hard part is getting it out there and convincing people it’s something worth paying attention to. After all, even if I tell you we’ve found the fun, that doesn’t mean a whole lot coming from me, the developer. In comes marketing, PR, and other exposure. It’s really not quite as simple as a couple of Facebook ads. I wish it were. I won’t claim to know much about marketing, but I know enough to say that it costs a great deal to get somebody to engage in your product in any way.

Bringing your game to a festival or convention is a great way to get people engaged. Blue Drop Games is based in Boston which just so happens to house the biggest (non-trade show) game convention in the US, PAX East, so we set out to bring B.C.E. there. First we tried applying for space at the IndieMegabooth which we didn’t get. Then we tried to win the Grand Prize space from MassDigi at the Game Challenge which, as I mentioned above, we didn’t do. We had no exhibiting space at PAX but with a tentative Summer release, we needed to get B.C.E. out there…

The Plan

The idea originally came from something Rich Gallup from Disruptor Beam said to us in passing about “just going for it” and setting up in the expo hall. We laughed that off and didn’t think much of it at the time, but later that night I got to thinking about it again. If there was a way to stay mobile while exhibiting the game, then Rich’s far fetched suggestion might not be so far fetched after all.

Thus the BCEmachine was born! The goal of this project was to smuggle B.C.E. into PAX East. Cue the Mission Impossible music. In order to do so, we had to have a mobile setup to prevent suspicion and fire code violations. Furthermore, we needed to have a reason for being at PAX. If we just walked in holding a bunch of demoing equipment, people would start to ask questions like, “Where’s your Exhibitor badge?” Luckily for us, PAX East is known for its monumental cosplay, which would provide the perfect cover story. That’s where the arcade cabinet came into play.

That was the plan. Cosplay as a mobile arcade cabinet, waltz into PAX East, and exhibit our game guerrilla style. If it sounds a little crazy, that’s because it probably was, especially with only a week and a half until the expo. Better get to it then!

The Build

The first step was planning the build. This was my first big DIY project of any kind, so I really had to do a lot of planning in order to get it right. Even then, there are some weaknesses I’ll go over at the end of this section. I used SketchUp to plan the build. It was my first time really using SketchUp but I’m familiar with Maya and Max and other 3D tools, so it didn’t take long to figure out. SketchUp is great because I was able to pull the measurements right out of it, which helped in ordering and cutting the materials. I’m sure there are a hundred other tools that do the same thing, but SketchUp is free and easy so that’s what I picked.Sketchup Arcade BCEmachine

The biggest challenge in planning the BCEmachine was how to actually run the game. I needed to balance weight with power needed to run the un-optimized B.C.E. I initially toyed around with using a mini PC build but that was quickly tossed out because powering it wasn’t feasible. The next idea used a laptop with a USB-powered monitor because I wasn’t happy with using a 15” display (I was having trouble figuring out placement of the laptop so that the screen would be centered). Finally, by phoning a friend, I figured out how to fit a laptop screen in the middle of the arcade “window,” so I settled on using a 17” gaming laptop. Power would still be an issue but this was the best combination of aesthetic, power, and weight.HP Omen BCEmachine

Here’s a breakdown of all of the supplies needed to build the machine with their approximate prices:

$1275 HP Omen 17-W253DX Gaming Laptop (bought and returned to Best Buy within 15 days…sorry Best Buy, they call it Indie for a reason)

$100 48”x96”x.394” Coroplast sheets x 2 (arcade cabinet shell)

$91 PVC and fittings (skeleton rig inside)

$69 Home Depot delivery fee (I don’t have access to a car that can transport the over-sized materials)

$20 McGroovy’s box rivets (securing coroplast to coroplast)

$165 Poster Printing (marquee and outer designs)

$26 Duct Tape (both black and white…a LOT)

$15 Spray Adhesive (adhering the poster prints to the coroplast

$4 Panty Hose (so that I could see while wearing the BCEmachine)

Total Price (approximate): $490 not including the laptop which was returned. Not bad for a PAX booth if you ask me.

Once all the parts arrived, it took exactly one week to build. Here’s how I did it.

Step 1: Cut the coroplast:

I used the measurements straight from SketchUp. I cut the stuff with box cutter, but it was extremely difficult. I should have used a hacksaw but I borrowed one from a friend and I didn’t have it until it after most of the cutting was done.

BCEmachine coroplast shellBCEmachine corplast shell

 

Step 2: Construct the arcade cabinet structure:

This part took some figuring out. I bought the McGroovy’s box rivets thinking that I would be able to cut a thin piece of coroplast and bend it, putting a rivet though it and each piece I wanted to fix together, sort of like a hinge. I grossly underestimated the strength of .349” gauge coroplast, though, and wasn’t able to bend it so I had to come up with a hack to make it work. I decided to split a piece of coroplast down the center of the gauge, then whittle off the corrugation, resulting in a pliable piece of plastic that I could use to fix the coroplast pieces together with. Note: whittling off the corrugation was a HUGE pain in the ass and I don’t recommend it, but given my time and budget constraints, I had to work with the materials I had. After all the drilling and riveting, the base structure was done. I had to rivet the 4 flaps of the “window” together in order to get that diagonal bevel effect.

BCEmachine rivetingBCEmachine riveting

BCEmachine rivetingBCEmachine rivetingBCEmachine riveting

 

Step 3: Add the see-through mesh and duct tape all seams

Pretty self explanatory. I cut two sections of the pantyhose, stretched them, and taped them to each side of my viewing window. I then used white duct tape to tape all the seams together and cover up the rivets. Looking back, I think the white tape might have looked better than the black tape I used to finish the trim in the end.

BCEmachine tapingBCEmachine laptop carriage

 

Step 4: Cut, build, and secure the PVC frame to the outer shell

I used the SketchUp dimensions to measure the PVC pieces I’d cut with a hacksaw. Once I put the thing together and tried wearing it I realized it was too heavy and some parts didn’t need to be there, so I just removed them. I didn’t use any PVC cement because I didn’t think I needed it. It might have been overkill, but it ended up biting me in the ass on the first day of PAX when the pipe would slip out of the fittings occasionally. The rest of the weekend we had the connections duct taped up and it wasn’t an issue. To secure the PVC to the coroplast shell, I used the same cutting, whittling, riveting technique from before to make bindings.

BCEmachine PVCBCEmachine PVC

 

Step 5: Cut the poster prints and adhere them to the surface of the BCEmachine

This time, instead of measuring everything out carefully using the SketchUp dimensions, I simply traced the outline of the structure. The cuts on the poster paper were pretty error-tolerant since I would have to tape up the seams anyway. I used the spray adhesive to adhere the prints to the surface of the BCEmachine. Something to note when using spray adhesive – when they say “when done, invert the can and spray until only aerosol comes out” they don’t mean when you’re done for the day. They mean after each spray unless you’re not going to wait longer than ~10 seconds. I wish I knew that going into this process, because the nozzle got really clogged up making it much more difficult than it had to be. Finally, once all the pieces were adhered, I taped up all the seams using mostly black duct tape and some white duct tape for the inside seams on the window.

BCEmachine outerBCEmachine outer

That’s it! Those steps took me a week. If I were to go back and do it again, I could probably shave about $50 off of the price of the build knowing I didn’t need so much PVC + fittings, and maybe finding a cheaper but equally effective solution for the outer design. I would also maybe use more white tape for the trim. I’m still not sold on either black or white, I guess it’s just a preference thing.

Now for the fun part…

The Exhibition

The BCEmachine was a smash hit!!! Well, with everybody except for one particular Enforcer. If you’re reading this, Enforcer, sorry for playing cat and mouse like that. I know you were just doing your job, but so was I 🙂 We spent Friday wandering around, confronting unsuspecting victims and having them play B.C.E. on what appeared to be some kind of odd half human/half arcade thing. Towards the end of the day we were told we couldn’t be demoing by that Enforcer I mentioned, so we left the expo and went to the Made in MA after party that we demoed at. The next day we started out strong just like the previous day, playing B.C.E. with awe-struck PAX-goers. It didn’t take long for that same Enforcer to track us down and threaten to kick us out for the rest of the day, though. Instead of playing, we just wandered around the show with the game on the screen, having our pictures taken, taking pictures with attendees, and just having a great time. The Enforcer didn’t like that either, so we finished the day simply showing the pre-game screen. Sunday was spent mostly wandering around without playing. Here are some of the best pictures.

BCEmachine @ PAXBCEmachine @ PAXBCEmachine @ PAXBCEmachine @ PAXBCEmachine @ PAX  BCEmachine @ PAX BCEmachine @ PAXBCEmachine @ PAX  BCEmachine @ PAX BCEmachine @ PAX BCEmachine @ PAX

Despite the limits put on us by the PAX Enforcer, the BCEmachine turned heads and drew crowds wherever it went. These are estimations but I would say about 100 people played B.C.E., 1000 photos were taken of the BCEmachine by attendees, 10000 people looked at/took notice of the BCEmachine, and the BCEmachine landed on 2 streams, one of which was dmbrandon’s Twitch Partners Lounge stream with over 800 viewers. On top of that, we had multiple offers for appearances on podcasts, YouTube Let’s Plays, and articles written about us. I’d like to preface this next bit by saying that I’m in no way an authority on marketing value. That being said, a 10×10 space alone (no furnishings, equipment, etc.) at PAX East costs $1500 for the weekend. Considering the total of about $600 we spent on the BCEmachine, Ubers, and food, you don’t have to do much math to see that we did pretty well with the BCEmachine. Hopefully soon I’ll do another (hopefully shorter) write-up trying to quantify the true marketing value of the pictures, impressions, etc. that we made over the PAX weekend. I have a feeling it’s up there in the thousands, but that’s a problem for another day.

Thanks for reading! If you made it this far, congratulations, you have an exceptional attention span. Here’s a picture of Mario playing on the BCEmachine as a reward.

BCEmachine & Mario

 

  • Shempi (Arjun)

Roadmap 2017: New Year, more B.C.E.

Happy New Year from the three of us at Blue Drop Games! Hope everybody had a happy holiday. In today’s development update we’re going to be broadly talking about B.C.E.’s development roadmap for 2017. Exciting stuff is on the way this year.

B.C.E. 2017 Roadmap

We are excited to take B.C.E. to the 2017 MassDigi Game Challenge. It’s a great opportunity for us to put B.C.E. out there and get feedback. The Game Challenge is a two-day event where the first day we’ll participate in mentor sessions with industry veterans and the second day we’ll pitch B.C.E. in a pitch contest. Definitely check out MassDigi because they’re doing great work in developing the game development scene in Massachusetts.

In the interest of getting B.C.E. into players’ hands as soon as possible, we’re planning to start a closed alpha test on Steam as soon as the Burnout game mode is ready for online play. We’re hoping to work out bugs and balance issues, and we want to gather feedback from players. Once the alpha is up on Steam, we’ll use that as a platform to push our major updates on the way to releasing B.C.E. We’re not sure of an exact date for the alpha yet but it will be coming soon. Speaking of release, we’re still planning to release B.C.E. in Summer of 2017. However, plans tend to change so it’s possible albeit unlikely that the launch might be postponed. The last thing I wanted to say on the topic of general release roadmap is that we are choosing to prioritize the Burnout game mode for several reasons that I won’t get into right now. That means that new features won’t be added and the Firefight game mode won’t be further developed until we reach the level of excellence that we’re shooting for in the Burnout game mode. Those things will remain goals for our team, but we want to nurture the development of what B.C.E. is in its current state.

Development Update

Now that I’ve covered the broad roadmap of 2017, let’s get into some gameplay specifics. As we have been iterating and testing B.C.E.’s Burnout game mode, we noticed a few stagnant pieces of the combat, specifically the Club Throw and Spear Jab attacks. Our goal with the weapons system in B.C.E. is to offer different styles of play for players with different preferences and to give players choices to make in the heat of combat. It became clear that a Club Swing attack is highly powerful compared to its secondary Club Throw attack. Similarly, we found that the Spear was only really useful for its throw. On the flip side, we’re really happy with the dynamic of the Punch/Rock Throw combination, so we know that we can do better. Therefore, striving towards deeply dynamic and skill-based attacks for all combat options, we’re changing the Club secondary attack to a Block and the Spear primary attack to a Shove. The Club Block will serve as a parry move. With correct timing, players will be able to deflect projectiles and block incoming attacks like the Club Swing. The Spear Shove is a defensive move that’s meant to push enemies away to maintain safe spacing for a Spear Throw.

Also on the topic of combat, we’re overhauling the player controls in B.C.E., optimizing them for gamepad play. Changes include improved joystick deadzones, aim assist, and sticky aim. These updates will make combat more approachable and the gamepad controls more crisp. Less fighting the controls, more fighting other players. You won’t notice the strings being pulled.

As usual, we’re constantly working to elevate B.C.E.’s visuals, so be on the lookout for new hand-made animations, environment art, and overall prettyness. That’s it for now, I need to get back to work. Here are some initial designs for the incoming Cavewoman player model.

-Shempi (BDG)

roadmap - cavewoman

Burnout game mode announcement.

Long time no see!

Hi everyone. We’ve been a little quiet lately but fear not…development on B.C.E. is still going strong. A lot has happened since the last post, so I will try to quickly cover the highlights. This post is going to go over our Steam Greenlight campaign as well as the new game mode, Burnout, that’s coming to B.C.E.

Steam Greenlight

We got greenlit on Steam! Pretty excellent if you ask me. Our Greenlight campaign was only live for 9 days before we got greenlit. We got mostly positive feedback from the Steam community, but there were a few questions and concerns. First off, (for those who don’t know) B.C.E. stands for Before Common Era. B.C.E. means the same things that B.C. (Before Christ) does, but with a little extra inclusivity. So Before Common Era refers to all time before the year 1. We love B.C.E. for the name of the game because it accurately captures the theme of the game while giving it some mystique. Also, B.C.E. is a very long span of time so we have a little wiggle room to play with 😉

Game Mode: Burnout

Another primary concern that we received from the Steam community was that the game was online-only. The community was correct of course, and we all agreed that the game should offer some form of offline play. The result of that revelation is the new game mode coming to B.C.E.: Burnout. Burnout is a fast-paced, 2 v 2 game mode that can be played locally, online, or as a local/online combo session. The goal of Burnout is simply to be the last team standing. The catch, however, is that each player “owns” a fire that controls his/her ability to respawn. That means that there are 4 fires total – 2 red, and 2 blue. As long as your fire is lit, your caveman will respawn and you can continue to fight. If a player’s fire is extinguished, however, they will not respawn until either the next round starts or their fire is re-ignited by a teammate. Attacking (melee or projectile) a friendly fire will light it, and attacking (melee or projectile) an enemy fire will put it out. We’ve completed building the core functionality of Burnout and, though we haven’t had much time to play around with it, our initial response has been very positive. We very much look forward to getting as many hands on B.C.E. and the Burnout game mode as possible, but at the moment we don’t have any news about and alpha test. Stay tuned for that.

Another goal that we have been working extremely hard to reach was submitting B.C.E. for consideration for the Indie Megabooth. If you’ve never heard of the Megabooth, definitely check it out here. They are the premier showcase for indie games, and just a few days ago we submitted B.C.E. for consideration. In fact, Burnout was designed with a convention setting in mind. The single-screen, couch multiplayer lends itself perfectly to a hype-filled setting like the Indie Megabooth. We hope to have some good news to share on that in the next month or so.

That’s all for now. As I mentioned above, I hope to have some news about an alpha test and Indie Megabooth soon. In the meantime, here’s a snapshot of our handsome new caveman.

new caveman burnout

Greenlight – Dev Update 2

Steam Greenlight Update Week 2

We’re in the second week of our push to Steam Greenlight. This week we heavily optimized the netcode and lighting build. The map is starting to come together with new landscapes and textures, and we’re adding lots of new audio and visuals making the game feel more polished and fun. The format of the update posts from now on will be that every Thursday we each have a few paragraphs to talk about what we worked on during the week.

Audio/Visual Feedback – Shempi

Audio/visual feedback has been a focus lately as we push towards a Steam Greenlight debut. We’re trying to put as much polish on the game as possible, and that means ensuring that players are constantly being given sensory feedback that’s both entertaining and informative. Every input and every action a player takes should be coupled with appropriate animations, sound effects, and particle effects. Animations are a tough one because we don’t have an animator just yet (well we do but he’s hard at work on our Caveman), so in certain places we have placeholder poses that help get the point across until we do.

Since sound and particle effects require much less training than animations, I’ve been implementing as many as I can. Audio feedback includes has been added for footsteps, attacks, impacts, picking up, dropping, lighting on fire, fueling fire, attacking fire, healing, and many more that I don’t dare list them all. Individually these sound effects don’t mean much, but the culmination of them all during gameplay increases immersion and helps new and experienced players comprehend different gameplay situations. SoundSnap has come in handy for cheap, high quality sound effects since we lack the resources to record our own.

soundfiles

We’re currently missing models and animations for our Cavemen but other than that, the biggest thing that our character has been missing is a voice. At the beginning of the week we had the chance to visit a recording studio to do some voice-over work for the various cavemen of BCE. We hope that in addition to providing auditory feedback, the grunts and howls that we recorded will be funny and entertaining. The list of voice lines that we recorded cover injuries, attacks, exerting forces, callouts (attack, defend, follow, etc), emotions, and more. I’m excited for players to hear them in-game.

The Blue Drop Games crew at the recording studio!

The Blue Drop Games crew at the recording studio!

Lighting/Map Fixes – Kig

This week, outside of recording voice lines and tweaking our web page a bit more, I’ve been working on our map. As mentioned in last week’s post the new level, titled Gorge, is a departure from the procedurally generated map we used in the past. It is completely done by hand which makes it a lot more interesting from a visual and gameplay perspective. We hope to showcase the Gorge map in our Greenlight trailer.

At the beginning of the week I started by trying to reduce the footprint our lighting build had on our game. Before I made optimization changes the lighting build was on pace to take about 100 hours. I was never patient enough to let one finish so we’ll never truly know how long it would have taken. I spent some time digging into optimization documentation to figure out how to reduce the time it takes to build lighting but couldn’t really find a solution. After some trial and error I finally realized that the cave model we had been using was the problem. The static mesh for the cave pieces were so big and complex that having them inside the lightmass importance volume was causing the light calculation to be far too expensive. I removed the cave pieces and the lighting build went from potentially 100 hours and 500+mb to taking about 60 seconds and 73mb.

Here's the map with the only the lighting showing.

Here’s the map with the only the lighting showing. The new landscapes are far less expensive on our build.

After the lighting build was manageable I started tweaking the lighting settings until I found some values I was happy with. Outdoor lighting in Unreal is actually a little bit harder than I assumed because the really beautiful set pieces that you see in made in the engine take advantage of multiple light sources. In the case of our map because of its primitive setting we basically only have the sun and the fires contributing to the lighting. This makes it difficult to make the lighting interesting because it’s all coming from one direction. I’m still experimenting with ways to make the lighting look nice but a lot of that comes down to also having good textures and art assets which we don’t have much of yet.

The sphere reflection captures make the ice look a lot better.

The sphere reflection captures make the ice look a lot better.

The blueprint for our landscape material is kind of a mess right now.

The blueprint for our landscape material is kind of a mess right now.

Another significant change for Gorge compared to our older maps is that we’re no longer using BSPs. BSPs were crucial for a procedurally generated map because we had to generate subtractive volumes via Blueprint for ice lakes that could spawn anywhere on the map. The disadvantage with BSPs is that they are harder to texture and shape and therefore are a lot less appealing compared to a landscape map. Now that we’re back on landscapes I’ve spent a lot of time working on our landscape material so that we have more interesting ground textures. They are blended so that the snow covered rock texture is at the bottom layer and the other layers like grass, snow, and weeds are on top of those layers. The landscape process is tedious however because every time I add a new texture to our landscape I have to wait for all the shaders to recompile in each component.

The new map is coming along nicely for Greenlight!

The new map is coming along nicely!

By the end of the week I’ll the map looking a lot more complete and polished while we wait on the new art assets to be integrated. Next week I’ll be making some big changes to the HUD and UI which are really going to add a big layer of polish on our current product!

BCE Netcode – Toffee

Hi everyone, this will be the first in a series of posts regarding BCE’s netcode, and how we handled network replication within the Unreal 4 Engine. It’s been quite the experience; netcode is a beast to tackle. As hard as we tried, we definitely did not get it right the first time, and it’s taken multiple iterations to ensure actors replicate properly over the network. But with each pass, we’ve grown more confident in BCE’s network functionality, and are proud of the progress we’ve made.

For those unfamiliar with networking, or UE4’s networking specifically, I’ll quickly go over a simple description of the basics. UE4 uses the Client – Server model to transmit data over the network. The Server is the “master” of the network, and all gameplay crucial information must come from him and be sent to all clients. Examples of crucial information would be things like player health, player locations, or dealing damage. We want these variables and functions to be updated and called only by the server, to prevent unauthorized clients from modifying critical values.  

clientserverFor the sake of simplicity I’m choosing to ignore cases where clients are given authority.

For example, based on this diagram above, let’s say Client A attacks Client B. The network situation would be as follows: Client A attacks client B in-game with a club. A hit is registered, and client A sends a request to the server in the form of a function called DealDamage. The Server sees the request, validates its authenticity, and then calls DealDamage on client B. Since the server processes the request and updates client B’s health, all connected clients are aware that this damage was dealt, and therefore stay synchronized with the game’s current state. As only the Server has authority over the network, clients are unable to modify gameplay crucial values, preventing them from cheating or causing desynchronization.

Below is a snippet of our Caveman Blueprint. For those unfamiliar, Blueprint is UE4’s visual scripting tool, which allows quick and easy functionality implementation without having to write any code. It’s incredibly helpful when using state machines, as it allows us as developers to clearly see how each state changes the player.

UdateCombatState Example

This snippet is an example of the Client – Server model in use within our game. Calling this function would proceed as follows: a Caveman calls the function to update their combat state (This occurs when a weapon is picked up, like a club or spear). They then set their combat state variable to be the new state. But the next node, Switch Has Authority, is crucial to the networking process. When this node is called, it checks if the caller is either Authority (Server), or Remote (Client). In this example, let’s say the caller was a Client: the node returns Remote, and we proceed to call the function RequestUpdateCombatState, which is marked as Run on Server. Simply put, when this function is called by a Client, they are requesting that the Server runs the following code and update all clients of the information change. The following code happens to re-call the UpdateCombatState function, but this time, run the following code sequence on the Server. Which means when we reach the Switch Has Authority node this time, we pass through the Authority output instead, and reach the Combat State switch case. The code following this switch is irrelevant, but it’s important to understand that the all information changes happen on the Server, and all connected clients become aware of the change. 

Sidenote for those that are familiar with Unreal networking, this example assumes the actor is replicated, and the code following the switch case is also modifying replicated variables/actors.

I hope this post served as a basic introduction to the Client – Server model, and how we’ve utilized it and UE4’s blueprint system to construct BCE’s netcode. I will be continuing this series of netcode posts, with a post detailing UE4’s networking system coming next. This will include replicated and repnotify variables, Run on Server, Multicast, and Run on Owning Client functions, and how they fit together in an online multiplayer game.