Показать сообщение отдельно
Старый 29.05.2014, 22:47   #23
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: Клевая игрушка для программистов

Сообщение от Mr_F_ Посмотреть сообщение


согласен. в вачдогсе больше информационного шума не взаимосвязанного.


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


В этот раз я начал на Юнити, иначе вообще никогда не закончу, несколько либ пришлось дополнительных подключить, AI на cpp дописать, но, в основном, C#.
Хакинг и всё взаимодействие с компами идёт через JS (да-да, симулятор x86 на JS. вот он кстати: http://copy.sh/v24/), который подключён к игре либой Awesomium (враппер для юнити пришлось свой писать, у них есть наработки на эту тему, но сырые неюзабельные). Грубо говоря, это маленький хром, который рисуется в текстуру.


Либо у тебя очень специфичная игра, либо имхо ты не до конца продумал как это будет выглядеть в игре.
Я тоже за основу сначала взял полноценный эмулятор, но быстро стало ясно что это очень сложно для игрока (и разработчика), и 99,9% эмулируемой инфы просто не нужно.
Я пришел к выводу что сначала нужно отказаться от х86: сделать выч. устройства однозадачными, следовательно убрать эти нагромождения вроде защищенного режима, виртуальной адресации, сократить число регистров, в общем сделать контекст процесса и физическое состояние железа синонимами. Далее сделать акцент на пользовательском коде - то есть весь функционал ОС/драйверов/firmware вынести в черный ящик, то есть не эмулировать его, а сделать вызовами api или прерываниями. Например если у компьютера есть GUI то не в коем случае не надо чего где то там рендерить. Таким образом все что считается на виртуальном цп будет управляющий пользовательский код, на котором и сосредоточен игрок.
Следующая абстракция имхо, это хранение данных на диске, внешних носителях, передачи по сети - минимальной единицей достаточно взять файл/пакет - не надо дробить информацию на байты. Соответственно вся сетевая инфраструктура типа роутеров/файрволов и прочего сильно упрощается до каких нибудь логических абстракций, например с указанием для роутера, с какого на какой шлюз направлять пакеты и какого типа - этого достаточно будет.
В общем имхо главное нужно убирать количественные характеристики, присущие IT, например все размеры данных/программ держать в пределах 1000 единиц, например до 1 кб, или сделать 1мб неделимым значением, тогда будет 1мб-1гб.
В общем несмотря на относительно сильное упрощение отдельных компонентов, вся информационная система будет гибкой и игроку есть где поковырять и похакать.

В любом случае если у тебя есть играбельная версия то будет интересно посмотреть.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (29.05.2014)