Перейти к содержимому

Сообщений в теме: 72
Фотография

Fallout 2 - Reference Edition: Изучаем и улучшаем движок игры

Fallout 2 RE Reverse engineering Улучшение Изучение Движка Reference Edition

#21 Mr.Сталин

Mr.Сталин

    *** Destroy u$a ***

  • Desert Rangers
  • PipPipPipPipPip
  • 5 672 сообщений

Отправлено 17 Май 2022 - 23:54

Экспериментирую с движком. Так и не получается, запустить в окне. Но получилось запустить в нативном 1366x768

тебе там надо переделать инициализацию DirectDraw7 и еще написать дополнительный код для того чтобы это работало в окне.

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

то что некоторые писали, что там есть смена режимов, то это была их дилетантская некомпетентность.

 

короче открываешь код sfall последней версии и смотришь как там реализован DirectDraw7

вот даже сслыку дам чтоб долеко не ходил https://github.com/F.../DirectDraw.cpp

думаю разберешься в моем С++ говнокоде))


sFall 5.0 - Официальная и расширенная версия для Fallout 2.

Fallout Proto Manager v1.4.0 - Создание и редактирования прототипов файлов.

sFall Script Editor v4.1.7.RC1 - Написание скриптов и отладки диалогов.

Mapper by Dims v0.99.3 - Обновленный редактор карт c дополнительными возможностями.

Другие утилиты для моддинга Fallout.



#22 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 18 Май 2022 - 00:02

Мр.Сталин приобщайся уже к коду, он не кусается.:)

Таких делов натворим:):):)

добавлено позже

тебе там надо переделать инициализацию DirectDraw7 и еще написать дополнительный код для того чтобы это работало в окне.
если хочешь сменить разрешение то тогда тебе придется переписывать кучу кода в движке, так он не заточен на смену разрешения.
то что некоторые писали, что там есть смена режимов, то это была их дилетантская некомпетентность.
 
короче открываешь код sfall последней версии и смотришь как там реализован DirectDraw7
вот даже сслыку дам чтоб долеко не ходил https://github.com/F.../DirectDraw.cpp
думаю разберешься в моем С++ говнокоде))


Спасибо за инфу. Да я не играл в нативном разрешении, но панелька уже уехала. Весь интерфейс захардкожен.
Норм код, мне вообще за говнокод платят.:)


#23 Mr.Сталин

Mr.Сталин

    *** Destroy u$a ***

  • Desert Rangers
  • PipPipPipPipPip
  • 5 672 сообщений

Отправлено 18 Май 2022 - 00:04

Не моих сил на наполеоновские планы не хватит.))

когда закончат с СИ кодом, исправят все внесенные баги, тогда и попробуем.

а сейчас там мне делать нечего.

 

можешь прикручивать SDL (который я не уважаю)


sFall 5.0 - Официальная и расширенная версия для Fallout 2.

Fallout Proto Manager v1.4.0 - Создание и редактирования прототипов файлов.

sFall Script Editor v4.1.7.RC1 - Написание скриптов и отладки диалогов.

Mapper by Dims v0.99.3 - Обновленный редактор карт c дополнительными возможностями.

Другие утилиты для моддинга Fallout.



#24 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 18 Май 2022 - 00:15

Не моих сил на наполеоновские планы не хватит.))
когда закончат с СИ кодом, исправят все внесенные баги, тогда и попробуем.
а сейчас там мне делать нечего.
 
можешь прикручивать SDL (который я не уважаю)


Наполеоновские планы это мои мысли по реорганизации движка. Если я за это возьмусь, то только после полировки уже финальной версии кода. Явно не скоро. Просто буду развивать двиг, изучать код, баги править, фичи из sfall'а переносить.

Какой ты видишь альтернативу SDL? Отрисовка будет в буфер, SDL подходит для кроссплатформенности, и в нем так же минуя заморочки с текстурами можно выводить буфер . Будут те же +100500 fps.

добавлено позже

Ещё SDL можно собрать статически, и будет единый exe. Ещё плюс это поддержка большого количества платформ, android тот же. У тебя есть шанс стать android разработчиком. :)


