26 март, 2019

Девелопърът Виктор Кирилов започва да се занимава с разработването на игри още в юношеските си години, като твърди, че това е желаната от него работа и до днес. За няколко години, той преминава през 2-3 компании, в които събира ценен опит и решава да стартира свои собствени проекти. Всяко начало е трудно, но Виктор има страхотни идеи не само за нови игри, но и за усъвършенстването на програмния език C++. Наскоро, програмистът дори е създал и свой собствен блог. Вижте какво разказа той за себе си и своите планове.

Разкажете повече за професионалния си опит. В какви събития и проекти участвате? От колко време се занимавате с програмиране?

Още от гимназията имах желание да се занимавам с разработване на игри. Именно това беше причината да кандидатствам в училището към Техническия университет в София – ТУЕС. Написах първата си игра в края на 9-ти клас, като тя беше базирана на Pascal. Преди да завърша средното си образование започнах да работя активно и със C++. По-късно се записах в Софийския университет, но прекъснах обучението си и започнах работа в Gameloft. Там прекарах една година и след това се присъединих към екипа на Chaosgroup. В тази компания работих 2 години и половина, научих доста неща и се запознах със страхотни професионалисти. Все пак, мечтата ми беше да пиша игри и напуснах, за да се фокусирам върху собствените си проекти.

С кои технологии най-много Ви допада да работите?

Най-често боравя със C++, защото винаги съм искал да се занимавам с игри. Имам скромен опит с Web и PHP. Използвам Python за скриптинг на мои инструменти, с които работя.

Тъй като имате опит със C++, бихте ли разказали кои според Вас са предимствата и недостатъците на този програмен език?

Предимствата на езика са, че позволява на разработчиците да достигнат до най-ниското ниво на хардуера и да изкарат почти максималния performance от машината, за която пишат. Неслучайно, виртуалните машини на Java, C# и още много програмни езици се пишат на C++. Игрите също са базирани на въпросния език, тъй като трябва да се генерират нови кадри на всеки 16 милисекунди, необходимо е да се случи страшно много симулация за изключително кратко време и за много от игрите няма как да се използва друг език освен C++. Също така, езикът не ограничава потребителите му с конкретна парадигма за писане – може да се пише структурно, обектно-ориентирано и дори функционално. Експресивен е и допуска граденето на доста абстракции.

Естествено, C++ притежава и доста недостатъци. Един от тях е, че е наследил някои минуси на C – главно как се компилират хедър файловете. Все още няма стандартна build система и package manager. Времето за билдване също е проблем – понякога може да отнеме цял ден на един девелопър, за да направи целия билд на проекта. Дори за някаква тривиална и малка промяна може да отидат цели минути (зависи от проекта). Именно това ще бъде темата на новата ми лекция – как да подобрим скоростта на компилация на C++. С нея планирам да кандидатствам за повечето международни C++ конференции, които ще се проведат през есента на 2018г.

Къде сте представяли идеите си? Как бяха приети те? В какви събития Ви предстои да участвате?

Както при всеки човек, така и при мен плановете се променят с течение на времето. След като напуснах компанията създадох един testing framework на C++ – doctest, а той няма нищо общо с това, което искам да правя. Въпреки това, този проект ми се отблагодари. Случайно ми пуснаха мухата да изнеса лекция за него на един мийтъп за C++. След това кандидатствах на конференцията на Chaosgroup (2016) в София, като темата допадна на организаторите и представих проекта си и там. Тогава се престраших да изляза пред по-голяма публика за първи път! Следващото ми участие беше 1-2 месеца по-късно на OpenFest – безплатна конференция, която се провежда всяка година и се говори за технологии с отворен код.

Впоследствие бях одобрен за участие в CppCon 2017 и там се срещнах с куп легенди в бранша, за които само бях гледал и чел. За мен има два типа програмисти – едните се занимават с това чисто като занаят, а другите са професионалисти, които реално се интересуват от развитието в сферата. Аз се радвам, че имах възможността да се запозная с програмисти от втория тип именно на това събитие.

 

След като работих известно време със C++ ми хрумна идеята да създам REPL за програмния език, като единствената алтернатива преди това за C++ беше проект на име cling, разработен от изследователи в CERN. Наскоро имах възможността да презентирам идеята си в Русия (Април 2018) на C++ конференция и имаше доста интерес за техниката, макар и да не е хрумвало на повечето C++ програмисти, че нещо такова е възможно.

Вие сте разработчик на игри, имате ли планове за собствени проекти?

Още от 6-7 години имам идеи за собствени проекти, свързани с разработването на игри. Моята идея е да създам технология за игра – engine. Концепцията на идеята ми не е свързана с предоставянето на по-добра графика, а с възможността хората да могат да разработват по-бързо самата игра. Писането на gameplay код е много оплетено и отнема доста време – искам те да могат да работят по-бързо. Процесът по създаването на подобна технология може би ще ми отнеме години. Към момента търся българско game studio, което да ми помогне с финансирането на разработката. Амбициран съм да успея да реализирам идеята си и да я разпространя.


Какви цели си поставяте чрез блога Ви? На какви теми са постовете Ви? Целта ми е да презентирам всяко програмно нещо, което ми е привлякло вниманието и смятам, че ще е интересно за аудиторията. Обмислям да пиша и на странични теми, като фитнес например.

Тагове: , , , , , , , , , , , , , , , , ,