programmatūra · 5 min · 12.07.2026

Fenris atver EVE Online dzinēju Carbon — vairāk nekā 20 moduļu GitHubā ar MIT licenci

Fenris Creations 1. jūlijā pabeidza sava spēļu dzinēja Carbon atvēršanu. Vairāk nekā divi desmiti moduļu tagad ir GitHubā, lielākā daļa ar MIT licenci. Tas ir tehnoloģiskais pamats, uz kura kopš 2003. gada darbojas kosmosa MMO EVE Online un jaunākā spēle EVE Frontier.

Atvērts ir dzinēja karkass — renderētājs, fizika, tīklošana, saskarne, Python saites. Slēgts paliek viss, kas padara EVE par EVE: spēles loģika, mākslas resursi, serveru binārie faili un datubāzes daļas. Uzņēmums, kas vēl pirms diviem mēnešiem saucās CCP Games, kodu publicēja bez maksas modeļa un bez atbalsta solījumiem.

Kas nonāca GitHubā

Centrā ir divi moduļi. Trinity ir Carbon renderēšanas dzinējs, kas atbild par EVE kosmosa vizuālo izskatu un strādā uz vairākām platformām. Destiny ir fizikas puse — sadursmju aprēķini, ceļu meklēšana un kustība, kas jāizrēķina lielās daudzspēlētāju kaujās ar simtiem kuģu vienā sistēmā.

Ap tiem ir pārējais karkass: zemā līmeņa C++ arhitektūra, tīklošanas slānis CarbonIO, saskarnes bibliotēka CarbonUI, telpiskā audio un resursu izplatīšanas cauruļvadi. Blue ir līme starp Python un C++ — tas ļauj Python kodam izsaukt C++ klases un funkcijas, kārto objektu saglabāšanu un ielādē resursus, tostarp tekstūras un ģeometriju. ImageTools ir atsevišķa C++ bibliotēka un Python paplašinājums attēlu ielādei un saspiešanai. Game Developer uzskaita, ka publicēti ir vairāk nekā divi desmiti grafikas, fizikas un simulācijas moduļu.

Carbon Scheduler un Python jautājums

Izstrādātājiem interesantākā daļa var būt Carbon Scheduler. EVE gadiem darbojās uz Stackless Python — Python varianta ar mikropavedieniem, kas ļauj vienā procesā vadīt tūkstošiem vienlaicīgu uzdevumu. Šis modulis atnes tādu pašu determinētu plānošanu un kanālu ziņojumapmaiņu Greenlet korutīnām, tā ka arī parasts CPython tiek galā ar lielām simulācijas rindām.

Praksē tas nozīmē, ka Carbon vairs nav piesiets Stackless dakšai. Kods, kam agrāk vajadzēja pielāgotu interpretatoru, tagad darbojas uz standarta CPython. Tas pazemina slieksni ikvienam, kurš gribētu dzinēju pētīt vai izmēģināt ārpus EVE konteksta.

Kāpēc tāda plānošana vispār bija vajadzīga, saprotams no EVE arhitektūras. Visi spēlētāji dalās vienā universā uz servera Tranquility — nav atsevišķu paralēlu pasauļu, tāpēc viena sistēma var savilkt tūkstošiem kuģu vienā kaujā. Dzinējam tas nozīmē tūkstošiem vienlaicīgu uzdevumu vienā procesā, un tieši šo slodzi Carbon Scheduler palīdz sadalīt.

Licence: MIT ar diviem izņēmumiem

Gandrīz viss kods ir zem MIT licences, kas atļauj lietot, mainīt un izplatīt to arī komerciāli. Divi apakšmoduļi ir uz citiem noteikumiem: viens ar Apache 2.0, viens ar Python Software Foundation licenci. Praktiski tas dod tiesības forkot renderētāju vai fizikas moduli savam rīkam vai prototipam bez Fenris atļaujas.

Kods ir publicēts tāds, kāds tas ir. Fenris nesola atbalstu, kļūdu labošanu vai pieprasījumu pieņemšanu, un serveru puse paliek slēgta, tāpēc palaist savu EVE kopiju no šī koda nevar.

Kas paliek slēgts

Atvērts ir dzinējs; pati spēle paliek slēgta. Slēgti ir EVE Online dzīvās spēles noteikumi, mākslas un skaņas resursi, oficiālie serveru binārie faili un patentētās datubāzes daļas. Tā ir robeža, kas atgādina citus dzinēja atvēršanas gadījumus: pieejams ir instruments, ar ko būvēt; gatavais saturs paliek studijas rokās.

Solījumu atvērt Carbon studija deva jau gadiem. Jūlijā tā to izpildīja pilnībā un publicēja arī visu moduļu izmaiņu vēsturi.

Kāpēc tieši tagad

Laiks nav nejaušs. Maijā Pearl Abyss pārdeva CCP Games tās vadības komandai, un pēc atgriešanās pie neatkarības uzņēmums pārsauca sevi par Fenris Creations. Atvēršana ir viens no pirmajiem lielajiem soļiem jaunajā statusā. Fenris turpina uz Carbon būvēt gan EVE Online, gan EVE Frontier, tāpēc publicētais kods atbilst tai pašai bāzei, uz kuras ikdienā strādā studija. Kā vēsta Massively Overpowered, studija to skaidro ar caurskatāmību un kopienas uzticību, cerot, ka ārēji izstrādātāji dzinēju uzlabos ātrāk nekā slēgta komanda.

Vai kāds ārpus EVE Carbon reāli izmantos, vēl redzēsim. Dzinējs ir specifisks — būvēts vienai kosmosa simulācijai ar milzu vienlaicīgām kaujām, tāpēc universālam darbam kā Unity vai Godot tas tik viegli neder. Bet pati Destiny fizikas pieeja lielām daudzspēlētāju sistēmām un Carbon Scheduler risinājums Python paralēlismam ir gabali, ko var lasīt un aizņemties atsevišķi. Tie ir retums — publiski pieejams produkcijas kods no MMO, kas darbojas divdesmit trīs gadus, ar visu, ko tik ilgs laiks pievieno. Kods jau ir GitHubā, un pirmie forki parādījās dienu laikā pēc publicēšanas.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie