LINUX.ORG.RU

Откуда можно взять мотивацию для написания эмулятора и компилятора?

 , ,


0

2

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

Начал читать, и понял, что не осилю реализацию, так как эмулятор был первым. В итоге, я понял, что надо вымышленный эмулятор с компилятором делать и сделал компилятор похожий на x16 intel. Работа выполняется в режиме реального времени без сегментов. Это всё, на что я способен пока в данном контексте. Вот ссылка на группу, где я хотел собрать сообщество вокруг моей игры https://vk.com/radio_attack. Также писал статью на хабре о том, как придумывал игру. https://habr.com/ru/articles/838522/. Вся сложность в том, что мне не достает мотивации, хотя может это стало следствием болезни, в том, что эндорфинов не хватает, то-есть их хватает, но лекарство их отбирает.

Я выложил в открытый доступ компилятор байткода https://gitverse.ru/archinaragu/DOXY_ASM, только нормальный релиз написан в ветках elevators и radio_attack. Там для каждой игры есть свои дополнительные операторы, которые присуще игре. А вот эмулятор https://gitverse.ru/archinaragu/DOXY_EMU, мне нравиться, что я сделал возможность для эмулятора выполняться на определенное количество операторов, а потом даёт возвращение обратно в игровой движок. Так, стало возможным запускать в игре сразу несколько юнитов, каждый со своей эмуляцией.

Ещё плюс такого эмулятора в том, что, когда происходит прерывание, то обработку прерывания мы уже в игре задаем и нам доступны все регистры, которые передаются от эмулятора. Так, я хотел сделать ещё одну игру про программирование лифтов, пишешь прошивку, люди вызывают лифт и он должен правильно двигаться на нужный этаж. https://habr.com/ru/articles/843708/.

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

Вот и у меня было сначало желание изучить программирование, а потом электронику. Я раньше был на этом форуме, у меня был нечитаемый ник, но потом совсем уж плохо стало с моей психикой и мне врачи объявили, через год лечения, что у меня шизофрения. Вообще я рад любому исходу своей судьбы, и хотелось бы, пока я живу нормально, работать над интересными и сложными проектами. Хотелось бы научиться черпать правильно мотивацию в создании сложных ПО, где не требуется математический аппарат, хотя я и математику хочу нормально освоить тоже, при должной мотивации конечно. Например, я входновился и потратил 4 дня на создание логических элементов из транзисторов в Logisim Evolution https://vk.com/album583070625_305118291 .

Потом, читая книгу по цифровой электронике и архитектуре компьютера, я как раз наткнулся на все элементы и их транзисторные схемы, но прежде чем читать это, я хотел сам сначала попробовать создать, хотя раньше, когда только увлёкся этим, я сделал сумматор, хотя называл его калькулятором, на этих элементах, очень интересно. https://vk.com/photos583070625?z=photo583070625_457239228%2Fphoto_feed583070625 . Вообще я восхищен такой деятельностью и людьми, которые в силу своего интеллекта могут делать потрясающие устройства на электронике и писать для них прошивки. Когда я только начал электронику изучать, я подумал, что надо пока тренироваться в разработке для какого-нибудь чипа, я взялся за изучение NES разработки на ассемблере.

В туториале была программа, которую я не мог найти в интернете, видимо удалили, и я написал свой вариант для рисования NES графики, так как для Linux я не нашел редактора для рисования, а aseprite не отвечал нужным параметрам, а именно я не понимал как рисовать для фронта и бэкграунда, то решил написать свою версию редактора графики для NES со всеми вытекающими для неё ограничениями.

Тогда я сделал https://flathub.org/apps/io.github.xverizex.RetroSpriteEditor и выложил на flathub. Единственное, что меня остановило дальше разрабатывать, это опять мотивация, так как в плане развития в электронике у меня произошел затык, я не понимал как правильно учиться. Хотя успел удобство в редакторе сделать, чтобы бэкграунд экспортировался в код в двух вариантах, либо полный экран экспортировался, либо только те спрайты, которые имелись на экране, отсюда было ограничение в том, что если экспортировать код только с теми элементами, которые имеются, то надо было хранить, если я правильно помню, два байта, или три даже, которые отвечали бы за его позицию.

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

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

