DISCLAIMER: Potterworld or Droobledore LLC is not in any way affiliated with Mojang AB, J.K. Rowling, Warner Brothers or any company, copyright or trademark.
PotterworldMC PotterworldMC PotterworldMC

Development Blog - June 2022


Greetings witches, wizards and all magical folk alike!​

Welcome to the third Technology & Development blog! We’ve seen great feedback from the first and second ones, so there’s been no reason not to continue! If you haven’t read the first two blogs, you can do so here:

May Development Blog
April Development Blog

We know it’s hot outside, and we hope that the litty-ness from this blog doesn’t make it more warm where you are - but no promises! It’s pretty hot.🔥

For this blog, we’ll be going over three topics:
You can click to jump to the section
June Achievements: What we have achieved this month.
May 4th: How we did May 4th, and some technical insight.
The Future: What we plan on working on in July.



JUNE ACHIEVEMENTS

June has been a great month for us! We achieved major milestones, both publicly and behind the scenes, despite it being a very busy month for us with exams, and the beginning of many people’s mid year holidays.
  • Party update has been released! This new update introduced new commands, bug fixes, and numerous long awaited QOL updates. We hope you enjoy it.
  • Our end of June patch notes released! This update introduced the much anticipated /ignore command and a lot more!

Aside from this, we have dedicated a lot of time to giving our staff team more tools to use. While we won’t mention everything (there’s quite literally too much to mention), we’ll go over some highlights that you can expect to see soon:
  • We now have the ability to add ‘boosts’ to certain aspects for our games, for example, experience boosts! This is something we have never had, and now we finally have it. This can be used for a lot more than experience. If a quest requires you to kill 50 mobs, you might drink a potion that counts 1 mob kill as 2 mob kills. Endless possibilities!

    When a boost is active, it’ll show up on your scoreboard, like this:
  • In the past, when our staff team had to change a GUI, a hologram, a sparkling block, or something else, they would have to wait up to 30-40 seconds for the change to be put into effect. As you can imagine, this resulted in a lot of time being wasted, because for every change you made, you’d have to wait.

    We spent a lot of time removing this delay. This has removed an enormous strain from our staff team, and should hopefully make it more fun, rewarding and motivating to work using our tech.
  • We now have the ability to mark specific items as ‘safe drop’. This means, certain items moving forward (most likely collectables) will be marked with safe drop. If you don’t have the setting disabled, you will now have to drop the item twice in order to drop it. This was added after many reports of players accidentally dropping their collectables, and expecting a refund.

Back in April, we released a list containing 12 things that we were planning on working on. Let’s revisit this list, and see what we have left:
  1. Fixing hologram flicker, so they look smooth and don't disappear for a split second sometimes (or blink)
  2. Sending gold through mail (and possibly increasing the mail limit too)
  3. Allow trading other currencies in /trade
  4. A command that will allow you to see how many house points you’ve earned

8 down, and 4 to go! Let’s see where we are with these:
  1. This is currently in WIP. We have done the majority of the work for this, but there are a few quirks that need to be figured out. We hope to deliver this in July.
  2. This is still planned but has not been started yet.
  3. This is no longer planned, as it’s something we’re no longer interested in doing.
  4. This is planned. We expect this to be delivered in July.

Overall, it’s been an amazing month. We improved many aspects of the server and delivered a lot of updates.

I’ll now be handing the microphone over to Zmiya, our Lead Engineer, who has been very excited to talk to you all about the May 4th event.

Last month the Engineers and Developers both heavily contributed to a game called Star Battle! We’ll go over both teams’ contributions separately, starting with the Engineers.

As you may be aware, the primary role of the Engineer team is to create, maintain and fix for the plugins Magic and MythicMobs. Both of these plugins are essential to the functioning of Star Battle, and so we had to do a lot of work and had a lot of challenges along the way. Let’s talk about some of these challenges:
  • The creation and design of the Ewoks scattered around FFA.
  • How we tracked how accurate you were with your guns.
  • Our ways of determining what was being received well and what wasn’t.

EWOK MOBS
Starting with the Ewok mobs. In the MythicMobs plugin, there are two features essential for the functioning of these mobs which are signals and stances. Fun fact: You won’t know this, but each ewok is actually two different entities forced into the same coordinate - one is a pig and one is an armour stand. We found armour stands were not able to be hit with the weapons used, so we used a pig for its hitbox - this also made it easier to hit the ewoks.

However, now we have a new issue in our hands. Can you guess which of the four options below it was?
  1. The pig entity was making sounds.
  2. The armour stand entity wouldn’t despawn when the ewok was shot.
  3. The pig entity sometimes wouldn’t spawn.
  4. The armour stand entity wouldn’t always spawn at the correct location.
Open the spoiler below to find out!
The answer is… B! The armour stand entity would not despawn. How we solved this is, as mentioned earlier, signals. Essentially a signal, as you may be able to guess from the name, is communication from one mob to another. When a mob receives a signal - which we can specify on the mob using a trigger called ~onSignal - it goes ahead and does the skill attached to the trigger.

