Jordan Опубликовано 15 октября, 2021 Автор Поделиться Опубликовано 15 октября, 2021 Всем привет. Проект не заброшен. Много времени уходит на написание базового движка. (Графика, GUI ит.д) В последнем обновлении добавил загрузку frm. Кодhttps://github.com/JordanCpp/Commune Ссылка для скачивания https://github.com/JordanCpp/Commune/archive/refs/heads/master.zipСкачайте и запустите Fallout.batСкачайте и запустите Disciples.bat (Если интересно) Ссылка для клонирования репозитария https://github.com/JordanCpp/Commune.git Для компиляции нужна только Visual Studio Community 2019. Все остальные файлы включены в проект.На данный момент закладываю основы. В след обновлении добавлю редактор и вывод карты. Далее улучшить редактор. Добавить редактирование карты. Рад если кто нибудь присоединится к проекту. Советом или кодом. 3 Ссылка на комментарий
Jordan Опубликовано 19 августа, 2022 Автор Поделиться Опубликовано 19 августа, 2022 Все больше склоняюсь к тому, что бы перекодировать форматы оригинального fallout 2 в современные форматы текста, изображений и звука. И уже их воспроизводить. На сайте https://github.com/falltergeist/falltergeist как раз есть исходники инструментов. Конечно это будет нарушение прав, но кому сейчас какая разница. Ссылка на комментарий
Pyran Опубликовано 19 августа, 2022 Поделиться Опубликовано 19 августа, 2022 Фолу нужен хороший редактор скриптов, чтоб непрограмисты, простыми словами могли создавать квесты.Напроимер: в интерфейсе пишем идти на карту 11, ждать 2 часа, поговорить с неписем Фред. А код пишется сам. Интеллектуально.Но перекодировка форматов тоже хорошо. Фолтергейст, чтото там пытался в свое время. 2 Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Помогая другим, не забывай о себе =) Ссылка на комментарий
Jordan Опубликовано 19 августа, 2022 Автор Поделиться Опубликовано 19 августа, 2022 Фолу нужен хороший редактор скриптов, чтоб непрограмисты, простыми словами могли создавать квесты. Напроимер: в интерфейсе пишем идти на карту 11, ждать 2 часа, поговорить с неписем Фред. А код пишется сам. Интеллектуально. Это все от инструментария зависит. Я пишу простой движок вывода спрайтов с альфа каналом. Это если упрощать, там точно не будет такого инструментария. Максимум внедрить lua скрипты и конвертнуть ssl в lua. Я не пилю игру на Unity и иже с ним. Меня больше прельщает писать скрипты на С++, на языке движка. Пример как будет выглядеть скрипт вывода сообщения в консоль игры. void Tester::MapEnter(){ if (Self()->GetStat(Stat::Strength) > 7) { Game::Console("А ты силён!"); }} Наработки по конвертации ssl в С++ есть. Ссылка на комментарий
Pyran Опубликовано 19 августа, 2022 Поделиться Опубликовано 19 августа, 2022 Это все от инструментария зависит. Я пишу простой движок вывода спрайтов с альфа каналом. Это если упрощать, там точно не будет такого инструментария. Максимум внедрить lua скрипты и конвертнуть ssl в lua. Я не пилю игру на Unity и иже с ним. Меня больше прельщает писать скрипты на С++, на языке движка. Пример как будет выглядеть скрипт вывода сообщения в консоль игры. void Tester::MapEnter(){ if (Self()->GetStat(Stat::Strength) > 7) { Game::Console("А ты силён!"); }} Наработки по конвертации ssl в С++ есть.Так все вроде за, я лишь высказал мысль, что гложет не одного диванного сценариста, которые не могут или не хотят по разным причинам работать с кодом игры... На вашем примере:В gui пользователь пишет (выбирает) "сообщение в консоль" и этот код прописывается автоматом. Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Помогая другим, не забывай о себе =) Ссылка на комментарий
Mr.Sталин Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Фолу нужен хороший редактор скриптов, чтоб непрограмисты, простыми словами могли создавать квесты.------------Волшебной палочки не существует. Там был где-то редактор который мог конструировать диалоги, но он такой запутаный и не понятный шо ппц. Ссылка на комментарий
Pyran Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 ------------Волшебной палочки не существует. Там был где-то редактор который мог конструировать диалоги, но он такой запутаный и не понятный шо ппц.Так не палочка, а код преобразовывать в слова ,(точнее на оборот), написать скажем 30 действий с вариациями и уже можно разнообразный примитив, а крученый и печеный, что никто не разберется, такое и даром не надо Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Помогая другим, не забывай о себе =) Ссылка на комментарий
Mr.Sталин Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Такой редактор будет строить примитивные диалоги. Всмысле если не шаришь в базовом програмировании, то получишь на выходе примитивный диалог, без логики, без переменых.Так что он посути тебе и не поможет, а те кто хоть как-то понимают в програмировании скриптов такой конструктор и не нужен будет.В качестве помощника только если. Ссылка на комментарий
Foxx Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Все больше склоняюсь к тому, что бы перекодировать форматы оригинального fallout 2 в современные форматы текста, изображений и звука. И уже их воспроизводить.Чего-то вспомнилось, для Арканума вроде ты тоже новый движок делал? Ссылка на комментарий
Jordan Опубликовано 21 августа, 2022 Автор Поделиться Опубликовано 21 августа, 2022 Такой редактор будет строить примитивные диалоги. Всмысле если не шаришь в базовом програмировании, то получишь на выходе примитивный диалог, без логики, без переменых.Так что он посути тебе и не поможет, а те кто хоть как-то понимают в програмировании скриптов такой конструктор и не нужен будет.В качестве помощника только если. Да так и есть. Проще писать кодом. Чем бороться с ограничениями такой программы.добавлено позжеЧего-то вспомнилось, для Арканума вроде ты тоже новый движок делал? Да. Я делал такой проект https://github.com/JordanCpp/Commune Он объединял три игры, но один движок. Сейчас я пересмотрел концепцию. В основе останется прежней, единая библиотека по работе с графикой, музыкой и т.д + отдельно игры. Arcanum и Fallou 2 почти идентичны по написанию движка, есть небольшие различия в геймплее. Но в остальном код будет между ними одинаков. Вот отдельный вариант для Arcanumhttps://github.com/JordanCpp/ArcanumWorld Сейчас я у себя в голове окончательно собрал весть проект Теперь можно браться за реализацию. У меня еще много кода на локальном ПК, где я экспериментировал, с 3Д, скриптами и т.д Сейчас я готов воплощать.добавлено позжеВсе так же открытый код, язык С++ (высокоуровневый С++11) не сложнее питона. Внизу SDL2. Скрипты будут писать на С++ и собираться вместе с движком. Редактор будет встроен. В меню добавлю кнопку редактор. Движок будет работать только с новыми форматами изображений png, mp3, xml. Для основы возьму файлы Sonor'ы и сконвертирую в новые форматы. Как раз не будет проблем с распространением ресурсов.добавлено позжеЕщё большой плюс исходники fallout 2 доступны и всегда можно посмотреть как там, что реализовано. Или уже брать и допиливать движок, внедряя новые форматы графики и остального. Возможно это более быстрый и простой вариант, так как он уже работает.добавлено позжеКачество исходников чистый си + глобальные переменные по всему коду. Поддерживать ещё реально. Но вот внедрять фичи, ой как не просто, не поломав все. Ссылка на комментарий
Mr.Sталин Опубликовано 21 августа, 2022 Поделиться Опубликовано 21 августа, 2022 Качество исходников чистый сиподход там говняный))еще и макросы понатыкали вместо констант там где они и ненужны (с начало не было, и читалось хорошо) теперь если смотреть без открывания в редакторе надо еще и эти макросы читать, или догадываться что там за значение.В общем совсем разочаровал подход к тем исходникам. Ссылка на комментарий
Jordan Опубликовано 22 августа, 2022 Автор Поделиться Опубликовано 22 августа, 2022 Добавил болванку нового движка. Сейчас никакой игры нет, просто открывается окно которое вы можете закрыть. https://github.com/JordanCpp/Revival Как юзать. 1. Скачать с гит хаба репозиторий https://github.com/JordanCpp/Revival/archive/refs/heads/master.zip2. Распаковать.3. Перейти в каталог Games/Fallout и запустить Fallout.exe Архитектурно разделил движок на две части. 1. Библиотека скрывающая SDL2 называется Ext2. Сам движок Fallout юзающий данную библиотеку.3. Сам проект называется Revival - Возрождение. Возможно кто то захочет возродить другую игру используя библиотеку Ext. Для этого нужно создать каталог в репозитории и прописать его в cmake. Обо всех изменениях буду писать сюда.добавлено позжеСейчас переношу функционал из данного проекта https://github.com/JordanCpp/Communeдобавлено позжеЧто буду делать.1. Доработать Painter для вывода графики, картинок.2. Написать необходимые менеджеры, типа менеджер картинок.3. Написать простой GUI.4. Реализовать с помощью GUI, UI интерфейс для игры.5. Создать локацию, научить движок сохранять и загружать.добавлено позжеМногое из списка сделано, буду брать код и адаптировать к новому проекту.добавлено позжеРесурсы для игры будут взяты из мода Sonora. Графика frm будет конвертирована в png.добавлено позжеСама игра и ее ресурсы будут находится в данном репозитариq. После каждого обноdления, нужно будет скачать репозиторий и распаковать. Если кто то умеет в плюсы, просто клонируйте репозиторий в Visual Studio. Чуть позже добавлю доработки в cmake, что бы двиг собирался под linux.добавлено позжеБуду рад техническим советам по движку и вообще. Только не нужно советовать брать unity или юзать 3D, тупо долго разбираться. Пока будет простой 2D движок. Ссылка на комментарий
Jordan Опубликовано 22 августа, 2022 Автор Поделиться Опубликовано 22 августа, 2022 Добавил в проект библиотеку rapidjson, все текстовые файлы будут в json формате. добавлено позжеПрототипы объектов, конфиги игры, карты, файлы локализаций тоже будут в json формате.добавлено позжеАнимация будет хранится в png файле. Каждая анимация идёт в комплекте с json файлом. Где описаны свойства анимации и очередность кадров с направлениями, у каждого кадра есть размеры и координаты. Пример https://vsegda-pomnim.com/uploads/posts/2022-02/1645901012_45-vsegda-pomnim-com-p-spraiti-foto-55.pngдобавлено позжеСобираюсь добавить поддержку модулей. Каждый мод будет находится в своем одноименном каталоге. При загрузке их можно подключить. Примерно понимаю как реализовать данную возможность. Я ушел от концепции числовых идентификаторов как в оригинальном движке. Только namespace + имя ресурса. Ссылка на комментарий
Jordan Опубликовано 25 августа, 2022 Автор Поделиться Опубликовано 25 августа, 2022 Что буду делать.1. Доработать Painter для вывода графики, картинок. Готово2. Написать необходимые менеджеры, типа менеджер картинок. Готово3. Написать простой GUI. В процессе, реализованы базовые вещи4. Реализовать с помощью GUI, UI интерфейс для игры. В процессе (Есть главное меню)5. Создать локацию, научить движок сохранять и загружать. Ожидает 1 Ссылка на комментарий
Jordan Опубликовано 25 августа, 2022 Автор Поделиться Опубликовано 25 августа, 2022 Пилю главное меню. Кнопка красным выделяется при наведении курсора, на скрине его не видно. Еще обновил SDL библиотеки до последних версий. Понимаю, что не густо добавлено позжеПишу по заветам отцов, каждый класс реализует конкретный функционал. В дальнейшем будет легко написать тесты. Главное не запутаться в классахдобавлено позжеСледующий шаг, сделать переход кнопок. Сейчас они просто нажимаются. Реализовать редактор, с выводом простенькой карты в json формате. И дальше наполнять функционал редактирования.добавлено позжеСсылка на скачивание https://github.com/JordanCpp/Revival/archive/refs/heads/master.zip Распакуйте и запустите Games/Fallout/Fallout.exe Ссылка на комментарий
Farvel Опубликовано 25 августа, 2022 Поделиться Опубликовано 25 августа, 2022 А нельзя достать движок Цвета как-то? Может, это упростит задачу? Ссылка на комментарий
Jordan Опубликовано 25 августа, 2022 Автор Поделиться Опубликовано 25 августа, 2022 А нельзя достать движок Цвета как-то? Может, это упростит задачу?Его движок давно открыт.https://github.com/cvet/fonline Особо не упростит. Каждый движок пишет по своему, свой стиль, набор библиотек. Взять код из другого проекта и адаптировать это возможно, если они написаны хотя бы на одной основной либе, к примеру SDL. Я сейчас пишу по туториалам. К примеру как вывести картинку, сделать анимацию, и т.д Я стараюсь все делать как можно проще, но не проще необходимого. У меня нет идей, как ускорить проект. Переходить на unity:)добавлено позжеЯ пару дней посвящу написанию тестов. Без них время на исправление ошибок увеличивается. Так как не понятно, что и где сломалось. Ссылка на комментарий
Farvel Опубликовано 25 августа, 2022 Поделиться Опубликовано 25 августа, 2022 Не надо на Юнити переходить. Оно - мертвое Ссылка на комментарий
Jordan Опубликовано 25 августа, 2022 Автор Поделиться Опубликовано 25 августа, 2022 Я сам бэкенд разработчик, основная специализация базы данных, обвязка C#. И упор на оптимизацию. Сейчас с новой работой ещё и часть фронта добавилась. Поэтому разработка даже простых 2D игр для меня в новинку.добавлено позжеНе надо на Юнити переходить. Оно - мертвоеДа это больше шутка. Пока изучишь этот юнити, проще по туториалам на С++.добавлено позжеБуду рад советам по реализации движка. Ссылки на статьи или по коду.добавлено позжеРазобрал ресурсы мода Fallout Sonora. Интересно у них можно как то попросить рендеры в 32 битном цвете и в png. Конвертирую утилитой frm2bmp, чёт цвета бледные получаются. 1 Ссылка на комментарий
Farvel Опубликовано 25 августа, 2022 Поделиться Опубликовано 25 августа, 2022 Напиши авторам. Они заходят сюда периодически Ссылка на комментарий
Jordan Опубликовано 5 сентября, 2022 Автор Поделиться Опубликовано 5 сентября, 2022 Вкрячиваю в двиг работу с json. Использую rapidjson. Не могу побороть ошибку. Ошибка заключается в том, что при чтении файла, строка заполняется так line = "\t\"Integer\": 42" Ext::Formats::TextFile* Ext::Loaders::TextFileLoader::Load(const std::string& path){_Input.open(path, std::ios::in); if (!_Input.is_open())throw Ext::Core::RuntimeError("Not found file " + path); _Result.clear(); std::string line; while (getline(_Input, line)){_Result += line;//_Result += '\n';} _Input.close(); return new Ext::Formats::TextFile(_Result);} Сам json { "Integer": 42, "Double": 36.6, "Boolean": "true", "String": "Hello, i am String!"} Когда я читаю ключ "Integer" библиотека выдает ошибка нет ключа. Но если читать как "Integer\\" всё ок.Не пойму, помечу в файле есть символ \? Кодировка файла utf8 Есть мысли? Ссылка на комментарий
Farvel Опубликовано 5 сентября, 2022 Поделиться Опубликовано 5 сентября, 2022 Писал бы ты на Java - я бы подсказал. А так, во первых лучше маппить на объект, а не коллекцию - гораздо проще использовать. На C должно быть миллион библиотек мапперов, да и текущая должна предоставлять такие возможности. Вообще, мне кажется, что вот ответ на твой вопрос - ты просто не те методы используешь. У тебя либа эскейпит кавычки из джейсона.https://stackoverflow.com/questions/60410431/writing-normal-c-string-to-rapid-json-is-resulting-in-string-with-backslash Ссылка на комментарий
Jordan Опубликовано 5 сентября, 2022 Автор Поделиться Опубликовано 5 сентября, 2022 Писал бы ты на Java - я бы подсказал. А так, во первых лучше маппить на объект, а не коллекцию - гораздо проще использовать. На C# должно быть миллион библиотек мапперов, да и текущая должна предоставлять такие возможности. Мне C# на работе хватает. Вообще, мне кажется, что вот ответ на твой вопрос - ты просто не те методы используешь. У тебя либа эскейпит кавычки из джейсона. https://stackoverflo...-with-backslash Посмотрю, файл я читаю стандартным способом. А данные символы все равно появляются. Что странно.Сделал пока, что бы работало и тесты проходились, небольшой костылёкhttps://github.com/JordanCpp/Revival/blob/master/Ext/Ext/Readers/JsonReader.cpp#L18 Зато работает, без мам, пап и смс 1 Ссылка на комментарий
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти