Nieuws HarmServer Development Bootcamp

Ik zou hier wel aan deel willen nemen


  • Totaal aantal stemmers
    12

ItzCodex

Developer
Beste Speler,

De HarmServer bestaat inmiddels bijna 2,5 jaar. En in deze 2,5 jaar hebben wij op development gebied grote stappen gezet. En onze kennis willen wij met jullie delen. Daarom lijkt het ons leuk om een Development Bootcamp te organiseren. In deze bootcamp vertellen wij hoe de HarmServer op development gebied in elkaar steekt, delen we code met jullie en beantwoorden we vragen. Graag horen wij van jullie of hier interesse in is.

Ja heel leuk dit, maar wat is het development team?
Het development team is verantwoordelijk voor het bedenken, opzetten, onderhouden en verbeteren van de Minecraft server, website, webwinkel, discord en alles daaromheen. Je beschikt over een analytisch vermogen om eventuele problemen te herkennen, doorgronden en op te lossen. Ook zorg je ervoor dat je op de hoogte blijft van de laatste technologische ontwikkelingen op het gebied van Minecraft, Java, MySQL, etc.

Zie jij het wel zitten om developer te worden bij ons? Neem dan even een kijkje op onze website om zo meer te weten te komen https://harmserver.dev/

Server geschiedenis:
Om jullie een beter perspectief te geven ga ik even kort de server geschiedenis toelichten op het gebied van development. Let op, dit is een technische post! Nadat de geschiedenis is toegelicht zal er ook nog verteld worden hoe de server er qua development nu bijstaat.

18 april 2020 (Idee van de server is ontstaan, eerste development stappen begonnen een week later)
In deze periode is de HarmServer begonnen met enkel Survival. Er was geen intentie om een grote server te maken, enkel een betaalde survival voor kijkers van Harm om zo samen video's te kunnen maken. Ook qua development was de server in deze periode al erg goed. We beschikten over een eigen Core plugin welke alle basis dingen afhandelde en een zelf gemaakt Survival plugin voor de Survival server. In deze periode draaide de server op Minecraft versie 1.15.

Mei 2020 (start van de server)
Op 1 mei 2020 is de server officieel geopend. De livestream van Harm werd gepresenteerd met de naam "Minecraft spelen met kijkers". Wellicht kan je zelf al opmaken aan deze naam dat we niet van plan waren om een grote server te worden. We wilden enkel een leuke survival maken waar Harm met zijn spelers op kon spelen. Natuurlijk wisten we wel dat door een livestream er veel spelers op de server zouden komen. Om deze spelers op te vangen hebben we snel voor de livestream nog een lobby server gemaakt.

De livestream zelf verliep niet heel soepel. Er kwamen simpelweg TEVEEL spelers op de server af waardoor onze enkele dedicated server van 32 GB het niet aankon. Al snel moesten we handmatig mensen van de server gaan verwijderen om zo het aantal spelers in te dimmen. Maar vlak daarna ontstond probleem 2, namelijk dat de survival server ook niet het gewenste aantal spelers aankon. Kijk, lobby servers zijn relatief lichte servers, maar survival servers daar integen:
  1. Door de grote spelers aantallen werden er honderden chunks tegelijker tijd ingeladen
  2. Wanneer het nacht werd spawnden er ontzettend veel mobs
  3. Er lagen heel veel items op de grond die lag veroorzaakte
  4. Spelers maakten machines die lag veroorzaakte (bijvoorbeeld automatische farms)d
Zoals je dus al merkt waren dit grote problemen die hebben moeten oplossen. En veel van deze problemen hebben we momenteel nogsteeds in de Survival 3.0 server.

