Your Little World. Дневник простого парня 3
Глава 3. Этот невыносимо сложный мир программирования.
Ну что ж, идея для игрушки есть. Как её реализовать? За время существования в интернетах часто попадались такие ЯПы, как javascript, python, C++ и HTML. Но как мне выучить их в самые короткие сроки? Повестись на рекламу ютьюба, который я обычно включаю на фон, и отдать деньги школам программирования? Ну неее, долго, я уже к тому моменту потеряю энтузиазм и стану выжимать деньги у игроков со своей три кошки в ряд на андроидах. Не хочется становится тем, кто будет учиться программированию только для заработка. Хочется идти по другому сценарию, где я человек с завода и по выходным сидя за компьютером, сделал свою собственную игру за малые 40 лет.
Но что же мне тогда, смотреть видеоролики с обучением? Ну, можно... Блин, надо что-нибудь быстрее... Та-а-к... О, а что если...
--Привет
--Приветствую! Чем я могу помочь Вам сегодня?
--Ты знаешь языки программирования?
--Да, мне известны такие языки программирования как C++, javascript, python и многие другие.
Это был мой первый диалог с ChatGPT и с того дня он начал меня знакомить с миром программирования.
В ходе тестов и пробников мы с ним пришли к выводу, что наименее времязатратный способ для моей ситуации будет язык программирования GML и посоветовал мне Game Maker. Я скачал game maker 8.0 и мы начали экспериментировать, изучать и углубляться в этот язык. Ушло какое-то время. И теперь я могу начать подвязывать в этот пост свой дневник разработчика, который веду на ютьубе и в вк. Но чтобы избежать эффекта рекламы своего ютьюб канала и своего паблика вк, буду дублировать записи здесь отдельно. Мне кажется, что это правильно.
( Однако скриншоты будут из видеороликов канала, так что прошу не обращать внимания на белого пегаса в правом нижнем углу )
--День 1:
--Рисование маны и расстановка объектов вместо сетки ( никогда так не делайте, это очень плохо для ПК );
--День 2:
--Нарисовал кролика и анимацию того, как он оглядывается по сторонам и грустит из-за того, что не видит рядом морковки( здесь было мало фантазии и кролик получился просто "стоячим" и это надо будет рисоваться заново и с включением мозгов с фантазией );
--День 3:
--Добавлен курсор для перемещения( камера, другими словами );
--День 4: Добавление норы для кролика;
На 5 день обучения было решено попробовать перейти в GMS, так как некоторые найденные в статьях коды ( например, где использовался код по типу
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 3; j++) {
grid[# i, j] = i * 10 + j;
}
}
GM8.0 отказывался понимать.
В этот день я научился с горем пополам разделять игровой экран на сетку с отображением значений ячеек сетки. Ну и так по мелочи, не давать объекту уходить за рамки игрового поля кодом. Тот я, что из 2016го, сделал бы это созданием и расстановкой твёрдых объектов по краям, которые бы были невидимы. Метод хоть и рабочий, но мне нужно добиться наименьшего кол-ва объектов в игровом поле.
--День 6:
--Изменён цвет ячеек ( с чёрного на белый );
--Изменена прозрачность числовых значений внутри ячеек;
--Отрисовка анимированного спрайта маны, числового значения маны и прозрачной черной рамки для маны внутри одного объекта o_mana;
--День 7:
--Загрузка спрайтов из директории игры( спрайты в видео пробные, чтобы сначала написать код. Затем код переписывается под загрузку спрайтов из директории игры, когда тестирование кода прошло успешно ( в 5ом ролике они уже будут загружаться из директории игры, а лишние спрайты будут удалены ) );
--Рассказываю о багах, с которыми пришлось столкнуться;
--Нарисовал черновой загрузочный экран;
--Проблемы с покупкой, расстановкой и глубиной травы;
--Вся купленная трава выполняется через draw_sprite вместо instance_create;
--День 8:
--Спрайты загружаются из директории игры;
--Решена проблема с глубиной при расстановке травы;
--Перерисовка спрайта травы;
А, блин, забыл добавить и объяснить, что спрайта травы будет два: каёмчитая трава( для краёв обставленной области с обычной травой ) и обычная трава( грубо говоря, просто кусок зеленого цвета для установки травы по центру ).
--Удаление расставленной травы правой кнопкой мыши;
--Добавлено уменьшение маны при покупке травы и возврат маны при удалении расставленной травы( добавлено после записи ролика );
--Было сделано уже после записи ролика, но всё же: при клацанье в одну и ту же ячейку мана не убавляется, если в ячейке уже есть трава ( проверка установлена трава в ячейке или нет ). По опросу друзей в вк на предмет, какую бы они хотели нажимать кнопку при удалении спрайта травы над курсором ( когда нажал кнопку покупки травы ), люди проголосовали за среднее колёсико мыши, так как левая кнопка мыши спрайты каёмчитой травы расставляет, правая кнопка мыши расставленные спрайты каёмчитой травы удаляет и нужно было что-то решить со спрайтом над курсором. Скорее всего, позже я найду способ убирать спрайт над курсором мыши тоже правой кнопкой мыши.
--День 9:
--Изменение логики расчёта маны до 1 млрд;
--Добавлена обычная трава;
День 10:
--Добавлена послойная расстановка спрайтов;
--Добавлена земля;
День 11:
--Изменены спрайты земли, обычной и каёмчитой трав;
--Изменена логика расстановки спрайтов. Теперь каёмчитую траву можно ставить только на землю, а обычную траву — только на каёмчитую;
--Добавлен нижний интерфейс для подсказок;
Дальше мне нужно:
--Исправить мелкий баг в магазине;
--Отрисовать песок;
--Отрисовать воду. Воду можно будет ставить на песок. Дальнейшее взаимодействие будет прописано тогда, когда я дойду до жителей;
--Искать способы расширить игровое поле для возможности поставить больше разных спрайтов ( нет, ну то есть, способ-то известен, но такого способа, чтобы компьютер не зависал, пока не знаю, в поисках );
--Отрисовать деревья;
Какие-то мелкие новости по проекту буду скидывать в комментарии под этим постом. А более крупные -- опубликую следующей главой.
Всем пикакабу, друзья! :)













