Aarni Annanolli / pelinkehittäjä
English

Aarni Annanolli

Hei, olen Aarni. Teen pelejä ja työkaluja pelinkehittäjille.

Asuinpaikka
Järvenpää
Opinnot
Ohjelmistokehitys Keudassa, toinen vuosi
Etsin
Ohjelmointityötä pelistudiosta
Linkit
Sähköposti  ·  GitHub  ·  CV

Minusta

Opiskelen ohjelmistokehitystä Keudassa toista vuotta ja asun Järvenpäässä. Käytän enimmäkseen Godotia, ja pidän eniten pelimoottoriin liittyvästä ohjelmoinnista ja editorityökalujen tekemisestä.

Isoin projektini on YHDE. Sen avulla useampi ihminen voi työskennellä samassa Godot-projektissa yhtä aikaa, eikä tiimin tarvitse lähetellä scene-tiedostoja toisilleen tai korjata merge-konflikteja. Aloitin sen tammikuussa 2026. Nyt siinä on Godot-editorin sisällä toimiva C++-ydin, C#-palvelin, käyttäjätilit, tiimit ja chat, ja se pyörii palvelimella, jonka olen itse pystyttänyt ja jota ylläpidän.

Teen myös Aatraa, grand strategy -peliä, jonka kartat generoidaan proseduraalisesti. Haluaisin päästä ohjelmoijaksi pelistudioon ja oppia ihmisiltä, jotka ovat julkaisseet pelejä.

Projektit

YHDE tammikuu 2026 – nyt

Reaaliaikainen yhteistyölisäosa Godotille, tällä hetkellä betavaiheessa. Koko tiimi työskentelee samassa projektissa ja näkee toistensa kursorit, valinnat ja muutokset heti. Kaksi ihmistä voi siirtää nodeja samassa scenessä tai kirjoittaa samaan skriptiin yhtä aikaa. Commitit ja julkaisut tehdään edelleen Gitillä.

  • 800editoria yhtä aikaa kuormitustestissä tuotantopalvelimella
  • 40 msp95-viive muutoksen tallennuksessa ja välityksessä tiimille 800 editorilla
  • 154palvelintestiä ajetaan jokaisen muutoksen yhteydessä
  • 30 000riviä C++- ja C#-koodia
  • 13 000+ominaisuutta pysyy synkronoituna kahden editorin välillä end-to-end-testissä

Rakenne

Laatikoita voi raahata

Muutosten tunnistus

Godot-editori ei kerro, mitä muokkaus muutti. Muokkauksia tulee monesta eri työkalusta, kuten inspectorista, gizmoista, tile-maalauksesta ja käyräeditoreista, ja ne kaikki kulkevat editorin undo-järjestelmän kautta. C++-ydin toimii editorin sisällä Windowsilla, macOS:llä ja Linuxilla. Aina kun undo-historia muuttuu, se vertaa avoimia scenejä viimeksi synkronoidun tilan kopioon ja lähettää erot palvelimelle operaatioina. Tämä toimii kaikilla editorin työkaluilla ja muiden tekemillä lisäosilla ilman erillistä koodia. Arvojen enkoodaus on testattu moottorin jokaisella luokalla.

Editorit pysyvät samassa tilassa

Jokaisella nodella on piilotettuun metadataan tallennettu tunniste. Tunniste lasketaan samalla tavalla joka koneella, joten kaksi editoria, jotka avaavat saman tiedoston, antavat sen nodeille samat tunnisteet. Palvelin asettaa kaikki muutokset yhteen järjestykseen, ja jokainen editori käy ne läpi samassa järjestyksessä. Jos kaksi ihmistä muuttaa samaa ominaisuutta, myöhempi muutos jää voimaan ja molemmat tallentuvat historiaan.

Skriptit ja yhteistyö

Useampi ihminen voi kirjoittaa samaan skriptiin tai shaderiin yhtä aikaa, ja Ctrl+Z peruu vain omat muutokset. Voit seurata tiimiläisen näkymää, kutsua kaikki omaan näkymääsi, keskustella chatissa ja jättää kommentteja sceneen.

Luotettavuus

Jokainen muutos tallennetaan tietokantaan ennen kuin se lähetetään muulle tiimille. Editori tallentaa lähettämättömät muutokset levylle. Yhteyskatkon tai kaatumisen jälkeen se muodostaa yhteyden uudelleen, hakee väliin jääneet muutokset ja lähettää omansa uudelleen, ja palvelin ohittaa kaksoiskappaleet.

Kuka sen teki

Tein YHDE:n itse. Siihen kuuluvat C++-ydin, GDScript-lisäosa, C#-palvelin, PostgreSQL-tietokanta, Reactilla ja TypeScriptillä tehdyt verkkosivu ja ylläpitosivu, palvelinympäristö sekä kuormitustestaustyökalu. YHDE julkaistaan avoimena lähdekoodina.

Aatra kesäkuu 2026 – nyt

Europa Universaliksen innoittama grand strategy -peli. Maailma generoidaan, kun uusi peli alkaa, joten jokaisella pelikerralla mantereet ovat erilaiset.

Maailman generointi on kirjoitettu C++:lla suorituskyvyn takia, ja pelilogiikka on GDScriptiä Godotissa. Aloitin pelin kesäkuussa 2026 ja teen sitä yksin. Se on vielä kehitysvaiheessa.

Koulutus

Keuda heinäkuu 2025 – nyt

Tieto- ja viestintätekniikan perustutkinto, ohjelmistokehityksen osaamisala. Opiskelen toista vuotta.

Työkokemus

LuppaSoppi 2025 – nyt

Työskentelen web-kehittäjänä neljän hengen tiimissä Keudan kautta saadussa asiakasprojektissa. Teimme LuppaSopille WordPress-sivuston yhdessä asiakkaan kanssa, ja nyt laajennamme sitä verkkokaupaksi.

Osaaminen

PelitGodot ja GDScript, C++, editorin lisäosat
OhjelmointiC++, C#, Python, TypeScript, JavaScript, SQL
Tietoliikenne.NET, WebSockets, MessagePack, PostgreSQL, Dapper
KäyttöönottoDocker, Docker Compose, Caddy, Ubuntu-palvelimet, GitHub Actions
WebReact, Vite, Tailwind CSS, WordPress
Kielitaitosuomi (äidinkieli), englanti (sujuva)

Klikkaa nimeä, niin se vaihtuu logoksi. Rivejä voi raahata otsikosta.

Yhteystiedot

Jos studiosi etsii ohjelmoijaa, otathan yhteyttä.

[email protected]

Tämä on portfolioni pelinkehitysversio. Katso myös ohjelmistokehitysversio.