Topic: Вылет Игры Продолжается

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

Re: Вылет Игры Продолжается

Здравствуйте, пожалуйста, опишите вашу проблему более подробно. Когда происходят вылеты, куда выкидывает в главное меню или на рабочий стол, с какой периодичностью? Также отправьте хар-ки вашего ПК.

Re: Вылет Игры Продолжается

Вылеты можно сказать на 100%, когда едешь на машине. Залутался по полной, в багажнике лут. Еду на продажу, тут просадка, все встает колом и вылет на рабочий стол. Ошибок ни каких не выдает.
Характеристики:
Проц - i5 4440
Видие - GTX 760 4g, 256 шина
Память - 16 гиг

Re: Вылет Игры Продолжается

Dead_Mazay wrote:

Вылеты можно сказать на 100%, когда едешь на машине. Залутался по полной, в багажнике лут. Еду на продажу, тут просадка, все встает колом и вылет на рабочий стол. Ошибок ни каких не выдает.
Характеристики:

такая же фигня ...

cool big_smile cool

Re: Вылет Игры Продолжается

Dead_Mazay wrote:

Вылеты можно сказать на 100%, когда едешь на машине. Залутался по полной, в багажнике лут. Еду на продажу, тут просадка, все встает колом и вылет на рабочий стол. Ошибок ни каких не выдает.
Характеристики:
Проц - i5 4440
Видие - GTX 760 4g, 256 шина
Память - 16 гиг

Благодарим за информацию!

Re: Вылет Игры Продолжается

Уважаемые разработчики!
Вылет игры, при быстром движении, как я понимаю, связан с
подгрузкой очередного террейна во время цикла рендеринга (do....while) графического движка. Так как в цикле рендеринга вызывается процедура отрисовки данных в графической карте посредством процедур (SetStreamSource, SetIndices, DrawIndexedPrimitive), то необходимо создать флаг-проверки (например RendrFlag) окончательной загрузки данных в графическую карту, при подгрузке новой порции террейна. Иначе возникает коллизия, связанная с невозможностью чтения данных из памяти, т.к. они блокируются оператором ...->Lock. А возможен доступ к данным памяти только после оператора ...->Unlock.
Поэтому, все вызываемые процедуры отрисовок в рендеринге необходимо поместить в тело проверки этого флага (RenderFlag). Пока новые данные терейна будут копироваться посредством оператора CopyMem, цикл do...while будет работать в холостую, без отрисовок. Например (С++):

do // начало цикла рендеринга
{
  if (RenderFlag){
   //блок отрисовок
   //названия отрисовок условные
   
   TerrainDraw(); 
   WaterDraw();
   SkyDraw();
   ..............
   ...->EndScene;
   ...->Present(0, 0, 0, 0); 
  }

}while (/*условие выполнения цикла*/); // конец цикла рендеринга

//Процедура подгрузки террейна
void TerrainLoad (){

  RenderFlag = false;
  ..................
  vtxBufTerr->Lock;
  CopyMem Ptr, VertTerr[0], LenVertTerr;
  vtxBufTerr->Unlock;
  ..................
  RenderFlag = true;
}

//Процедура отрисовки террена
viod TerrainDraw(){
  ...............
  ...->SetStreamSource (0, vtxBufTerr, 0, lenVertTerr....);
  ...->SetIndices (idxBufTerr)
  ...->DrawIndexedPrimitive (D3DPT_.....);
}

Если моя информация вам поможет, то буду рад.
Удачи вам!

Re: Вылет Игры Продолжается

Old Maple wrote:

Уважаемые разработчики!
Вылет игры, при быстром движении, как я понимаю, связан с
подгрузкой очередного террейна во время цикла рендеринга (do....while) графического движка. Так как в цикле рендеринга вызывается процедура отрисовки данных в графической карте посредством процедур (SetStreamSource, SetIndices, DrawIndexedPrimitive), то необходимо создать флаг-проверки (например RendrFlag) окончательной загрузки данных в графическую карту, при подгрузке новой порции террейна. Иначе возникает коллизия, связанная с невозможностью чтения данных из памяти, т.к. они блокируются оператором ...->Lock. А возможен доступ к данным памяти только после оператора ...->Unlock.
Поэтому, все вызываемые процедуры отрисовок в рендеринге необходимо поместить в тело проверки этого флага (RenderFlag). Пока новые данные терейна будут копироваться посредством оператора CopyMem, цикл do...while будет работать в холостую, без отрисовок. Например (С++):

do // начало цикла рендеринга
{
  if (RenderFlag){
   //блок отрисовок
   //названия отрисовок условные
   
   TerrainDraw(); 
   WaterDraw();
   SkyDraw();
   ..............
   ...->EndScene;
   ...->Present(0, 0, 0, 0); 
  }

}while (/*условие выполнения цикла*/); // конец цикла рендеринга

//Процедура подгрузки террейна
void TerrainLoad (){

  RenderFlag = false;
  ..................
  vtxBufTerr->Lock;
  CopyMem Ptr, VertTerr[0], LenVertTerr;
  vtxBufTerr->Unlock;
  ..................
  RenderFlag = true;
}

//Процедура отрисовки террена
viod TerrainDraw(){
  ...............
  ...->SetStreamSource (0, vtxBufTerr, 0, lenVertTerr....);
  ...->SetIndices (idxBufTerr)
  ...->DrawIndexedPrimitive (D3DPT_.....);
}

Если моя информация вам поможет, то буду рад.
Удачи вам!

Здравствуйте! Обязательно передадим эту информацию разработчикам, большое спасибо smile