Перевірені досвідом рекомендації Українцям На чому робити ігри для Android

На чому робити ігри для Android

Зміст:

Розробка ігор для Android: опис способів створення та розробки додатків

Як створити гру на андроїд самому – додатки конструктори

Кожен має одну або дві гри на телефоні. Деякі їх досить прості, інші складні, але дуже цікаві. Великий вибір віртуальних світів змушує розбігатися очі, і іноді постає питання: а чи так складно самому створити гру для телефону і як це робиться. У статті розглянуто ці моменти.

Наскільки складно створити гру на андроїд

Цікаве питання: розробка ігор для Android – це складний процес? Можна подумати, що простому користувачеві подібне завдання не по зубах. Так, зрозуміло, подібний момент співвідноситься з деякими складнощами, але це цілком реально.

Створення ігор на андроїді під силу кожному

Найголовніше – людині зовсім не потрібно витрачати велику кількість грошей, щоб самому створити гру на телефоні. Звичайно, щоб займатися створенням гри, потрібно наявність хоча б мінімальних навичок програмування. Розмова не йде про якісь складні 3Д ігри, які створюються професіоналами.

Для створення гри на андроїд також потрібні знання англійської мови. Щодо програмування, необхідно буде освоїти хоча б просту Java. При цьому серед основ не обов’язково професійне володіння дизайнерськими програмами або фотошопом.

Основні моменти, які будуть потрібні користувачеві, що зважився зайнятися розробкою власної ігрової програми:

  • наявність опрацьованої ідеї. Тут важливо все, починаючи від персонажів і закінчуючи побудовою сюжету;
  • мінімальні навички володіння Java. Без цього в жодному разі не обійтися;
  • програма для подальшої розробки;
  • достатню кількість часу та бажання працювати.

Важно! Створення ігрових додатків, нехай навіть і найпростіших – це копітка праця. Без бажання, посидючості та терпіння тут не обійтися.

Які ігри простіше створювати новачкові

Вибираючи, що саме створюватиметься, новачок повинен відштовхуватися від власних уподобань. Однак найпростішим на перший раз варіантом є створення звичайної бродилки з нехитрим сюжетом. Можна віддати перевагу ходінню лабіринтом з боєм з фінальним босом наприкінці.

Ще один непоганий варіант – це карткові ігри. Для них не потрібні велике опрацювання деталей і промальовування всіх дрібних частин. Крім того, подібний варіант відрізняється досить нехитрим інтерфейсом, який буде легко освоїти розробнику-початківцю.

Найскладніші в плані опрацювання та часу – це екшн-ігри, особливо коли розмова стосується 3Д форматів. Зрозуміло, тут є десь розгулятися фантазії. Можна створювати цікавих персонажів, різноманітні світи, складні місії та сюжетні повороти, але для новачка подібний варіант поки що недоступний. Тим не менш, якщо людина сама продовжить розвиватися, згодом їй будуть доступні і такі формати.

Створення бродилки на андроїд

Онлайн-сервіси для створення ігор на андроїд

Як створити гру на андроїд? Існує велика кількість онлайн-сервісів, які можуть допомогти. Перевага полягає в тому, що існують окремі платформи, заточені під створення додатків певного типу.

Однак варто враховувати, більшість даних сервісів є платними. Середня вартість варіюється від 5 до 50 дол.Далі будуть розглянуті найбільш популярні з них.

LearningApps

LearningApps – один з найбільш популярних сервісів насамперед тому, що є безкоштовним. Основний функціонал спрямовано створення навчальних ігор та різних додатків. Серед основних переваг виділяють:

  • работу найвідомішими мовами, зокрема й російською;
  • проходити реєстрацію на сайті потрібно тільки для створення власних програм;
  • є широкий вибір шаблонів для створення ігор;
  • можна використовувати шаблони інших розробників, щоб практикуватися у створенні;
  • простий і зрозумілий інтерфейс;
  • є 5 корисних інструментів.

Щодо недоліків, то користувачі виділяють:

  • достатньо застарілий на сьогоднішній день дизайн;
  • у російському перекладі часто зустрічаються помилки та неточності;
  • відсутність повноцінної статистики за вправами.

ProProfs

Онлайн-сервіс ProProfs відомий серед користувачів своїм великим функціоналом. За бажання можна створювати як квести, так і пазли, кросворди і т. д. Має достатню кількість переваг, проте також не позбавлений недоліків. Серед плюсів виділяють:

  • частково платний, частково безкоштовний тариф на використання;
  • частина створюваних вправ не сприймає кирилицю.

Kahoot

Ще один досить відомий сервіс. Часто використовується саме викладачами. Основні плюси сервісу полягають у наступному:

  • простий і зрозумілий інтерфейс;
  • сучасний, добре опрацьований дизайн;
  • навіть на безкоштовному тарифі є широкий функціонал, що підходить для початківця;
  • доступними мовами є і російська;
  • є можливість поширення посилання в соціальних мережах;
  • є вбудована функція копіювання та редагування текстів, що дозволяє розробнику суттєво економити час і сили.

Зрозуміло, даний сервіс не обійшовся і без своїх мінусів, проте їх не так багато:

  • відсутня можливість вставки тексту на інші сайти. Подібне можна зробити лише через посилання;
  • є платна підписка на деяку частину функцій. Середня ціна становить 9-10 дол. на місяць.

Factile

Дуже обмежений сервіс, що підходить для створення додатків на кшталт «Своя гра» або «Хто хоче стати мільйонером». Серед переваг виділяють:

  • є безкоштовний тариф, але тільки за певним функціоналом;
  • досить недорогий тарифний план, всього 4-5 дол. на місяць;
  • простий і зрозумілий інтерфейс;
  • зовні приємний сучасний дизайн;
  • можна без проблем ділитися створеними іграми;
  • можна створювати до 25 команд учасників.

Щодо мінусів, то користувачі виділяють такі:

  • відсутність російської мови в інтерфейсі;
  • обов’язково необхідно пройти реєстрацію, щоб отримати доступ до ресурсів;
  • безкоштовна підписка має суттєві обмеження по функціоналу.

Umaigra

Російський конструктор, призначений для створення дидактичних ігор із застосуванням прототипів. Чим Umaigra виділяється серед інших сервісів:

  • пропонується 8 шаблонів, за якими можна створити і викласти прості, але при цьому досить захоплюючі програми;
  • є кілька варіантів вправ, що допомагають створювати ігри;
  • користувач може самостійно встановлювати рівні складності та лімітований час для проходження завдання;
  • зрозуміло, є російський інтерфейс;
  • надається можливість з легкістю поділитися посиланням на створений додаток;
  • можна створювати класи та відстежувати статистику проходження квесту.

Таким чином, позитивних моментів вистачає. Тим не менш, у Umaigra є недоліки. Серед них особливо виділяють:

  • складність і перевантаженість інтерфейсу. Зважаючи на все, розробники постаралися вкласти у свою роботу якнайбільше, що викликає проблеми у деяких користувачів;
  • відсутні зрозумілі відео інструкції, хоча цю проблему обіцяли виправити в новій версії;
  • обов’язкова реєстрація нового користувача. Цей процес займає досить багато часу і визнається стомливим;
  • відсутня можливістю розміщення створеної програми на сайт, тільки через посилання;
  • є обмеження за кількістю гравців, максимальна кількість коливається від 6 до 15.

UI Class

UI Class – сервіс зі створення програм за стандартними шаблонами. Є досить простий і зрозумілий інтерфейс, проте розробляти з його допомогою щось своє (цікаве та нове) буде дуже проблематично. Добре підходить для проби пера та отримання основних навичок.

Зверніть увагу! При використанні зазначених сервісів користувач швидше зможе освоїти початкові елементи і зрозуміти, що саме він хоче створити. Заробляти на іграх, створених у такому форматі, буде дуже проблематично.

Програми для розробки ігор на андроїд

Робити власні ігри можна не тільки через онлайн-сервіси, а й через окремі програми. Є й спеціалізовані двигуни, призначені для розробки вузьконаправлених додатків або масштабних складних проектів.

Game Maker

Один з найвідоміших і часто використовуваних двигунів. Для новачків він є найбільш корисним та зручним. Перевага полягає в тому, що система має зрозумілу та докладну інструкцію для роботи.

