End of Year Update (Where have we been?) | Part 2

Hi again everyone, Gabe here, in our last blog we mentioned that we generally avoid posting updates on here (or in the discord) unless we have actual tangible progress to share, and unfortunately we’ve stuck to that very well this year!

But nothing shared doesn’t mean nothing happened, and in the spirit of maintaining what consistency we can (on the year anniversary since our last post!) we thought we’d share a few brief updates on the status of Super Plexis and our lives in general.

As for the game, there actually has been some work done this year (and content that exists but is not yet implemented) but nothing to the level that would be ready to share. Andrew and I touched based several times planning to carve out a window to do another short content sprint but the timing never quite worked out with how busy we’ve been. All to say Super Plexis remains something we’d love to be able to work on once we can afford to again, but obviously we are not great at predicting when that time may come. In the meantime shoutout to BusterBeachside, Sapphire Bullet Bill, Lava, and other long-timers for holding down the fort on discord. Just saying, we see and appreciate the princess posting 😎 (speaking for myself of course).

As for our lives, alongside my normal job some of you might also be aware that I’ve become very active on social media the past couple years (especially the video-focused platforms! which I will not name here because I am very self-promotion averse but I assume those who want to dig won’t have much trouble finding me). This has been an unexpectedly successful development in my life and one that I think will also be a strong pillar for promoting the game once we’re ready to properly advertise again (ideally once we’re out of early access). And instead of speaking for Andrew - and this I will promote since it doesn’t involve just me - we’ve recently started a video podcast with our friend Ed (you might remember him from our “dev vlogs” back in the day) where we’ve been chatting candidly about our lives, work, video games, and other various things. I’ll link the first episode here if you’re curious (or look up the Super Underground Podcast on Spotify / iTunes). Funny enough it might actually be your best bet for getting breaking news or behind the scenes in regards to the game since it comes up in conversation fairly often!

I’m hopeful 2024 will to continue to bring new opportunities but of course I also know better than to make any promises considering how the last couple years have gone, so! Will just leave it at: thanks again to everyone who’s kept an eye on the game (and us) all these years, we don’t take it for granted. Looking forward to being able to post a “real” blog here when the time finally comes!

- Gabe and The Medley Studios Team

End of Year Dev Update (Where have we been?)

Hey everyone, normally we avoid posting updates unless we have some tangible progress to share, but with the new year right around the corner it felt like the right time to at least say: Hi! We’re all still alive and we still have big plans for Super Plexis.

It’s been exactly a year (and one day) since we pushed our most recent update on Steam. That update - which added characters, skins, and laid the groundwork for our progression systems (XP, unlocks, etc) - was one of only two updates to the game client in all of 2021. Unfortunately, 2022 ended up being an even busier year for us in our work / personal lives, and while we hoped to find time to sync up and sprint on the next set of features (single player modes specifically), that window of opportunity never came.

But there is good news! 2023 is looking to be a much more stable year with the majority of what kept us busy in 2022 (like multiple moves across the country, job changes, etc) now being fully settled. And while its too early to set any dates we’ll be actively seeking out a chance to sprint toward our next set of features (which if its anything like content updates in the past, they move fairly quickly once the appropriate time and space is carved out).

Here’s hoping to a productive 2023 for us and everyone! We’ve been just as eager to get back to work as I’m sure many you have been to see any sliver of progress. For more information about “What’s Next” check out the last section of our last blog post here, our goals remain about the same (though a menu rework might also be on the horizon).

We are both humbled and grateful for everyones continued support through these busy past couple years, thank you all!

- The Medley Studios Team

Steam Release 0.4.3 - Patch Notes

Missed the 0.4.2 patch notes? Check out the Steam post here.

Hey everyone! Hope your year has been well, we’ve been laying the ground work for a slew of new single player modes for Super Plexis, and that involves adding several new visual and backend updates to the game, most notably: our first 2 playable characters (Aria and Cleff), skins (for blocks / boards / characters), animated backgrounds, post-game stats, updated player cards in the lobby, and the ability to gain currency (Lumina) by playing matches. Read the whole change-list below!

Patch 0.4.3 Notes

Backend changes (highlights only)

- New "XP Data" service

- General support for server-wide progression systems

- E.g. In-game currency / lumina converted from in-game score

- Lumina & rewards backend

- Foundational support for mode-specific progression systems

- XP Data lobby streaming

- Real-time updates about remote player XP Data

- E.g. "<someone from your lobby> ranked up!"

- Generic unlocks support for characters, block skins, and board skins

- End-of-game data flow

- Player stats

- Game results

- Rewards

- Player selections

- Support for selectable characters, block skins, and board skins

Client changes (highlights only)

- New characters: Cleff and Aria

- Characters react to gameplay events

- Characters also have unique combat sound effects

- New block skin: Fruit blocks

- Each type of fruit has its own unique block explosion!

- New board skin: Loftwood themed board

- Updated battle music

- Many visual improvements to Lobby UI, including Player Card revamp

- Show assigned team color

- Show selected character

- Show selected blocks & board

- Animated backgrounds

- Title Screen splash

- Loftwood Battle stage

- Smoother flow between Lobby and Gameplay

- Selection UI for characters, block skins, and board skins

- End-of-game results screen

- Proper "Continue back to lobby" flow

- Added a News splash

- Fix positioning bug with Share Invite "Copy to Clipboard"

- Fix animation bug when swapping smushed blocks

- Fix... meh, too many bugs to name. Lots of bug fixes :)

What’s next?

With these new systems and visual updates now in place, we will be 100% focused on developing single-player game modes, starting with:

  • Stage Clear (aka “Line Clear”)

  • Score Attack

  • VS Yourself

Stage Clear

The goal of Stage Clear is to reduce the level of your board until it falls below the designated “line” by clearing blocks. The mode will span several stages, each themed around a particular character, with a set amount of levels within. The stage ends with a “boss” that must be defeated via depleting its health bar (not in the form of a AI battle / battling another board).

Stage Clear is a beginner friendly mode designed to introduce players to the world of Super Plexis and its characters. Not only is it an approachable way to learn the game mechanics, but it can also offer increased challenge by setting higher difficulties. Each “run” through Stage Clear will timed start to finish for anyone looking to challenge themselves on clear time alone.

We also plan to make this the first mode to offer unlockable content in the form of new characters. Clearing that characters stage (some of which are only available on higher difficulties) will unlock them for use in multiplayer and other game modes.

Score Attack

It’s like Endless mode, but it can actually end! Play on a solo board and rack up as many points as possible without letting your blocks touch the top of the screen (or until the time runs out). This will likely be released before Stage Clear and will be one of the first ways to earn Lumina while playing solo.

VS Yourself

This mode functions similar to Score Attack except any chains and combos you make will send garbage to… yourself! Point gains will heavily favor clearing garbage.

“danger” music Preview!

Fans of this puzzle genre might be familiar with the concept of “danger” music, or the dynamic shift to a more dire or frantic music track when you are close to losing a game. Some games trigger this “danger” state based solely on the height of your board, but we might consider other factors too to avoid the obnoxious hard-switching of music tracks too frequently if you happen to be riding that threshold.

Enjoy some samples of these “Danger” tracks below! (beside their standard “Battle” themes for reference)

Loftwood:

Azure:

Starport:

We hope you enjoy this new update and are as excited as we are for what is to come! And as usual please feel free to share any feedback / bugs on our discord.

Thanks again and see you online!

  • The Medley Studios Team

Steam Release 0.4.1 - Patch Notes

patch041_squarespace.png

Patch 0.4.1 is now live on Steam! We debated delaying this release, since we had scoped for more features to be included and wanted to get everything out at once, but there were also lots of fully finished stuff we figured you guys should have access to sooner than later. While we’re finishing cooking up those other new features (more info on those below) there’s no reason to leave things like the max pressure fix, more controller support, and netcode optimizations sitting on the shelf.

The most noticeable update here will be the new in-game pointer, especially for gamepad users who can now navigate using the analogue stick like a mouse (D-pad functionality is also much improved, for those who prefer it). This should alleviate some of the awkwardness of switching from gamepad to mouse / keyboard, and is another big step forward to being able to offer full controller support. The other changes are QoL / bug fixes pulled from everyone’s feedback. Thanks again to all of you contributing to the #bugs-and-features and #game-design channels!

Patch 0.4.1 Notes

- Various controller fixes: game settings and other menus can now be navigated via gamepad inputs - Added “pointer” control for gamepads using the analogue stick - The “Max Pressure” game setting will now KO a player who touches the top of their board in 1 frame (instead of 15 frames) - Added the ability to move the board cursor and attack target during countdown. - Adjusted the visual presentation of getting “KO’d on the last swap frame” - Various netcode optimizations - Chain tags no longer get blocked by garbage, which prevented certain intuitive chains. - Fixed a bug involving chain tags not expiring when expected. - The in-game timer no longer resets after reaching the 60 minute mark. - The width and height of garbage is now based on the defender’s board instead of the attacker’s (applies to games with various custom-board sizes) - If a defender is KO’d with an attack inbound, the game waits for the attack to end before switching targets. - Fixed an issue with breaking garbage creating unpreventable chains (aka, garbage no longer produces “free” match-3s) - The pressure gauge will no longer change states during stop-time. - The terms “Local” & “Global” in game settings have been updated to “Player” & “Party” The following items were hot-fixed before 0.4.1 and are already live (listed here for archival purposes): - Fixed a rare issue where multiple windows of the “privacy policy / terms of use” pages would open rapidly - Fixed an Nvidia issue where a specific anti-alias setting would cause a black screen(edited)

Special Thanks (from our discord channel)

- @PoiZone, for finding a bug with keybinding: https://discord.com/channels/301218739947569153/808147393462665286/812506180654989313

- @Wakeman, for finding the max pressure bug: https://discord.com/channels/301218739947569153/428397229016088584/813161134609662042

- @kyon2570, for being the first to find and record a chain tag bug: https://discord.com/channels/301218739947569153/421179189077475339/812560989320904745

- @August/UltraX and @VGPaul, who managed to play a 1 hour and 12 minute game and found a timer bug: https://discord.com/channels/301218739947569153/808147393462665286/815417334504095755

