несколько комнат
| |
zaicev9797 | Дата: Суббота, 23 Февраля 2013, 17:49 | Сообщение # 1 |
AbRaKaDaBrA
Сейчас нет на сайте
| можно ли сделать в гамаке так: я нахожусь в комнате 1 есть еще комнаты 2 и 3 во всех этих комнатах есть какиенибуть штуки, которые делают какуюнибуть фигню. можно ли чтоб ОДНОВРЕМЕННО во ВСЕХ комнатах эти штуки делали какуюнибуть фигню?
проект Mysterious Space. The losted moment
|
|
| |
MR_Borg | Дата: Суббота, 23 Февраля 2013, 18:02 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Нет, обновление идет только активной комнаты.
Изучаю C++ попутно пишу игру.
|
|
| |
zaicev9797 | Дата: Суббота, 23 Февраля 2013, 18:08 | Сообщение # 3 |
AbRaKaDaBrA
Сейчас нет на сайте
| блин вот кака то
проект Mysterious Space. The losted moment
|
|
| |
GameMix | Дата: Суббота, 23 Февраля 2013, 18:15 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| zaicev9797, а для чего тебе это надо? Скорее всего, можно по-другому реализовать задуманное.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
zaicev9797 | Дата: Суббота, 23 Февраля 2013, 18:21 | Сообщение # 5 |
AbRaKaDaBrA
Сейчас нет на сайте
| в икс три играли?
проект Mysterious Space. The losted moment
|
|
| |
MR_Borg | Дата: Суббота, 23 Февраля 2013, 18:36 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Цитата (zaicev9797) в икс три играли? Делай все в одной комнате, ничего сложного там небудет.
Изучаю C++ попутно пишу игру.
|
|
| |
zaicev9797 | Дата: Суббота, 23 Февраля 2013, 18:57 | Сообщение # 7 |
AbRaKaDaBrA
Сейчас нет на сайте
| ну ужешь был разговор: ВИСНЕТ
проект Mysterious Space. The losted moment
|
|
| |
MR_Borg | Дата: Суббота, 23 Февраля 2013, 19:04 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Конкретно что виснет и вообще гм нагрузить так талант нужен
Изучаю C++ попутно пишу игру.
|
|
| |
GameMix | Дата: Воскресенье, 24 Февраля 2013, 08:05 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Цитата (MR_Borg) Конкретно что виснет и вообще гм нагрузить так талант нужен Талант нужен, чтобы заставить не виснуть хорошую игру на ГМ ^^
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
zaicev9797 | Дата: Понедельник, 25 Февраля 2013, 10:32 | Сообщение # 10 |
AbRaKaDaBrA
Сейчас нет на сайте
| если обьектов в комнате больше милиона(игра реально очень масштабной должна получиться) даже мощный комп дымиться начнет (у меня 2.7 ггц-не очень мощный ,но всеже)
проект Mysterious Space. The losted moment
|
|
| |
GameMix | Дата: Понедельник, 25 Февраля 2013, 14:13 | Сообщение # 11 |
старожил
Сейчас нет на сайте
| zaicev9797, для таких случаев существует такая отличная штука, как деактивация экзмепляров - instance_deactivate(). Также, есть функции для деактивации объектов в определённой области. Их тоже можно использовать
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
zaicev9797 | Дата: Понедельник, 25 Февраля 2013, 14:24 | Сообщение # 12 |
AbRaKaDaBrA
Сейчас нет на сайте
| не, фишка в том что все обьекты(которые далеко находятся) должны работать ,но какбы в облегченной форме (в них должны содержаться только переменные о место положении повороте спрайта и несколько других переменных и они должны постоянно изменяться) без визуализирования
вы вобще играли в икс три ,икс два , икс беянд зэ фронтер, ну или элит вроде .вот там сошлепана экономическая система (в играх серии икс) которая работает всегда и во всей вселенной ,но при этом там много секторов которые загружаются вроде как отдельно друг от друга а торговци реально по ним летают (по этим секторам ) и улетев из одного сектора они обязательно появятся в другом и в любом секторе кого угодно может кто угодно завалить.я вот вобще честно не знаю как они это замутили
проект Mysterious Space. The losted moment
Сообщение отредактировал zaicev9797 - Понедельник, 25 Февраля 2013, 14:25 |
|
| |
MR_Borg | Дата: Понедельник, 25 Февраля 2013, 15:32 | Сообщение # 13 |
участник
Сейчас нет на сайте
| Ну и что сложного то? У тебя как организованны просчеты всех объектов? Если делать так как в X3 то нужно обрабатывать все группами а не общей кучей. Много можно приводить примеров, погугли в инете хватает алгоритмов оптимизации.
Изучаю C++ попутно пишу игру.
|
|
| |
USeR14 | Дата: Понедельник, 25 Февраля 2013, 16:48 | Сообщение # 14 |
RUSOriginal Studio
Сейчас нет на сайте
| В Икс 3 не играл, играл в Космических рейнджеров. Но суть вроде понял. Такая система довольна сложна в исполнении, где по большей мере происходит все рандомно. Можно попробовать все организовать через скрипты, глобальные и локальные переменные - возможно что-то подобное получиться.
Например, объект "Звездолет" (со своими переменными "Броня", "Деньги", "Оружие", "Инвентарь" и пр., которые записываются по ходу игры), летит из одного сектора в другой, исчезает из поля зрения и деактивируется. Далее в дело вступают скрипты. С кораблем может произойти все что угодно: активируется скрипт "рандомности", потом из выпавшего набора событий выбирается одно (к примеру, "Атака другого звездолета"), вычисляется итог боя из записанных ранее данных о корабле, и, уже исходя из итога, выполняется другое событие. И так для каждого "активного" объекта.
Думаю, что так и построена система игровой вселенной. Хотя могу ошибаться.
|
|
| |
zaicev9797 | Дата: Вторник, 26 Февраля 2013, 10:28 | Сообщение # 15 |
AbRaKaDaBrA
Сейчас нет на сайте
| вот это уже ближе к делу
проект Mysterious Space. The losted moment
|
|
| |
Gammeza | Дата: Вторник, 26 Февраля 2013, 10:38 | Сообщение # 16 |
постоянный участник
Сейчас нет на сайте
| Все что могу сказать использую construct, переменные, типа 0 или 1. if 0 then ... else ... Только понадобится оч. много переменных. можно и запутаться При переходе на определенную локацию, типа start to layout, читается переменная, по таймеру можно задать повтор проверки.
Сообщение отредактировал Gammeza - Вторник, 26 Февраля 2013, 10:43 |
|
| |
zaicev9797 | Дата: Четверг, 21 Марта 2013, 11:49 | Сообщение # 17 |
AbRaKaDaBrA
Сейчас нет на сайте
| а у меня появилась идея. может быть просто создать объект в котором хранятся все данные о всех игровых объектах записанные в переменных (координаты,состояние брони, груз который они перевозят,и.т.д.) и изменять по определенным законам. (по моей логике должно получиться так: есть три сектора-комнаты.игрок находится в первом. из третьего во второй летит пират т.е.его координаты приближаются к координатам портала ведущего в сектор 2. в момент когда координаты пирата становятся равны координатам портала переменная отвечающая за то в каком секторе находится пират изменяется. дальше координаты пирата рандомно изменяются (летает туда сюда). в секторе 2 также летает транспортный корабль (его координаты записаны в том самом обьекте хранящем все данные о игровых обьектах) и когда координаты становятся наиболее приближенными к координатам транспорта пират выбирает нападать или не нападать.по оприделенным законам учитывая мощность пушек пирата и транспорта и мощность их защиты от переменных отвечающих за их жизнь отнимаются числа (идет бой).в ходе боя игрок прилетает в сектор и данные об обьектах бирутся из того самого обьекта который отвечает за все игровые обьекты и в соответствии с ними создаются обьекты пирата и транспорта с заданными параметрами.) помоему все получиться должно идеально. может быть в рейнджерах(кстати на днях в них поиграл) и в икс три/два сделано именно так .
проект Mysterious Space. The losted moment
Сообщение отредактировал zaicev9797 - Четверг, 21 Марта 2013, 11:51 |
|
| |
noname | Дата: Четверг, 21 Марта 2013, 19:53 | Сообщение # 18 |
заслуженный участник
Сейчас нет на сайте
| Цитата (zaicev9797) вы вобще играли в икс три ,икс два , икс беянд зэ фронтер, ну или элит вроде .вот там сошлепана экономическая система (в играх серии икс) которая работает всегда и во всей вселенной более чем уверен, что во всех этих играх обсчитывается только небольшой кусок, где есть игрок. изменения в другой системе просчитываются во время прыжка туда.
цены на товары на конкретной планете могут зависеть от текущего игрового времени:
1. каждая планета "знает" свои средние цены на каждый товар и максимальный разброс цен и доп число сдвига (в Элите эти данные не хранились, а вычислялись по особой формуле в момент посещения планеты. формула была подобрана так, чтобы близкие входные значения давали большой разброс на выходе. то есть- фактически, был реализован свой генератор случайных чисел).
2. когда игрок влетает в очередную звёздную систему, цены на каждый товар на каждой планете вычисляются по формуле типа y=a+b*sin(c*x+d)+r x- текущее игровое время a- средняя цена на данный товар b- максимальный разброс цен на товар d- доп число сдвига, нужное для того, чтобы сдвинуть синусоиду вправо или влево. то есть, чтобы пики и спады цен происходили не синхронно, а как угодно. c- доп число, влияющее на частоту пиков и спадов. r- какое-то случайное число, генерящееся при входе в сектор. может быть как положительным так и отрицательным.
по-моему так.
хорошо, если сможешь сделать, чтобы число a сильно различалось для планет, далёких друг от друга. дабы поощрить дальние перелёты. ну и логично же- на близком расстоянии цены сглаживаются в результате торговли.
число b не должно быть слишком большим, чтобы игрок не сидел на одной планете. его роль в том, чтобы имитировать экономические процессы, а не в том, чтобы игрок наживался сидя на одном месте(хотя и предотвратить такое тоже сложно. но можно добиться того, чтобы дальние перелёты были выгоднее).
число r должно влиять ещё меньше чем b, чтобы сохранить иллюзию какой-то системной деятельности. при большом разбросе r получим хаос.
3. можно учесть влияние на цены особых факторов: - тип планеты: аграрная, рудодобывающая, высокоразвитая и т.п. - изредка случающиеся события (эпидемия, беспорядки, небывалый урожай и т.п.) ну и тому подобное.Добавлено (21.03.2013, 19:53) ---------------------------------------------
Цитата (zaicev9797) может быть в рейнджерах(кстати на днях в них поиграл) и в икс три/два сделано именно так . трудно сказать, как это делается в современных играх. раньше стопудово стремились обсчитывать только то, что рядом. да и не совсем раньше- в Обливионе обсчитывается поведение персонажей только в соседних секторах с игроком.
и всегда раньше стремились как можно меньше просчитывать и как можно больше генерить рандомно(напр состав и положение кораблей в другом секторе).
а в современных играх...
в-общем, делают примерно так: детально просчитывается только поведение того, что рядом. как только что-то вылетает за пределы сектора, оно приписывается к другому сектору. а в других секторах просчёт идёт не детально, а в общих чертах. то есть, на новую ситуацию влияет не столько старая ситуация, сколько какие-то внутренние события: концентрация пиратов в некоем месте, решение военных собраться там-то и напасть туда-то и тому подобное. детально ситуация генерится только в момент влёта игрока в сектор.
бои так же ведутся не детально, а в-общих чертах. так, например, в homm1..3 игроманы замечали, что битвы компа с монстрами на карте не всегда дают правдоподобный результат(напр комп может убить призраков большой армией слабых монстров). это потому что битвы без участия человека считаются упрощённо- сравниваются силы войск и вычисляются потери.
проблема в том, чтобы игрок не встретил косяков, если захочет гиперпрыгать за каким-нить кораблём и проследить за ним. проще всего это сделать, просчитывая поведение кораблей в соседних секторах. а если возможно гиперпрыгать в очень большое число мест, то лучше всего продолжать детально отслеживать путь кораблей, виденных игроком, до тех пор, пока они не удалятся от него достаточно далеко.
в-общем, имитация жизни большой вселенной имеет свои ньюансы. но обычно это бывает именно имитацией.
все правила форумной игры Дуэль Программистов
Сообщение отредактировал noname - Четверг, 21 Марта 2013, 19:30 |
|
| |
zaicev9797 | Дата: Пятница, 22 Марта 2013, 07:47 | Сообщение # 19 |
AbRaKaDaBrA
Сейчас нет на сайте
| но фактически данные об обьектах можно записывать в отдельный обьект предназначеннай для этого и в нужный момент брать эти данные из этого самого обьекта и на их основе создавать обьекты в нужном месте в нужном полжении? верть верно?
проект Mysterious Space. The losted moment
|
|
| |
noname | Дата: Пятница, 22 Марта 2013, 11:40 | Сообщение # 20 |
заслуженный участник
Сейчас нет на сайте
| Цитата (zaicev9797) но фактически данные об обьектах можно записывать в отдельный обьект предназначеннай для этого и в нужный момент брать эти данные из этого самого обьекта и на их основе создавать обьекты в нужном месте в нужном полжении? верть верно? тут ты говоришь о каких-то заморочках гамака, с которым я плохо знаком. если в гамаке данные об объектах лучше хранить в отдельном объекте- ну храни их там. к вопросу моделирования большой вселенной это отношения не имеет. ещё бывает удобно хранить данные в массивах или создают другие структуры. массивы достаточно хороши и в гамаке точно должны быть.
к вопросу моделирования большой вселенной имеет отношение то, как ты будешь работать с этими данными, где бы они ни хранились: вот, ты знаешь текущие координаты игрока. что ты будешь делать со своими данными об объектах, чтобы вывести то, что игрок должен видеть?
и как будешь просчитывать поведение объектов?
все правила форумной игры Дуэль Программистов
Сообщение отредактировал noname - Пятница, 22 Марта 2013, 11:47 |
|
| |
|