Minecraft PC IP: play.cubecraft.net
Here to play Minecraft?
Join and start playing on our Minecraft server now!
I want to play!
flappy dragon.png


👋 Hello!

Hi, I'm Riley and I am a Redstone Engineer here at CubeCraft. I work alongside the other Designers to create fun and innovative minigames in Minecraft: Bedrock Edition.

In these sorts of threads, we explain and elaborate on the production process of one of our latest projects. This Marketplace Highlight thread features Flappy Dragon!


💡 The Idea

A few other designers, admins and I have calls from time to time. Usually to relax and enjoy some games, but sometimes we also discuss projects or brainstorm for the next Marketplace hype. I showed them a quick project I made in less than a day. Sometimes I just get these bursts of inspiration and motivation and try and create it as fast as I can!

@Yamin agreed that it would be a cool concept to try on the Marketplace. Sometimes it's better to create something simplistic yet polished, rather than something incredibly complex and time-consuming.


The idea was simple. If the player walks forward, the dragon goes up. Pillars move from right to left. The dragon has to dodge the pillars and if they fail, the game ends.

Simple, right? But then... How do we boost replayability? Pillars should gradually speed up to make the game harder! There has to be a reliable detection system for when the dragon collides with a pillar! There should be a menu for the player to navigate through in their hotbar!

AaAaaAaaaaAand... Our project got a bit more complicated... It wasn't going to be finished as fast as my personal Java Edition version, but regardless it wouldn't take that long.


👷 Production Process

My personal version was created in Java Edition which is rather limited in comparison to what we can do on the Bedrock Edition. @Exciting_pancake wrote the code for the custom pillars and dragons that @Yamin created.

Fun fact: the minigame needs almost 2000 lines of handwritten commands to run.

image (4).png

One of the ten dragons by @Yamin

3234945539c8431758918a00c5f31da0.png

Pillar behaviour by @Exciting_pancake


🔥 Technical Obstacles

The first issue was that due to how the game worked, the player could change their FOV to be able to see outside of the background. The image below should better illustrate what I mean! 🙂

image (5).png

After the backgrounds were already created, we noticed this slight problem and did some more research into how much the player is able to expand their FOV as is illustrated by the diamond blocks.

A second problem that we encountered throughout creating the behaviours for the pillars was that the collision detection system was often inaccurate. Unfortunately, it wasn't possible to accurately detect collision using redstone only. @Exciting_pancake had to do some tweaking to the pillars' hitbox and after doing quite a bit of testing, we resolved the issue!

The third and final issue arose after Microsoft tested the project themselves. It did pass without any game-breaking issues, though the problem was that on less powerful devices, such as the iPhone 6, it would lag. The project got greylisted on low and mid-tier devices. We weren't necessarily required to resolve the lag, but that would mean we would miss out on a large portion of the player base. We decided to make some tweaks to improve the performance.


🧪 Marketplace QA

All our projects go through extensive testing before being shipped to Microsoft. The Design team and Marketplace QA team use Slack and Notion to communicate about the QA sessions and to coordinate them. Below is a screenshot of the first batch of bugs that were reported.

qa_fd.png



More


This amazing and addicting minigame is available on the Marketplace HERE!



If you want to become part of Team CubeCraft's Design team, feel free to check out our application form!​
RPG_Magic_&_Mayhem Artwork-min.png


Hey Java & Bedrock CubeCrafters!

After months of hard work, and some issues with keeping The Evil Bunny out of our work, we're extremely happy to announce to you guys our newest RPG: Magic & Mayhem! ✨ - Also available in Dutch & Spanish.

A very normal universe, consisting of multiple worlds, always used to be calm as they worked together to reach their goals. That was all until corruption started spreading... the Dwarven and Fayens are in despair as their worlds start changing and filling up with these weird new creatures... do you have what it takes to help them?



🧝‍♂️ The Races

Within this universe, you'll be able to find 5 different races! 3 of which we know some information about, and 2 that have invaded our universe and we've yet to find out what they do. 👀

- Quintenians:
Just like humans, with a world very similar to ours. The bond between CubeCrafters and Quintenians is strong, as they've been working together for quite some time. They're not very used to new faces and might be a little scared at first.

- Dwarven:
Intelligent creatures that know their way around. They're known to be extremely fast workers and they love to work together with Fayens. They can live up to 250 years! And they're a bit smaller than other races...

- Fayens:
Probably the most lovely race you'll find in the universe, always willing to help out. They don't get to see humans & Quintenians that often and are mostly grouping up and working together with Dwarven.

- Nyms:
Dragon-like creatures, we don't know much about them as of now...

- Wurgs:
These Orc-like creatures don't speak our language either... 🔇

npcs-2.png





📜 The Objective

