Полезное

Мы Вконтакте

Discord канал

#
123456 ... 26
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 708
WssIDs писал(а):
https://forums.unrealengine.com/showthread.php?137724-Saving-Whole-Actors-in-SaveGame
Вот плагин для сохранения и загрузки.

Как по мне систему сохранения и загрузки лучше на плюсах написать, используя сериализацию.

Спасибо, но хотелось бы, что-то уже встроенное по дефолту в движок освоить )
_________________
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

Изображение
Аватара пользователя
Пользователь
Сообщения: 183
(_-=ZhekA=-_) писал(а):
Я не понимаю, почему тут все так сложно??? Почему эпики не сделали уже готовую, какую-нибудь систему, которая будет сама сохранять все переменные, значения и все необходимое, чтобы не нужно было усложнять себе жизнь и писать еще 100500 тонн логики, чтобы просто тупо сохранить или загрузить игру ... (

Это зачёт! Это как раз из разряда поисков кнопки "сделать крутую игруху".
Дело в том, что гейм инстанс и есть то самое "готовое решение". Анрил любят сравнивать с Юнити, вот посмотри, для примера, как там устроено - никакого аналога гейм инстанс нет (плэйер префс не в счёт), сохранение/загрузку (сериализацию/десериализацию) надо писать вручную.
А тут гейм инстанс - готовый класс, вся сериализация/десериализация уже написана за тебя и скрыта в недрах движка - просто записывай в него данные и получай их оттуда.
Что может быть ещё проще, если честно, непонятно.
Аватара пользователя
Пользователь
Сообщения: 708
Monokarp писал(а):
(_-=ZhekA=-_) писал(а):
Я не понимаю, почему тут все так сложно??? Почему эпики не сделали уже готовую, какую-нибудь систему, которая будет сама сохранять все переменные, значения и все необходимое, чтобы не нужно было усложнять себе жизнь и писать еще 100500 тонн логики, чтобы просто тупо сохранить или загрузить игру ... (

Это зачёт! Это как раз из разряда поисков кнопки "сделать крутую игруху".
Дело в том, что гейм инстанс и есть то самое "готовое решение". Анрил любят сравнивать с Юнити, вот посмотри, для примера, как там устроено - никакого аналога гейм инстанс нет (плэйер префс не в счёт), сохранение/загрузку (сериализацию/десериализацию) надо писать вручную.
А тут гейм инстанс - готовый класс, вся сериализация/десериализация уже написана за тебя и скрыта в недрах движка - просто записывай в него данные и получай их оттуда.
Что может быть ещё проще, если честно, непонятно.

С юнити не работал и не хочу. Как правильно записать данные в гейм инстанс и потом получать их?
_________________
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

Изображение
Аватара пользователя
Пользователь
Сообщения: 183
(_-=ZhekA=-_) писал(а):
С юнити не работал и не хочу. Как правильно записать данные в гейм инстанс и потом получать их?

Да я и не предлагаю работать с Юнити. Юню я привёл для примера, просто чтоб показать, что в Анриле сохранение/загрузка итак круто и удобно сделаны "из коробки", тут радоваться надо, а не жаловаться на отсутствие волшебной кнопки.
А передавать/получать данные в ГИ - на то уроков немерено, тут не о чем на форуме спрашивать. Не забудь только свой созданный ГИ в прожект сеттингс указать чтоб каст не фейлился - это частая ошибка, новички забывают об этом а потом бегут на форумы с криками что "у меня Гейм Инстанс не работает".
Аватара пользователя
Пользователь
Сообщения: 4069
(_-=ZhekA=-_) писал(а):
С юнити не работал и не хочу. Как правильно записать данные в гейм инстанс и потом получать их?

данные записывать в Гэйм Инстанс не обязательно, данные берутся оттуда - откуда надо, те которые надо записываются в "SaveGame" и оттуда потом извлекаются.

Изображение

p.s. но гэйминстанс необходим хотя бы для того, что бы знать что у тебя идет процесс загрузки. Для этого в гэйминстансе должна быть булевая переменная, которая принимает значение True когда начинается загрузка, и False по окончанию процесса.

Изображение


Пошагово, мой вариант
Для сохранения
1. все нужные ссылки переменные запиcываются в в Level Logik
2. из ссылок посредством логики извлекаются все нужные переменные и записываются в SaveGame
Для загрузки
1. Из SaveGame все переменные записываются в Level Logig
2. Из полученных переменных строится логика.

Изображение


вот приближенный вариант, в данном случае спавнятся боты и устанавливаются им нужные параметры, из полученных переменных
Изображение

вот сохранение и загрузка в самом боте
Изображение

вот кусочек процесса извлечения переменных из SaveGame в LevelLogik
Изображение
Аватара пользователя
Пользователь
Сообщения: 708
Prytaleks
Спасибо, за пояснения )
Хочу попробовать сделать, так как я это вижу в данный момент, конечно же пока понятно не все, но что-то уже есть, если я где-то ошибся, то поправьте меня ) Буду писать постепенно по пунктам. )
Итак приступим:

1. Я создал БП файл PlayerSaveGame "парент класс SaveGame" в нем я создал пока часть переменных, которые нужно будет сохранять с префиксом Save для удобства, чтобы небыло путаницы.

http://pix.academ.info/img/2017/09/11/8 ... ccc7f8.jpg

2. В самом чарактере "в персонаже" я создал две функции - "сохранение" и "загрузка" по слоту. В функции "сохранение" я взял переменые из PlayerSaveGame и в них я записываю переменные, которые нужно сохранить, они имеют одинаковое имя, опять же, чтобы небыло путаницы.

http://pix.academ.info/img/2017/09/11/0 ... a119bd.jpg

http://pix.academ.info/img/2017/09/11/a ... cf1e54.jpg

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

http://pix.academ.info/img/2017/09/11/7 ... 999c63.jpg

http://pix.academ.info/img/2017/09/11/5 ... 616a8d.jpg

На этом у меня мысли пока закончились, если кто-то подскажет, что делать дальше, то буду рад! )
Такой вариант реализации данной системы норм или хрень?
_________________
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

Изображение
Аватара пользователя
Пользователь
Сообщения: 1341
я бы взял урок Фланки или эпиков и сделал для начала как у них, чтобы понять как все работает
_________________
прикрепленные картинки с radikal не смотрю.
Аватара пользователя
Пользователь
Сообщения: 4069
(_-=ZhekA=-_) писал(а):

На этом у меня мысли пока закончились, если кто-то подскажет, что делать дальше, то буду рад! )

вот так у меня начинается загрузка, код в кнопке виджета(Загрузить)
Изображение

сначала открывается левел, в гэйминстанс идет инфо что это загрузка, для начала в функции "загрузить" у персонажа используй ноду SetActorTransform. Установи таким образом положение персонажа, которое ты сохранишь. И так мало по малу, опиши все.
Аватара пользователя
Пользователь
Сообщения: 179
Хоть тысячи переменных, все равно считываешь каждую и записываешь в файл, да хоть мильион.
Аватара пользователя
Пользователь
Сообщения: 708
Появилось время и я опять сел за уе4, чтобы победить эту систему сохранения и загрузки ) Перенес проект на 4.17.2 кое-что пришлось немного править, но в целом норм и в новой версии зависания и вылеты пропали, так что можно работать нормально! )

Цитата:
Для этого в гэйминстансе должна быть булевая переменная, которая принимает значение True когда начинается загрузка, и False по окончанию процесса.

Я правильно понял, что в геймИнстансе нужно ПРОСТО создать булевую переменную?


LEX38RUS писал(а):
Хоть тысячи переменных, все равно считываешь каждую и записываешь в файл, да хоть мильион.

Это я уже давно понял, что не все так просто )
_________________
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

Изображение


Сейчас этот форум просматривают: Google [Bot] и гости: 13

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница