SC Serverdevelopment - Een kijkje achter de schermen

:raising_hand_man: Even voorstellen…

Bij SprookjesCraft werken verschillende mensen die software ontwikkelen. Wij delen het ontwikkelproces – ook wel development genoemd – voor het gemak op in drie verschillende onderdelen: serverdevelopment, webdevelopment en attractiedevelopment. In deze blog komt serverdevelopment aan bod, in volgende blogs vertellen we je meer over web- en attractiedevelopment.

Wie zijn nou die mensen die urenlang in dat vreemde computertaaltje aan het schrijven zijn, zodat jij een betoverende ervaring hebt? Harm (harm27) en Naomi (Cuddliness) werken het meest aan serverdevelopment. Harm werkt als fulltime software engineer bij een bedrijf en heeft een HBO bachelor informatica studie afgerond. Naomi heeft al meerdere jaren programmeerervaring.

:man_technologist: Serverdevelopment

Over het schrijven van plugins voor de server vertelt Naomi het volgende: ‘Voor plugin development gebruiken we voornamelijk de programmeertaal Java. Dit komt omdat de server op Java draait en de server dan ook snapt wat wij maken. Java leren is in principe niet heel moeilijk, maar het kost wel veel tijd. Java is een uitgebreide taal en maakt gebruik van duizenden pakketjes om het uit te breiden via onder andere Spigot.’

Het schrijven van een plugin voor SprookjesCraft kan veel tijd kosten. ‘Een simpele plugin kan ik binnen 5 à 10 minuten klaar hebben, met de complexere plugins ben ik meerdere weken of maanden bezig’, vertelt Harm. 'Deze ingewikkeldere plugins kosten meer tijd om uit te werken, maar ook om deze goed te testen. Daarnaast hebben deze vaker een afhankelijkheid naar bijvoorbeeld onze eigen website. Ook kan het voorkomen dat er, terwijl de plugin al werkend is, fouten worden gevonden. Die moeten dan natuurlijk meteen worden gerepareerd!’

(Tekst gaat verder onder de foto)


Een voorbeeld van een stukje code

Het ontwikkelen van plugins voor Minecraft kent bepaalde limieten en uitdagingen. Harm vertelt: ‘ Bij het ontwikkelen van plugins voor Minecraft heb je meer technische beperkingen. De meeste mechanieken van Minecraft gebeuren op één thread. Dit betekent dat als je te lang bezig bent met bijvoorbeeld een taak binnen je plugin, je daarmee de rest van de server laat wachten. Daarom is het zeer belangrijk om zoveel mogelijk handelingen, die niet direct teruggekoppeld moet worden naar de gebruiker, met de planningstooling van het serverplatform op een externe thread te laten zetten.’ Naomi voegt hieraan toe: ‘In Spigot zit alles waar mee je kan programmeren. Denk dan bijvoorbeeld aan de mogelijkheid om te teleporteren. Een aantal dingen zijn dus al vooraf geprogrammeerd, maar de creativiteit en de verschillende mogelijkheden maakt het uitdagend.’

Onze developers hoeven zich nooit te vervelen, zij werken dagelijks aan verschillende projecten om SprookjesCraft zo magisch mogelijk te maken. Dit kost echter veel werk. Harm legt uit hoe een project opgestart wordt: ‘Eerst overleg ik intern met een aantal mensen, om goed uit te werken wat we precies gebouwd willen hebben. Vervolgens ga ik het nieuwe project in onze tooling opzetten en dan kan ik beginnen met het ontwikkelen. Nadat ik het ontwikkeld heb, ga ik het eerst zelf uittesten, om de eerste serie problemen op te lossen. Zodra ik daarmee klaar ben, laat ik het ook nog door andere stafleden testen. Zij gaan specifiek kijken of in diverse situaties de nieuwe plugin doet zoals wij verwachten dat het zou moeten doen. Is dit allemaal in orde? Dan ben ik klaar en kan ik beginnen met de volgende plugin of het uitbreiden van onze bestaande plugins.’

(Tekst gaat verder onder de foto)


Een kijkje in het datacentrum waar de servers van SprookjesCraft staan

:question: Wist je dat…

  • meer dan de helft van onze plugins zelfgemaakt is?
  • we onze eigen plugins eerst testen op onze verschillende test servers?
  • onze developers programmeren in het programma IntelliJ IDEA?

:face_with_symbols_over_mouth: Lag in SprookjesCraft

Op de vraag hoe het komt dat er soms ‘lag’ is in SprookjesCraft, geeft Harm het volgende antwoord: ‘Er zijn diverse factoren die invloed hebben op de prestaties van de server. De eerste heb ik net al genoemd, namelijk de hoeveelheid werk dat op de core game thread gebeurt. Omdat het meeste werk toch vaak afhankelijkheden heeft naar de game mechanics, komt veel werk daarop terecht. Echter, als deze thread te veel werk te verduren heeft, gaat deze achterlopen. Dit betekent dat de server meer werk moet doen dan hij zou kunnen doen binnen één game loop. Als er daardoor lag ontstaat, roepen mensen vaak dat we extra RAM nodig hebben. Dit staat daar echter los van, was het maar zo makkelijk op te lossen!’

'Een andere factor is netwerk. Als het systeem van Minecraft, voor het afhandelen van de berichten van en naar de spelers, te veel te doen krijgt, gaat iedere speler achterlopen op de staat van de game van de server en de andere spelers. Hierdoor word je als speler soms teruggeplaatst naar de plek waar je eerder al stond. Daarnaast heb je nog de client performance. Als je een zwakkere computer hebt of er worden veel effecten tegelijk gebruikt, kun je merken dat je een minder goede game-ervaring hebt. De server heeft daar zelf geen last van, omdat dit bij jou op jouw computer is.’

