Comments 23
просто потешит Ваше ЧСВ
Как-будто что-то плохое (:
Сейчас, даже имея за плечами восьмилетний опыт программирования, я бы не взялся за такой проект.
А ещё нужно помнить, что игры разрабатывают не программисты, а гейм-дизайнеры. Идея вида "вау! я умею писать код, напишу игру" - плохая идея.
Вспомнил мой опыт с плюсами и борландом.
В детстве делал игру по принципу текстового квеста, вдохновлённый текстовыми квестами в космических рейнжерах. Экраны, кнопки, текст и инвентарь.
По реализации было всё просто: был общедоступный стейт, который определял состояние игры и экраны. На каждом экране было по 5 кнопок. По нажатию на кнопку выполнялась функция, которая меняла стейт и м.б. переключала экран.
Каждый экран был классом с 5 методами. Но я не знал как связать кнопки и методы класса. Можно было бы сделать базовый класс с виртуальными функциями под каждую кнопку и дергать их, но я не знал что так можно. Поэтому использовал свич, сначала по номеру экрана, потом по номеру кнопки.
Т.к. писать свич слишком муторно, я написал вторую программу, которая генерила код свича. И всё работало :)
ИИ Сэкономит примерно 40 минут вашего времени. Вот статья тезисно
### Тезисы статьи:
1. **Время на создание объектов**
- Больше всего времени ушло на рисование дерева в пиксель-арте (~5 часов).
2. **Уроки из проекта**
- **Четкие цели**:
- Ставьте реалистичные и ясные задачи.
- Избегайте абстрактных целей вроде «сделать что-то крутое».
- Спрашивайте себя «зачем?»: если ответа нет — это прихоть, а не цель.
- Две допустимые цели для новичка: заработок или обучение.
- **Грамотный подход**:
- Изучайте необходимые основы (например, классы и ООП).
- Не игнорируйте пробелы в знаниях.
- **Начинайте с малого**:
- Новичкам не стоит браться за сложные проекты.
- Даже с опытом некоторые задачи лучше не начинать без четкого плана.
**Вывод**: Реалистичные цели, грамотная подготовка и постепенное усложнение задач — ключевые принципы успешной разработки.
Очень советую вам посмотреть мультфильм «Вовка в Тридевятом царстве». А после просмотра поразмыслить над фразой «Вы, чего, и конфеты за меня есть будете?». Если не осилите (целых 20 минут, всё-таки!), то попросите ИИ, пусть он вам расскажет смысл мультика. Всё-таки, поразительно, что за 60 лет он стал ещё актуальнее, чем был изначально.
Ну если у вас есть время читать каждую статью в интернете от начала до конца, очень завидую количеству вашего свободного времени. А я уж точно лучше его на что-то другое потрачу.
Эта статья ценна не выводами, а личной историей и её подачей.
Тот случай, когда это так плохо, что даже хорошо :)
Великолепная статья, автору жирный плюс. Сам начинал прогать с джавы как раз загоревшись идеей сделать свою игру. Каждый раз как открывал спойлеры с говнокодом - скупая ностальгическая слеза катилась по щеке
Я назвал его «Пидрахуй», что на украинском значит «Посчитай»
Потужно 😁
Жму руку автору. У меня бы не хватило силы воли написать такую длинную статью. Компьютер дома появился только в 11 классе, поэтому в школьном возрасте до разработки игр я не добрался. А в университетские времена до такого подхода уже не дошло - сколько возможностей упущено :'( А то бы читал эти исходники с еще большей ностальгией. В качестве лабораторки делал сетевые танчики. Тоже друг помогал рисовать текстуры :)
>вредную привычку писать код мелкими кусками и сразу его проверять
Ну да, регрессионное тестирование - выдумка нубов. А кто-то ведь и вообще сначала тесты пишет, а потом кодит, жуть.
Блин, вот вроде длинная статья, но прочла с интересом, спасибо автору, что поделился опытом. Присоединяюсь к предыдущим комментаторам, у меня б не хватило на такое силы воли, но прочитать про то, как развлекался кто-то другой, прикольно :)
Крайне сочувствую автору статьи, скорее не как то оскорбить, а дать совет людям на будущее, сначала нужно изучать программирование, а потом уже браться за проекты по сложности, поскольку качество кода предоставленное в статье не столь высоко. Для начала посоветовал бы наработать навыки на сайтах по типу silvertest в особенности работа с массивами для подобных движков. Отдельное замечания к if и while в них нельзя пихать все что душе угодно, поскольку компилятор не всегда может обрабатывать таки сложные условия. Ну и для геймдева советую использовать более распространенные движки они помогут получить навыки ООП, потому что представленный проект по стилистике больше похож на системное программирование внешне, что крайне плохо отражается на читаемости
И да, и нет. Всё это хорошо, что бы сделать "правильно", но весь смысл в том, чтобы было прикольно. Я помню себя в юности, мне просто нравился процесс программирования, изобретение велосипедов, запуск, отладка. Это было творчество. А правильность написания появится со временем, если желание не пропадёт. Вот vvvvvvv говрят криво-косо написал, а люди играют и им нравится. Потому что игра - это не код.
Это да, тут соглашусь, просто смотрю уже через призму опыта, но в целом если на будущее человек планирует какие то еще проекты пилить, то работать над ошибками было бы приятнее для самого разработчика, ну и да и повторюсь я не из позиции ругательства говорю, а просто предлагаю людям путь который во многом более простой, спасибо за отзыв)
Проблема в том (имхо), что "более простой и правильный" путь может оказаться для первого проекта длиннее, чем процесс "я просто играюсь с кодом и собираю все возможные грабли и шишки". Потому что самому набивать шишки и учиться программировать сразу игру - весело) А если сначала изучать всё по учебнику - тут автор правильно подметил, на старте ни ООП, ни многие другие концепты не влезают голову, потому что "а зачем мне это нужно? Сложно же!"
В общем, если делать всё "правильно" - есть шанс тоже никогда игру не закончить, просто причины будут другие.
Ребёнка очень сложно увлечь голой теорией, ему нужно видеть результат. И в этом возрасте самое главное как раз увлечь и дозированно давать полезную теорию. Да взять формулы из физики школьной... А ну дайте сразу полный вывод с полным мат аппаратом: мне в универе поплохело от этого. Или игрушки 3D на серьёзных шах начните про гиперкомплексные числа и свойства кватернионов вещать. Либо дайте библиотеку и скажите для этого и этого надо сделать так и так, а так это 4 числа которые магическим образом описывают ориентацию.
Я помню как после Бейсика попытался на Си писать. Ничё не понял. А хотел просто программы делать, что бы можно в exe давать. С Паскалем получилось лучше. А через год я не понял, что я такого не понял в Си: всё же почти так же. Как и не понял Tubo Vision сразу.
В общем нужно заякорить. А потом можно развивать успех.
Да даже сейчас, проще про что-то "научно-популярно" почитать, начать, а потом уже детали копать.
Совершеннейшее великолепие! Спасибо за рассказ. Ждём историю про Щи2 :)
Самые прикольные и интересные проекты в том числе и игры создаются, в первую очередь, для себя. Когда делаешь под всех, то тут встают ограничения: по реализации фантазии (никого не оскорбить и всем угодить).
Как организовать код, ресурсы к игре - это дело десятое. Даже с плохими навыками программирования можно сделать залипательный проект. Автор молодец и как любой новичок хотел впихнуть как можно больше в бессюжетную игру.
Игры должны давать какой-то опыт игроку: вызывать эмоции положительные (даже если это треш и хоррор и человеку хочется пощикотать нервы). А вот если от игры скучно или вызывается чувство отвращение, то однозначно - она плоха.
«Щи: симулятор жестокости» или «Как не надо делать игры»