Within this new RPG, we've integrated a system that makes it possible for you to level up yourself and your wands! Keep on upgrading your abilities and wands to easily make your way through the quests and mob fights! 💪

1629299982951.png

We have added 17 different attributes that you're able to upgrade! From increasing the Mana that you'll need to cast your wands, to bonus damage on your Flame wand, you can increase the strength of your character to take on all that's coming!

This may require Spirit or Essence. You gain Spirit by killing any of the mobs, however Essence has a small chance of dropping from elemental mobs.

1629299921686.png

Around the realms, you will find Shrines to upgrade your wand - these will increase the damage your wand gives, but it increases the Mana taken to cast!

We have also added Party Support for the Magic and Mayhem RPG! If you join a party with someone, you will both join the RPG back where you last joined, but you will not be teleported with each other to different worlds! This is to avoid any exploits and so you can explore the worlds independently to your party leader! If the party leader leaves the RPG entirely, you will be pulled out with them.

🪄 The Wands

Moving onto the subject of wands! Within this RPG there are 5 different wands you can obtain. Each elemental wand has its own unique abilities to attack mobs. Some wands might even deal more damage against specific elemental mobs! 😮

wands.png



The Flame Wand! - Recorded on Bedrock!



The Hydro Wand! - Recorded on Java!​



🔥 The Mobs

Yes, you're seeing this right, we've got CUSTOM ELEMENTAL MOBS for both JAVA & BEDROCK! I won't say too much about them, but here's a little sneak-peak of the mobs and their attacks! 🤯

mobs-2.png




The Axolandl attacks! RUN! 🏃‍♂️ - Recorded on Bedrock!



The earth starts shaking! 😨 - Recorded on Java!​



🗺️ The Worlds

Within the CubeCraft Universe, there are 3 new worlds to explore and 1 world that you already know: CubeCraft! Let me take you through the others!

- Quintenia:

Quintenia 1920x1080-min.png

Named after the god that created this world, this is the world where Quintenians live! As mentioned before, they're very similar to humans and live together in harmony with all the other worlds within their universe!

- Yhornheim:

Yhornheim 1920x1080-min.png

Home to the beautiful Dwarven race. Their world was built within a cave, where they created great statues and places for Dwarven to sleep and spend their time. Nyms have been corrupting this world with their element: Fire.

- Alunore:

Alunore 1920x1080-min.png

This is where the Fayens live, a beautiful world with multiple islands that are all connected in some way. Using an Elytra around this world is ideal, it will get you places way faster!



🧙‍♂️ The Corruption

Moving onto the main reason why all of this is happening at the moment... The Conjurer.
Well, he isn't the cause of the corruption as far as we know, but he appeared in his own little corrupted world as soon as we started noticing corruption in some worlds. His entire world is completely corrupted and filled with monsters, it's something we've been trying to stay away from... Maybe you are able to take a look when you're strong enough?

Darklands 1920x1080-min.png



👛 The Loot

Amidst all of the realms that you can see, there is loot waiting to be unlocked! Take a look at what you can find! 👀

- Homing Pigeons - Win Effect - Bedrock 🐦


You may want to duck when you see them!​


- Goblin - Cage - Bedrock 👺


Scary... but very cute. Look at him flipping the coin!​


- Quintenian Cloak - Trail - Java 🦸‍♂️


The cloak will guide you away from The Corruption...​


- Yhornheim's Shockwave - Win Effect - Java 🦸‍♂️


Yhornheim has never been the same...​

Finally, all of the skins made for this project has been released on the Bedrock Marketplace! If you'd like to purchase our skin pack, Fantasy Teens, click here!



✨ The Credits

For all of this to be made possible, we've had quite some people put in lots of hard work for this project.
@jelliobean - Storyline, Dialogue & Product Management
@Camezonda - Product Management
@Younisco - Product Management
@Story - Custom Mobs & Pixel Art
@rubik_cube_man - Custom Entity System, Party Support & Game Development
@driima - Storyline & Game Development
@WorldeditAPI - Game Development
@libraryaddict - Boss Master
@Redned - Entity Culling & Optimizations
@Qu1nten - Level Designer (Quintenia, Yhornheim, Alunore)
@dxde - Level Designer (Alunore, Darklands)
@Asheron - Skin Designer
@Yamin - Custom Mob
Translation Team - Dutch & Spanish translations
@Zed - Became a Game Developer for a day and pushed a README file

I'm extremely thankful I got to work together with such amazing people. 💙
And finally, in case this thread hasn't convinced you to try our Magic & Mayhem RPG, maybe this trailer showing off everything could help! 👀



Thank you everyone for reading this thread - now please help & save us from The Corruption! 🔮
Hello CubeCrafters,

Today in this Behind the Cube, we will be exploring the complex matchmaking solution we have. This is a system that nobody really gives much attention to and is a lot more complex than most people give credit.
When joining a game, many calculations are all happening to get you the best game as quickly as possible.