(Tekst gaat verder onder de foto)


Een overzichtje van de huidige statussen van onze resources

:writing_hand: Solliciteren
Lijkt het jou ook enorm leuk om mee te programmeren aan de betovering van SprookjesCraft? Solliciteer dan nu voor de functie Java Ontwikkelaar. Meer info? Klik op deze link!

7 Likes

Toch wel leuk en interessant allemaal maar het is niet mijn ding :stuck_out_tongue:

2 Likes

Hi Bas,

Snap ik, mijn ding is het ook niet hoor! Heb nu stiekem toch wel een hoop dingetjes geleerd over development. (En ik heb nog veel meer informatie moeten verwerken, haha!)

Waar zou jij een ‘Achter de schermen’ blog van willen zien?

Groetjes,
Leroy

2 Likes

Hey! Ik vind het super tof dat zulke dingen gepost worden. Zo weten we meer wat er achter de schermen gebeurd! Ook de updates die er eindelijk zijn! Mogen er meer komen. Proost op SC :heart_eyes:

3 Likes

Hi Luuk,

Leuk om te horen zeg! We proberen jullie zo veel mogelijk te betrekken bij SprookjesCraft. Wist je al dat je zelf ook ideeën in kan voeren via deze website? Wie weet gaan wij er dan mee aan de slag!

Voor een volgend blog, wat zou jij een tof onderwerp vinden?

Groetjes,
Leroy

1 Like

gaaf artikel, mijn ding is het zeker niet maar fijn dat er wel mensen zijn die dit doen met plezier :stuck_out_tongue_winking_eye:

2 Likes

Hi @Casper_arianafan,

Bedankt voor je berichtje! Mijn ding is het ook niet helemaal, maar heb er stiekem toch nog wat van kunnen leren. :stuck_out_tongue:

Voor een volgend blog, wat zou jou een leuk onderwerp lijken? Ben benieuwd!

Groetjes,
Leroy

3 Likes

Ik wil later developer worden maar ik heb volgend jaar pas examenjaar :frowning:. Misschien kan ik wel vast oefenen.

2 Likes

Hi @Vlame,

Wat leuk dat je die kant op wilt. Ik denk dat je met zoiets niet vroeg genoeg kan beginnen, dus gewoon lekker alvast een beetje hobbyen! :smiley: Als je nog vragen hebt over development, stel ze dan gerust! Mijn SC-collega’s zullen die graag voor je beantwoorden. :partying_face:

Groetjes,
Leroy

2 Likes

hey @Leroy mij lijkt het leuk als jullie een keer laten zien hoe een event tot stand komt en dan bedoel ik natuurlijk niet alleen bestaande efteling events maar wat meer random events kamp ina etc. of het jaarlijkse halloween event dat soort dingen daar ben ik erg in geintreseerd

2 Likes

Hi @Casper_arianafan,

Toffe suggestie! Ik schrijf ‘m op. Zodra we weer een groot evenement hebben zal ik informatie verzamelen voor een blog! :ok_hand:t4:

Groetjes,
Leroy

2 Likes

Super artikel, goed beschreven. Altijd leuk als mensen een beeld krijgen wat we doen, waarvoor. En wat de planning / uitwerking er van is. Vond het super om mee te mogen helpen en deel te mogen maken van het SC dev team. #LetsBuildTogether

2 Likes

Leuk! volgend schooljaar ga ik beginnen met mijn opleiding applicatie en mediaontwikkelaar. En daar ga ik ook leren over programmeren! nog even een vraagje, tijdens die opleiding moet je meerdere keren stage lopen, is het mogelijk dat binnen sc te doen? Dat lijkt me erg leuk namelijk :smiley:

2 Likes

Hi @Sanderbraat,

Gaaf dat jij een opleiding gaat doen in de development richting! Of je bij SprookjesCraft stage kan lopen durf ik eerlijk gezegd niet te zeggen. Ik zal je vraag doorsturen naar iemand die daar meer over weet en er later op terug komen.

Groetjes,
Leroy

1 Like

Erg leuk dat je interesse hebt om mogelijk stage te lopen bij SprookjesCraft! Helaas bieden we die mogelijkheid op dit moment niet. Onze stafleden werken in hun vrije momenten, naast school en werk, aan het ontwikkelen van SprookjesCraft. Dat betekend dat we geen mogelijkheid hebben om stagiaires voltijd te begeleiden.

Onze developers hebben wel een aantal schoolprojecten bij SprookjesCraft uitgevoerd. Als je opleiding dat mogelijk maakt en je daar interesse in hebt, dan kan je ons altijd mailen! Dan kunnen we misschien eens met je mee denken.

2 Likes

Hoe kan ik het best java leren voor minecraft plugins?

1 Like

Hi @LuukVH,

Ik heb je vraag even doorgestuurd naar Harm, hij heeft hier het volgende antwoord op: ‘Leer eerst hoe je moet programmeren in Java met bijvoorbeeld tutorials of trainingen die je online kunt vinden. Programmeer daarna stap voor stap steeds complexere minecraft plugins.’

Mocht je verder nog vragen hebben, stel ze dan gerust! Succes met het aanleren van Java!

Groetjes,
Leroy

2 Likes

Ik zou het best willen, en ook jullie team willen versterken maar ik heb niet echt programmeer ervaring helaas

3 Likes

Hoi idee voor de volgende: Achter de schermen bij het maken van attracties enzo en muziek…

3 Likes

Hi @Just_Senne,

Thanks voor je suggestie! Ik schrijf 'm op! :slight_smile:

Groetjes,
Leroy

1 Like

SprookjesCraft is een geregistreerde merknaam en onderdeel van Pixelite en staat ingeschreven bij de Kamer van Koophandel onder het nummer: 62692615.