Как Warcraft 3 ми помогна с програмирането
Добър ден, скъпи читатели. В тази статия бих искал да споделя една история за това как добре познатата компютърна игра WarCraft 3 ми помогна да се науча да програмирам. Искам веднага да кажа, че в никакъв случай не призовавам никого да повтори моя път и да започне да учи програмиране от тази игра. Случи се така, че след като се пристрастих към създаването на персонализирани сценарии за тази игра, по-нататъшното обучение по програмиране (в училище и университет) беше невероятно лесно за мен.
Който се интересува, добре дошъл под кат.
Преди да започнем
От дете се интересувам от компютри. За съжаление получих моя доста късно и всичко, което имах преди това беше стар компютър с BASIC в местното радио кръжок, където бях записан, както и пътувания с приятели до компютърни кафенета, където играехме вече споменатия Warcraft 3. Най-накрая мечтата се сбъдна - в осми клас получих компютър. Разбира се, първото нещо, което направих, беше веднага да изтичам до приятел за CD с третия Warcraft. Инсталацията беше последвана от няколко дни кампании, битки за орките, съюза, нощните елфи и немъртвите. Пробвах и много карти, които същият приятел беше сложил на същия диск. Още тогава бях изненадан колко много неща могат да се правят на енджина на тази прекрасна игра. Скоро битките ми писнаха и като любопитен осмокласник тръгнах да ровя из папките на твърдия си диск.
Когато отворих папката Warcraft 3, иконата за файл, наречен "World Editor.exe", привлече вниманието ми. Със свито сърце щракнах два пъти върху него. Стартирането на тази програма промени бъдещето ми.
Запознаване с интерфейса
GUI тригери
Ето го намерихможете да запазвате не само единици, но почти всичко - числа, низове, способности, събития, специални ефекти, играчи, бафове, точки на картата и много други. Можете да съхранявате необходимите обекти в масиви - веднага си помислих, че би било много удобно да съхранявате героя за всеки играч в масив, защото номерът на играча ще съответства на индекса на неговия герой в масива. Е, отново неусетно за себе си научих какво е променлива и нейния тип, какво е масив, как и кога може да се използва.
Какво стана след това
След като набрах ентусиазъм, веднага поисках да направя нещо мое. За няколко дни направих карта а ла "три коридора". Почти всички герои там бяха стандартни, тъй като се интересувах повече от частта от сценария - направих „системата за избор на герой на светулка“ популярна по това време, неуязвимостта на кулите, докато кулата от по-ниско ниво не бъде унищожена (тези, които са играли на популярната карта на Dota Allstars, ще разберат), увеличаването на пълзящите в хода на играта, както и случайното появяване на бонуси под формата на руни или предмети на произволни места. Тъй като нямаше интернет, трябваше да се забавлявам, като поставям вражеските герои на всички алеи и периодично ги принуждавам да правят магии. Това, разбира се, не е AI, но добави поне малко интерес)
Как ми помогна
На следващата година в училище започнахме да учим програмиране. Езикът, който трябваше да се изучава, беше Паскал. Уроците с изучаване на променливи, условия, цикли и масиви ми се сториха скучни - вече знаех всичко това, просто трябваше да запомня синтаксиса и имената на вградените функции. И програмирането на единици, елементи и заклинания беше много по-интересно от гледането на скучна черно-бяла конзола. Всички задачи се изпълняваха с лекота, за няколко минути, свърших ги за половината клас. Учителят, като забеляза това, предложи задачипо-трудно, с което също лесно се справих. В резултат на това отидох да защитя честта на училището на градската олимпиада, където заех първо място. След това отидох на Републиканското, където заех, ако не ме лъже паметта, 15-то място от 200. Не е лош резултат, особено като се има предвид, че отидох там без никаква подготовка.
Това не е всичко
Скоро имах интернет. Получих достъп до огромен брой ресурси, посветени на създаването на карти за Warcraft 3. Опитах се да направя прости 3D модели и да ги вмъкна в картата, да нарисувам икони за заклинания и елементи, да отворя други незащитени карти и да видя как всичко е внедрено там.
Създаването на скриптове чрез кликване върху бутони стана скучно, исках да направя нещо повече "програмиране" и открих, че тези GUI форми са просто обвивка за скриптовия език JASS, което отваря повече възможности за разработчика на карти. Създаването на различни системи, заклинания, специални ефекти - всичко това се превърна в приказка и още повече се запалих по програмирането. Но бих искал да говоря за JASS в отделна статия.
Има много какво да се каже за създаването на персонализирани карти за Warcraft 3. Той включва много аспекти от създаване на красив пейзаж, рисуване на икони и създаване на модели до системи за писане и защита на готовата карта от отваряне, което позволява на хората, които се интересуват от това, да придобият опит в различни области: 3D моделиране и анимация, ландшафтен дизайн (звучи смешно), програмиране, рисуване, тестване (да, картите също трябва да бъдат тествани).
Сега съм четвърта година в университета и обичам да програмирам. В университета докоснах Delphi и Visual Basic, след това Java, сега докосвам C. Всички езици, които изучавах, ми бяха даденилекота. Благодаря ти Warcraft 3.
И тук можете да получите грант за тестов период на Yandex.Cloud. Необходимо е само да въведете "Habr" в полето "секретна парола".