For this post, we will only be explaining the matchmaking behind our largest games, like SkyWars and EggWars. Our matchmaking for things like Duels and Skyblock is slightly different.

👨‍💻 Why is Matchmaking so complicated?

Recently, we've introduced a lot of complexity into our matchmaking systems. For example, now, when you join a game on Bedrock, you are matchmaked with other players based off:
  • Your region
  • Your input device (Platform based matchmaking - Categorised into Touch, Controller and Keyboard & Mouse)
  • The map you selected (If you used the map selector)
When you request to join a game, we need to factor all of these values together and send you to a specific game instance. One of the major disadvantages of this system is that queue times can get very long, very quickly. As a result of this, we have solutions to help reduce queue times when the system suspects a game is going to take too long to start.

When matchmaking, we also need to take a few other things into account as well.
  • If there aren't enough servers in a certain region, we can no longer matchmake onto those servers and need to failover to a different region.
  • If someone has the "Challenge Queue" option on Bedrock enabled, we need to tailor their games to send them to more difficult games, if that is possible.
  • We also need to factor in if a player is in a party. If a player joins in a game in a party, with 2 members in the NA region and 1 in the EU, we'll always send that party to the NA region. If there is 1 in the EU and 1 in the NA, which region is selected is slightly more unpredictable and based on current demand.
🤔 So, how does this all work?

Well, when you click to join a game, all of your matchmaking options are gathered. The list is as follows:
  • Your current region
  • Your current input device
  • Your current party
    • Your parties members' input devices and regions
  • If you have the challenge queue setting enabled

Following this, we need to figure out which game parameters we need to send you and your party to. For this, we take the most common region and the highest input device (Mouse and Keyboard > Controller > Touch) of the party.

Once we know this information, we need to figure out if a queue can be started for this game. Now, if there are only 20 players in the NA region, and you're trying to join an NA game, there isn't going to be enough players for this game to start quickly, so we need to group you in the EU instead. The system looks at the last minute's data, and if enough players joined that game for a game to start within approximately 20 seconds, we would deem this a sustainable mode.

If there are less than enough players, we need to do some grouping.

👪 What is grouping?

When there are not enough players on a specific region or input device, we need to group certain options. For example, if enough people join the NA and EU regions, we run these regions simultaneously. However, if there are not enough players on Mouse and Keyboard input devices to keep queue times short, we'll group them with Controller players. We've also ensured that our systems will never group Mouse and Keyboard players with Touch players unless necessary. We also group with regions, so when there aren't enough players in the NA, they will join our EU games instead, to keep queue times down. When there aren't enough players on either region, and they're grouped, you'll always be sent to the region with the most players joining that game at that specific moment in time.

Another interesting challenge that we ran into was cross-region input-based matchmaking. For example, if our NA region doesn't have enough players to support quick queue times, it needs to be grouped with our EU region. When this happened originally, it sort of broke input-based matchmaking. This meant that we needed to add support for input modes to split into different queues on a single region when certain regions were disabled.

I am sure that I could talk about many edge cases we encountered and how we patched them. In the end, we wrote tons of automated tests for these algorithms and stress-tested them a lot to make sure that they were suitable for running on CubeCraft.

However, I'm sure you're all here for pretty pictures. Here are some pictures of the graphs that our systems make. They show start times for specific regions and input devices. It also shows us how much traffic is going to that game too. This allows us to tweak our values in case queue times are getting too long.

1628167211798.png


SkyWars Solo at EU peak. Notice how no modes are being grouped.


1628167230769.png


This is NA off-peak. As you can see, in the Average Game Start Times By Region and Input Device graph, the NA Controller and NA Mouse games have a start time of 0 seconds. This means they're not active and are grouped with the NA Touch games to keep queue times low.


1628167250307.png


This is SkyWars Mega. Since SkyWars Mega is such a large game and doesn't have the most players on our network, it means that it groups across Regions and Input Devices, because as you can see, even in its current state, queue times are approximately a minute per game.


Thanks for reading - I hope this clarifies the labyrinth of our matchmaking system. It never was this complicated before, but over the last half a year, we've had to consider both regions & input devices, while maintaining our short queue times without constant monitoring.

Let us know if there's anything you're curious about regarding our infrastructure or processes and we'd love to share how it works! 😄
🏗️ Forums Tweaks

Hai all!

We bring you a brief, but informative update about several changes that will be happening here on the forums! These changes will impact the way we handle a few aspects!

This includes the way bug reports are handled, appealing a punishment by an ex-staff member, and helper applications. Some of these tweaks are more drastic than others, so we will be going into detail on each.

🐛 Bug Reports