#25 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 18 Май 2022 - 23:43

При компиляции C++ компилятором, всего обнаружено 351 ошибка. Пока исправил 150. Это простые ошибки, приведение void*. Есть посложнее. Но на сегодня хватит.:)

добавлено позже

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

добавлено позже

Для лучшего понимания кода, пытаюсь писать тесты насколько это позволяет код. К примеру есть работа с прото файлами. Я вызываю загрузку прото файла и передаю в функцию путь к прошнику. После чего. Я могу вызывать другие функции, которые изменяют или возвращают значения прото файла. Так же проверяю каждый вызов, что он возвращает правильные данные. К примеру читаем криттера, после загрузки мы знаем, что у него сила = 5 и проверяем данный стат. Если значения равны, то все работает как и было, но если нет значит я, при изменении кода, что то поломал.
Особенно написание тестов помогает в понимании происходящего под капотом. И при изменении определенного участка кода с уже написанными тестами, легко выявить какие изменения поломали логику работы, просто запустив написанные тесты.


#26 Mr.Сталин

Mr.Сталин

    *** Destroy u$a ***

  • Desert Rangers
  • PipPipPipPipPip
  • 5 672 сообщений

Отправлено 19 Май 2022 - 03:58

Какой ты видишь альтернативу SDL?

SFML


sFall 5.0 - Официальная и расширенная версия для Fallout 2.

Fallout Proto Manager v1.4.0 - Создание и редактирования прототипов файлов.

sFall Script Editor v4.1.7.RC1 - Написание скриптов и отладки диалогов.

Mapper by Dims v0.99.3 - Обновленный редактор карт c дополнительными возможностями.

Другие утилиты для моддинга Fallout.



#27 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 19 Май 2022 - 07:43

SFML


Почти тоже самое, что sdl. Имеет нативный C++ интерфейс.

добавлено позже

Лично для меня, не принципиально, что использовать.


#28 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 19 Май 2022 - 19:02

Автор проекта перенес графическую часть движка на кроссплатформенную библиотеку SDL2.

Сам проект
https://github.com/a...lov/fallout2-ce

Его сообщение об этом
https://github.com/a...t2-re/issues/87


#29 Mr.Сталин

Mr.Сталин

    *** Destroy u$a ***

  • Desert Rangers
  • PipPipPipPipPip
  • 5 672 сообщений

Отправлено 20 Май 2022 - 01:35

Автор проекта перенес графическую часть движка на кроссплатформенную библиотеку SDL2.

Мне фиолетово куда он там перенес.

Ты делай на SFML, с++ приятнее, и перспективнее.


sFall 5.0 - Официальная и расширенная версия для Fallout 2.

Fallout Proto Manager v1.4.0 - Создание и редактирования прототипов файлов.

sFall Script Editor v4.1.7.RC1 - Написание скриптов и отладки диалогов.

Mapper by Dims v0.99.3 - Обновленный редактор карт c дополнительными возможностями.

Другие утилиты для моддинга Fallout.



#30 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 20 Май 2022 - 13:32

 

Мне фиолетово куда он там перенес.
Ты делай на SFML, с++ приятнее, и перспективнее.

 

Нужно взять SDL2 версию, и заменить на SFML.

 

Так осталось исправить 60 ошибок.

 

После исправления 100500 ошибок удалось скомпилировать как C++ код. При загрузке игры сразу run time error:)

Удалось собрать код как С++ и исправить падения. Немного поиграл, падений не было.

 

Теперь можно разрабатывать на С++.

 

Теперь осталось понять как мержиться с основной веткой и получать исправления багов.

 

Залил на свой гитхаб.
https://github.com/J...ference-Edition

добавлено позже

На гит физически добавил библиотеки zlib и fpattern. Собирается студией 2019 и 2022.

добавлено позже

Нужно смержиться с SDL версией движка. После чего выделить основные файлы движка в библиотеку. Для возможности писать тесты.

Внес изменения из SDL2 версии. Пришлось поправить код. Игра запускается, но в главном меню не работает курсор. Невозможно даже начать игру.

 

Как поправлю, сделаю коммит на гитхаб.




#31 Генерал Максон

Генерал Максон

    Товарищ Генерал

  • R.S.M.
  • 3 883 сообщений
  • Откуда:Бункер Братства Стали

Отправлено 21 Май 2022 - 09:23

Немного не по теме, но меня всегда удивляло, почему в Fallout 1 и 2 нет возможности пользоваться "горячими клавишами" в главном меню? В играх прошлых лет это ведь была распространённая практика.

Поправьте меня, если я не прав, но, вроде на титульном экране работает только мышь. 




#32 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 21 Май 2022 - 09:36

Немного не по теме, но меня всегда удивляло, почему в Fallout 1 и 2 нет возможности пользоваться "горячими клавишами" в главном меню? В играх прошлых лет это ведь была распространённая практика.

Поправьте меня, если я не прав, но, вроде на титульном экране работает только мышь. 

 

В главном меню из горячих клавиш работает Esc и Ctrl-R.

 

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

Воть, только через 20 лет узнал:)

добавлено позже

В главном меню, нажмите N и при выборе персонажа T.


  • Генерал Максон это нравится


#33 Генерал Максон

Генерал Максон

    Товарищ Генерал

  • R.S.M.
  • 3 883 сообщений
  • Откуда:Бункер Братства Стали

Отправлено 21 Май 2022 - 13:39

Jordan, надо же! Всё-таки работают! Тоже узнал только спустя два десятилетия :)




#34 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 21 Май 2022 - 14:36

Перенес поддержку SDL2. Корректно работает в полно экранном режиме. если играть в окне проблемы с мышью.

 

Вот архив с исполняемым файлом. https://github.com/J...fallout2-re.zip

 

Распаковать в папку игры и запустить fallout2-re.exe

добавлено позже

Думаю, что правильнее перенести изменения по поддержке С++ в проект автора https://github.com/a...lov/fallout2-ce. Так как автор продолжает фиксить баги. И уже от этой ветки сделать форк.




#35 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 21 Май 2022 - 19:55

https://github.com/a...lov/fallout2-ce

 

Данный проект является переводом движка на SDL2 + автор перевел исходники на C++.

 

Если создавать форки, то именно от этой версии.

 

Предлагаю переносить функционал Sfall именно в эту ветку.




#36 Mr.Сталин

Mr.Сталин

    *** Destroy u$a ***

  • Desert Rangers
  • PipPipPipPipPip
  • 5 672 сообщений

Отправлено 21 Май 2022 - 20:06

нет возможности пользоваться "горячими клавишами" в главном меню?

есть. просто их никто не юзает. по тыкай по клавиатуре и запиши на память.


sFall 5.0 - Официальная и расширенная версия для Fallout 2.

Fallout Proto Manager v1.4.0 - Создание и редактирования прототипов файлов.

sFall Script Editor v4.1.7.RC1 - Написание скриптов и отладки диалогов.

Mapper by Dims v0.99.3 - Обновленный редактор карт c дополнительными возможностями.

Другие утилиты для моддинга Fallout.



#37 Mr.Сталин

Mr.Сталин

    *** Destroy u$a ***

  • Desert Rangers
  • PipPipPipPipPip
  • 5 672 сообщений

Отправлено 21 Май 2022 - 23:44

Предлагаю переносить функционал Sfall именно в эту ветку.

Я не буду участвовать в этой оргии - для меня в этом нет смысла.

У русских все рано будет свой проект, зачем нам эти забугорные.


sFall 5.0 - Официальная и расширенная версия для Fallout 2.

Fallout Proto Manager v1.4.0 - Создание и редактирования прототипов файлов.

sFall Script Editor v4.1.7.RC1 - Написание скриптов и отладки диалогов.

Mapper by Dims v0.99.3 - Обновленный редактор карт c дополнительными возможностями.

Другие утилиты для моддинга Fallout.



#38 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 22 Май 2022 - 00:28

Сделал форк. Первым изменением добавил класс FpsLimiter, для ограничения fps в игре. Теперь ноут не шумит.

 

Вот форк.

https://github.com/J...Cpp/fallout2-ce

добавлено позже

