Current time: 13.05.2024, 23:09 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Python-скрипты для Героев
Author Message
Sav Offline

Posts: 2180
Post: #12

Berserker Wrote:Ещё остаётся проблема сериализации-сохрания-десириализации-загрузки данных модулей, размер этих данных, возможность отгрузки/перезагрузки модулей на лету и другие "мелочи".

Пока придумал вот что:


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

В самом модуле должны храниться только статические части скрипта (функции, классы, константы и т. д.), а так же временные переменные, которым не нужно быть сохранёнными при сохранении игры. Для меняющихся данных (глобальных переменных, не содержащих кода) выделяется специальный словарь (каждому модулю), доступ к которому есть из функций скрипта (но, скорее всего, не из его собственного кода без функций. В этом случае будет зарезервированная функция "init_", выполняющаяся при инициализации модуля, после того, как туда добавится ссылка на его словарь).

При сохранении игры сохраняется код скриптов из оперативной памяти (просто строки: имена файлов и их содержимое), а так же словари данных (скорее всего, при помощи стандартного питоновского модуля "pickle").

При загрузке игры сохранённый код скриптов выполняются (каждый в своём модуле), после этого распаковываются словари данных.

При экспортировании - код скриптов из оперативной памяти записывается в файлы.

При импортировании происходит резервное сохранение словарей данных, очистка всего, инициализация скриптов, восстановление словарей.


Учитывая, что инициализация - не очень тяжёлая команда (она, по сути, только объявляет функции и т. п.), всё должно быть довольно быстро.
Что с объёмом памяти сейва - представить сложно. Но, насколько я понимаю, строки неплохо запаковываются, и в запакованном виде он будет не так и велик.

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

Как с кампаниями - не знаю. Просто не обладаю информацией, о том, что там куда сохраняется.
(This post was last modified: 21.10.2011 23:51 by Sav.)
21.10.2011 23:51
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Python-скрипты для Героев - Sav - 18.10.2011, 23:41
RE: Python-скрипты для Героев - etoprostoya - 18.10.2011, 23:59
RE: Python-скрипты для Героев - Sav - 19.10.2011, 00:20
RE: Python-скрипты для Героев - Berserker - 19.10.2011, 00:24
RE: Python-скрипты для Героев - etoprostoya - 19.10.2011, 00:32
RE: Python-скрипты для Героев - Sav - 19.10.2011, 00:58
RE: Python-скрипты для Героев - fireman - 19.10.2011, 16:11
RE: Python-скрипты для Героев - Sav - 19.10.2011, 22:38
RE: Python-скрипты для Героев - etoprostoya - 20.10.2011, 00:02
RE: Python-скрипты для Героев - Sav - 20.10.2011, 00:52
RE: Python-скрипты для Героев - Berserker - 20.10.2011, 15:30
RE: Python-скрипты для Героев - Sav - 21.10.2011 23:51
RE: Python-скрипты для Героев - GhostManSD - 27.10.2011, 16:17
RE: Python-скрипты для Героев - etoprostoya - 27.10.2011, 17:27
RE: Python-скрипты для Героев - Sav - 27.10.2011, 17:55
RE: Python-скрипты для Героев - Sav - 29.10.2011, 00:11
RE: Python-скрипты для Героев - GhostManSD - 29.10.2011, 00:18
RE: Python-скрипты для Героев - Sav - 29.10.2011, 00:37
RE: Python-скрипты для Героев - fireman - 29.10.2011, 03:51
RE: Python-скрипты для Героев - Sav - 29.10.2011, 09:54
RE: Python-скрипты для Героев - fireman - 29.10.2011, 12:32
RE: Python-скрипты для Героев - Sav - 29.10.2011, 12:39
RE: Python-скрипты для Героев - fireman - 29.10.2011, 12:41
RE: Python-скрипты для Героев - Sav - 29.10.2011, 14:27
RE: Python-скрипты для Героев - fireman - 30.10.2011, 01:58
RE: Python-скрипты для Героев - etoprostoya - 30.10.2011, 01:59
RE: Python-скрипты для Героев - fireman - 30.10.2011, 02:22
RE: Python-скрипты для Героев - Sav - 30.10.2011, 10:25
RE: Python-скрипты для Героев - fireman - 30.10.2011, 14:23
RE: Python-скрипты для Героев - Sav - 31.10.2011, 01:13
RE: Python-скрипты для Героев - GhostManSD - 31.10.2011, 14:17
RE: Python-скрипты для Героев - Sav - 31.10.2011, 18:54
RE: Python-скрипты для Героев - GhostManSD - 01.11.2011, 01:45
RE: Python-скрипты для Героев - Sav - 01.11.2011, 10:04
RE: Python-скрипты для Героев - Berserker - 01.11.2011, 15:54
RE: Python-скрипты для Героев - Sav - 01.11.2011, 20:03
RE: Python-скрипты для Героев - Berserker - 01.11.2011, 21:08
RE: Python-скрипты для Героев - Sav - 01.11.2011, 22:16
RE: Python-скрипты для Героев - Sav - 01.11.2011, 23:00
RE: Python-скрипты для Героев - Berserker - 01.11.2011, 23:01
RE: Python-скрипты для Героев - Sav - 02.11.2011, 17:59
RE: Python-скрипты для Героев - Berserker - 02.11.2011, 18:14
RE: Python-скрипты для Героев - Sav - 19.11.2011, 20:57
RE: Python-скрипты для Героев - Berserker - 19.11.2011, 21:03
RE: Python-скрипты для Героев - etoprostoya - 19.11.2011, 21:33
RE: Python-скрипты для Героев - Sav - 20.11.2011, 00:31
RE: Python-скрипты для Героев - GhostManSD - 09.03.2012, 23:22
RE: Python-скрипты для Героев - Sav - 09.03.2012, 23:26
RE: Python-скрипты для Героев - fireman - 03.01.2013, 00:21
RE: Python-скрипты для Героев - Sav - 03.01.2013, 00:42

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group