Если программист может за 8 дней создать 14 уровней для компьютерной игры
В этой статье расскажу о том, как начинал разработку собственной игры. Вы узнаете, сколько ушло на это времени и стоило ли вообще за это браться.
На игру мы потратили 1 год и 3 месяца, ниже я подробно распишу, куда ушло это время.
Предыстория
Все началось с того, что мы с друзьями решили сделать совместный проект (конечно, с друзьями, типичная ситуация). Нас было 4 человека, все «айтишники», ни один из нас никогда не имел дело с разработкой игр, это был для нас темный лес, очень темный.
Диалог был примерно такой:
— Может, игру начнем делать?
— Давайте, почему бы не попробовать?
— А о чем игра то будет?
Дальше пошли рассуждения о том, какой жанр игры выбрать. Начали думать, каких игр нет в индустрии:
— Шутеров — куча, танки — есть, самолеты — есть, гонки — есть, что же тогда делать?
— Лодок нет.
А ведь и правда, никто на тот момент не мог назвать ни одной игры с использованием водного вида транспорта. «Окей, сделаем простенькую игру, чтобы научиться. Вода и лодочки, что может быть проще?» — подумали мы, и собрались искать движок, на основе которого могли бы сделать игру.
Никто из нас даже не думал о 2D игре, сразу все представляли 3D — «инновации» ведь.
Все мы знаем о нашумевшем CryEngine, скачали, потыкали. Поняли, что нельзя в бесплатной версии скомпилировать игру.
Дальше само собой в интернете зарекомендовал себя Unity3D. Бесплатный, большое комьюнити и конечно же кроссплатформенный. Выбрали именно Unity3D, веских причин в выборе не было, просто не знали тогда, чего мы хотим.
Скачали, потыкали и разошлись. Каждый у себя дома по своему разбирался. Сидели, смотрели видео-уроки и пытались сделать примитивные вещи — земля, небо, вода и персонаж, который бегает по земле.
Один из четверых быстро потерял интерес — в течение недели ничему не научился и забил на это дело. Второй втянулся, по урокам сделал машинку (3d-прямоугольник и 4 цилиндра), которая как-то управлялась и даже сделал лодочку (3d-прямоугольник), которая плавает и тонет. Спустя неделю он тоже забил на это дело.
Осталось в команде разработчиков 2 человека, мы вместе сидели и смотрели уроки и делились друг с другом успехами.
Разработка
1-2-й месяцы — разбираемся с движком
3-5-й месяцы — создаем мультиплеер
Когда мы узнали, что игра может работать и в браузере, решили сделать её для социальных сетей, вдохновившись одним браузерным шутером. У нас даже образовался некий концепт игры — браузерная онлайн-игра, основанная на водном виде транспорта. Геймплей должен быть простым — лодки игроков спавнятся в разных местах и с помощью пулеметов, нацепленных на лодках, игроки должны уничтожать друг друга. Конечно, игра должна быть мультиплеерной. На этом моменте скорость разработки немного упала, нам пришлось изучать сетевую составляющую движка Unity3D, воспользовавшись стандартным сетевым решением.
В течение месяца мы делали сетевую часть, пытались довести синхронизацию до идеала. Именно тогда мы узнали, что такое интерполяция, экстраполяция и с чем их едят. Честно говоря, переводить одиночную версию игры в сетевую не очень простая задача, поэтому лучше сперва определиться: сетевая у вас будет игра или нет.
Мы добились того, чего хотели, мультиплеер был сделан в комнатном режиме: кто-то заходит в игру, создает сервер (комнату) и попадает в игру. Можно было плавать по сети и стрелять друг в друга, никаких очков и систем достижения, там даже ник нельзя было посмотреть.
6-ой месяц — создание GUI и рефакторинг
До этого игра была без какого-либо GUI: вы заходите в игру и сразу попадаете на сцену с водой, где две кнопки «присоединиться» и «создать сервер». Две недели мы потратили на изучение GUI. Делали опять же стандартным решением, без каких либо плагинов. На самом деле — это то ещё извращение.
Внешний вид игры нас категорически не устраивал. Мы меняли модельки лодок много раз, меняли текстуры. Перестраивали террайн, изучали технологию, по которой выцепили карту высот реальной местности (озеро Рица) и еще на несколько раз перерисовывали текстуры террайна, убирали и ставили деревья, кусты и т.д.
Много мучились с шейдерами и, собственно, с самой водой. Оказывается, красивую воду, да ещё и с волнами, не так просто сделать. Перебрали много ассетов, пытались писать сами, но ничего не подходило и не выходило. Решили пока оставить стандартную воду без волн.
Конечно, сами мы модели не делали, так как оба программисты и в моделировании совершенно не разбирались. Уже подумывали над тем, чтобы взять себе в команду художника по трехмерной графике.
Дальше мы начали переделывать GUI, оно в игре было не презентабельным, поэтому мы в фотошопе накидали дизайн и сверстали его. Добавили в игру настройки, чтобы можно было выставить качество графики, уровень звука и указать свой никнейм. Сделали окошко создания сервера и созданных серверов (комнат).
9-10-й месяцы — переделываем сетевую часть
В связи с тем, что стандартное сетевое решение не давало того, что нужно, а именно — онлайн побольше, независимость сервера от игроков и, конечно же, система уровней, прокачки, достижений, это все должно где-то храниться. Пересмотрели много сторонних сетевых решений, авторитарный сервер позволяют сделать не многие из них. Решили сделать не авторитарный сервер. Нам подошел Photon Server. Изучали его где-то неделю, но поняли, что он не подходит по двум причинам: не нашли способа запустить несколько копий сервера на одном физическом и вычитали на сайте Photon ограничение по количеству слотов на сервере.
Из этого всего мы спонтанно начали делать свой собственный сервер. Да, именно свой, на сокетах. За месяц мы уложились и переделали всю сеть под собственный сервер. Он работал, в нем было много багов и о многопоточности не могло идти и речи.
Нас не устраивало то, как работает свой сервер. Теперь угадайте, что мы сделали? Правильно, снова нашли сетевое решение, но не совсем готовое — мы взяли библиотеку lidgren, совместили с protobuf и потратили ещё две недели на то, чтобы это все переделать. Такое решение устраивало нас больше, сервер работал лучше и надежнее. Но, конечно же, не без багов.
11-й месяц — выкладываем игру во ВКонтакте
Нам порядком уже надоедает вести одностороннюю разработку, без какого-либо фидбэка. Да-да, всё это время мы разрабатывали игру вдвоем и никто, кроме тестеров, её не видел. Решились выпустить альфа-версию игры во ВКонтакте, чтобы протестировать нагрузку на сервер и получить отзывы от сообщества. Может быть узнали бы, чего хотят от игры сами игроки. Привязали VK API, скомпилировали, загрузили на сервер и добавили приложение в ВК.
Выложить игру во ВКонтакте оказалось непросто: мы пролетели со всеми поблажками, которые были до этого во «Вконтакте», а именно: не требовался сертификат SSL, было бесплатное размещение в списке «Новые приложения». Чуть чуть не успели. Нам пришлось регистрировать SSL-сертификат, хорошо деньги тратить не пришлось, по статье на Хабре получили бесплатный сертификат. Но и это еще не все: модерация не пускала нас, требовали перевести игру на русский язык и добавить правила/пояснения к игре. Краткие правила к игре мы добавили, в качестве отдельного окошка, но не могли понять, что нужно было перевести в игре, ведь она и так на русском.
В итоге перевели слова «current» и «all» в правом нижнем углу экрана. Отправили игру снова на модерацию, только после этого её внесли в каталог.
12-й месяц — ищем единомышленников в команду
Посмотрев, что игроки заходят и играют, нас это обрадовало, но не надолго. Мы понимали, что такими темпами мы будем разрабатывать игру ещё лет пять. Поэтому начали писать объявления о поиске единомышленников. Сначала художников по трехмерной графике — от них мы узнали, что моделисты создают модели исходя из чертежей, эскизов, скетчей. Отсюда мы поняли, что нам не обойтись без концепт-художника.
Переговорили буквально с десятками концепт-художников и ни один не мог нарисовать то, что нам нужно. Ну и, конечно, никто не хотел работать на энтузиазме.
Параллельно мы изучали сами моделирование и пытались создавать модели лодок и прочее, текстурировать модель оказалось сложнее, чем смоделировать. Так же мы выпустили вторую альфа версию, где изменили карту, исправили всякие баги и т.д.
Так же подключили рекламу в приложении «Вконтакте», надеясь, что хоть хостинг-то окупится.
13-14-й месяцы — разработка в разгаре
Нашу игру в ВК установили уже около 7 000 человек, поиграло в общем около 10 000 человек. Бывали онлайны, которые в итоге ломали наш сервер. Проявлялись баги в игре. Перспектива впереди, хотелось дальше заниматься разработкой, но времени уже на разработку было меньше. Работа, все дела. Делали следующее обновление для игры, но разработка велась очень медленно, за два месяца сделали очень мало.
15-й месяц — конец разработки
Времени становилось все меньше, а нерешаемых проблем все больше, никто не хотел вступать к нам в команду, ни один дизайнер, художник так и не смог нарисовать то, что было нужно. Мы делали модельки сами, раскрашивали их сами, но понимали, что это все затянется ещё на несколько лет. В итоге разработку пришлось забросить. Игра ещё месяц-два работала в пассиве, реклама приносила копейки, за все время с игры мы получили ~600 рублей, на хостинг потратили ~500 рублей, на домен ~300 рублей, а ещё много нервов и времени на разработку.
Вывод
Игру можно создать не имея опыта в разработке игр, но нужно иметь хорошую команду, где каждый член команды будет заниматься своим делом. Если в команде будет 10 программистов, и больше никого, ничего хорошего вы с этого не получите.
Опять же, собрать команду энтузиастов очень сложно, каждый хочет жить на что-то и урвать свой кусок хлеба.
За этот год я научился очень многому в сфере разработки игр и понял, что нужно предварительно написать Дизайн-документ, на основе которого будет разрабатываться игра. Без него у вас в голове будет куча бесконечных идей, которые вы будете пытаться реализовать, прыгая от одной к другой. Конечно, мы для своей игры делали Дизайн-документ, но только спустя полгода разработки.
Вообще, разрабатывать игру — это достаточно увлекательный процесс. В отличие от разработки сайтов или прикладного и системного ПО, в играх есть над чем посмеяться. Да, разработка игры местами забавляет своими багами. Если у вас уйма времени и вы устали от рутинной работы, можете смело попробовать себя в разработке игр. Не обязательно создавать свою игру, можете присоединиться к какой-нибудь команде, где, может быть, именно вас так сильно не хватает.
14:8=1,75 уровня - создаёт программист за день
14+1,75=15,75 один программист создаст уровней за 9 дней
315:15,75=20
ответ: 20 программистов.
Деректер қорын басқару жүйелері
Өз ойыңызбен бөлісіңіз
Біз үлкен көлемдегі деректерді қалай сақтап, өңдейміз?
Деректер қоры дегеніміз не?
Деректер қорын жасау не үшін қажет?
Деректер қорын жинақтауға арналған қандай программаларды білесіңдер?
Кез келген кәсіпорын немесе ұжым Деректер қорын басқару жүйелерін (ДҚБЖ) жасайды. Олардың көмегімен Деректер қорын жасауға, ақпараттармен толықтыруға және жұмыс істеуге болатын программалар жинауға болады. Деректер қорын басқару жүйелерінің бірнеше ондаған түрлері бар, олардың көпшілігі – шындығына келгенде басқару жүйелері емес, арнайы дайындалған программалау тілдері. Осы тілді меңгерген әрбір адам қолданушыға ыңғайлы құрылымдағы, кез келген деректер қорын жасап алуына және оларға қажетті басқару элементтерін енгізуіне болады.
ДҚБЖ (Деректер Қорын Басқару Жүйесі) – деректер қорынан деректерді құру, сақтау және алуды автоматтандыруға арналған программалар жиынтығы.
ДҚБЖ үш негізгі функциясы
1) Деректрді анықтау (деректер қорының сипаттамасы);
2) Деректерді өңдеу;
3) Деректерді басқару.
Осы функциялардың барлығын Microsoft Access-те толықтай қолдануға болады.
Тағы да осы тақырып бойынша Басқа іс-әрекеттер
Деректер қорына қойылатын талаптар
✔ мәліметтер қорының мазмұнын көшіруді болдырмау немесе азайту;
✔пайдаланушы топтардың құқықтары мен талаптарына сәйкес, деректер қорының жекелеген ақпараттық элементтерге енуін жеделдетуді қамтамасыз ету;
✔ үнемі өсіп отыратын талаптарды қанағаттандыру үшін деректер қорының кеңейтілу мүмкіншіліктерін қамтамасыз ету;
✔ тек қана дұрыс, алдын ала тексерілген ақпараттарды пайдалануды қамтамасыз етуге мүмкіндік беретін деректер қорының тұтастығын сақтау;
✔деректер қорының, тұтынушылардың жекелеген санаттарының жұмыс істеуіне қажетті белгілі бір ақпараттық элементтерге енуіне ғана рұқсат беру;
✔ қорға енуді, деректер қорына ақпараттар қосу мен түзетуді тек қана авторлық құқығы бар тұтынушылардың орындауы;
✔ деректер қорын пайдаланушылардың талабына сәйкес, деректердің элементтерін, түзету, бейнелеу және есептеу құрылғыларын құрудың қарапайымдылығын қамтамасыз ету.
Деректерді сақтау – компьютердің маңызды функцияларының бірі. Оның ең көп тараған құралы – Деректер қоры (ДҚ). ДҚ – берілген құрылымдағы ақпараттардан тұратын арнайы форматтағы файл. Берілгендер кесте түрінде дайындалады.
Деректер қоры (ДҚ) – анықталған облысқа жататын деректерді басқару, сақтау және сипаттаудың жалпы ұстанымдарын анықталған ережелер бойынша қарастыратын ұйымдастырылған деректер жиынтығы.
Тағы да осы тақырып бойынша Басқа іс-әрекеттер
Деректердің арасындағы байланыстарды ұйымдастырудың түрлері
Деректердің арасындағы байланыстарды ұйымдастырудың келесі түрлері бар:
1) Иерархиялық; 2) Желілік; 3) Реляциялық.
Көптеген ДҚ кестелік құрылымда болады. Кестелік құрылымда берілгендердің адрестері жол мен бағананың қиылысуымен анықталады. Кестелерді жобалау кезінде олардың құрылымдарын алдымен қағазда жасаған ыңғайлы. Кестедегі әрбір өріс оның тақырыбына сәйкес болатын жеке мәліметтен тұрады. Әртүрлі кестедегі берілгендерді байланыстыру үшін, әрбір кестедегі жазбаның өзіндік жеке мәнін бере алатын өріс не өрістер жиынтығы болуы тиіс. Мұндай өріс не өрістер жиынтығын негізгі кілт деп атайды.
Александр иванов родился в семье художника, профессора живописи андрея ивановича иванова (1775—1848), который в том же году был утверждён адъюнкт-профессором класса императорской академии художеств. в одиннадцать лет поступил «посторонним» учеником в императорскую академию художеств. учился в
академии при поддержке общества поощрения художников, учился под руководством своего отца. получив за успехи в рисовании две серебряные медали, был награждён в 1824 году малой золотой медалью за написанную по программе картину «приам испрашивает у ахиллеса тело гектора». в 1827 году получил большую
золотую медаль и звание художника xiv класса за картину «иосиф, толкующий сны заключенным с ним в темнице виночерпию и хлебодару».
Давно мечтаешь создать игру? Чтобы любой человек планеты смог без проблем ее найти на пространствах интернета и сыграть? Но у тебя нету ни средств для того чтоб оплатить должную учебу или мотивации чтоб поднять свой «ленивый зад» и начать кодить? Или ты просто сантехник, которому надоело каждый день сидеть за унитазом соседей и хочешь попробовать что-то новое в жизни? Ты, естественно, без проблем можешь начать разрабатывать игры. Только тебе нужно определиться с одним вопросом. А реально нужно тебе это? Если да, то какой толк ты хочешь вынести из всего этого?
Чтоб заработать кучу денег и прославиться?
Чтоб утереть нос другу, который не первый день хвалится что он крутой разработчик во всем мире?
Или просто так, для души, потому что ты еще тот геймер и у тебя есть довольно неплохая идея для разработки игры, которая будет не хуже, чем те, которые находятся в топе любого магазина.
Если так, то завари чашку кофе и погнали разберем несколько пунктов которые могут помочь тебе стать на путь разработчика игр ну или просто забавно провести время и отвлечься от дневной суеты.
Vim Adventures
Давно хотели собраться с силами и выучить Vim полностью? Игра Vim Adventures поможет сделать это в наиболее весёлой и интерактивной форме.
Robocode
Сможет ли сантехник с нулевыми знаниями стать геймдев разработчиком?
Бессрочный ответ – да. Разработчиком может стать кто угодно. Хоть даже повар, который не умеет готовить. Может просто готовка это не его, а где-то в глубине души он прирожденный игродел.
А если работа не приносит удовольствия, то это каторга. Особенно если эта каторга за копейки. Многие, кто работают на нелюбимой работе просто говорят, что они ничего не умеют и это единственный их доход, а на лучшую работу нужно лучшие навыки. ТАК БЛИН ЧТО ЖЕ МЕШАЕТ ТЕБЕ ИХ ПРИОБРЕСТИ? Ты можешь временно работать на этой работе для того чтоб получать з/п и с голоду не откинуться, а в свободное время можешь приобретать навыки в любимом занятии.
Только не делай хобби работой, так как работа может угробить это хобби и в свободное время сложно будет чем-то заняться если хобби было одно, и то которое напоминает о работе. Как говорят «работа должна быть любимым занятием, а не каторгой», так как в такой ситуации поступить? Просто. Нужно иметь больше чем 1 хобби. Одно можно превратить в работу, а следующие как отдых. И работа увлекательная и в свободное время есть чем заняться и отвлечься.
Untrusted
Untrusted — это мета-JavaScript-адвенчура, в которой вы играете за персонажа по имени Dr. Eval — символ @, который может изменять окружающий мир, модифицируя его исходный код (ух, прям Матрица ? ). Игроку предоставляются функции, инициализирующие каждый уровень, и API, с помощью которого нужно прокладывать путь к выходу из уровня.
Elevator Saga
В Elevator Saga вам предстоит управлять настоящим лифтом с помощью JavaScript, разгадывая различные задачки. Например, первое задание — доставить лифтом 15 человек меньше чем за 60 секунд.
Hacker
Dungeons & Developers
Одна из самых увлекательных игр для программистов онлайн. Дерево магических навыков, но магия эта — не льда и пламени, а веб-разработки. Отмечайте свои знания CSS, HTML и JavaScript и следите за продвижением к званию Мастера.
Flexbox Defense
Классический Tower Defense с привкусом CSS — все башни и ловушки нужно размещать при помощи гибкой вёрстки. Игра состоит из 12 уровней, которые потребуют от вас вспомнить все тонкости системы Flexbox.
Codewars
Hex Invaders
В этой версии классической аркады на мир нападают три инопланетянина разных цветов. Чтобы спасти человечество, игрок должен быстро переводить шестнадцатеричное значение цвета на человеческий язык и сбивать пришельцев.
Pixactly
Pixactly — это простая по виду, но не по содержанию игра для начинающих программистов. Вам даётся местоположение двух пикселей, а вы должны нарисовать по этим координатам прямоугольник.
Ruby Warrior
Если вы хотите изучить Ruby, то Ruby Warrior — то, что вам нужно: отличная игра для начинающих программистов. Есть два уровня сложности, соответствующих вашим навыкам. Для сохранения своего прогресса придётся залогиниться через соцсеть.
CodeCombat
CodeCombat — это не просто игра по программированию, а настоящая платформа для учащихся, позволяющая легко осваивать компьютерные науки.
Красочная анимация и интересный сюжет, кланы, взаимодействие с тысячами других игроков по всему миру. Поддерживаются такие языки, как Java, JavaScript, Python, Lua, CoffeeScript. Есть русская локализация.
Cyber DoJo
Cyber Dojo — это пространство, где разработчики могут собираться вместе и изучать такие языки программирования, как JavaScript, Java, Python, PHP, Ruby и многие другие.
Начальная разработка. Ожидание-реальность
Будь готов к тому, что на начальных этапах у тебя мало что будет получаться. И попытки создать Хагрида из Гарри Поттера
Рис.1. Ожидаемый результат
могут превратится в анекдот. Хорошо если у тебя получится что-то такое:
Рис.2. Хороший результат
Но если в итоге выйдет что-то такое:
Рис.3. Ржачный результат
То я уверен, что после того как сравнишь с оригиналом, то ржач будет стоять целый день.
Ну а вообще самое главное на начальном этапе это хоть какой-то результат. Как говорится «отрицательный результат, тоже результат». Ведь потом эти свои наработки будешь улучшать и со временем выйдет что-то годное. Не бойся экспериментировать и создавать что-то свое. Пусть на первый взгляд это будет устрашающе выглядеть. Ведь знаменитые компании не с первого раза стали знаменитыми. Все начиналось с мелочи. И, возможно, у кого-то первые наработки были созданы на коленке в гараже у соседа. Кто знает, может и твой начальный ужастик со временем наберет популярность и вырвется в топ лучших.
Check iO
Check iO — это браузерная игра в жанре «Приключение», которая научит вас программированию на Python.
10 лучших игр для программистов, улучшающих навыки разработки/программирования
Итак, если вы хотите совершить первые шаги в программировании самым простым и интересным способом, то какую игру выбрать или с чего начать? Давайте перечислим самые лучшие игры!
CodeGym — это интерактивная платформа обучения Java, содержащая более 600 мини-лекций и 1200 задач, помогающих учиться с нуля. Нужно учесть, что Java — один из самых популярных языков программирования для начинающих, поэтому CodeGym может стать отличным началом вашей карьеры.
Языки программирования: Java
Плюсы:
- Практичные и применимые упражнения
- Удобное сочетание теории и практики
- Дружелюбный стиль обучения, который легко понять
- Простой интерфейс
- Идеален для начинающих
Code Monkey — популярная интерактивная игра-головоломка, помогающая интуитивно обучаться программированию. Она даёт базовые знания по практике кодинга, а также реальным языкам программирования, и имеет уровни с повышающейся сложностью.
Языки программирования: CoffeeScript (схож с JavaScript) и Python
Плюсы:
- Очень легко начинать и понимать основы
- Доступно для детей (от 7 лет)
- Локализация на 20 языков
- Иногда не хватает теории
- Только 90 уроков
Плюсы:
- Этот способ обучения помогает находить по-настоящему изящные решения и использовать их в своей будущей работе
- У Code Hunt есть большое дружное сообщество
- Слишком практично (не хватает теории)
- Нельзя пропускать уровни
CheckIO — это стратегическая игра, обучающая JavaScript. Это веб-игра, позволяющая не только обучаться самому, но и использовать решения других людей для улучшения своего счёта.
Empire of Code — это новый проект CheckIO. Это игра в построение мира, позволяющая защищать свою базу, решая различные типы задач.
Языки программирования: JavaScript и Python
Плюсы:
- Очень увлекательные игры с отличными заданиями
- Хороший инструмент для подготовки к собеседованию разработчиков
- Пользователи могут делиться своим опытом решения задач
- Поддержка более 10 языков
- Судя по некоторым отзывам пользователей, медленная
- Навигация не всегда проста
- Прежде чем начинать, лучше выучить основы
CSS Diner — это простая, но забавная игра, помогающая начать освоение селекторов CSS.
Языки: CSS
Плюсы:
- Очень легко начинать и учиться
- Простой интерфейс, который быстро осваиваешь
- Это простая игра, помогающая изучить только некоторые аспекты CSS
CodinGame — это набор игр, головоломок и задач, помогающий начинающим, опытным и даже профессиональным программистам оттачивать свои навыки самым увлекательным образом, а также получать признание в сообществе.
Языки программирования: больше десятка
Плюсы:
- Различные типы задач и заданий
- Возможность играть с друзьями
- Отличное поддерживающее сообщество с опытными наставниками
- Используется компаниями для поиска и рекрутинга разработчиков
- Не учит добротным навыкам
- Не для начинающих (требуются как минимум базовые знания)
Robocode имеет простой интерфейс, позволяющий создавать собственные танки-роботы и участвовать в боях с другими игроками в реальном времени.
Плюсы:
- Увлекательный и расслабляющий способ обучения программированию и оттачивания своих навыков
- Возможность играть с друзьями
- Довольно примитивная (доступны только танковые бои)
- Не обучает добротным навыкам
CodeWars позволяет начать с нуля и обучиться до уровня опытного программиста. Можно улучшать свои навыки и достигать более высоких уровней. Игра имитирует японские боевые искусства под названием «ката», вам нужно будет писать код для преобразования определённых входящих данных в выходные данные. Лучше всего в CodeWars то, что она награждает ваши решения в зависимости от уровня их оптимизации, так как каждая задача имеет несколько возможных решений. Чем выше уровень сложности, тем выше ваш ранг.
Языки программирования: 29 основных и 26 дополнительных языков
Плюсы:
- Адаптируется к вашему уровню и нужному языку программирования
- Увлекательные задания и система рангов
- Возможность поделиться своим решением с другими и сравнить его для улучшения своих навыков
- Используется компаниями для найма разработчиков
- Не учит добротным навыкам
- Не для начинающих (нужны хотя бы базовые навыки)
Cyber Dojo похож на реальный додзё, в котором вы практикуете и совершенствуете свои навыки. Это веб-приложение позволяет программистам и командам разработчиков обдумывать используемые в кодинге практики и достигать высоких уровней навыка, а также повышать навыки кодинга.
Языки программирования: более 35 языков программирования
Плюсы:
- Очень простой интерфейс
- Поддерживает большое количество языков программирования
- Не обучает добротным навыкам
- Не для начинающих (нужны хотя бы базовые навыки)
- Ограниченное количество задач
На правах рекламы
У нас вы можете заказать облачный сервер и использовать его для обучения. Скорость интернет-канала 500 Мегабит, автоматическая установка большого количества операционных систем. Лучше один раз попробовать ;)
А для тех, кто всегда в дороге, мы собрали лучшие мобильные приложения по программированию.
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
Начальная разработка. Ожидание-реальность
Будь готов к тому, что на начальных этапах у тебя мало что будет получаться. И попытки создать Хагрида из Гарри Поттера
Рис.1. Ожидаемый результат
могут превратится в анекдот. Хорошо если у тебя получится что-то такое:
Рис.2. Хороший результат
Но если в итоге выйдет что-то такое:
Рис.3. Ржачный результат
То я уверен, что после того как сравнишь с оригиналом, то ржач будет стоять целый день.
Ну а вообще самое главное на начальном этапе это хоть какой-то результат. Как говорится «отрицательный результат, тоже результат». Ведь потом эти свои наработки будешь улучшать и со временем выйдет что-то годное. Не бойся экспериментировать и создавать что-то свое. Пусть на первый взгляд это будет устрашающе выглядеть. Ведь знаменитые компании не с первого раза стали знаменитыми. Все начиналось с мелочи. И, возможно, у кого-то первые наработки были созданы на коленке в гараже у соседа. Кто знает, может и твой начальный ужастик со временем наберет популярность и вырвется в топ лучших.
Unity vs Unreal Engine (UE)
Как ты уже догадался речь пойдет о игровых движках. Какой лучше выбрать? Ответ дам простой – какой понравится. Ведь в этом то я тебя ограничивать не буду. Есть много игровых движков, как профессиональных, так и простых. Но Unity и UE считаются самыми популярными. Но ты можешь посмотреть и множество других, таких как CryEngine, Godot, Creation Engine или какой-то конструктор по типу Construct, или вообще можешь написать свой и ни от кого не зависеть.
Плюсов от своего движка много, но главный и единственный минус это разработка. Нужно знать много чего о графике, нагрузке на систему и прочее чтоб не просто сделать «какое-то дерьмо», а действительно подходящий движок, который можно использовать еще много лет и усовершенствовать. Или можно выбрать из уже готовых и не утруждать себя, и не брать лишние проблемы на свою голову. Можешь попробовать один или оба (чтоб сравнить какой ближе по душе) этих игровых движков. Могу сказать вкратце:
Unreal Engine – как минимум 8 гб оперативы точно нужно. Так как это мощный игровой движок и Unity уступать ничем не собирается. Тут без проблем создавай что хочешь, хоть ААА, хоть 2D, хоть 2D с элементами ААА. Только одень свой ПК пристойно, чтоб он не залагал только при нажатии на сам ярлык. А так этот движок тоже кроссплатформенный, как и Unity. Правда язык программирования тут С++ и BluePrint (визуальный скриптинг для тех кто не шарит в программировании). Все что душе угодно. Разработчики так устроили это логово чтоб заманить всех кто шарит и тех кто не шарит в программировании. Все что вашей душе угодно лишь бы вы хоть что-то делали.
А так эти два мирных существа (о движках идет речь) еще имеют свои магазины ресурсов где ты можешь скачать различные модели, скрипты, текстуры вплоть даже до кусков сцен или игр, которые можешь переделать под себя и наслаждаться разработкой.
Flexbox Froggy
Flexbox Froggy — это логическая онлайн-игра для программистов, в которой вы должны помочь лягушкам добраться до их кувшинок. Делается это с помощью CSS Flexbox, что очень поможет развить навыки вёрстки.
Также у нас есть статья, из которой вы узнаете, как работает CSS Flexbox.
Что лучше? 2д или 3д на начальном этапе?
Многие начинающие разработчики могут сказать, что 2д проще. Тем что это 2д. Ну согласиться я не могу. Лучше то, что нравится. Нравится 3д? делай в 3д. Нравится 2д? Делай в 2д. Ведь разница тут только в координатной плоскости. А суть та же самая. Ведь что в 2д что в 3д тебе придется двигать персонажа. Что там, что там обрабатывать триггеры. Что там, что там писать ИИ (искусственный интеллект) для врага. То, что имеет меньшую размерность не значит, что проще. Как говорит знаменитая пословица: «Главное не размер, а умение пользоваться». Так что главное не размерность координатной плоскости, а то как ты умеешь с ней обращаться. Везде есть свои плюсы и минусы. Если рассматривать на уровне графики, то в 2д тебе нужно нарисовать спрайт и потом секвенцию кадров для анимации, ну а в 3д, нужно смастерить 3д модель и анимировать с помощью костевой анимации (если живое существо) или достаточно просто создать шар и используя ключи анимации просто двигать его, вращать, масштабировать и т.д. Но если нет художественного вкуса, то может получится что-то консервное (вспомним Хагрида). Так что, если говорить уж про размерность, то каждый выбирает по вкусу. Тот, кто хорошо владеет 3д пространством, тот с легкостью может перейти на 2д, а тот, кто хорошо владеет 2д, то тому нужно представить еще одну ось и адаптироваться.
Code Monkey
В игре для программистов Code Monkey вы научитесь кодить онлайн, хватая бананы. На западе учителя часто используют Code Monkey для преподавания программирования на CoffeScript и Python.
CodinGame
На CodinGame с помощью написания кода и создания собственного «искусственного интеллекта» вам предстоит решить самые разнообразные и весёлые проблемы. Сайт поддерживает все языки программирования.
Code Hunt
Git Game
Git Game — консольная онлайн-игра для программистов, пройдя которую вы овладеете системой контроля версий Git. Суть заключается в использовании различных команд, чтобы найти подсказки для решения разных загадок.
Стоит ли платить за обучение?
Выводы
В итоге стало понятнее, чтобы стать разработчиком не обязательно нанимать дорогих преподавателей чтоб оттачивать свои навыки. Можно это сделать самому. Да – это долго. Да – это сложно. Но зато результат на лицо будет и денег сэкономишь и навыки приобретешь.
Но также, эти навыки можно приобрести и немного быстрее наняв преподавателя. Если знания нулевые, то сойдет любой преподаватель. Так как в таком случае он шарит больше чем ты. А если бюджет позволяет, то лучше нанять качественного. А, также, нужно иметь желание, тонны пачек нервов, самоорганизованность и конечно стремление и любовь к играм. Так как без этих параметров навряд ли ты сможешь продвинуться если будешь опускать руки после каждой неудачи. Илон Маск тоже не с первой попытки стал успешным. Так что работай над собой, выбери свою дорогу, цель и следуй ей. И помни что эта дорога будет подобна различным раннерам, то есть на этом пути обязательно будут вещи или люди, которые будут стараться сбить тебя с пути и не дойти к цели. А если потерпишь неудачу и сдашься, то свернешь с пути раньше, чем узнаешь какой приз ждет тебя в конце этого пути. И каждый навык расценивай как чекпоинт в играх, приобретая который, ты сохраняешь свой прогресс на пути и после неудачи можешь воскреснуть с этой точки сохранения. Все в твоих руках! Главное верь в это, и ты добьешься своего успеха!
Планируете изучать Java, C++ или Python, но не знаете, с чего начать? А как насчёт игр для программистов?
Хотя традиционно игры ассоциируются с развлечениями, новые тенденции показывают, что геймификация может значительно улучшать скорость усвоения информации. Во многих областях знаний, в том числе и на курсах программирования, появилось множество обучающих игр.
Давайте же узнаем о том, как геймификация помогает нам лучше учиться и какие игры помогут стать программистом!
В буквальном смысле геймификация обозначает привнесение игровых элементов в какую-то деятельность, например, обучение, шоппинг, маркетинг или даже выполнение финансовых операций. Она может быть полной — игра как способ достижения цели, или частичной, когда игровые элементы дополняют другую деятельность.
Яркими примерами геймификации являются следующие приложения:
- Приложение для изучения языков Duolingo
- Рекламный продукт My Starbucks Rewards компании Starbucks
- BBVA Game банка BBVA, которая тоже предназначена для рекламы услуг
- Экологическая инициатива Simple Energy
- и множество других
Игра — самый естественный для человека способ обучения, и это подтверждено множеством исследований. Исследования показывают, что игровой учебный процесс демонстрирует лучшие результаты по сравнению с традиционным обучением на основе лекций, потому что именно так мы по своей природе привыкли воспринимать новую информацию. Игры, эксперименты, попытки и провалы в одиночку или вместе с друзьями всегда веселее, чем простое многочасовое чтение книг, кода или формул. Даже когда мы взрослеем, ситуация не меняется.
С другой стороны, чтение и зубрёжка — более привычный подход, который используется в школах, университетах и на работе, сложнее даётся человеческому мозгу. Однако у традиционного подхода есть свои преимущества, и поэтому всегда лучше сочетать лучшее из обеих систем.
CSS Diner
Отличная игра для знакомства с CSS-селекторами. Игроку даётся стол с посудой, заданный анимированной HTML-формой, и конкретный предмет или предметы, которые нужно взять со стола. Изучено будет всё, от основ до ~ и :first-child .
Читайте также: