Как я дозрел до написания ABRAHAMA

С 2016 начал путь в гейм дев. с конструкторов - Construct2, GameMaker8.

После того как не смог реализовать сложные идеи задумался как это вообще возможно, узнал про языки программирования. До этого думал на них только математические примеры можно решать, типа русского финансового 1С или как на Pascal в школе.

Попробовал с Basic начать в котором сам строку пишешь, порядка выполнения, очень неудобно оказалось, до этого Basic 48 где введя одну букву уже слово печатало, оказалось это ещё неудобнее. Написал прототип ABRAHAM реализовал много механик научился рендом применять, а ни случайное число выводить на экран). Когда задался вопросом на что игру выпускать на Android или Desktop был немного удивлён

так как exe файла не получалось только Z80 какой-то, который друг не смог запустить, хотя я ему писал через эмуль спеки запускать. Потратив 4 недели по 3-5 часа в день, абра успешно был заруинен.

Первая версия была написана на Basic для ZX Spectrum в конце 2017 и содержало 3 комнаты

Ну а дальше энтузиазм мой закончился, и я бросил дурное забыл про код на 4 месяца так как код не ассемблерный был и работало медленно, меня это в тоску вводило особенно когда я проверку поставил какой следующий тайл он порядка 20 вариантов проверя, да и язык умер давно, разве что для фана сделать

Игры ZX Spectrum - ZX-Art Игры zxart.ee

и своим показать, да и вообще в тоску вгоняет сидишь пишешь что-то, читаешь а выхлопа 0 пойду в TMNF поиграю лучше, там и людей много и рпг треки сложные, челлендж) Но механики и идеи в голову приходили а навыков небыло, нельзя же взять и написать:

Basic, создай мне квадрат и когда к нему абра подойдёт сдвинь его на клетку от себя.

Вообщем нужно было перестроить мышление под логику действий для cpu который только с 0, 1 работает.

Ну и посмотрев на многофункциональный быстрый и практически везде применимый (так в Курсах писали) я столкнулся с ним JavaScript(JS). Да… знал бы я что это язык созданный за 2 недели я бы поискал ещё.

а знал бы ещё чем отличается статическая от динамической типизацией сразу бы передумал а с этими пустыми строками == false и «1»+1=«11» а наоборот 2 и то что через typeof function даёт тип function че это как? О_о, а ну и то что typeof null это object, да уже и не так странно после function там ещё и массив == ![ ] дают тру ну и т.д.

Ну такое себе, ну я ушёл с него… через 1,5 ГОДА да 1.5 года, как? да хз. Тут объясняется тем что после Бейсика для меня js другой вселенной стал он полностью ломает тебя появляются массивы (и в Бейсике тоже есть но я их не понимал), объекты, тернарные, свичи, замыкания, рекурсии, apply, bind ааа… ну вообщем голова начинает болеть и я думал если новый начну изучать то меня это подавит окончательно и я брошу кодить, кстати бросал, да. В начале на 4 месяца потом на 2(уже на js) потом опят на 2 терялся запал когда на sololearn только с консолью работал, небыло графики, сухой текст там и узнал о canvas и что анимацию не только дивами делать можно, игры на дивах это отдельная тема в моей истории, но уже все позади. Тогда стал клепать мини игры типа найди предмет под камнем , Саймон сказал(это когда тебе цвета показывают и ты должен запомнить и воспроизвести в правильном порядке), каменцы (камень ножницы бумага)эту даже на андроид через web view портнул, сразу не завелось, все благополучно упало, логами отследил что с es 6 андроид студия

не компилится, стрелочные функции? Не, не слышал говорил мне компилятор андроид студии, даже тернарник не проходил ну и классы тоже было в диковинку, будто синтаксис 2010 года какой-то поддерживался. Естественно я собирал все это дело в 2 часа ночи (дотянул) и это был первый запуск, после нахождения бага, пошёл благополучно спать. Сходил почистил зу.. эээ.. немного отвлёкся. На след день все let на var и т.д

местами логику адаптировал, собрал я значит и запустил, а оно анимацию animframerequiest не воспроизводило + слои z index и много всего что я привык писать. Пришлось идти открывать Гугл и искать как раньше, мучались, в итоге запустил прошёл за 5 мин (до 10 очков) и Пасхалка на ввод ника и все) и это за 3 недели написания кода, зато первая законченная и выпущеная на андроид, успех).