- @ChaotixSpark, for finding a bug with the pressure gauge and stop time: https://discord.com/channels/301218739947569153/808147393462665286/816388613897977876

- @BusterBeachside, for suggesting moveable cursors during countdown: https://discord.com/channels/301218739947569153/428397229016088584/812563864776343573

- And anyone else who shared follow-up screen recordings / reports with us, extremely helpful and appreciated!

What’s next?

So that’s everything in 0.4.1, up next we’ll be wrapping up features that we didn’t get to in this patch, most notably: binding 2 inputs to one action, “true” auto scaling, notification bubbles on the friends list, new custom game settings, dynamic difficulty scaling, and maybe more! We’ll share more info as we go, since things are subject to change in testing. As always, we’ll be watching the #bugs-and-design and other channels for any problems / questions that arise. Thanks again and see you all online soon!

Super Plexis is coming to Early Access on Steam for PC & Mac!

Screen_Shot_2021-02-05_at_5.43.11_AM.png

We recently teased a community beta release in our discord channel and had plans to distribute it “privately” there for testing in January, but ultimately decided that taking the time to set up our Steam presence would be ideal for faster client updates and easy access by the community. It is, after all, an early build focused on community features like online multiplayer (with up to 4 players!), friendlists, custom game lobbies, and the spectator system.

On release day, everyone in our discord will receive a steam key to download the game for free and join us online for the first ever Super Plexis community playtest and launch party! (February 19th, 9 pm EST, more details coming soon!)

We can’t wait to play with everyone as we test our systems under whatever load we can throw at them, specifically: the Medley ID account system, custom game servers, and our rollback netcode model. The more the merrier, so invite your friends to the discord so they can secure their own keys before launch. And act fast, because from launch day onward Super Plexis will be listed with an Early Access price point.

After many discussions about monetization, we’ve agreed on a price range that will support our efforts with multiplayer and further development. Here are a few key points that led us to this decision:

  • Medley has its own servers for account data, game lobbies, netcode, and will serve future purposes like matchmaking and progress tracking. The servers have a baseline cost, and as Super Plexis grows in popularity, so will the cost of servers.

  • Ads aren’t the way to go for Super Plexis, and we don’t want to put all of the cool gameplay content behind in-app purchases. Fast paced games don’t generally sit well with Ads, and although Super Plexis will have a Shop with skin customizations, we don’t want to over-monetize the Shop, especially given that most items can be unlocked if you play regularly.

  • Super Plexis stands on the shoulders of giants: Panel De Pon, Tetris Attack, Pokemon Puzzle League, and we want to lean into the niche instead of trying to make the game something it’s not: “a freemium generic puzzle game”. We would like to avoid the freemium monetization models common in most action puzzlers.

Alright enough beating around the bush - here is the price model we’ve landed on!

First week of Steam Early Access: $5.99

Remaining time on Early Access: $9.99

Official launch price (after Early Access): $14.99

The Medley team is excited to join in on the steam train! You can now add Super Plexis to your wishlist as we prepare for its soon-to-be release! Thank you to everyone again for consistently trusting us to develop this dream project. We have a POP’n video on the steam page you can view showing off gameplay:

https://store.steampowered.com/app/863230/Super_Plexis/

Dev Blog #11 - Super Plexis Gameplay in 2020!

Hello everyone, we’ve made some huge leaps in progress over the past year and are so excited to finally share a first look at gameplay. This is Super Plexis completely rebuilt from the ground up, running in a new engine, on our own game servers, and with a completely refreshed visual style. We’ll cover the major details of all those things in this blog, but for the real deep dive and demonstrations we definitely recommend watching the replay of our live streamed event below (once it’s live!):

Twitch:

https://www.twitch.tv/videos/698517791

YouTube:

In making this first build we have been laser focused on the core gameplay mechanics, making something that will feel familiar to fans of the genre but also even more responsive in many ways. If you’ve played our iOS version you may be notice a few things are missing, like characters, abilities, or even vertical swapping. Don’t worry! We plan to implement all of those in future betas, but this time around our goal is to nail down the fundamentals first. We can’t wait to let everyone play it for themselves, and we’ll have more info on when you can expect a public build soon. Let’s dive into the new stuff!

Multiplayer Game Modes

2v2 with player boards colored by team.

2v2 with player boards colored by team.

4-player game modes will be featured in the upcoming PC beta! 2v2 team matches and free-for-all battles will be live from the start with their own matchmaking pools (with 1v1s too, of course). Due to screen space limitations on phones, this wasn't something we originally planned to support, but with the extra screen real estate on PC and consoles it felt like a natural fit. We were inspired to make these modes even more interesting by introducing Player Targets, a new feature that introduces a whole new level of strategy to 4-player game modes:

The all-new attack queue, player targets, and pressure gauge in action.

The all-new attack queue, player targets, and pressure gauge in action.

Player Target Mechanics:

  • Each player has control of a target, marked by their player number, that sits above their opponent's board.

  • All player targets are visible to all players, so all players know who is targeting who.

  • Incoming attacks populate inside the target, stacking vertically.

  • A player cannot change targets during an attack, but they can queue their next target position once the current attack finishes.

Another new mechanic — not exclusive to multiplayer modes — is something we’re calling the Pressure Gauge. This is a visual representation of your board's danger level, split into 3 stages: green, yellow, and red. If garbage or blocks reach the top of your board, the pressure gauge will start increasing. When it fills completely, you take damage (for knockout modes you lose instantly). In this sense it acts like a visual countdown timer, but it has another function too: While all boards start at the green level by default, that pressure floor can change based on how much garbage is currently on top of your board. This effectively shortens the count-down timer based on the level of the gauge, the specific times are listed below.

Pressure Gauge Levels:

  • Green:        3 second countdown

  • Yellow:        2.25 second countdown

  • Red:     1.5 second countdown

  • Deep Red: 0.75 second countdown

We’re excited to test these new mechanics with the community and get feedback! At a competitive level, puzzle games in this genre are known to have matches that can stagnate or go on for too long, especially between two highly skilled players. We encountered this in the iOS version of Super Plexis as well, so we’re hoping that features like the pressure gauge (and other unannounced variables) will increase the stakes, making high-level matches more intense, while also making the game rules easier to read visually.

That covers the core gameplay, now let’s open the hood and explore what’s making all this cross-platform networked multiplayer possible!

Netcode

Super Plexis is such a fast-paced game with direct player-to-player interaction that we could never justify the player "feeling" the lag. Here are a few pillars we sought to master with the game's netcode architecture, and have achieved doing so:

Responsiveness: All of the player's inputs trigger an instantaneous response

Performance: The game's runtime performance is not affected by the player's connection strength

Consistency: All network clients are guaranteed to arrive to the same game state

Masterful execution of these three pillars, or any reliable netcode for that matter, is no small feat - and we understand that even AAA games have immense difficulty delivering reliable netcode. We can say with certainty, Super Plexis has reliable netcode, and we're very proud of it.

We took notes from the fighting game community and learned about Rollback Netcode, which delivers on our core netcode pillars (and more). Of course, this is after months of trial and error with other netcode models.

In a nutshell, Super Plexis Netcode is a custom Client Rollback netcode architecture with Input Relay servers at the center of every game network. By employing a custom relay service, we are able to guarantee cross-play and prevent cheating. Additionally, the entire architecture is purely input driven, which makes the whole service very scalable - very important for a small indie team of 4 people.

We commonly run playtests with >250 ping, and have even played games with >350 ping, blissfully unaware of the lag. In a networked game, regardless of your connection strength, your inputs are responsive, animations are smooth, and pops/artifacts are extremely rare, even in the worst conditions. This is showcased live in our gameplay reveal stream, linked at the top of the post.

1280px-Godot_logo.svg.png

The Engine

After many iterations, we've landed on Godot as our core game engine. For gameplay, we have our own abstraction layer on top of Godot which allows us to create gameplay features that mesh seamlessly with our custom netcode architecture.

Godot has been so useful to our team. We are able to implement user interfaces, sound effects, animation, and visual effects at a way larger scale, with less work, compared to our time working on the original iOS version. Thanks to Godot, we can easily deploy the game for iOS, Android, PC, Mac, and Linux.

By choosing to invest into Godot as Super Plexis's core game engine, we have accelerated development to a pace that we've never seen before. However, we also had to halt production deployments to re-engineer the game from the ground-up. As seen in the stream video linked above, this has been completely worth it, and we are so excited to deliver this new revamped version of Super Plexis on all major platforms. We cannot share an accurate release date at this time, but we can share major gameplay updates at a way higher flux than previously.

Art Updates

before_after_loftwood.png

In addition to all these technical overhauls, you may notice the game looks a bit different now too! We announced awhile back that we’d be adjusting the overall resolution scale and redrawing assets to double-down on our “SNES” retro aesthetic. This was our goal even back in the iOS version, and while everything was “technically” pixel art, our scale factor was relatively low compared to the super dense pixels of the retina displays we were rendering on. The result was art that looked really clean and sharp, but was only distinctly noticeable as pixel art in places where we applied additional scaling, like in the character select screen (with sprites rendered at 2x in the preview), and in the adventure mode maps. We’re on a path now that will make the game more visually consistent in all areas, in addition to making asset creation more efficient.

Below are just a few examples of in-game animations that have been redrawn. You can see how the simulated “pixel size” is bigger in the updated versions:

36x36 Block Bounce (iOS Version)

36x36 Block Bounce (iOS Version)

20x20 Block Bounce (PC Beta)

20x20 Block Bounce (PC Beta)

160x160 Block Pop (iOS Version)

160x160 Block Pop (iOS Version)

50x50 Block Pop (PC Beta)

50x50 Block Pop (PC Beta)

Check out the stream footage to see these and other differences in-action! As with other areas of the game, the visuals and animations may be subject to change based on play testing and user feedback.

Re-Introducing the World of Len

It’s been a long time since we’ve shared any info in the way of “Super Plexis Lore” but rest assured characters and single-player content are still in the works! We won’t put an estimate on when to expect characters yet, since their implementation will come alongside the development and re-balancing of abilities for multiplayer, but in the meantime we can at least share a taste of the world they inhabit

Artist note: the visuals here are a combination of new, old, and in some cases unfinished backgrounds, consider everything as concept art that could potentially change!

Loftwood

A town tucked away in a lush forest biome that our main character duo, Aria & Cleff, calls home. Loftwood exists far away from modern society and has a naturally preserved traditional culture.

bg_crop_loftwood.png

Azure

In contrast, Azure is the star metropolis of Len and a hub for state-of-the-art Lumina technology. A previously shown character, Vulmir, is heavily involved in commerce here (and other shady dealings).

bg_crop_azure.png

Starport

Starport is a small sea-side town featuring one of the busiest ports in Len. Famous for it’s seafood and raucous environment, it is a place closely associated with Macktooth.

bg_crop_starport.png

Polymoor

A trencherous, poisonous swamp located not far outside Len’s biggest city, Polymoor is a place best avoided. Covered toxic plants and other bioluminescent life, it is a place with a special connection to an unannounced character.

bg_crop_polymoor.png

Redtop

Another region with connections to a character we have yet to announce, Redtop gets its name from the clay present in the region. The canyons are at such high elevation it is common to see their tops covered in snow.

bg_crop_redtop.png

That’s everything for now!

Thanks for checking in for our updates and we can’t wait to show more as development progresses. We hope everyone enjoyed getting an early look at the upcoming beta gameplay and art! We’ll have more updates on when to expect the beta, and everything we plan to include it, in the near future. Don’t forgot to check out the livestream if you want even more info! And as always join us on discord to share feedback and get early updates on new stuff on the way!

— The Medley Studios Team

Dev Blog #10 - Full Backend Overview & First Update of the Decade!

Happy 2020 everyone! We’re kicking off this decade with one final look at all the backend systems for Super Plexis, especially since our next big update will be demoing the game client and backend finally working together! If you haven’t been on our discord recently and are wondering “Why the slow updates?” or “What’s with the focus on technical stuff?” definitely check out our earlier blog here for more detailed info on our status. And with that, let’s jump in!

The Infrastructure

For awhile now you’ve heard us talk about things like Plexnet, MedleyIDs, game servers, databases, etc. But we’ve always revealed and discussed each separately, when really, they’re all pieces of a larger system. In fact, some of the more abstract pieces like “Harmony” and the trio of “Medley Internal Services” we’ve never officially introduced, until today! With this “Super Plexis Infrastructure” nearing its first functioning state — game client included — it’s proper time we share this handy graph of it all working together, created and described by the engineer himself:

In order to make Super Plexis the best online playing experience possible, we've taken a "decoupled" approach to the backend, and opted to create our own distributed services which support Super Plexis. Medley's infrastructure has been in the works (research + implementation) since 2018. So far all of the systems you see here have been successfully prototyped in-house, with the dedicated server being the current focus of development. We’ve made steady progress and are confident in being able to showcase multiplayer demos by the end of Q2 2020!

All hosting is managed on AWS to provide maximum availability. By decoupling all of these complex systems into their own services, we are preparing ourselves for Super Plexis's userbase and feature set to grow exponentially upon cross-platform launch. Most important, however, is that Super Plexis has very few immediate dependencies: Harmony, and Plexnet. This is a massive win for Medley and all fans of Super Plexis because:

1: You'll never get kicked out of an online game due to a backend update to Conductor (for example)

2: Future titles under Medley can reuse Arbiter, Conductor, Herald, and the data stores (yes, "future titles")

We're so excited to finally be in a place where we can share this progress, and we look forward to showcasing as much Super Plexis progress as possible for 2020!

— Andrew

Bonus UI Update!

But wait there’s more! You might’ve seen our last blog post about designing “The Journal”, and with all this talk about online and databases you can see why we were focused on it. Post-game stats are full of useful information, but fitting everything neatly for different screen sizes can be a design challenge. Even from an engineering perspective it helps to know in advance what exactly we plan to track and log for players (like replays and lifetime stats), and design mock-ups help solidify the vision for that. Previously we shared the simplified “game history” screen, with a truncated view of each game’s stats in a list. But what happens when you select a game entry on that list? Here’s a mocked-up example of the stats you’d see for a “Ranked Versus” game (as always subject to change):

journal_reduced_853x480.png

And with that we’ll sign off with one final bonus, a little concept also in the realm of UI that we’ve been playing with:

Might this be considered a teaser / reveal of a new title screen? Who can say!

Might this be considered a teaser / reveal of a new title screen? Who can say!

Thanks for reading and looking forward to sharing more with everyone soon! As always if you guys have questions feel free to reach out to us on our Discord server here.

— The Medley Studios Team

Dev Blog #9 - Designing the "Journal"

Hey everyone, we’re back again with just a small slice of what we’ve been up to the past few months. Much of the recent progress has been in the backend but we thought we’d change gears and share some of visual design progress this time. Introducing a new UI menu: The Journal!

Disclaimer: This is a design mock-up, not rendered in-engine. All visuals subject to change!

Disclaimer: This is a design mock-up, not rendered in-engine. All visuals subject to change!

While an entire post about something as mundane as a “game history” view might seem excessive, the journal actually represents one of the most complex menu systems in the game. Not just in terms of design but in the under-the-hood mechanics as well. Recording and displaying all the relevant data for all our various game modes and for each player is a tall order! Detailed stat breakdowns are something we value as players ourselves and we wanted to be sure to build it right (it also represents the first big test case for our own servers and Medley ID data management!). It should feel and look nice to browse your own game history, and not just to admire your achievements and earnings, but also to save replays. (Did we mention we’ll have replays?)

Now that you’ve seen the current draft for the journal for the PC build (still just a mock-up, a lot could change in the final), below you’ll see some of the VERY rough drafts that got us here. Everything from sketches to alternate screen sizes (like the mobile view)

The very first draft, before we decided to put replay controls in a separate “expanded” view.

The very first draft, before we decided to put replay controls in a separate “expanded” view.

That same first draft but imagined for mobile.

That same first draft but imagined for mobile.

Second draft, adding some basic color, an expand button, and removing the replay controls (look at all that new room for loot!)

Second draft, adding some basic color, an expand button, and removing the replay controls (look at all that new room for loot!)

Third draft, simplified even further by removing redundant text and truncating the amount of “loot” shown. This gave us more room for “featured stats” in the center of each entry (which change depending on the game mode)

Third draft, simplified even further by removing redundant text and truncating the amount of “loot” shown. This gave us more room for “featured stats” in the center of each entry (which change depending on the game mode)

Draft 4: oh hey real graphics! But still many placeholder art pieces.

Draft 4: oh hey real graphics! But still many placeholder art pieces.

A quickly-made and very distorted version of the 4th draft for mobile on the smallest screen we’d support.

A quickly-made and very distorted version of the 4th draft for mobile on the smallest screen we’d support.

And here’s the near-final 5th draft, with an added sort button and temp navigation buttons at the top.

And here’s the near-final 5th draft, with an added sort button and temp navigation buttons at the top.

So that’s the journal! Something simple in theory that ends up taking many many sessions of discussion and iteration with the team. And you’re probably looking at some icons wondering what they are but I’ll leave that a mystery for now. Also the expanded view, with the full complete stat breakdowns - including things like how many of each type of chain and combo was made per game - is something we’ll share at a later date. Hopefully when we actually have it running in-engine!

Our next update will likely be a technical one, breaking down some of the major developments in the backend, so stay tuned for that! Thanks again for keeping up with us, we know updates have been spaced out pretty far this season but we’re always happy to share updates when we have them. While we still experience busyness in our personal / work lives, we’re still in it for the long haul and appreciate the support thus far.

Can’t put a date on an actual beta release just yet but we’re hitting some big milestones and we’re closer than ever!

Dev Blog #8 - Welcoming 2019 with Plexnet!

Another few months, another blog update! 
Hey everyone, we’re back again after another quiet spell. We’ve dropped small bits of news in our Discord recently but we didn’t want to leave all our non-Discord-using friends in the dark so a proper update was in order. Our last blog covered our progress in the backend, and that continues today with a brand new development we’d like to introduce to you: Plexnet! More on that below, along with a sample of something else we’ve been working on...

Before we jump in though, we wanted to thank you guys for your patience with this project and reiterate some of the reasons for the slow progress lately (especially for those of you who haven’t checked in for a while). As much as we’d love to be working on Super Plexis full time — and practically-speaking we did up until the first iOS release — this past year we’ve had to devote a lot of time and energy to work in our personal lives, partly for our own finances but also to secure resources for Super Plexis now that we’re no longer depending on 3rd parties for servers and account systems (meaning those costs will be our responsibility now). We want to create a stable environment so we can test the game and it’s online features with an active community without having to worry about developing a “monetization” model prematurely to cover costs. So while it’s been slow lately, know that we’re in it for the long run and have big plans for this year!

What is Plexnet?

PlexNet is an open-source TCP/UDP netcode library for cross-platform games (written in Java). We’ve created this library as a way to decentralize some of the development that takes place in Super Plexis and our future online games, and also as a contribution to the game development community. While we cannot yet justify open sourcing our REST server API (think matchmaking servers, account servers, etc), we figure this is one way we can give back and open the door for contribution. PlexNet is open-source, meaning that anyone will be able to use this library in their game, completely free of charge. Online play in the upcoming cross-platform versions of Super Plexis will be powered by PlexNet, so this library is also one (of many) ways for potential contributors or team candidates to step into the game (pun intended).

Before we accept any pull requests, we are ensuring the stability of an alpha version of PlexNet for the use case of Super Plexis. Right now we are adding just a few more important features to the library, tying up a few loose ends, and maximizing code coverage for an early alpha version. In the coming weeks, we expect to announce that the library is alpha-ready and start accepting pull requests. We will also demo its use case for Super Plexis to show how one might use PlexNet for their own game, or how one might contribute to development.

Features to expect in the alpha release of PlexNet (this list is not exhaustive):

  • Stable client-server connections over TCP and (optionally) UDP

  • Simplified error handling across all ends of the netcode spectrum

  • Customizable client-server sessions (think “game modes” or “game types”) via factory model

  • Optional packet transit types that act as a gradient between TCP and UDP to allow for customizable speeds, reliability, ordering, etc.

  • Lag simulation constraints for testing

  • Logging

  • Customizable client-server functionality via factory model

  • Unsafe low-level access to multithreaded buffered IO streams

  • Safe high-level manipulation of multithreaded buffered IO streams, and even higher-level packet IO streams

  • Packet serialization / deserialization and packet handlers depending on the type of client-server session

  • Option to use either our high-level serialization methods or inject your own

  • Synchronization handled under the hood (use the library as though it were single-threaded), or optionally interact with low-level asynchronous parts of the library

  • Acceptance policies which can revoke connections on failure (think “matchmaking security” or “banhammer”)

  • Host peer-to-peer or LAN (think “Minecraft”, “Ark”, “Halo 2”), or host on dedicated servers (think “League of Legends”, “Dota”)

  • Basic deploy-run scripts for dedicated machines, currently written in Bash (very subject to change), over SSH

  • Using Gradle to build and include in projects (or include dependencies for the library)

We can’t wait to get all these backend features working together and shown in action! Servers, account systems, databases, netcode: these are some of the hardest things to “get right” for online games, but getting that foundation down pat now means much faster and easier development on the game itself moving forward. If 2018 was the year of the backend, 2019 will be very “front” facing!

On the subject of frontend, in some of our recent planning for UI and art in the game, we got to talking about resolution and screen sizes. Revisiting those areas led to some pretty big decisions being made: the first being we no longer plan to support phones with a resolution below 1136 x 640 (in iPhone terms that means any device smaller than an iPhone 5). When we first started development we believed the game could be light-weight enough to run even on some of the oldest hardware, but here we are fresh into 2019 and it’s pretty clear those older devices have fallen out of use and are no longer supported by most companies anyway. It also gives us more flexibility with formatting our dynamic menus and battle screens.

Speaking of battle screens, the 2nd big change is in relation to the games “simulated resolution.” In pixel art games that basically refers to the scale of the art itself versus the true resolution of the screen it’s displayed on. So while one sprite might only be 20x20 pixels of art, it will always be displayed at twice that size (or whatever desired scale ratio: 2x, 3x, etc) on modern screens. I could go on about the details but it’s easier to show than tell! Here’s something we’ve been experimenting with (click here for a full res ver):

(Very much just a concept image! But also very much what we’re shooting for in-engine.)

(Very much just a concept image! But also very much what we’re shooting for in-engine.)

… but that’s all we can share for now! If you have any questions about anything in this blog please do pop in to our Discord. We can’t wait to progress further and share more details as we go, and we’ll likely share things there first!

Dev Blog #7 - Backend Milestones and Server Auto Scaling

It’s been a wild past couple months since our last status update!  But we’re happy to report that some big hurdles have been successfully jumped, long-term milestones have been reached, and in-engine work for the game is full steam ahead. In a sense, this blog serves as the bow being tied over our sparkling new backend structure that started its life more than a year ago, and is now ready to be put to work in-game!

Other than the events surrounding Metrocon, we haven’t been vlogging as much this past year since it can be tricky to visually document all the technical / back-end progress that has been made. But since server auto scaling was the final cherry on top, and has some nice visual elements, we thought what better time to celebrate with a vlog! Check it out below if you haven’t already:


(A lot has happened even since filming this a few weeks back but we’ll save that for the next update!)

And of course there were the many steps and milestones that came before auto-scaling, which would be best explained by the engineer himself below!

Development update from Andrew (Engineering and Design):

The last year of development has been quite a journey for us. We’ve had our fair share of missteps, successes, plans that didn’t follow through, and plans that did. At this point, more than a year has passed since our Kickstarter, which was funded in May 2017, and after many major milestones which I’ll dig into below, I feel legitimate to say: “the future looks bright”.

Taking Super Plexis cross-platform and cross-play

Transforming a game to become cross-platform and support cross-play is no easy task, especially with Super Plexis because the gameplay is real-time and deterministic. Most AAA game companies don’t rush to cross-play because it takes away from the time that could be spent developing new releases, so we had a hunch that this reforging process was going to take an immense amount of time.

The distance we have traveled

We’ve made serious progress on the backend technology to support Super Plexis and any other games we develop, and we are not using any 3rd parties except for AWS. Keep in mind this is the infrastructure that governs account servers, matchmaking servers, spawning game servers, storing user data, and responding to game clients like Super Plexis. The final piece of the puzzle was to make the server infrastructure capable of scaling itself up or down according to incoming traffic. As seen in our vlog, this has been implemented for some time now, and it supports the traffic on our website as well as the development version of Super Plexis.

Milestones Timeline (extremely simplified)

May - June 2017: Learning the tools used for developing server software

update.png
  • Quickly learned JavaScript (NodeJS ES6), HTML, and CSS for web & server development.

  • Researched and tested AWS for hosting servers and learned to administrate MySQL databases.

  • Wrote 40 pages of development planning and notes on everything I’d learned up to this point.

July 2017: Hurricane Irma

  • Survived the eye like a boss (Gabe, Emily, and I were all living in Naples, FL during that!)

August - September 2017: Server self-help tools and creating an email service

  • Created server self-help tools like automatic restart (if the software crashes), live error reporting via email, defending attacks like DDoS and Slow Loris

  • Created communication systems for Servers -> DB

  • Created a reliable email service that allows us to send 1.5 million emails every month without losing reputation with ISPs

  • Learned about SSL and implemented secure communication between client / server

October 2017 - December 2017: Staging for Medley ID and the Website

  • We started testing the website featuring Medley ID as a proof of concept that the account servers were working as intended.

  • Tested Medley ID account system on the cross platform game client which had only just begun development

January 2018: Launched Medley ID and developed account preferences

medleyid2.png
  • Officially launched Medley ID on the website

  • Account preferences followed shortly after the launch allowing players to modify their username, contact email, password, etc.

February 2018: Learned how to incorporate the company

  • Medley was originally an LLC formed in Florida, and we wanted to incorporate for security and to attain a legitimate (and flexible) business structure

  • Researched the legal requirements for becoming incorporating and how to make that transition while avoiding potential pitfalls.

  • Continued progress on Medley Account Services so that we could start integrating Super Plexis data with Medley ID

March 2018: Incorporated Medley and started to work towards an alpha build of SP

  • We officially incorporated the company in early March (no longer an LLC)

  • Underwent a domain change and name change to reduce confusion: “Medley Studio, medleystudiogames.com” VS “Medley Studios, medleystudios.com” - this took more work than we had originally hoped (haha!)

  • Began work towards an official alpha build of SP using the HaxeFlixel engine (built on top of OpenFL)

April 2018: Released first cross-platform alpha build of SP

  • Released a very basic build of the game on Android, PC, and Mac; with only a single “Endless” mode playable.

  • Extremely basic integration of Medley Account Services due to server-side limitations (turns out there was no way for players to modify their SP account data due to these limitations, so this called for a server-software revisement before we could resume work on SP)

May 2018: server-side revisions begin and a new SP build releases

  • Researched and found that I could create better account services if the code was more manageable.

  • Wrote up a plan to convert the codebase to use Promises for asynchronous runtime and Knex.js for secure & dynamic (partially player-defined) MySQL database queries. This was key to fixing the problems we found in April 2018.

  • Released a new build for SP that showcased a new type of cursor, fixed all kinds of gameplay bugs, and added block animations.

June 2018: Integrated Promises and Knex.js, split up development environments in Git

One of the many perks of implementing Promises &amp; Knex.js

One of the many perks of implementing Promises & Knex.js

  • Used Git to split up the development environments so that we could store separate configurations for development, staging, and production. This prevented anyone from pushing development code to production (safety) and simplified all devops.

  • Refined >10,000 lines of code in the server backend to use Promises for asynchronous runtime and Knex.js for more flexible DB queries (this is what allowed me to create an environment where SP data can be managed by the player - VERY excited to show this working when we release the next build of SP)

  • Stopped using stored procedures in MySQL to prevent human error and opted to parallel these in JS using Knex.js

July 2018: Switched from HaxeFlixel to LibGDX and set up server auto scaling

  • We liked HaxeFlixel, but we needed some tech that didn't exist just yet in the Flixel engine (message me in Discord if you want more info on this), so we moved to LibGDX. We are still in the process of making this move, but we are nearly back to where we left off in May.

  • Creates Boss Server which communicated with AWS Auto Scaling to deploy server software to newly spawned servers in EC2.

  • Creating Boss Sever required us to create a staging environment in AWS, so we got that up and running with a staging DB and staging EC2 environment, as well as SNS/SQS.

August 2018: Pushed auto-scaling into production and continued work on SP

  • Auto-scaling is working in production. If you’re viewing the website, you are experiencing content supported by account servers which were scaled without me pushing a button. And yes, they respond properly to software updates (we are currently on Account Server 1.7.1 in production).

  • Super Plexis development continues in a race to catch up to where we left off in May. Currently we are working hard on UI so that we can focus on gameplay. Account systems are fully implemented for the LibGDX version of SP in our own standalone library so that we can use these account systems in any game we create.

Although we have encountered our fair share of complications over the last year, you can see how we’ve ended up in a very optimal situation. We’re proud of the tech backing Super Plexis because it is strong and versatile, but at the same time we want to bring you Super Plexis as soon as possible. We’re finally able to build off of what we have without looking back, and we’re excited to bring you more frequent playable updates for Super Plexis in the coming weeks. Thanks for sticking with us. We know this has required more patience than it probably should have. We are dedicated to this and we believe Super Plexis deserves a sustainable future. Thank you to everyone who also believes in that future.

- Andrew

Conclusion

Big thanks to Andrew for the detailed breakdown! The timeline above perfectly captures one of the biggest challenges of having a small development team, where often 1 or 2 people are carrying a workload fit for 4 or 5 (and that’s not even including work done on the side for extra income). But we believe in the long run it will all have been a worthy investment. Having a solid foundation that is future-proofed and can run on its own (with things like auto-scaling) allows us to pour more time and resources into actual game development while also juggling our personal and work lives.

Mainly we’re just excited to have crossed this threshold and can’t wait to share more of the game itself soon! We’re still pushing to have an Android build out by November, so keep an eye out for updates as the time approaches.

Thanks again to everyone following along in our journey so far. Both your patience and excitement is very much appreciated by the team! And probably safe to say that we can match your level of eagerness personally as we get closer and closer to the next playable build…