Ужасы разработки и как я справляюсь

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

Сразу приложу скриншот того что разрабатываю.

Скриншот новой игры
Скриншот новой игры

Я начал делать эту игру, потому что возникли проблемы с игрой Radio Attack. Там есть проблемы в дизайне, нет возможности играть в одиночку, и проблема с сетевой игрой, так как желающих купить игру оказалось 6 человек. Как бы я ни старался писать во все паблики, интереса было мало. Военную стратегию я разрабатывал с мотивацией особой, а именно, чтобы создать компилятор. Так было проще, игра 2d, почти ничего не требуется, только нужен компилятор и эмулятор. И вот, я достиг некоторого уровня, и перешел к другой игре.

Теперь игра про программирование прошивки для лифтов. На скриншоте как вы можете видеть есть только один лифт, из-за уровня сложности можно добавить ещё несколько лифтов.

Опишу как устроена работа игры. Пишется код, который с помощью компилятора создает буфер байт с нужным размером, потому это передается эмулятору. Когда запускается эмулятор на выполнение, то ему дается размер в опкодах, которые он может выполнить за раз. Например 20. Так можно запускать несколько эмуляторов и все будут быстро отрабатывать.

Я не писал тестов, и столкнулся с тяжелыми последствиями в разработке. Объясню. Написал код для лифта, запустил эмуляцию, и программа выкинула SEGFAULT. И начинаются ковыряние. Я даже не знаю порой как искать, мозги просто не работают. Вчера к примеру я не спал уже почти сутки и думал над задачей и было тяжело не думать о задаче из-за того, что она не решена. Пришлось снотворное пить.

Сегодня утром справился. В книге по эмоциональному интеллекту прочитал, что человек с развитым эмоциональным интеллектом может сам себя мотивировать когда нужно, и быть продуктивным. Эмоции наше всё, все наши решения принимаются эмоциями. Если я испытываю хорошее эмоциональное состояние, то оно передается в речи, письме. Те, кто читают, могут тоже зарядиться этим эмоциональный состоянием, так как оно пропитано этим.

Сложность начинается в том, что у меня сразу три системы, движок, компилятор, эмулятор. Когда происходит SEGFAULT, то я смотрю разумеется где падение. Нужно понять как оно произошло, а происходит оно в эмуляторе. Я немного научился с этим работать. Вот к примеру как у меня компилятор выводит printf в консоль, если собирать его с флагом DEBUG и без движка.

Скриншот
Скриншот

После слова токен, в [00xx] находится смещение начала опкода команды, это очень удобно как оказалось. Например в эмуляторе был баг с прыжками JC JNZ и тому подобные. Как оказалось, что эмулятор правильно прыгал, а компилятор не правильно учитывал смещение.

Есть ещё нераскрытые баги, которые мне предстоит исследовать. Повышается опыт ориентирования в отладке программ.

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

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

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

Да, может эту игру про лифт я тоже не создам, но меня мотивирует сам процесс, я хочу создать такую систему, чтобы в игре можно было запустить компьютер и он работал как реальный. Это моя мечта. А пока, пока я делаю все для этого, я разрабатываю игры попроще, чтобы отточить инструменты, а потом заниматься уже сложной игрой и её нарративом.

Всё, я закончил.

66
18 комментариев

Ясно, а теперь к доктору

3
Ответить

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

Ответить

Это как из анекдота.
"Три строителя носили тяжелые камни с совершенно разными выражениями лиц.
К ним подошел один мудрец и спросил сначала первого, самого грустного и недовольного:
«Что ты делаешь?» Тот ответил: «Не видишь, я таскаю камни!»

Второй имел более серьезный, сосредоточенный вид, мудрец подошел к нему и спросил его: «Что ты делаешь?»
И тот ответил: «Я зарабатываю деньги для своей семьи».

А третий выглядел веселым и счастливым. Мудрец спросил и у него: «Что ты делаешь?»
А он ответил: «Я строю храм!»

Хорошая притча, согласны?

Все они носили тяжелый груз, зарабатывали деньги, но по-разному относились к этому процессу.

Но я немного путаюсь в эмоциях из-за вашего сообщения. Можете ли вы объяснить почему так написали, чтобы я стал опытней. Я не совсем понимаю с каким смыслом было написано ваше сообщение и какую эмоцию выражает. Тут двоякое послание и хотелось бы понять, рофлите вы, подшучиваете, чтобы стало веселее, завидуете, или злитесь, что я такой радостный и хотите мне нагадить?

Ответить

Объясню почему у меня смешанные эмоции. Я бы воспринимал это как шутку, если бы не ходил реально к психиатрам. И если вы хоть немного знаете о моей жизни, то возможно это издёвка. А так да, как на это смотришь. На ваш комментарий надо смотреть как на шутку, типа вы думаете, что я человек, слишком жизнерадостный. Да, думаю так лучше смотреть на это. Хотелось бы более культурных комментариев конечно, но тут уж кто с каким настроением попадется, так как никто я думаю не изучает эмоциональный интеллект. Я бы хотел освоить эту науку в должной мере, чтобы быть продуктивным в работе и дома.
Например, в стоицизме как учат Марк Аврелий и Эпиктет, мы должны радоваться тому, что дает жизнь. Относится к смерти спокойно как к обычному этапу в жизни. Ещё к примеру книга "Божественная комедия", которая проводит тебя через весь потусторонний ад до рая. Об этой книге я узнал из книг про Средневековье. Начинаешь с радостью относится к некоторым вещам и не бояться. Я стараюсь сам всему учиться и даже психологии, чтобы мог потом помогать другим с эмоциональным состоянием. Например избавить кого-то от сильных негативных эмоций, или вдохновить людей на интересную работу.

Ответить

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

Возможно, что дело было все-таки не в мультиплеере : (
Обсуждаемые выше shenzhen I/O и Human Resource может и содержат в себе механики программирования, но помимо этого они все-таки выглядят как игры, а не как обучающий стенд. Над ними работали геймдизайнеры, а не только технари-программисты.
Есть ли у автора понимание игрового процесса на бумаге? На который человек со стороны мог бы взглянуть и сказать "О! Это будет интересно". Или же все-таки автору более интересно делать свой компилятор?
Не стремлюсь дизморалить, но пока что и эта попытка выглядит так, как будто бы ее ждет тот же финал с
интереса было мало

1
Ответить

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

Эта игра симулятор и кто знает, может это будет интересно игрокам.

Ответить

Не понимаю кому может быть интересно программирование лифтов. Зачем лифтам прошивка? Им предстоит по каким-то сложным маршрутам двигаться, какое-то сложное поведение демонстрировать?

Radio Attack выглядит интереснее. Понятный конфликт, понятный сеттинг про войну роботов, геймплей со стратегическими элементами и элементами головоломок, не вполне тривиальные механики. Нужно, да, сделать дизайн, отбалансировать, оттестировать механики, может быть добавить нарратив. Понятно что это может быть скучнее делать чем писать эмуляторы, но игра не может состоять из одного только эмулятора. Может быть имеет смысл кого-то в сообщники найти?

Или выпускать игры вообще не цель?

Ответить