Вот недавно недели три не хотелось вообще читать, а сегодня взял книгу Мишеля Монтеля «Опыты» и с удовольствием почитал пару глав. Я вот реализовать i386 никак не получается. Да, вспомнил, возможно надо на мелкие задачи разложить большую задачу, и может быть тогда получиться. Наверняка, у вас, у спецов, кто работает в сфере embedded разработки или чего-то подобного, есть какие-то ритуалы, как не бросать проект. Если у вас есть что-то полезное, поделитесь пожалуйста, очень хотелось бы работать дальше над сложными проектами.



Последнее исправление: peeruoeso (всего исправлений: 1)
  1. Очень стимулирует отклик от потенциальных/реальных юзеров.

  2. Очень помогает осознание того какую классную штуку ты сделал. Скажем я давеча когда прикрутил к графопостроителю автоматическую загрузку данных с удаленной машины радовался прям как ребенок - настолько удобно получилось что ух!;-)

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

AntonI ★★★★★
()
Ответ на: комментарий от anonymous

страшилки свои можешь в трубочку свернуть.

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

Мать через полчаса умерла

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

watchcat382
()
Ответ на: комментарий от CrX

А уж всякие аварии и прочее — тоже гемор (и аккуратное вождение не факт что поможет — не ты въедешь, так в тебя).

Вот это страшнее всего. Есть реальный шанс не только денег и имущества лишиться но еще и в тюрьму сесть если кто-то погибнет.

Ну его нафиг этот головняк, если автомобиль особо ни для чего не требуется, а по городу удобнее и комфортнее на такси доехать или на общественном.

Полностью с вами согласен!

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

Именно что казалось бы. Как вы совершенно правильно выше написали - аккуратное вождение не особо помогает.

Вероятность такого случайного события крайне мала.

Вообще-то автомобиль является одним из самых травмоопасных видов транспорта. Это объективные данные.

watchcat382
()
Ответ на: комментарий от Ygor

ездить с подневольными работягами ещё хуже чем на своей.

Есть существенная разница - в случае ДТП отвечать будет этот работяга(и деньгами и уголовно).

снегоход, квадрик

И то и другое имеется. Лодка еще. Я же в деревне живу,тут оно всё нужное.

Электроника всякая

А это просто мусор который надо выкинуть

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

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

watchcat382
()
Ответ на: комментарий от hobbit

человек осознаёт ответственность, появляющуюся при включении зажигания.

И как обычно,от лишней ответственности старается откосить:) Уже несколько десятков лет успешно косит:)

В деревне, особенно современной, машина насущная необходимость.

Я и от этой «необходимости» откосить смог:) В той деревне где живу - роль автомобиля выполняет моторная лодка летом и снегоход зимой когда вода твердая.

watchcat382
()
Ответ на: комментарий от anonymous

если пересчитать время на ожидание на мою ставку, получится дороже такси.

Позвольте заметить что не у всех такие ставки. Ну и конечно не у всех жесткая необходимость столько ездить как у вас.

watchcat382
()
Ответ на: комментарий от gobot

кто дочитал до конца?

Ну я дочитал.

Кошмар

Так вроде чтение форума - штука добровольная,вас никто не заставляет. А например меня тоже интересуют вопросы мотивации.

watchcat382
()
Ответ на: комментарий от stabilitron

Википедия о последствиях одиночества

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

watchcat382
()
Ответ на: комментарий от AntonI

получение каких то законченных осмысленных результатов очень мотивирует.

Это точно!

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

Согласен. И самое сложное это проснуться,слезть с дивана и начать. Потом обычно бывает никак не остановиться.

watchcat382
()
Ответ на: комментарий от Ygor

Есть только ты её не понимаешь

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

watchcat382
()
Последнее исправление: watchcat382 (всего исправлений: 1)
Ответ на: комментарий от watchcat382

Да. В самом начале статьи, кстати, про это есть. Сейчас не знаю как перевести на русский, но они там разделяют понятия «loneliness» и «solitude» как раз с тем смыслом, о котором ты говоришь.

stabilitron
()