дальше 1 месяц csharp

и консольный платформер.

К этому моменту я уже знал что языки сильно не отличаются друг от друга и было не так страшно начинать учить новый, но с Бейсиком и асмом at&t разница существенная.

после с unity 1 неделя и вот что я заметил

да игру я смог вывести на уровень передвижение, коллизии, Анимация, акселерация и немного ещё за 1 день, но меня напрягло что все это я делал так скажем визуальным программированием, и коего я естественно не знал и смотрел туторы, и понял что у каждого движка свои методы и подходы и зачем мне забивать голову этим если я знаю как это кодом пишется. С тех пор для меня эталон сделанной игры - компилятор и редактор кода. Если не с нуля, и накручивания велосипедов, то с либой но без Unity, Godot и прочих монстров. Написанные свои графические инструменты.

Как на js блокнот, можно нот++ и браузер, все… (и 2d шлак на выходе).

После python с его недо pygame… там вообще все плохо, от слова совсем, на этом я закончу.

После Godot в котором тоже разочаровался с его сценами хотя и там Abra норм завёлся спустя неделю, хотя 5 Гб(Unity) против 20Мб приятнее будет все же я считаю это детским что-ли, по мне если таил карта, то двумерный чаровский массив, нужна коллизия? isColl(o1, o2) return true else false а ни галочки искать на предметах и ставить и т.д. И возможно это времени будет занимать больше, но я буду уверен что отловлю большинство ошибок, и никому ничего не должен и скил кодирования апну немного.

далее love2D ну там дальше 2d сложно уехать, да и динамическая типизация и эти мета таблицы, да и вообще синтаксис другой, ну такое себе. И с экзешем тянешь ещё 10 дллок(dll) но за 10 строк можно и фон перекрасить и текст вывести и картинку, без poll event (SDL) всяких и проверок на существование окна.

далее быстро ибо по API мне плохо стало, чисто завести окно с шейпом(shape).

Vulkan(для EA, UbiSoft и прочих гигантов) ибо на вывод треугольника 1500 строк это ненормально для инди разработчика.

OpenGL(glut, glfw), SDL, SFML последняя болше объектная и больше обернута.

А вот какие челенджи я себе придумал на ближайшие годы)

На каждой из них написать если не Абрахама, то небольшую игрушку, главное условие, чтобы она была одинаковой, чтобы проверить где и как пишется и сколько подводных камней и нюансов.

Вот список:

C/C++:

SDL, SFML, OGL

Lua:

Love2D?

Java:

Android:Canvas, Android:LibGDX

И под старые консоли:

C:

CC65(NES), SGDK(SEGA)

и немного lowlevel а.

Послание от меня из будущего:

- Одумайся, ты не ведаешь что творишь

- Все норм.

ASM:

MOS 6502 (NES), GENS4 (ASM ZX Spectrum), 68000 (SEGA)

Ну это так на будущее а пока буду писать на C Абру, уже месяц его учу есть небольшой консольный вариант, но это как прототип и оттачивание механики , дальше gui. Поэтому будет кто-то следить или нет не столь важно, это несбывшиеся мечты, выпустить ABRAHAM.exe как когда-то на Бейсике хотел(в начале я писал об этом).

Выкладываю процесс на Twitter.

и YouTube

Здесь я больше хотел рассказать с чего начинал, но без литературы и всей теории, вкратце. В следующих статьях я больше расскажу про игру. Игру довести до демо версии планирую за 3 - 4 месяца.

22 показа
341341 открытие
9 комментариев

Несколько знакомых слов уловил. Но в остальном - мрак.
Разбивка текста на блоки для лёгкого восприятия вещь продвинутая, но только не при здешней вёрстке. Сумбурный текст превратился в абсолютно нечитаемую хрень, разбираться в которой нет никакого желания.

Ответить

Так. Я простой 30-летний мужик в 2020-ом. Как мне это всё читать, если тут МАЛО картинок!!!??? о_О

Ответить

А мне казалось, только молодёжь обладает клиповым мышлением...

Ответить

Комментарий недоступен

Ответить

«1»+1=«11» а наоборот 2Ну-ну))

Вообще какой-то поток сознания джуна, если честно, так и не понял про что текст. Адаптируйте для нормисов, плез

Ответить

Что это было?

Ответить