As some of you know, we have had Bedrock Bug reports on the forums, on top of being on the normal reports website for Java. This is something that our Bug Team has been struggling with as we don't have a centralised location for these bugs.

This has been something we did since there are issues with clicking links on the Bedrock platform, so users could not gain access to the reports site without a Java account. However, this minor difference has actually proven to be an advantage to sorting through the bug reports.

Due to the ease of use it has proven to be, all bug reports will now be on the forums!

Filling out a bug report is now a bit more systematic - this is because sometimes, the Bug Team will receive bugs that are quite literally 3 words long, which is a bit of a waste. We can now ask questions, categorise things relatively easily & get the correct information to tackle those difficult bug reports!

We've also created a guide for bug reports, which you can read here!

If you are curious about what information we will be looking for, or for what you need to gather in order to write a bug report, you can find the questions below. Some of them are conditionally shown, which we've marked with an * at the front. There are some differences in Bedrock & Java bug reports, but they're generally the same.
1626954228409.png
1626954369348.png

Finally, as a note for the Bug Team - currently, we have three people who go through bug reports; @Marieke2001 @Keanu & @CNA1998. We're super happy to be expanding our Bug Team to more than just one timezone, so you will be seeing 6 new fresh faces dealing with bug reports - @Deann, @Pineapple, @EnderKnightError, @Spoon, @Dutchyyy & @Darkninja27. These people will be spending some time getting used to the procedures of reporting bugs internally first - but this is our first step forward into pledging for better management of the bugs seen on our network.

🛠️ Ex-Staff Appeals

While these normally have been coming to @Capitan and myself, in our DM's on the forums, this will be changing.

The reason for this is due to the mass quantity of appeals we both have been receiving, and the amount of work that actually goes into them. We will be moving it to a sub-forum, where you will be filling out a form for your appeal, to provide ease of access and processing. These will also be sorted through by the SrMod Team, but also @Capitan and myself.

You can find the location to appeal here.

If you have an open conversation with either @Capitan or myself, please do not then create an appeal in this section. We will be finishing off any conversations we have pending, that were started before this update was released.

However, if you start a conversation from here on out, you may be redirected to the sub-forum. This is to ensure consistency and also an efficient organization for our staff team.

Note: This section is not going to be for Sentinel bans, Network Banned users, or False Punishments. It will only be for appeals from users that are banned by a staff member who is no longer a staff member.

🙌 Helper Applications

The changes to the Helper applications are genuinely very minor. In an attempt to make the process smoother for our team to sort through them, as well as for you all to be able to apply, we have added a form that will pop up when you start a new thread.

This will work similarly to how it does for our bug reports, ex-staff appeals, or the translation team applications. The template has not changed from what you had to copy/paste, but rather it has just been automatically provided for ease while applying.

That's all for this update! Thank you everyone for reading!
Hello CubeCrafters,

Last month we released an epic Parkour update to our networks, keeping Java Parkour fresh and introducing the new gamemode to our Bedrock network! - We've noticed that you love to play Parkour, but sometimes it can be a little difficult. So that's why we've made a new difficulty for you to try out! Read below for more info.


🏃 New Easy/Simple Difficulty

On our Bedrock network, we noticed that our Easy difficulty for Bedrock users and touch devices isn't easy enough, to solve this we've shifted all the difficulties up by one. This means that Normal is now Difficult, and Easy is now Normal. This makes room for a new Easy variant of our Parkour; it's basically a very easy version. There are 5 maps to try out and more to come in the future!

However Java already has an easy mode that players are happy with, but we love to keep both platforms in sync with updates, and it would be a shame for Java to miss out. So our Java network is getting a new Parkour difficulty called "Simple". There are 7 maps available to try out! - There aren't any achievements for this new mode, for now ;)


Marsh
Marsh.jpg

Hope these levels aren't too marsh...

Mobs
Mobs.jpg

Did this level just meow?

Modern
Modern.jpg

Now I'd love to live on this level

🌞 Java Summer Sale - Up to 50% off!

In celebration of the Summer season, we're hosting a Summer sale on our Java store. It lasts until the 19th July at 3pm BST.

  • 30% OFF Lifetime Ranks
  • 40% OFF Point Multipliers
  • 50% OFF All Cubelets (Including Seasonal)
You can visit our store HERE!

summer_sale_uwu.jpg

Forum statistics

Threads
324,755
Messages
1,535,896
Members
355,494
Latest member
L0rd_x
Members Online

Team online

Latest profile posts

Thank you for 6.1K! ❤️
Apparently I hack IN PARKOUR LOLOLOL
IMG_6919.png

😂🤣

After uttering those 3 words, the dude left and gave me a free win xD
A picture of my cat sleeping having kitty dreams
1000053259.jpg
kfccaleb wrote on WayneX4's profile.
You can now have a follow after I played with you!
How do you make spoilers with a name?
Top Bottom