Moving on - I’ll give you another fun fact: the pig entity for the ewok mobs were all the same mob. You might be wondering how this is possible considering there were different types of ewoks - some carried medpacks, some carried stun grenades and some even gave out 2x credit boosters! How could this be possible? We used something called stances.

See if you can guess what stances were used for. Was it:
  1. To determine what item the ewok held (medpack, stealth pack, etc.).
  2. To determine what item the ewok gave its killer when killed.
Open the spoiler below to find out!
The answer is… both! Stances are essentially like a tag. You can give a mob a stance, or a tag, that then allows that mob to run a specific action (skill). Let’s say the ewok was given the medpack tag, it now is allowed to spawn the ewok holding the medpack on top of itself (the armour stand entity) and now gives its killer the medpack when killed which is done via the ~onDeath trigger. Since the giving of the medpack to the killer is just a command the mob runs, we can also make it do things like give the player the 2x credit booster.

We had a few other minor struggles with the ewok mobs to make them as nice and enjoyable as they turned out to be, but we won’t go over anymore than what is mentioned above. Let’s now move on to gun accuracy.

When playing Star Battle: FFA, you may have noticed that it kept track of your accuracy. This was a last minute feature we implemented and we had quite a few struggles doing so. We dealt with a feature of the Magic plugin called variables. But what is a variable?

A variable is a number assigned to an ID or tag that you can specify. For example, I might call my variable ‘total_shots’ and assign it a value of 5. Now I can reuse that tag, total_shots, and it’ll tell Magic that I’m intending on using the number 5 there.

Every time a bullet was shot in FFA, one or two variables were being added to you. If you hit a player or mob, 1 hit variable would be added and regardless if you hit or missed, 1 total variable would be added. Using a very simple formula for calculating percentage (hit / total * 100), we can then calculate the % of the time you hit your bullets.

We had a struggle here too though. Let’s play our last guessing game for today and try to see if you can figure out what might have been the struggle:
  1. Each gun works differently and so the variables had to be added in varying methods.
  2. Guns were too quick for the variables to be counted accurately.
  3. Guns would add multiple variables if it hit multiple targets.
The answer is… all of them again! Why is this the case though? Well, let’s take a look at the guns. We have a pistol that fires slowly, a rifle that fires quickly, a bowcaster that fires in a spray, and so on. We had to ensure that each gun would only give one variable per shot instead of, for example, eight from the bowcaster. We also had to ensure that the speed of the bullet, which some are quicker than others, did not affect if the variables were counted. The different methods we used are checking if the bullet hit an entity, if the entity took damage or not, and others.

Finally, let’s briefly go over the type of data we collected from Star Battle. I won’t show all of it, but here are some cool statistics:


We also tracked how many players joined the games over the course of the event, the most popular kits in each game, the top mob killers, player killers, credit earners, and a lot more!

We used this data to essentially make decisions based on how well a specific game, kit, etc. was performing. If we saw that one of the games was performing worse than the others, then we would make changes to try and make it more enjoyable. In the case of Domination, we started rotating it with FFA so both games would be available at the same time. If we saw that a gun or item in FFA was greatly more popular than others, we would try to buff the less popular items to try and make them more viable in gameplay.

I hope this has been very informative and that you have gained a lot of insight into the type of work Engineers do. We actually do many tasks around the server that aren't only Magic, MythicMobs and data - we actually maintain the website, create and maintain permissions, a lot of other tech work and more!

I’ll now be handing the microphone back to Deniz. Thank you for reading!

We’ll be spending some time exploring improvements to the website map. Here, we’re interested in showing your player on the map (and have it update, as you move around), as well as your party members and more. There is no guarantee this will be done in July.

We’re also currently working on a new feature for quests, that gives you the ability to focus it. Focusing a quest will display its current objective on your scoreboard, put a marker on the map, show any relevant coordinates on the map, and set your compass to direct you to that location. We’re excited for this feature and believe it’ll lessen the struggle of navigating quests on our world!

And that brings today’s development blog to a close. Thanks, everyone! We hope you enjoyed this month’s dev blog. As mentioned before, we’re continually trying new styles with our dev blogs. This month, we wanted to focus a bit more on the technical challenges our incredible Engineer team meets when creating gameplay for you. As usual, please continue to give us your feedback, it’s truly appreciated.
 

Comments

Somnambulist

Librarian
Minecraft IGN: Psycho
Phoenix Raven Werewolf
#2
The info on how Star Battle FFA was created is insightful - I didn't realise how much work goes into figuring out the details for the blasters and ewoks.
Excited to see how Boosts will work out in the future and how it could be used in different scenarios along with the floaty heads in /map too.
I'm definitely looking forward to that Focus feature for quests though. This seems like it will really be useful for new players and make quests more intuitive and less confusing for them.
Thanks for another great update!