| 
	
		
		
			| Хакерский движок для линукс |  |  |  | 
| 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 переходить.
 |  |  |  |  |  
 |