Плохо! Плохо!:  0
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19

Тема: Адекватное количество глобальных переменных

  1. #1
    Познающий Аватар для ZoWW
    Информация о пользователе
    Регистрация
    15.12.2013
    Сообщений
    487
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию Адекватное количество глобальных переменных

    Привет всем! В процессе проектирования игры выяснилось, что для её создания мне может потребоваться довольно большое количество глобальных переменных (пара тысяч, или больше). Знаю, что избыток переменных скажется на производительности, но какое количество считать приемлемым для компьютера со средними параметрами на сегодняшний день? Или может быть я вообще зря волнуюсь?
    И сразу же второй вопрос - если все же придется сокращать число переменных, то каким образом? Что посоветуете?

  2. #2
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    Самый простой способ - использовать переменные повторно. Обнуляешь и - вперед. Не с теми, конечно, которые работают параллельно и постоянно. Главное, не забывать, где ты их уже используешь.
    В отношении торможения... Не помню, чтобы количество переменных на что-либо влияло. Влияют параллельные процессы. Особенно, если накладываются. Иногда трудно понять, что за чем будет происходить в этом случае.

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

  3. #3
    Познающий Аватар для ZoWW
    Информация о пользователе
    Регистрация
    15.12.2013
    Сообщений
    487
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Спасибо за ответ. К сожалению обнулять переменные не выход, поскольку насколько я понимаю ноль это тоже значение и он не удаляет самой переменной, а лишь изменяет её значение на ноль. Использовать же переменные повторно... Ну... это если одна-две, а если их 2-3 тысячи... Представляете как придется убиться при отладке?
    По поводу торможения я сам сомневаюсь, но вот фраза из официального руководствва по VX Ace:
    "Вам может показаться, что раз глобальные переменные можно вызывать из любого места в программе, то они лучше, чем локальные в плане использования. Это вовсе не так. На самом деле создание множества глобальных переменных в программе не лучшим образом скажется на ее производительности, ведь все переменные хранятся в памяти."

  4. #4
    Маститый Аватар для Alisa
    Информация о пользователе
    Регистрация
    29.08.2013
    Сообщений
    1,425
    Записей в дневнике
    8
    Репутация: 76 Добавить или отнять репутацию

    По умолчанию

    Зачем вам столько переменных в игре??? Вы хотите создать искусственный интеллект на мукере?

  5. #5
    Познающий Аватар для ZoWW
    Информация о пользователе
    Регистрация
    15.12.2013
    Сообщений
    487
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Чтобы был понятнее мой вопрос попробую обрисовать свою проблему предметно.
    В игре имеется 7 городов, в каждом городе есть склад на 30 наименований товара. Между городами идет торговля и товары перевозятся торговыми караванами, т.е. передаются со склада на склад. При этом передача товаров происходит не мгновенно и товары(читай переменные) для каждого каравана (планируется минимум 7 караванов) какое-то время находятся в (памяти) караване. Получается 30х7х7=1470 переменных может быть задействовано одномоментно. А это, сами понимаете, только одна из функций игры... Конечно, если это не скажется на производительности, то сам факт такого количества переменных меня не смущает... А ну как оно будет вешать компьютер?

  6. #6
    Маститый Аватар для Alisa
    Информация о пользователе
    Регистрация
    29.08.2013
    Сообщений
    1,425
    Записей в дневнике
    8
    Репутация: 76 Добавить или отнять репутацию

    По умолчанию

    Хмм... Вы попросту запутаетесь во всех этих переменных.

  7. #7
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Alisa Посмотреть сообщение
    Зачем вам столько переменных в игре??? Вы хотите создать искусственный интеллект на мукере?
    Хмм... Вы попросту запутаетесь во всех этих переменных.
    У меня в игре пока около 300 переменных,и это сделано только малая часть механики и меню.
    Боёвка и меню на ивентах, в итоге:
    - по 4 переменных на врагах,а их пока бывает по 7 на карте= 28. Их обнуляем с каждой картой
    - как минимум по 2 переменных на движимые объекты, их штук по 10 на карте = 20
    - по 2 переменных на 54 слота инвентаря = 108
    - по 2 переменных на 54 слота меню экипировки + 5 переменных для самой экипировки = 113
    - на персонажа около 15 переменных

    Поэтому тоже ожидается пару тысяч.

    А на счет запутывания: размещаешь каждый переменный в определенных диапазонах,и записываешь эти диапазоны на листочке в духе "1-50 - переменные для героя. 50-200 - переменные для врагов, переменные 200-500 - переменные для меню".
    Поэтому путаницы вообще нет.
    Главное оставлять в этих диапазонах свободные переменные чтобы при введении новых переменных записыывать их в нужные диапазоны

  8. #8
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,940
    Записей в дневнике
    6
    Репутация: 132 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от ZoWW Посмотреть сообщение
    Чтобы был понятнее мой вопрос попробую обрисовать свою проблему предметно.
    В игре имеется 7 городов, в каждом городе есть склад на 30 наименований товара. Между городами идет торговля и товары перевозятся торговыми караванами, т.е. передаются со склада на склад. При этом передача товаров происходит не мгновенно и товары(читай переменные) для каждого каравана (планируется минимум 7 караванов) какое-то время находятся в (памяти) караване. Получается 30х7х7=1470 переменных может быть задействовано одномоментно. А это, сами понимаете, только одна из функций игры... Конечно, если это не скажется на производительности, то сам факт такого количества переменных меня не смущает... А ну как оно будет вешать компьютер?
    Ээээ... А то, что ты такие караваны вряд ли реализуешь тебя не смущает?
    У тебя глобальная карта? Или куча мелких? Да при любом раскладе это мега сложно.
    Тут похожую ситуацию обсуждали. Хотя возможно у тебя другой принцип.

  9. #9
    Хранитель Аватар для Imaginatium
    Информация о пользователе
    Регистрация
    06.12.2015
    Адрес
    АСТРАЛ
    Сообщений
    2,061
    Записей в дневнике
    51
    Репутация: 71 Добавить или отнять репутацию

    По умолчанию

    А в игре можно будет нападать на караваны?)

  10. #10
    Познающий Аватар для JackCL
    Информация о пользователе
    Регистрация
    27.07.2013
    Адрес
    Дальний Восток
    Сообщений
    554
    Записей в дневнике
    85
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от ZoWW Посмотреть сообщение
    Чтобы был понятнее мой вопрос попробую обрисовать свою проблему предметно.
    В игре имеется 7 городов, в каждом городе есть склад на 30 наименований товара. Между городами идет торговля и товары перевозятся торговыми караванами, т.е. передаются со склада на склад. При этом передача товаров происходит не мгновенно и товары(читай переменные) для каждого каравана (планируется минимум 7 караванов) какое-то время находятся в (памяти) караване. Получается 30х7х7=1470 переменных может быть задействовано одномоментно. А это, сами понимаете, только одна из функций игры... Конечно, если это не скажется на производительности, то сам факт такого количества переменных меня не смущает... А ну как оно будет вешать компьютер?
    Для удобства реализации используй массивы. А проблем с производительностью быть не должно, чай не на спектруме игру делаешь.



Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Адекватное количество глобальных переменных