21 oktober 2020 (opening Survival 2.0)
Inmiddels zijn we 6 maanden verder, survival 1.0 heeft zijn limieten bereikt en we beseffen dat we moeten inzetten op een grotere survival server. En dit gebeurd, rond deze periode heeft survival een hele metamorfose gehad. Waar survival 1.0 een spelers capaciteit had van ongeveer 65 spelers, had survival 2.0 een capaciteit van meer dan 200 spelers. Dit komt omdat survival 2.0 verspreid zat over 6 server (1x lobby server, 1x pvp server, 1x event server en 4x team servers). Qua development was dit een hele uitdaging om te maken. Maar dit worp wel zijn vruchten af, survival 2.0 is voor een lange tijd een groot succes geweest.

22 januari 2021 (opening Skyblock)
Minecraft zat op dit moment op zijn hoogtepunt qua spelers. Dus dachten wij, we gaan Skyblock uitbrengen om meer spelers op de server te kunnen verwelkomen. Echter is dit erg uit de hand gelopen. We begonnen met Skyblock vuur maar deze zat al snel vol. Binnen 2 weken beschikten we over 4 Skyblock servers (vuur, water, aarde en lucht). Op onze piek hadden 578 spelers tegelijk online wat ons op dat moment de grootste Minecraft Nederlandse community server maakte.

Ook de development op Skyblock zat rond deze periode al erg hoog. We hadden veel eigen gemaakte plugins en de Skyblock draaide erg soepel. Natuurlijk hebben we tegenslagen gehad zoals dupes, griefs en lag machines. Maar deze hebben wij allemaal goed kunnen verhelpen.

Development op dit moment:
Oke, na deze snelle opfriscursus van hoe het vroeger in elkaar zat kunnen we nu door naar het echte interessante gedeelte. Namelijk hoe het er NU uitziet.

Op dit moment denk ik persoonlijk dat de HarmServer de best ontwikkelde server van Nederland is. We beschikken over hele competente developers en werken dagelijks aan nieuwe ontwikkelingen. Hieronder een opsomming van een aantal zelf ontwikkelde projecten:

