Хакерский движок для линукс
| |
afq | Дата: Среда, 15 Мая 2019, 23:56 | Сообщение # 1 |
Разработчик
Сейчас нет на сайте
| Делаю хакерскую игру. Теперь можно добавлять элементы влёгкую. Также создавать хосты, соединять их. И всё это пингуется и трассируется. Я даже подумал что если реализую всё что хотел, то может получиться неплохой себе framework или движок. В котором для своей игры можно создать нужное количество компьютеров, создать сколько надо провайдеров интернет. Объединить всё в сеть. Сделать задания. Когда я абстрагировал всё, стало теперь легче добавлять всё. Вот пример как я это делаю.
Всё становится очень просто. Так можно несколько частей выпустить если фантазии хватит. Пока же надо над одной версией потрудиться. А вы как думаете, стоит ли открыть код в будущем, чтобы каждый мог создать свои уровни?
Сообщение отредактировал afq - Четверг, 16 Мая 2019, 04:47 |
|
| |
drcrack | Дата: Четверг, 16 Мая 2019, 04:33 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| проверку орфографии в линукс пока не завезли, да?
|
|
| |
afq | Дата: Четверг, 16 Мая 2019, 04:47 | Сообщение # 3 |
Разработчик
Сейчас нет на сайте
| drcrack, у меня английская версия ubuntu сейчас стоит. Орфография русского языка отключена. Добавлено (16 Мая 2019, 05:08) ---------------------------------------------
|
|
| |
drcrack | Дата: Четверг, 16 Мая 2019, 09:27 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Цитата А вы как думаете, стоит ли открыть код в будущем, чтобы каждый мог создать свои уровни? игру на с++ под линукс с русскими комментами? нет, не стоит (хотя если ты любишь разочарования, можешь попробовать)
|
|
| |
TimKruz | Дата: Четверг, 16 Мая 2019, 09:44 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| Цитата afq ( ) А вы как думаете, стоит ли открыть код в будущем, чтобы каждый мог создать свои уровни? Эммм, а это разве не тот же самый код, который ты около недели назад выложил на GitHub?
Давно собирался сказать: делать симулятор файловой системы прямо на диске – не лучшее решение для игры. Во-первых, если у кого-то эта игра окажется на SSD или флешке, она будет бессмысленно сливать циклы чтения/записи. Во-вторых, для игры работа напрямую с файлами просто не нужна.
Что я предлагаю? Самое простое – это хранить в оперативной памяти структуру файловой системы, в виде имён создаваемых каталогов, файлов, связями между ними и их содержимым (если требуется), и в оперативной же памяти это всё редактировать. А уж когда игрок запрашивает сохранение или выходит из игры – тогда вся эта информация записывается на диск. Тебе ведь не нужна полноценная файловая система, ведь так? Тебе нужна только симуляция этой системы, пригодная для игровых целей.
Я это вижу так: – файл – это запись (в C++ это struct?) со строкой-именем и строкой-содержимым (или массивом строк); – каталог – это похожая запись со строкой-именем и массивом указателей, которые могут ссылаться на каталоги и файлы. При этом, если каталог будет содержать указатель на родительский каталог, а файл – на тот каталог, в котором он лежит, то переходы по этой "файловой системе" можно будет делать, просто перезаписывая текущий указатель на новый исходя из того, на что он указывает и хотим ли мы двигаться вверх или вниз. В общем, банальная древовидная структура...
Могу попробовать на Delphi сделать пример кода... Компилятора C++ под рукой вроде нет)
Хотя не, с записью указателей на диск не знаю, что делать. Ну, я бы воспользовался динамическими массивами или TList (ссылочный список с простыми индексами как у массивов и лёгким управлением), но я не знаю, какие аналоги есть в C++...
Цитата drcrack ( ) игру на с++ под линукс с русскими комментами? нет, не стоит (хотя если ты любишь разочарования, можешь попробовать) Разочарование от чего? Что никто не смотрит или что смотрят и ругают?
Сообщение отредактировал TimKruz - Четверг, 16 Мая 2019, 10:00 |
|
| |
afq | Дата: Четверг, 16 Мая 2019, 14:30 | Сообщение # 6 |
Разработчик
Сейчас нет на сайте
| TimKruz, да я уже давно сделал файловую систему в программе без hdd. Я вроде уже где-то писал об этом. Можно даже переходить на такой каталог, и как ты думаешь куда перейдёшь?
Код cd /home/zex cd ../../../../../../../../../../../
Добавлено (16 Мая 2019, 14:32) --------------------------------------------- Я же снимок предоставил в этой теме, как легко теперь можно добавить новые элементы и компьютеры в сети. Добавлено (16 Мая 2019, 14:37) --------------------------------------------- TimKruz, ну ты попробуй, сделай файловую систему. Из операций с файловой системой у меня реализовано. Создание каталога, создание файла, заполнение файла данными. Потом покажешь что получилось.
Ты кстати новичок или профессионал в программировании? Добавлено (16 Мая 2019, 14:38) --------------------------------------------- drcrack, а ты новичек или профессионал в программировании? Добавлено (16 Мая 2019, 15:15) --------------------------------------------- TimKruz, а тот пример, который я выложил на github, так это на скорую руку сделано. Чтобы показать какая будет игра. Исходя из сделанной файловой системы я смог сделать файловую систему программно. Так что одно другое дополнило.
|
|
| |
drcrack | Дата: Четверг, 16 Мая 2019, 15:38 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Цитата ну ты попробуй, сделай файловую систему. Из операций с файловой системой у меня реализовано. Создание каталога, создание файла, заполнение файла данными. Потом покажешь что получилось. честно говоря это делается за час максимум, с перерывом на чай
Сообщение отредактировал drcrack - Четверг, 16 Мая 2019, 15:39 |
|
| |
afq | Дата: Четверг, 16 Мая 2019, 15:48 | Сообщение # 8 |
Разработчик
Сейчас нет на сайте
| drcrack, вижу ты готов это доказать? Или ты мечтаешь что можешь за час?
|
|
| |
martuk | Дата: Четверг, 16 Мая 2019, 16:50 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| afq, Соглашусь с drcrack. Это довольно элементарная задача. Не знаю уж как ты там реализовывал, но в c++ такое оформить будет проще простого.
|
|
| |
drcrack | Дата: Четверг, 16 Мая 2019, 16:50 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| если тебе эта задача кажется сложной, попробуй более подходящие для нее языки, а не с++
|
|
| |
martuk | Дата: Четверг, 16 Мая 2019, 16:51 | Сообщение # 11 |
заслуженный участник
Сейчас нет на сайте
| Но я сам бы сделал не за час а за три хотя бы, потому что я черепаха
|
|
| |
afq | Дата: Четверг, 16 Мая 2019, 16:56 | Сообщение # 12 |
Разработчик
Сейчас нет на сайте
| drcrack, а я думал что ты напишешь. Как из этого вытекает что я должен доказывать свои слова. Я ведь просто пишу о чем думаю.
Мне это проще сделать на c++ или си, чем на другом языке.Добавлено (16 Мая 2019, 16:58) --------------------------------------------- martuk, я тоже сначала думал что это не сложно будет сделать. Но не получилось с первого раза. Пришлось делать файловую систему и драйвер к ней. И уже из этого опыта я смог написать без файловой системы. Добавлено (16 Мая 2019, 16:59) --------------------------------------------- martuk, да тем более эта тема уже немного разжевана, так что тебе бы было легче написать. Но что напишешь? А на чём бы ты писал? На каком языке?
|
|
| |
tduk | Дата: Четверг, 16 Мая 2019, 17:07 | Сообщение # 13 |
постоянный участник
Сейчас нет на сайте
| Интересный проект) Буду ждать релиза)
|
|
| |
martuk | Дата: Четверг, 16 Мая 2019, 17:59 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| afq, В начале этого года я писал что то типа виртуальной файловой системы. По факту это была древовидная система папок и файлов. Работая на c++, я использовал структуры, вектора и указатели + модуль для графического представления дерева. Визуально оформил как у редактора Atom. Вот и результат:
Сообщение отредактировал martuk - Четверг, 16 Мая 2019, 18:01 |
|
| |
afq | Дата: Четверг, 16 Мая 2019, 18:05 | Сообщение # 15 |
Разработчик
Сейчас нет на сайте
| martuk, о класс. Добавлено (16 Мая 2019, 18:06) --------------------------------------------- martuk, а что за модуль использовал? В qt чтоли?
|
|
| |
martuk | Дата: Четверг, 16 Мая 2019, 18:08 | Сообщение # 16 |
заслуженный участник
Сейчас нет на сайте
| Вот весь класс этого добра:
Но сразу оговорюсь, что я тут допустил серьезную ошибку. Функции работы с папками и файлами я вынес в отдельный модуль. А в этом классе остались только базовые вещи.Добавлено (16 Мая 2019, 18:11) ---------------------------------------------
Цитата afq ( ) В qt чтоли? Не, мне нужна была 3d, я использовал Urho3d, там как раз и UI система была, не нужно было велосипедить.Добавлено (16 Мая 2019, 18:17) --------------------------------------------- В итоге вот такой вот визуализатор смастерил:
|
|
| |
afq | Дата: Четверг, 16 Мая 2019, 18:41 | Сообщение # 17 |
Разработчик
Сейчас нет на сайте
| martuk, а как ты линии снизу добавил? Я всё думал, но какой правильный способ? Ты рисовал линии в радиусе 0.0 - 1.0 или как то по другому?
|
|
| |
martuk | Дата: Четверг, 16 Мая 2019, 20:33 | Сообщение # 18 |
заслуженный участник
Сейчас нет на сайте
| afq, сетка - это обычный GL_LINES Размер сетки - 1.0
Сообщение отредактировал martuk - Четверг, 16 Мая 2019, 23:04 |
|
| |
JackNazaryan | Дата: Пятница, 17 Мая 2019, 03:13 | Сообщение # 19 |
старожил
Сейчас нет на сайте
| Захотелось сделать виртуальную файловую систему на PHP с сохранением состояния в JSON-файл, а потом вспомнил, что на GcUp слишком адекватная аудитория, чтобы слушать такие идеи
Всякие ../../../../ несложно обрабатывать, если написать нормальный парсер-преобразователь, остальное уже дело вкуса.
|
|
| |
afq | Дата: Пятница, 17 Мая 2019, 03:26 | Сообщение # 20 |
Разработчик
Сейчас нет на сайте
| Цитата Всякие ../../../../ несложно обрабатывать, если написать нормальный парсер-преобразователь, остальное уже дело вкуса.
JackNazaryan, у меня например как в реале. Каждый каталог указывает на своего родителя. А root каталог указывает сам на себя. По этому сколько не переходи, будет всё равно в root переходить.
|
|
| |
|