Він Python до C++. Як я вчився створювати ігри
Коротко про те, як я починав. У 2022 році я приїхав у Прагу і працював тоді на складі. Я купив собі ноутбук аби було чим зайнятися (п.с. я думав грати у ігри спочатку). І оскільки був час, я задумався: а чому б не почати вивчати програмування?
Початок навчання
Весь час хотілося опанувати програмування, але якось не йшло. А тут оголошення, що у Празі у IT Step Praha (їхнього філіалу) для українців відкрито курси по підвищенню кваліфікації, а саме: «Back-end розробка». Точніше там навіть про Back-end/front-end не йшлося, а йшлося про мову програмування Python. Цей курс я закінчив, створивши магазин по книгах, та досить непогано опанував Python/Django/SQL/Java Script та інші цікаві бібліотеки.... Але ... Я одразу почав відриватися від групи. Розумієте, я в програмуванні був повним нулем... Але згодом я почав гратися з циклами for i in range... будуючи пірамідки, потім коли ми проходили lambda функції, я вже почав ознайомлення з ООП, хоча мої «одногрупники ще навіть функції не проходили».... Ходили ми на заняття після роботи по пʼятницях на front-end, а по суботах з Брно приїздав викдадач по back-end/python...
І ось десь місяці на другому навчання стався прорив. Я вирішив написати свою першу гру на пітоні, я навіть гадки не мав як це робити. Це була карткова гра «Дурень». Це робота зі списками, безкінечним циклом. І за тиждень я її зробив.
Я був так вражений, що вона працює (щоправда з багами і вилітами). Тож я одразу зробив ще одну карткову гру на javascript . Ось так і йшло моє навчання, я значно випереджав групу. А у літку 2023 року я ознайомився з ray casting алгорітмом. У той час я використовував YouTube для пошуку цікавих ідей і знань, повторював за «вчителями», видумував потім щось своє вже... І ось я зіткнувся з тим що Python почав ЛАГАТИ. Я пробував використовувати numba/numPy, але це не дало результату.
Підсвідомо я розумів, що так бути не може, бо гра початку
З цього часу почалося моє ознайомлення з цією чудовою IDE. До цього часу улюбленими були PyCharm та Visual Studio Code. А потім я знайшов чудовий канал і почав вивчати С++. Цікаво, що почав вивчати його з точки зору Assembler-а. Скажімо так, під кінець навчання у Praha It Step (грудень 2023), я вже писав першу самостійну гру на С++ (переписував того самого «Дурня»). Ясно, що після закінчення ніякої роботи я не знайшов, було мало знань. І я вирішив далі розвиватися сам.
Самостійний розвиток
Десь навесні 2024 року я закінчив пару ігор на WinApi та на одному ресурсі у Facebook побачив гайд, як встановити бібліотеку SFML. Я тоді думав використовувати SDL-2 . Але автор сказав що вона застаріла і написана у функціональній парадигмі, а ось SFML у ООП.
Тому я не зволікав і вже у квітні написав ще одну гру. А потім почав проходити англомовний курс по OpenGl . Це було як з ассемблером — я не розумів спочатку в чому різниця між vertices/indices. Потім я перейшов на інший канал, і там були файли на Git Hub. І там я зрозумів що це таке. Я повністю завершив курс. Але там не було розділу про Bones.
Паралельно я намалював свій перший КУБ у Blender. Короче, аби зробити мою першу 3D гру, мені довелося вигадувати як ці кості витягнути, і що потім з ними у shader робити. Гайдів не було, а були лише натяки, що треба витягнути матриці цих костей з файлу (*.Jltf ), і витягнути дані про вагу для кісток для кожної вершини, і потім у fragment shader ці матриці перемножати на дані ваги кожної вершини. Самі кісти анімував алгоритмічно, зробиши стей машину для цього (банальний sin часу помножений на якусь величину). І воно заробило. Отже якусь подобу гри я зробив на OpenGl.
Знайомство з Unreal Engine 5
І ось у другій половині минулого літа я встановив Unreal Engine 5 (здається була версія 5.4.). З того часу сиджу на UE5/Blender. Спочатку я думав, що у кінці 2024 року напишу свою першу гру для Steam. Базу маю, але маю поганеньку англійську, тому роботу поки не шукав. Зараз я зробив гру навесні, але по навчанню. А зараз вивчаю работу з анімаціями IK rig/ Control Rig. І думаю писати ще одну навчальну гру, і вже після неї робити проєкт (free-to-play звичайно) аби виставити його на steam.
Є питання з музикою. Але є сайти, які, думаю, дають безкоштовну музику. Може хтось що порадить? Ідеї власні є, але від поради доброї не відмовлюся, дякую.
Якщо що мій git Hub (давно не обновлявся, бо перешов на С++/Unreal Engin). github.com/settings/organizations.
Мої перші кроки у праграмуванні, гра на java skript 2023 рік
гра на основі raycasting на Pyhon + PyGame + Numba + NumPy . Зрозблена часткова по гайду з YouTube, але багато відсебятини. Тут я ознайомився уперше з алгоритмами пошука шляху, зокрема Dejkstra A*, до сих пір його використовую... Сама гра давала 60 фпс, але запис відео все зіпсував...
Перша гра на С++
Гра написна на WIN API (розмір 250 кб якщо шо, всі графічні файлі відмалйовуються при ініціалізації і заберігаються потім для анімації — це моя ідея.. а звуки зробив за допомогою SDL-2)
єдина гра написана на SFML 2024 — написав за тиждень тіки місяць не пам*ятаю, весною перед поїздкою до міста Хеб де я працював на складі DHL Cheb adidas .
моя гра яку я написав на C++/OpenGl(GLAD, GLSW, JSON,...)
мої перші кроки у UE5 — серпень 2024
моя остання гра яку я написав взимку
У Blender я досить непогано освоїв освноі модифікатори, може створбювати low poly character, також використовую багато плагінів. Для генерації персонажів зараз використовую MPFB. Анімації роблю сам або качаю з mixAmo і редагую їх за потреби... Також із останнього освоїв geo nodes у Blender — мощний інструмент.
Останні мої роботи пов*язані з роботою інімаціями, бо зараз довчаю control rig. А це відео коли я експерементував з механізмом рігу інверсної кінематики...
29 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів