Вопросы, вопросы, вопросы...
|
|
BVOG | Дата: Пятница, 24.09.2010, 14:33 | Сообщение # 46 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Quote Рекомендую установить более новые драйвера. Уже ставил - видеокарта своё поведение не изменила.
Skype: thebvog
|
|
| |
ninth | Дата: Пятница, 24.09.2010, 20:10 | Сообщение # 47 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Я специально семёрку, да ещё и x64 ставил, чтобы тестить на проблемы совместимости )) Но получается как в том анекдоте "всё работает и ничего не падает - может я что-то не так делаю?"
|
|
| |
BVOG | Дата: Пятница, 24.09.2010, 20:17 | Сообщение # 48 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Это был бы хорошо, если ошибся я, но увы видеокарта - идёт в отказ)
Skype: thebvog
|
|
| |
Michman | Дата: Пятница, 24.09.2010, 21:17 | Сообщение # 49 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
| Quote (BVOG) Это был бы хорошо, если ошибся я, но увы видеокарта - идёт в отказ) Скорее всего и впраду дрова. На не которые модели видеокарт обновления дров даже под XP раз в полгода и то не дождёшься, а на некоторые аж каждый месяц выходят. А уж под семёрку дрова не под всякое железо найти можно. Я потому на ХР и сижу, что ещё не под всё железо имеются дрова для семерки.
|
|
| |
BVOG | Дата: Понедельник, 27.09.2010, 11:46 | Сообщение # 50 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Возможно...
Skype: thebvog
|
|
| |
Michman | Дата: Понедельник, 27.09.2010, 15:09 | Сообщение # 51 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
| Никто не подскажет, как лучше хранить множество объектов с одинаковыми свойствами - в списке? Например, в стратегии, где есть различные рода войск и численность юнитов в каждом роде войск порядком 1000. Значит необходимо создать классы на каждый род войск, поскольку они всё же не совсем одинаковые - одни десантники, другие ракетчики, гренадеры и т.д. А далее при создании юнита определенного класса, инициализировать его и помещать в список, котоый будет носить имя класса. Или как правильнее будет с точки зрения Панды и производительности?
Сообщение отредактировал Michman - Понедельник, 27.09.2010, 15:18 |
|
| |
BVOG | Дата: Понедельник, 27.09.2010, 16:39 | Сообщение # 52 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| В принципе, можно копировать: Code self.myobject = loader.loadmodel("my.egg") self.myobject.copyTo(self.mycopyobject) Это на примере моделей, если не ошибаюсь, то можно это и с объектами сделать.
Skype: thebvog
|
|
| |
ninth | Дата: Понедельник, 27.09.2010, 18:33 | Сообщение # 53 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Michman, По-сути непосредственно панда здесь ни при чём - это скорее вопросы к скорости работы питона со списками. Организация зависит от того, насколько сильно различаются у тебя юниты. Имеет смысл сделать, к примеру под пехоту один класс, который будет обладать всеми возможностями всех пехотинцев (например, водить танк, стрелять из снайперской винтовки и т.п.) и по необходимости включать/выключать для определённого рода войск данную возможность - такой подход упростит жизнь, если тебе например вдруг потребуется создать уникального юнита или переопределить способности какого-то рода войск. В то же время для техники стоит делать уже свой собственный класс. А держать можно всех в одном массиве. В качестве оптимизации, можно сделать два массива - один общий, и один - "кэш". В общем держать всех юнитов, а в "кэше" тех, которые активно задействованы в игровом процессе в данный момент. BVOG, copyTo вовсе не обязательно использовать - панда сама проверяет, загружена ли модель в память и если загружена, то берёт из памяти а не с диска.
|
|
| |
Michman | Дата: Понедельник, 27.09.2010, 22:24 | Сообщение # 54 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
| Quote (ninth) По-сути непосредственно панда здесь ни при чём - это скорее вопросы к скорости работы питона со списками. Чуть-чуть неправильно понял меня, моя ошибка.) Я хотел знать - есть ли у Панды какие-либо методы для облегчения создания множества схожих или одинаковых по харктеристикам объектов(NodePath) и хранения с целью обращения к параметрам объектов. И если есть, то как в плане призводительности данный метод. В мануале я ничего похожего не нашел, потому и спрашиваю.) Как я понял из твоего поста нет ничего подобного.) Quote (ninth) А держать можно всех в одном массиве В списке или в массиве? Насколько я правильно понял из учебников по питону массивы могут хранить только лишь значения, а не объекты. Или можно и объекты в массиве хранить? Добавлено (27.09.2010, 22:24) ---------------------------------------------
Quote (BVOG) В принципе, можно копировать: Code self.myobject = loader.loadmodel("my.egg") self.myobject.copyTo(self.mycopyobject) Это на примере моделей, если не ошибаюсь, то можно это и с объектами сделать. BVOG, но в данном случае все загруженные копии будут выполнять роль статики в сцене и как обратиться к определенному объекту в данном случае при выполнении? Так травку( ) и деревья посеять можно и много другой статики.)
|
|
| |
ninth | Дата: Понедельник, 27.09.2010, 23:22 | Сообщение # 55 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Не, работа с массивами - это задача языка программирования (в данном случае либо питон либо си), а не движка. Движок лишь оперирует тем, для чего предназначен. В питоне нет массивов как таковых - заменой массива является список, а есть ещё кортеж и словарь. Кортеж - неизменяемый список, задаётся во время объявления. Словарь - именованный список, в котором к элементам можно обращаться по некоторому уникальному ключу, что характерно, ключом может быть что угодно ) Питон имеет ссылочную структуру - в переменных, в т.ч. в списках хранятся ссылки а не объекты или числа или строки или что-то ещё. А уж куда эта ссылка ведёт - это дело программиста. Строго говоря, числа и строки в питоне тоже являются объектами и имеют некоторые свойства )
|
|
| |
BVOG | Дата: Вторник, 28.09.2010, 08:55 | Сообщение # 56 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Во первых, я это для наглядности, а во вторых управление можно передать элементу массива, в скобках копирования.
Skype: thebvog
|
|
| |
Michman | Дата: Вторник, 28.09.2010, 20:57 | Сообщение # 57 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
| Quote (BVOG) Во первых, я это для наглядности, а во вторых управление можно передать элементу массива, в скобках копирования. Другое дело. Речь-то именно о массивах. Quote (ninth) Не, работа с массивами - это задача языка программирования (в данном случае либо питон либо си), а не движка. Движок лишь оперирует тем, для чего предназначен. Я просто подумал: может быть разработчики движка реализовали работу с большим количеством объектов сцены на "сишном" языке и обернули в питон. И где-то есть эти "волшебные функции", которые упростят жизнь гейм девелоперу.)))) Quote (ninth) В питоне нет массивов как таковых Как это нет массивов? А в модуле math есть массив. Конечно это не тот массив в привычном понимании. Он работает как список, только менять его длину нельзя и хранимые данные должны быть одно типа, в принципе, как обычные массивы в паскале или бейсике . Вот, что пишет Г. Россум: array - эффективные массивы чисел. Этот модуль определяет новый тип объектов array, эффективно реализующий массивы значений основных типов: символов, целых и вещественных чисел. Массивы ведут себя как аналогично спискам с одним исключением: все сохраняемые в массиве объекты должны быть одного определенного типа. Тип элементов определяется при создании массива. array(typecode [, initializer]) создает новый объект-массив, тип элементов которого определяется символом typecode, инициализирует элементами последовательности initializer(должен быть списком или обычной строкой; initializer передается методу fromlist() или fromstring() и возвращает его. typecode: 'c' - char 'b' - signed char 'B' - unsigned char 'h' - signed short 'H' - unsigned short 'i' - signed int 'I' - unsigned int 'l' - signed long 'L' - unsigned long 'f' - float 'd' - double Добавлено (28.09.2010, 16:15) --------------------------------------------- Я возвращаюсь к нашим "баранам" - к теням. Заметил такую штуку: при попытке включить тени более чем от двух Spotlight лезут ошибки. Эти ошибки мне понятны - нет пока поддержки автогенератора шейдеров для большего количества ИС, чем 2. При этом исчезают карты нормалей - на обьектах исчезает Bump. В итоге, надо самому писать шейдеры для реализации теней от большего количества ИС. Чем больше вникаешь в Панду тем больше узких мест начинаешь обнаруживать. Я не "против" Панды и "за" какого-либо другого движка. Каждый движок имеет право на существование, хотя бы для того, чтобы у разработчика игр был выбор на каком движке и ЯП ему писать стратегию, шутер, квест или что-то ещё. Но, черт возьми, так хочется гармонии в функционале движка и производительности! Одни разрабы движков гонятся за большое количество полигонов в сцене и забывают про шейдеры, у других, больше чем 8 источников света не "воткнёшь" в сцену и тени такие, что от трех-четырёх объектов(и больше в сцене ничего нет!) моя видюха "стоИт". Третьи, вообще, реализут функцию вращения камеры, не удосужившись прописать функцию получения угла поворота по оси, т.е. повернуть её можно, а взять угол на который она повернулась нельзя; приходится где-то в переменнной хранить этот угол, МАРАЗМ одним словом! Прошу прощения наболело. ) Вообщем, я что хотел спросить? А, вспомнил: при реализации нескольких диспетчеров, как они выполняются, сверху вниз - диспетчер за диспетчером или там приоритеты есть? И если для одной задачи поставить приоритет 20 а для другой 80, то что при этом происходить будет? Для задачи с приоритетом в 20 будет затрчиваться 20% процессорного времени или как? Добавлено (28.09.2010, 18:08) --------------------------------------------- Есть ли метод в Панде включающий и выключающий ИС? Например, нажав на импровизированный выключатель в игре включить свет и так же выключить. Добавлено (28.09.2010, 20:57) --------------------------------------------- Кстати, в Панде при использовании автогенератора шейдеров более 5-ти Spotlight создавать нет смысла, они попросту не работают и висят в сцене "мёртвым" грузом. При это в консоли возникают сообщения, в которых мне советуют "поковырять" профили моей видеокарты.) Другие ИС не пробовал. Может создать на форуме тему про ограничения/особенности Панды и если кто-нибудь заметит какие-либо ограничения/особенности пусть описывает. Думаю полезная тема получится, если такой нет, конечно.
Сообщение отредактировал Michman - Вторник, 28.09.2010, 16:49 |
|
| |
ninth | Дата: Среда, 29.09.2010, 19:51 | Сообщение # 58 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Quote (Michman) А в модуле math есть массив Я имел ввиду базовые возможности. Данный array потому и вынесен в math, что предназначен в основном для работы с математическими вычислениями. Мне кажется ты пытаешься смешивать понятия конструктора и движка. Панда - это движок, претендующий на универсальность, да разработчики внесли некторые элементы конструктора, но тем не менее это всё же движок. То, что хочешь ты - "волшебные функции" - характерно для конструкторов, но конструкторы как правило направлены на определённый тип игр, по крайней мере, я не видел универсальных. К примеру, реализация того-же освещения в стратегии и в шутере будет достаточно сильно различаться на уровне движка. Я пытаюсь сейчас сделать на основе панды нечто вроде расширяемого конструктора, но дело движется достаточно медленно - со временем туго. Кстати, 8 источников света - это ограничение не движка, а графических API, в данном случае, если мне не изменяет память, такое ограничение стояло на DX8. Quote (Michman) Есть ли метод в Панде включающий и выключающий ИС? Это тоже "фича" конструкторов. В панде придётся написать класс или функцию, которая будет уже рулить источниками. Если ты спрашиваешь "вообще" про возможность отключать - то да, есть, причём достаточно гибкий, к примеру можно выбрать чтобы источник освещал только определённый узел сцены. Quote (Michman) при реализации нескольких диспетчеров, как они выполняются, сверху вниз Тывсё же определись что тебе нужно - диспетчер или задачи? Потому что судя по описанию, ты говоришь о задачах, хотя называешь диспетчером. taskMgr - диспетчер (дефолтный) def myTask(task): return task.cont - задача В любом случае, если ты не реализуешь мультипоточность, все инструкции будут выполняться линейно. Quote (Michman) Может создать на форуме тему про ограничения/особенности Панды Создай, будет полезно.
|
|
| |
Michman | Дата: Четверг, 30.09.2010, 00:32 | Сообщение # 59 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
| Quote (ninth) ты говоришь о задачах, хотя называешь диспетчером. Извиняюсь, оговорился. Всё верно, спрашивал о задачах. Для меня как питон так и Панда - совершенно новое, поэтому путаюсь в терминологии). Quote (ninth) Мне кажется ты пытаешься смешивать понятия конструктора и движка Ни в коем случае). Quote (ninth) То, что хочешь ты - "волшебные функции" "Волшебные функции" - это ирония с моей стороны. Quote (ninth) Я пытаюсь сейчас сделать на основе панды нечто вроде расширяемого конструктора Желаю удачи. А цели какие? P.S. Чур не смеяться? Я "умываю руки" недельки на три; сожусь за разработку своей первой игры на Панде, всё что нужно узнал, конечно, не без помощи ninth'а и BVOG'а, за что Большое Спасибо! Как дело наберет обороты создам темку в "проектах", в которой буду описывать процесс создания игры со скриншотами. Всем желаю удачи и создать игру своей мечты не во сне, а на яву.
Сообщение отредактировал Michman - Четверг, 30.09.2010, 00:33 |
|
| |
BVOG | Дата: Четверг, 30.09.2010, 10:59 | Сообщение # 60 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Удачи с проектом!)
Skype: thebvog
|
|
| |