Algemene projecten:
  • HarmCore
    • Plugin die alle hoofdzaken op de server regelt, denk hierbij aan:
      • Spelerdata bijhouden (rank, gems, vanish, naamkleur, persoonlijke instellingen, etc..)
      • Belangrijke server menu's (server & lobby selector, gems, profiel, instellingen)
      • Common commands (/fly, /afk, /shop, /gamemode, etc..)
      • En nog veel meer
  • HarmUtilities
    • HarmUtilities is een plugin waarin al onze handige code bewaard wordt die andere projecten mogen gebruiken. Voorbeelden hiervan zijn:
      • Command util (voor het maken van commando's zoals /fly)
      • Configuratie util (bijvoorbeeld instellingen bestanden die bij plugins horen)
      • Database util (om connectie te maken met onze Redis & MySQL databases)
      • Handige java utils (bijvoorbeeld helpers voor het berekenen van kans)
      • Utils voor het maken van bossbars, custom items, menu's, nms, npc's, particles en nog veel meer.
    • 1662376524917.png
  • HarmPackets (WireIO)
    • WireIO is nog een redelijk nieuw systeem waarvan de ontwikkeling begonnen is op 28 april 2022. WireIO is onze Netty handler. Dit systeem maakt het mogelijk dat servers onderling met elkaar kunnen communiceren d.m.v. packets. Hieronder zie je een foto genomen uit de HarmCore. Dit stuk code stuurt, wanneer de Core dat wilt een packet naar de Bungeecord server om een speler met een andere server te laten verbinden.
    • 1662376749351.png
  • HarmPlaytime
    • HarmPlaytime is een bungeecord plugin die de speeltijd van spelers bijhoud en deze opslaat in onze SQL database. Doe op de server maar eens een keer /playtime. Het bericht dat je dan ontvangt word verstuurd door deze plugin.
    • 1662376843270.png
  • HarmPunishments
    • HarmPunishments is een plugin die het voor onze staff makkelijker maakt om spelers te straffen wanneer dit nodig is. Het systeem zit gekoppeld aan Litebans welke de speler bannen, muten, kicken of waarshuwen.
    • Het handige aan HarmPunishments is dat het automatisch de straf van een speler bepaald op basis van voorgaande straffen. Op deze manier zijn straffen altijd eerlijk en ontvangt elke speler dezelfde straf voor dezelfde overtreding. Hieronder zie je een screenshot van het straf menu voor staff:
    • 1662377063727.png
  • HarmAFK
    • HarmAFK is de plugin die er voor verantwoordelijk is dat spelers niet AFK kunnen gaan staan. Heb je wel eens die melding in je scherm gezien dat je AFK staat? Dat komt door deze plugin.
  • HarmLeaderboard
    • Het is onmogelijk dat je nog nooit de leaderboards op de server hebt gezien. Ze staan overal, de leaderboard plugin berekend leaderboards en slaat deze op in de MySQL database. Ook zorgt deze plugin ervoor dat jij de leaderboards kan zien op de server. Hieronder een klein voorbeeld:
    • 1662377200469.png
Lobby projecten:
  • HarmLobby
  • HarmParkour
    • HarmParkour is de plugin die verantwoordelijk is voor alle parkours over heel de server, met snelste checkpoint tijden, finish tijden een in-game editor en nog veel meer kleine features.
    • 1662406991724.png
    • 1662407016118.png 1662407101414.png
Survival projecten
  • HarmSurvival
    • De Survival plugin is verantwoordelijk voor de volledige Survival 3.0 gamemode. De plugin bevat toepassingen als:
      • Tier systeem
      • Unlockbare enchantments
      • Wildernis playertracker
      • Custom dead messages
      • En nog veel meer
    • 1662450883345.png
SkyBlock projecten:
  • HarmSkyBlock
    • De SkyBlock plugin spreekt eigenlijk wel voor zichzelf. Deze plugin bevat alle zelfgemaakte features voor Skyblock, hieronder vallen:
      • Shops
      • Achievements
      • Black Market
      • Bounties
      • Head Hunter
      • Mob Arena
      • Tokens
      • TPA
      • De laatst toegevoegde custom items (Sellwand, Blockwand & Trashwand)
      • Systeem om spelers te verspreiden over de verschillende realms
      • En nog vele andere kleine dingetjes...
    • 1662450572558.png
Creative:
  • HarmCreative
    • De HarmCreative plugin is verantwoordelijk voor de volledige Creative gamemode. De plugin bevat toepassingen als:
      • Plot borders
      • Custom plot componenten (voor PlotMe intergratie)
      • Anti crash methodes
      • Creative plot menu
      • Scoreboard
      • Random build command
    • 1662451319421.png
Discord projecten:
  • HarmBot
    • De HarmBot is onze algemene bot met een paar simpele utilities en andere algemene onderdelen. Dit is via een extensie systeem dat we ontworpen hebben uitgebreid in verschillende projecten;
      • HarmDiscordSync
        • De synchronisatie tussen Minecraft en Discord, hiervoor is een extensie aangemaakt die gebruikt wordt in de bot en een Minecraft plugin om alle Minecraft gerelateerde onderdelen af te handelen op de server.
      • HarmAnnouncements
        • Dit is de extensie waarmee wij op een makkelijke manier aankondigingen kunnen versturen vanuit de bot.
      • HarmTickets
        • De extensie van het welbekende ticket systeem in de Discord, ook dit is een extensie van onze algemene bot.
      • HarmSuggestions
        • De suggesties die worden aangemaakt in de Discord gaat allemaal via deze extensie!
    • 1662451001955.png
Overige projecten:
 
Laatst bewerkt door een moderator:

ItzCodex

Developer
Mochten jullie nog vragen hebben, stel deze dan hier in de reacties (let op, je moet je dan wel eerst registreren op het forum)
 
Bovenaan Onderaan