Я не буду участвовать в этой оргии - для меня в этом нет смысла.

У русских все рано будет свой проект, зачем нам эти забугорные.

Я сделал форк. Теперь это мой проект, и можем пилить без забугорных, но изменения из их проектов, исправлении багов, можем мержить в свой проект. И делиться тоже.

 

Я могу добавить в описание Russian Edition:)

добавлено позже

Мр. Сталин делай форк вноси изменения. Как только в проекте поправят баги внесённые при декомпиляции, можем залить на Gitflic и уже дорабатывать там. Или давай зальем проект на Gitflic, я буду в свой форк вытягивать изменения и делиться с тобой. Будем разрабатывать вместе и изменениями делиться.

добавлено позже

Работы полно, нужно интерфейс подправить для высоких разрешений как размер, так и позиционирование.


Вот прошляпил. Отправил реквест от мастера:)
https://github.com/a...lout2-ce/pull/8

добавлено позже

Мр. Сталин как ты видишь разработку? Объясни план действий.


#39 Mr.Сталин

Mr.Сталин

    *** Destroy u$a ***

  • Desert Rangers
  • PipPipPipPipPip
  • 5 672 сообщений

Отправлено 22 Май 2022 - 04:23

Я пока отдыхаю (от кода движка F2).

а то мозг уже закипает от этого с/с++, я пока на с#/vb.net проги по обновляю. уже соскучился по .net
 

Мр. Сталин как ты видишь разработку? Объясни план действий.

Пока думаю, обдумываю.

Но походу планы у нас с тобой будут расходится. Ты слишком на глобальные планы замахнулся.

Хотя может я буду параллельно и твоим форком заниматься и sfall не бросать.

 

Работы полно, нужно интерфейс подправить для высоких разрешений как размер, так и позиционирование.

окна да там легко все, да и для HRP все есть уже в sfall, надо скопировать код.

блин щас реально нет желания, пока заниматься этими исходниками.


sFall 5.0 - Официальная и расширенная версия для Fallout 2.

Fallout Proto Manager v1.4.0 - Создание и редактирования прототипов файлов.

sFall Script Editor v4.1.7.RC1 - Написание скриптов и отладки диалогов.

Mapper by Dims v0.99.3 - Обновленный редактор карт c дополнительными возможностями.

Другие утилиты для моддинга Fallout.



#40 Jordan

Jordan

    Выживший

  • автор темы
  • Desert Rangers
  • PipPip
  • 118 сообщений
  • Откуда:Самара

Отправлено 22 Май 2022 - 09:30

Я пока отдыхаю (от кода движка F2). а то мозг уже закипает от этого с/с++, я пока на с#/vb.net проги по обновляю. уже соскучился по .net

 

Я наоборот отдыхаю от C#, соскучился по байтоложеству на С++ :)

 

 

Пока думаю, обдумываю. Но походу планы у нас с тобой будут расходится. Ты слишком на глобальные планы замахнулся. Хотя может я буду параллельно и твоим форком заниматься и sfall не бросать.

Нет глобальных планов (по крайней мере в ближайшей перспективе), просто развивать двиг, править баги, рефакторить. Не хотелось бы разделяться на проекты без весомой причины. Моддеров мало, нам нужно наоборот двигать проект вместе.

добавлено позже

окна да там легко все, да и для HRP все есть уже в sfall, надо скопировать код. блин щас реально нет желания, пока заниматься этими исходниками.

 

На данный момент высокие разрешения работаю нормально, просто некоторые окна и панели находятся в левом верхнем углу.

 

Я хочу заниматься исходниками. Но прям беда с этими глобальными переменными. Если я пишу новый класс и хочу его заюзать, нужно или явно передавать через параметры, а значит нужно пробрасывать через все вызовы. Или создавать глобальный объект и юзать. Не хочется синглтоны по всему движку размазывать.

 

Или параллельно  переносить переработанный функционал движка, в новый. Но это так просто мысли.



Авторизуйтесь для ответа в теме
Новых тем нет

Похожие темы


Количество пользователей, читающих эту тему: 0

0 members, 0 guests, 0 anonymous users