Важливим плюсом є те, що є візуальний конструктор ігор. Відповідно, користувачеві не потрібно буде орієнтуватися тільки на мову програмування.

Unity3D

Програма, що дозволяє створювати найрізноманітніші платформи, у тому числі ігрові консолі, мобільні додатки і т. д. Підтримується робота понад 20 основних операційних систем, таких як андроїд, Windows, iOS.

Панель інструменту проста для розуміння користувача, навіть якщо людина ніколи раніше не займалася розробкою.

Unreal Engine 4

Достатньо потужна і безкоштовна система, призначена для створення як 3Д, так і 2Д додатків. Розробляти ігри можна як для телефонів, так і для планшетів та персонального комп’ютера.

Важливо! Налаштування переробки інтерфейсу на російську мову.

Створення власної гри через Unreal Engine 4

Construct 2

Проста і зрозуміла платформа, яка займає лідируючу позицію у користувачів, які бажають написати власну програму. Основна перевага полягає в тому, що є можливість створення ігор практично для будь-якої системи, в тому числі і андроїд.

Cocos2d-X

Ще одна непогана програма, що дозволяє розробляти додатки на андроїд, iOS і т. д. Оскільки платформа з’явилася порівняно недавно, не всі користувачі досі оцінили її в повній мірі.

Зверніть увагу! Проекти в програмі створюються через графічне середовище розробки, за допомогою якого можна швидко отримувати необхідні прототипи.

Як створити гру на андроїд з нуля

Щоб розробити просту гру з нуля, знадобляться лише початкові знання. Загальний алгоритм дій на прикладі Construct 2 зі створення найпростішої гри на кшталт бродилки від пункту А до пункту Б виглядає так:

  1. Створення будь-якого найбільш відповідного фону.
  2. Придумування головного персонажа. Залежно від побажань це може бути не тільки людина, а й тварина чи будь-який інший вигаданий об’єкт.
  3. Створення та розміщення по всьому полю умовних предметів для збору. Це можуть бути фрукти, монетки, дорогоцінні камені і т.д.
  4. Написання алгоритму гри. Іншими словами, що має відбуватися: якщо персонаж торкнувся води – програв, якщо взяв фрукт – продовжує рух і т.д.

Графічне оформлення

Зрозуміло, жодна гра не обходиться без відповідного оформлення, хоча б найпростішого у вигляді зеленого поля або зоряного неба. На андроїді дизайнерські рішення опрацьовуються за допомогою дизайн-документа чи диздоку. Обов’язково маємо бути:

  • об’єкти, тобто предмети на полі, з якими взаємодіє персонаж;
  • функції або опис геймплею, а також ігрових предметів;
  • ігровий контент – основні моменти, що стосуються діалогів та взаємодій між різними персонажами;
  • інтерфейс – взаємодія гравця з віртуальним світом, а також через що це має здійснюватися.

Ігровий процес

Обов’язково наявність ігрового движка або програмного забезпечення, за рахунок якого і буде працювати додаток. Сюди входить велика кількість різних складових, у тому числі анімація, аудіо супровід і т. д.

Жанр

Різновидів жанрів безліч. Все залежить від інтересу та здібностей розробника. Почати можна зі звичайної (найбанальнішої) бродилки або карт, поступово розвиваючись і ускладнюючи віртуальний світ.

Так чи складно писати ігри на техніку з системою андроїд? Насправді ні. Достатньо, щоб були бажання, терпіння та прагнення. Крім того, подібні процеси затягують, і людині самому стає цікаво творити все більш складні та багаторівневі програми.

Ціни у статті вказані на березень 2020 р.

Створення гри на Android

Представляем вам курс по созданию мобильной 2D игры на Андроид. Игра будет создана на движке Unity. В игре мы реализуем множество концепций игрового движка и познакомимся с разработкой игр на нем.

Відеоурок

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

Ссылки из видео:

Unity – это движок, на котором строится большая часть современных игр на разных платформах. Посредством движка реально создавать игры, ориентированные на запуск на компьютерах (Windows, Linux, MacOS), мобильных телефонах, планшетных компьютерах (Android, iOS) и даже игровых приставках PlayStation, Xbox, Nintendo.

Как создавать игры в Unity?

В основе Unity лежит компонентно-ориентированная концепция. По сути, любая игра состоит из массы объектов, разбавленных дополнительными компонентами. Для примера, во время создания платформера мы создаём GameObject, к нему дополнительно прикрепляем графическую составляющую, что отвечает за отображение персонажа, и управляющий компонент, он обеспечивает управление персонажем за счёт мыши, клавиатуры, джойстика или тачскрина. Движок не накладывает ограничения на количество подобных модулей. К GameObject можем добавить столько компонентов, сколько будет необходимо. Вся работа на движке строится на том самом создании GameObject и применение к ним подходящих компонентов.

Новичков может ввести в заблуждение видимая простота процесса, хотя это не так. Для создания уникальной и популярной игры придётся с нуля писать массу компонентов. Если точнее, в среде Юнити это называется скриптом. Родной язык создания скриптов – C#, но ещё частично используется JavaScript и Boo (обрезанный вариант Python). Создать собственные компоненты нелегко, можно даже сказать – это сложная процедура, напрямую завязанная на классическом программировании. Без наличия достаточного уровня знаний в программировании придётся несладко.

Поддерживаемые платформы

Многие крупные проекты предпочитают Unity из-за огромного списка платформ совместимых с движком. Готовое приложение реально запустить на любой компьютерной операционной системе, популярных мобильных платформах и SmartTV. Что уж говорить, даже браузерные игры и приложения для специфических платформ (вроде Tizen OS) преимущественно разрабатываются на Юнити.

Однако, здесь не всё так гладко. При необходимости можно писать специфические алгоритмы, основанные на низкоуровневом коде, под тот же самый Андроид нужно иметь доскональные знания Java.

То же самое справедливо и в отношении iOS. Ещё одна особенность iOS, что под неё разрабатывать возможно только с компьютера или планшета от Apple. При отсутствии Macbook или аналогичного устройства выпуск игры быстро застопорится и Unity здесь вовсе не причём, Apple сама накладывает подобное ограничение. Вывод прост: если в планах есть iOS-разработка, заранее следует подобрать подходящее устройство для сборки.

Как и где разработать игру на движке?

Длительный процесс разработки игр можем проводить как в рамках Windows, так и Mac OS X. Уже существуют версии редактора под Linux, но рассчитывать на стабильную их работу пока что не приходится. Большую часть времени по созданию игры разработчик проводит внутри редактора Unity. Ещё приходится много времени писать код скриптов, его создавать можем либо в стандартном MonoDevelop, либо в любом редакторе стороннего разработчика. Сейчас активно пользуются Visual Studio, а также Sublime Text, но только при должной настройке.

Хочу розробляти ігри: яку мову програмування вчити першою? Поради спеціалістів

Які мови програмування використовують розробники ігор? Які мови й рушії варто вчити першими, а що краще залишити на потім? На чому створити свій інді-проєкт? Ми поспілкувалися про це з геймдев-спеціалістами з Wargaming, Ubisoft, Genesis та інших компаній українського геймдеву. Публікуємо їхні відповіді.

Матеріал буде корисним для початківців, які хочуть програмувати і розробляти ігри, але не впевнені, з чого почати.

«В ААА існує дуже вузька спеціалізація програмістів»

Микола Грабек, Tech Artist в продуктовій IT-компанії OBRIO з екосистеми Genesis

Якщо ви читаєте статтю про вибір мов, то, найімовірніше, ви не маєте за плечима стандартний набір випускника профільного університету. У такому разі найкраще сконцентруватися на тому, що саме ви хочете робити в геймдеві. Серед новачків переважно найбільш бажаними є ААА-тайтли (високобюджетні блокбастери). Однак зазвичай немає широкого розуміння того, що в ААА є дуже вузька спеціалізація програмістів. Я, наприклад, знав людину, в професійні обов’язки якої входило лише писати lua-скрипти для камери персонажа. І більше нічого.

Поширена думка (з якою я не згоден), що треба вибирати для кар’єри ті позиції, які найбільш популярні на ринку праці.

  • По-перше, якщо ми спілкуємось про геймдев, ми вже відхилилися від цієї ідеї. За популярністю позицій в Україні будуть переважати веб та застосунки бізнес-послуг.
  • По-друге, де менше вакансій, там менше кандидатів. Тому в підсумку ми маємо орієнтовно те саме співвідношення робочих місць на кількість конкурентів. Пошук рідкісних позицій не буде занадто важким, але і точно не буде легшим.

Знання основних принципів програмування стане вам у пригоді набагато більше, ніж знання синтаксису конкретної мови. Можна почати з вивчення п’яти принципів SOLID. Вони знадобляться в будь-якій об’єктноорієнтованій мові. ООП займає більшу частину ігрового програмування. Вивчення однієї мови з ООП допомагає швидко перейти на іншу мову ООП на початковому рівні, якщо у вас зміняться пріоритети.

Обравши проєкти, якими хочете займатися, варто вибрати engine (рушій), над яким хотіли б працювати більше. Це і приведе до мови, якою ви маєте користуватись.

  • Якщо ви обрали ринок інді або мобільні ігри, то, найімовірніше, будете користуватися Unity3D та писати код за допомогою Unity С#. Чому я пишу саме Unity C#, а не просто С#? Робота з мовою буде обумовлена позицією. Не так важливо, чи будете ви знати останні оновлення .NET.
  • Для B-budget indie та top-tier графіки варто обрати Unreal С++ та Blueprint. Обидві мови мають право на існування. Вже є суцільні проєкти, створені на основі графічної node-збірки на Blueprints. Водночас я хотів би поставити під сумнів думку, що на Blueprints код створюється швидше. Тут легко засвоювана візуальна node-система, але насправді всі секунди, які можна зекономити на драг’н’дроп управлінні, покриваються через IntelliSense в мовах з класичною текстовою візуалізацією. А низька професійність, що призводить до спагеті-коду у візуальному редакторі, це ще більш проблематично.
  • Якщо під час дослідження вам більше сподобається Godot, то на своїх ресурсах розробники вихваляються підтримкою цієї палітри мов. Більшість з них — об’єктноорієнтовані. Тут вже варто буде почати експериментувати, у вас буде дві категорії пріоритету: суб’єктивна — зручність синтаксису, та об’єктивна — кількість матеріалу при пошуку рішень у гуглі.
  • Цікавитесь напрямом спецефектів? Вам зрештою доведеться опанувати інструментарій створення шейдерів:
    • Шейдер-графи в Unity(URP), Unreal Engine та Godot.
    • HLSL + Unity Shader Script в Unity без URP.

    Корисно буде отримати базовий досвід у: коді нетворку, логіці рандомізації, побудові сіток навігації і навіть анімації користувацького інтерфейсу перед початком пошуку роботи. Ці знання стануть перевагою під час співбесіди.

    Якщо ви правильно для себе обрали сферу, в якій прагнете працювати, то зможете подолати довгу дорогу до першого робочого місця. Ваше чітке «бачення майбутнього себе» дасть змогу набути найжаданішу характеристику, які багато роботодавців хочуть бачити в інтернах та Junior-спеціалістах — постійна робота над собою, коли ще немає першого комерційного досвіду.

    «Лупайте сю скалу.» Після першого найму буде легше — тут вже маєте повірити мені на слово.

    «Unity популярніший серед початківців, але й ігри на цьому рушії простіші»

    Володимир Денісік, CTO в Flime by Gismart

    Сучасні ігри не пишуть конкретною мовою у Visual Studio, Rider або будь-якій іншій IDE (Integrated Development Environment). Є готові ігрові рушії, від яких і залежить мова, з якою ви безпосередньо працюватимете. У геймдеві нині два основних ігрових рушії — це Unity і Unreal Engine.

    Unity популярніший серед початківців, але й ігри на цьому рушії простіші. Великих і складних проєктів на ньому не так багато. Працюючи з Unity, вам знадобиться мова C#, вона поширена і вчиться простіше, ніж C++. У межах університетського проєкту, коли я був новачком у геймдеві, я написав гру на базі C# з використанням графічної бібліотеки OpenGL. Але я вважаю, що зробити щось серйозне в такий спосіб буде довго і трудомістко.

    Для Unreal Engine вам знадобиться C++. Цей рушій і мова програмування набагато складніші, ніж Unity. Але й ігри, які роблять на цьому рушії складніші, тому багато високобюджетних AAA-проєктів написані саме на ньому.

    Окремо варто розглянути ситуацію, коли можна вивчити додатково мову програмування для розробки модів, плагінів та допоміжних інструментів для ігор. Сюди входять C++, Lua, Rust, Python.

    Тим, хто починає свій шлях, я рекомендував би визначитися, які саме ігри ви хочете робити. З огляду на це й варто вибрати ігровий рушій та мову програмування.

    «Краще стартувати з „більш поблажливої“ мови для користувача»

    Олександр Філонічев, Tech Director World of Tanks, Wargaming

    Мова програмування передусім обумовлена технологічним стеком, який використовують у компанії. Це поєднання ігрового рушія, додаткового інструментарію для створення контенту, сторонніх бібліотек для UI та звуку, web-компонентів або серверної частини гри тощо. Найчастіше розробник сфокусований лише на певному напрямі розробки.

    Наприклад, якщо це розробка геймплею — вам найчастіше знадобиться С# для рушія Unity або С++ для Unreal Engine та більшості інших. С# також може бути корисним для створення додаткових інструментів розробки.

    Але цими двома мовами індустрія не обмежується. Для UI часто використовують HTML5 та JavaScript, для back-end — Python, а Java популярна для мобільних ігор.

    Найпоширеніша мова в геймдеві, звичайно, С++, але я б не радив її початківцям. Краще стартувати з «більш поблажливої» мови для користувача, наприклад, С# або JS. Хоча ви й будете спочатку обмежені практично лише Unity або браузерними іграми, але швидше здобудете базові навички індустрії та з часом зможете опанувати додаткові мови. Сам я починав з С та С++, потім перейшов С#, а тоді на Python.

    «Краще, коли спеціаліст має у своєму арсеналі більше як одну мову програмування»

    Здебільшого мова програмування не має великого значення для новачка, адже у розробці ігор та геймдев-технологіях не вона є визначальною.

    З іншого боку, більшість геймдев-технологій вимагають розуміння низькорівневих процесів та того, як втілити рішення з огляду на продуктивність. У результаті це створює особливі вимоги до нього: вибір сторонніх технологій (API, бібліотек, шаблонів тощо) і, звичайно, мов (переважно C і C++).

    У будь-якому разі краще, коли спеціаліст має у своєму арсеналі більше як одну мову програмування.

    «Unity, напевне, один із найбільш дружніх рушіїв для початківців і самотніх вовків ігрової розробки»

    Важко вказати, яку мову програмування однозначно вивчати краще. Можу лише сказати, що є мови програмування, які, на мою думку, мають загальні переваги або можуть з більшою ймовірністю знадобитися в майбутній кар’єрі. Серед них такі:

    1. C/C++ — власне мені ближча C. Ця мова доволі синтаксично проста, але при цьому вчить бути стриманим, уважним і дивитися на свій код низькорівнево. Вона показує правила поведінки змінних, вказівників і решту механізмів. Також, вивчивши С і додавши до неї С++, можна отримати бонус — задоволення розповідати всім, що ти їх знаєш. Головне не потрапити на того, хто їх знає краще. В ігробудові найчастіше С++ пов’язують з Unreal (хоча він використовує свій фреймворк і стандарт, а з С++ здебільшого лишився синтаксис), його підтримку в Godot (але цей чудовий рушій підтримує аж занадто багато мов) і Cocos2d-x.

    2. Ruby/Python/Bash — з цього списку я б зупинявся однозначно на Python. Його все-таки часто використовують в менших ігрових рушіях (дивлюся на візуальні новели на renpy), і загалом гарно знати поширену скриптову мову для автоматизації, маніпуляції даними й швидкої прототипізації. Ці скриптові мови є не дуже складними, але дають змогу або швидко перевіряти свої ідеї, або швидко щось налагодити, автоматизувати рутинні завдання, або поколупатися в операційній системі. Тут згадаю Lua, яка часто є основною мовою програмування у багатьох рушіях (Cryengine, напевно, найпрестижніший з них), але набагато менше стане у пригоді в ентерпрайзній розробці або маніпуляції зовнішніми системами.

    3. С# – великим плюсом цієї мови є її поширеність у двох популярних рушіях — Unity i Godot (але знову ж, він підтримує усе, я очікую Fortran найближчим часом). Це означає, що відкритих ресурсів, відео, форумів і обговорень про С#, здається, більше, ніж для будь-якої іншої мови. Ще й Unity, на мою думку, — один із найбільш дружніх рушіїв для початківців і самотніх вовків ігрової розробки, що додає цій мові програмування балів.

    Якщо узагальнити, однозначно «кращих» мов програмування немає. Ми з командою завжди більше уваги приділяємо знанням основ (математика, класична теорія програмування, алгоритми), підходів і найкращих практик, аніж якійсь мові й/або фреймворку.

    «Я б рекомендував зробити прототип, взагалі не використовуючи жодної мови програмування і жодного рядка коду»

    Віталій Янчук, Unity-розробник і Tech Artist у компанії SUITSME, що входить до екосистеми бізнесів Genesis

    Так склалося, що в комерційній розробці ніколи не пишуть кожну нову відеогру повністю з нуля, а використовують вже готові ігрові рушії. Саме вибір рушія визначає мову, якою потрібно буде програмувати.

    Майже всі відеоігри та рушії написані C++ або ж С-подібною мовою. Але те, що рушій на С++, ще не означає, що доведеться писати саме нею. Рушії можуть використовувати окрему мову для скриптингу. Наприклад, Unity Engine написаний на C++, але використовує C# для написання логіки гри. Це пов’язано з тим, що C# простіше використовувати, але от розробники Unreal Engine вирішили залишити всюди C++.

    Якщо брати весь ринок, то серед найпопулярніших мов будуть:

    Для мобільної розробки поки що абсолютний лідер за зручністю й поширеністю — Unity та C#. Для консольних та PC ігор першість тримає Unreal Engine та C++.

    Але я б не недооцінював також мови:

    Кількість рушіїв, що підтримують ці мови, стає дедалі більшою. До прикладу, новий Open 3D Engine з підтримкою Lua.

    Усі найпопулярніші ігрові рушії мають можливість візуального скриптингу — вбудовану або ж як плагіни (Script Graphs в Unity чи Blueprints в Unreal Engine). Це допоможе швидше ознайомитись з тим, як працює рушій, його системами й патернами.

    В минулому я навчав дітей у приватній школі робити відеоігри, і ми ніколи не починали перший урок з написання коду. Тому загалом початківцям, як і дітям, я б спочатку рекомендував зробити прототип, взагалі не використовуючи жодної мови програмування і жодного рядка коду. Створення гри здебільшого це про дизайн механік і систем, а не про код. Код — лише інструмент в руках розробника, і найтонший інструмент, тому рано чи пізно все ж потрібно буде вивчити якусь із мов.

    «Unity та C# практично не мають собі рівних»

    Олег Нечитайло, Associate Lead Programmer Ubisoft Kyiv

    Unity та C# практично не мають собі рівних у легкості вивчення та використання. Вони створюють чудову «яму успіху» («pit of success») та пропонують найшвидший шлях від нуля до можливості робити хоч щось, що дуже важливо для новачків.

    «Я орієнтувався на спроможності рушія в плані графіки та його складність»

    Марк Осипенко, Unity Dev at Syncope

    Мова — це лише інструмент для створення ігор, так само як і рушій (Unity, Godot, UE тощо). Для початку потрібно визначитись із завданням. Якщо ААА-проєкти найчастіше розробляють на Unreal Engine чи власному рушії, то інді-ігри тим і відрізняються, що для них немає якось стандарту.

    Можна текстовий квест написати навіть без рушія, будь-якою мовою, й це теж буде інді-гра. Та все одно треба знати основи програмування, і не має значення, якою саме мовою ви їх будете вивчати. Тернарний оператор майже всюди однаковий, а мемоізація, формально-фактичні параметри, логічні операції відрізняються хіба що синтаксисом.

    Тому краще звернути увагу не на конкретну мову, а на принципи програмування загалом. Хтозна, скільки перед вами буде задач, може для частини з них краще підійде C#, а іншої — Python. І, звичайно, англійська мова стоїть перед будь-якою мовою програмування, тому якщо ще не почали, то краще почати з неї.

    Якщо казати про власний досвід, то для 2D-платформера я вибрав Unity, передусім через більшу кількість туторіалів, готових рішень і велике ком’юніті. Готових рішень не для того, щоб ними користатись, а для того, щоб на них вчитись. Все ж таки частіше доведеться писати рішення під конкретні завдання, які будуть лише у вас. Тому майте на увазі, що вибір рушія — це ще й вибір мови. Для Unity це С#. Також я орієнтувався на спроможності рушія в плані графіки та його складність. Це теж важливо, якщо треба починати робити проєкт, а не вивчати рушій пів року 🙂

    «Якщо хочете швидко „ввійти в ІТ“, обирайте C# або Python»

    Володимир Косков, Programmer Ubisoft Kyiv

    Щоб зрозуміти, яку мову краще вивчати новачку, варто взяти до уваги кілька факторів. Усе буде відрізнятися від людини до людини, оскільки не кожен однаково підходить до роботи.

    Багато людей люблять швидко досягати мети, тому їм, імовірно, підійде рушій, в якому можна швидко все побудувати, який простий у вивченні, «програмує за допомогою миші або креслення» тощо. Тоді це буде Unity/Unreal, який вимагатиме від розробника певного знання C# або Python/JS або, можливо, навіть чогось цікавого, як-от LUA чи навіть саморобної мови сценаріїв (так, це теж своєрідне програмування).

    Інша категорія людей готова ухвалювати довгострокові рішення і може присвятити себе освоєнню певного набору навичок, щоб отримувати прибуток від навчання не «тут і зараз», а років через п’ять. У такому випадку зазвичай це будуть мови низькорівневого програмування, як-от C/C++ або C# (але з глибшим розумінням у довгостроковій перспективі), або Java, або навіть Assembler XD. Для людей із ґрунтовним підходом ці мови все ще виглядатимуть як два пальці об асфальт.

    Але як новачок ви повинні враховувати одну річ. Розробка ігор — це галузь, яка вимагатиме від вас постійного навчання в майбутньому, щоб знаходити ефективніші та складніші рішення.

    Озираючись на власний досвід (я вирішив стати розробником ігор у 12 років), я ознайомився з багатьма різними мовами та використовував різні рушії, рішення тощо. Для мене найкращим шляхом стало першими вивчити unmanaged-мови, такі як C/C++ і Pascal. Зрештою, вони не такі й складні, але створюють міцну основу та розуміння того, як все працює і як ви як програміст маєте розподіляти свої ресурси під час розробки гри (або будь-якої іншої програми). Так перехід від некерованого коду до чогось на кшталт C# буде набагато легшим і ви зможете стати високоякісним спеціалістом.

    На завершення скажу: якщо у вас є час і відданість справі, краще вибрати C++. Якщо хочете швидко «ввійти в ІТ», тоді обирайте C# або Python, і якщо вам сподобається, то витратьте час на вивчення інших речей. На мій суб’єктивний погляд, це має бути C++.

Related Post

Які імпланти кращі за швейцарські чи корейськіЯкі імпланти кращі за швейцарські чи корейські

Straumann та Nobel ділять 1-е місце, Astra – 2-е місце. Імпланти Straumann займають перше місце в нашому рейтингу кращих імплантів! Основна відмінність коронки на зуб від імпланта в тому, що

Чи можна не викопувати гіацинтиЧи можна не викопувати гіацинти

Зміст:1 Коли викопувати і як зберігати цибулини гіацинтів?1.1 Чи потрібно викопувати?1.2 Терміни1.3 Покрокова інструкція1.4 Правила зберігання цибулин1.5 Рекомендації2 Вирощування і догляд за гіацинтами в саду2.0.1 Гіацинт східний2.0.2 Гіацинта Литвинова2.0.3 Гіацинт