1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

ArcanumWorld - открытая реализация движка Arcanum

Тема в разделе "Мастерская", создана пользователем Jordan 63, 9 окт 2023.

  1. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    454
    Приветствую!

    Сссылка на репозиторий Lib-LDL/ArcanumWorld at master · JordanCpp/Lib-LDL

    Данный проект является тестовым полигоном к проекту по реализации фреймворка LDL. На нём я тестирую API фреймворка, удобство разработки, реализую недостающий функционал. И конечно же реализую свободный и открытый движок моей любимой игры.

    Движок совместим с ресурсами игры. Умеет читать графику art и работать с архивами игры dat. Проект на начальном этапе. Доступен только вывод простой карты. Карту можно перемещать клавишами w,a,s,d.

    Я не стремлюсь к реализации 1 к 1. То есть, игра будет использовать графику, звуки и архивы игры. Но скриптовая система будет конвертирована в С++ код. Скрипты для игры будут разрабатываться на С++. Я понимаю, что это спорный момент, но для меня как разработчика, убирает большое количество работы с интеграцией интерпритируемых языков, стыковкой с движком, тестированием и другими мелкими проблемами, которые следует решить.

    Ещё реазличия, это использование текстовых, человекочитаемых файлов для описания карт, характеристик монстров и юнитов. На данный момент мне не известен формат карт игры. Но в будущем думаю, получится конвертировать оригинальные карты в текстовый формат xml, который поддерживает движок.

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

    Так как движок разрабатывается на фреймворке LDL, собирается и работает на всех версиях windows + linux.

    Сделал сборку совместимую c windows 95 и выше, код не переписывал под конктретную версию windows, фреймворк довольно хорошо абстрагирует нижележащую систему. Под linux выявил проблему несоответсвия путей между двумя система. Доработаю этот момент.

    Сссылка на архив. Распакуйте в любой каталог и запустите ArcanumWorld.exe
    По умолчанию, в движке включен рендер OpenGL 1.2
    ArcanumWorld.zip

    agithub.com_JordanCpp_ArcanumWorld_raw_main_screenshots_0.png
     
    Последнее редактирование: 9 окт 2023
    mcrstar, spitefultomato, Neitan и 5 другим нравится это.
  2.  
  3. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    454
    По мере развития проекта, буду выносить общий код во фреймворк, к примеру работу с тайловой картой, анимацией и т.д Что бы можно было использовать код повторно. Некий общий мини 2D движок, который облегчит перенос старых или создание новых 2D игр.
    --- добавлено 9 окт 2023, предыдущее сообщение размещено: 9 окт 2023 ---
    Как реализую поддержку ttf шрифтов во фреймворке, в игре появится поддержка unicode текса, сразу для всех систем. Не нужно создавать битмамы растровых шрифтов ограниченных кодировкой ascii. Полноценнная локализация игры будет работать и на windows 95.

    Так же в движке есть зачатки простого GUI. Он в будущем так же будет перенесен во фреймворк. Главное отработать код и концепцию в игре и сделать его универсальным.

    Проект некий полигон для тестов и разработки. Но это ни в коей мере не невилирует его ценность как открытой альтернативой движка для игры Arcanum.
     
    Последнее редактирование: 9 окт 2023
    Neitan, Tigoro и Dar_Morar нравится это.
  4. Tigoro

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    2.863
    Вроде бы ожидаемое для компиляции под линукс на данный момент )

    ArcanumWorld-main/dependencies/LDL/dependencies/freetype/builds/windows/ftsystem.c:30:10: fatal error: windows.h: Нет такого файла или каталога
    30 | #include <windows.h>
    | ^~~~~~~~~~~
    compilation terminated.
    make[2]: *** [dependencies/LDL/CMakeFiles/freetype.dir/build.make:818: dependencies/LDL/CMakeFiles/freetype.dir/dependencies/freetype/builds/windows/ftsystem.o] Ошибка 1
    make[1]: *** [CMakeFiles/Makefile2:826: dependencies/LDL/CMakeFiles/freetype.dir/all] Ошибка 2
    make: *** [~/downloads/ArcanumWorld-main/Makefile:136: all] Ошибка 2

    Если не должно быть с этим проблем, потом потыкаю ещё.
     
    Последнее редактирование: 10 окт 2023
  5. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    454
    Починил сборку. Не нужн запускать никаких скриптов.

    1. git clone GitHub - JordanCpp/Lib-LDL
    2. cd Lib-LDL
    3. cmake .
     
    Tigoro нравится это.
  6. Tigoro

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    2.863
    Можно переместить карту верх-вниз-налево-направо и вроде бы все. Почему инфоокно поверх карты большое (в отличии от скрина разработчика), это не понятно, возможно нужно на чистом дистрибутиве попробовать. Debian 12.

    2023-10-11--1696973432_834x661_scrot.png
     
    Dar_Morar нравится это.
  7. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    454
    Так и должно быть. Размер инфоокна 300x300. Это часть реализации GUI для игры. Всё собирается и работает как нужно.

    Пока это максимальный функционал.
     
    Tigoro нравится это.
  8. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    454
    Я как раз этого и добиваюсь. Сейчас движок используя только API фреймворка, собирается и работает идентично на windows и linux. Чем больше я буду обеспечивать поддержку других систем, тем больше проектов на LDL будут на них одинаково работать. Просто нужно будет перекомпилировать под систему, не переписывая код.

    Есть проблемы которые невозможно решить.

    1. Это поддержка кодировки в системе.
    К примеру берем windows 95 она не поддерживает unicode. Есть такой вариант. Windows 95 c поддержкой русской и английской локали будет работать с английским и русским юникодом без специальных знаков если конвертировать данную строку в acsii строки, согласно локали. Но если это будет другая локаль к примеру unicode на греческом языке, данную строку невозможно конвертировать в acsii. В итоге мы можем работать с юикодом в системе, но только если она совпадает с локалью. Это актуально для функционала который получает и отправляет текстовые данные в систему. Удалить файл по имени, переименовать, выбор файла и т.д Если для таких целей использовать только английский, то проблем нет.

    Фреймворк поддерживает freetype и может выводить на экран любой юникод, так как текст это просто изображение.

    2. Тема многопоточного кода.
    Такой код не будет работать на старых операционных системах. Если требуется обеспечить работу начиная с windows 95, только одно ядро.

    3. Функционал которого нет в старых ОС, поддержка мультитач, дополнительное управление дисплеем, DPI и т.д Для обеспечения возможности сборки фреймворка для старых систем, будут реализованы заглушки, которые ничего не делают. Пример это поддержка прокрутки колесиком мыши. Его можно задействовать в коде, но на Windows 95 работать не будет.

    Если писать под современные операционные системы, ограниений нет.
     
    Gamerun, Dar_Morar и Tigoro нравится это.
  9. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    454
    На данный момент момент движок игры пишу на С++11 версии. Решил понизить версию до С++98 на более старый стандарт. Делаю это для того, что бы движок мог собираться нативно на очень старых операционных системах. Некий проект для рекламы возможности фреймворка и движка. Хоть во фреймворке есть примеры, но думаю, что интересней всегда запускать игры.
     
    mcrstar, Gamerun, Tigoro и ещё 1-му нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление