PMG

Форумы по созданию игр
Текущее время: 28 мар 2024 22:34

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 01:26 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Вот зашёл на ваш форум, посмотрел что люди пишут...
Я в геймдеве новенький и никак не могу определиться. Комманду набрать я несмог и несмогу, так что придётся делать всё одному. Ну и ладно, в конечном счёте я все равно не буду делать упор на графику. Есть несколько вариантов.
1. Написать 2D-Action (вид сверху). Я пытался написать на Visual Basic который я знаю на пять, но потом понял что на нём писать игры такого типо просто неэффективно. Раздобыл пособие по написанию 2D игр на C++ который я неплохо знаю и в данный момент ещё учу. Но автор этой книги ( Андре Ламот ) создал очень много ошибок в коде примеров начиная с отсутствия запятых и кончая ошибками, из-за которых программа не удаляется из памяти... Из-за этого у меня возникают трудности.
2. Написать полноценную 3D игру. Ну конечно эта идея кажется вроде бы наивной, но я изучаю сейчас OpenGL и проблем с ним нет. Написать то движок я может и смогу, но проблема заключается в том, что редактор 3D уровней я ТОЧНО не осилю, да и модельки npc придётся делать, а я в этом ничё не понимаю...
3. Написать какую либо аркаду типо танчиков "для начала". Но для начала это неправельно сказанно, так как похожую скукотень я писал уже много раз ещё когда у меня небыло инета...
Ну вот может выскажете свои мнения, рекоммендации в какую "сторону" мне лучше всего направится?

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 09:03 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
eger_666 писал(а):
Вот зашёл на ваш форум, посмотрел что люди пишут...
Я в геймдеве новенький и никак не могу определиться. Комманду набрать я несмог и несмогу, так что придётся делать всё одному. Ну и ладно, в конечном счёте я все равно не буду делать упор на графику. Есть несколько вариантов.


Значит намного и не рассчитывай.

eger_666 писал(а):
1. Написать 2D-Action (вид сверху).


Без разницы. Вернее можно писать 2D, средствами 3D. Так даже проще.

eger_666 писал(а):
Я пытался написать на Visual Basic который я знаю на пять, но потом понял что на нём писать игры такого типо просто неэффективно.


Не факт. Особенно если учесть XNA, правда там C#, но все равно он ближе к VisualBasic.

eger_666 писал(а):
Раздобыл пособие по написанию 2D игр на C++ который я неплохо знаю и в данный момент ещё учу. Но автор этой книги ( Андре Ламот ) создал очень много ошибок в коде примеров начиная с отсутствия запятых и кончая ошибками, из-за которых программа не удаляется из памяти... Из-за этого у меня возникают трудности.


Не рекомендовал бы Ла Мота.

eger_666 писал(а):
2. Написать полноценную 3D игру.


Это тяжело и трудно.

eger_666 писал(а):
Ну конечно эта идея кажется вроде бы наивной, но я изучаю сейчас OpenGL и проблем с ним нет. Написать то движок я может и смогу, но проблема заключается в том, что редактор 3D уровней я ТОЧНО не осилю, да и модельки npc придётся делать, а я в этом ничё не понимаю...


Лучше тогда взять что-то готовое и потом приспособиться к нему.

eger_666 писал(а):
3. Написать какую либо аркаду типо танчиков "для начала". Но для начала это неправельно сказанно, так как похожую скукотень я писал уже много раз ещё когда у меня небыло инета...
Ну вот может выскажете свои мнения, рекоммендации в какую "сторону" мне лучше всего направится?


Для начала в 3D сойдет: terrain, animation, а может и BSP. Тогда можно и автоматически генерировать уровни...

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 10:49 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
А чем тебе ламот ненравится? Тем что у него в коде ошибки и опечатки? Просто многие говорят что неплохо бы прочитать...

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 11:30 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
to eger_666
Ламот - реальный чел!
Я использовал его OutPost для проекта в ИТМО.
Конечно, я добавил своего, но в основном неделю разбирался в коде: в его BOB-ах и.т.д
В результате прокатило и я поступил.
Сейчас учусь по NeHe OpenGl, если захочешь побольше узнать об OpenGl советую!
Желаю тебе удачи в освоении ЛаМота, DirectX и игростроении!

P.S Классная книга написана Мозговым: "Занимательное программирование"(есть в сети), может заинтересует.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 12:24 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Ну спасибо конечно, но вот с уроками от этого NeHe у меня тоже проблема. Самый первый урок - написал всё как на сайте, пришлось добавить tchar.h и поставить на multi-byte, в итоге прога всётаки запустилась но никак не реагирует, видимо что-то с обработчиком сообщений... И чё за "занимательное программирование" от Мозгового??? Там про какой язык?

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 13:19 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
Цитата:
в итоге прога всётаки запустилась но никак не реагирует, видимо что-то с обработчиком сообщений...

У меня была аналогичная проблема.
Вот работающий код:
Код:
LRESULT CALLBACK WndProc( HWND hWnd,
             UINT uMsg,
             WPARAM wParam,
             LPARAM lParam)
{
   switch (uMsg)
   {
   
   case WM_ACTIVATE:
      if (!HIWORD( wParam ))
         active = TRUE;
      else
         active = FALSE;
   break;

   case WM_SYSCOMMAND:
      switch ( wParam )
      {
      case SC_SCREENSAVE:
      case SC_MONITORPOWER:
         return 0;
      }
      return DefWindowProc( hWnd, uMsg, wParam, lParam );
   break;

   case WM_CLOSE:
      PostQuitMessage(0);
   break;

   case WM_KEYDOWN:
      keys[wParam] = TRUE;
   break;

   case WM_KEYUP:
      keys[wParam] = FALSE;
   break;
   
   case WM_SIZE:
      ReSizeGLScene( LOWORD(lParam), HIWORD(lParam) );
   break;

   default:
      return DefWindowProc( hWnd, uMsg, wParam, lParam );
   }

   return 0;
}


Возможно из-за этого:
Обрати внимание на WM_SYSCOMMAND, если wparam НЕ SC_SCREENSAVE или SC_MONITORPOWER, то нужно передать сообщение window-cкому обработчику сообщений
( return DefWindowProc( hWnd, uMsg, wParam, lParam ) ) , в противном случае прога не будет реагировать.

У меня еще возникла такая проблема:
CreateWindow отказывался работать, а все потому что имена класса и окна не совпадали:
wc.lpszClassName = "OpenGL"; CreateWindowEx(...,"Open GL",...) :-D

Может не знаешь, для каждого урока есть исходный код, его можно скачать на странице NeHE нажав на английское название урока(в самом начале каждого урока)

Цитата:
И чё за "занимательное программирование" от Мозгового??? Там про какой язык?

Скачай и узнаешь! ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 13:58 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Вставка ( return DefWindowProc( hWnd, uMsg, wParam, lParam ) ) непомогла.
Названия класов действительно оказались разныма. Я подправил это. Теперь появляется сообщение о невозможности создать окно. Может исходник дать?

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 14:01 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Ещё к сведению: окно "прозрачное" - то есть всё что за ним - видно, но при перемещении это все смазывается. Это стопудняк из-за неисправности обработчика...

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 14:11 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
Выложи код прямо в форум или прикрепи файл


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 14:31 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Сайт никакие файлы принимать не хочет, пишет что расширение запрещено, а при вставке в пост удаляются все пробелы так я воздержался...
http://ifolder.ru/6923317

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:28 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
Все работает! :cheers:

Для начала избався от warningov, добавь в самый конец WinMain
Код:
WinMain (...)
{
.....
TerminateGLWindow();
return msg.wParam;
}

И от еще одного:
CreateGLWindow ( .... , bool fullscreenflag ) bool, а не boolean

При попытке поменять полноэкранный на оконный режим получил BOX:
During transition to/out of fullscreen mode was an error! Please notify us about it by e-mail: eger_666@mail.ru
Порадовал! :-D

Перейдем к ошибкам\опечаткам

1)функция CreateGLWindow
Между if ( !SetPixelFormat ( hDC, PixelFormat, &pfd ) ) и if ( !wglMakeCurrent ( hDC, hRC ) )
ты пропустил кусок:
Код:
if( !( hRC = wglCreateContext( hDC ) ) )
{
        TerminateGLWindow();
   MessageBox( NULL, "Can't Create A GL Rendering Context.", "ERROR", MB_OK | MB_ICONEXCLAMATION);
   return FALSE;
}


2) обработчик событий
Было:
Код:
   case WM_KEYDOWN:
      {
         Keys[wParam] = false;
         return ( 0 );
      } //case

Стало:
Код:
case WM_KEYDOWN:
   {
      Keys[wParam] = true;
      return ( 0 );
   } //case


Enjoy OpenGl!

P.S. И у меня и у NeHe вместо true стоит TRUE, вместо false стоит FALSE
Сделать это можно с помощью ctrl + H
Кстати ctrl + F - поиск


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:34 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Так, щас буду разбираться...

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:38 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 28 янв 2008 19:24
Сообщения: 230
Откуда: Санкт Петербург
Цитата:
Раздобыл пособие по написанию 2D игр на C++ который я неплохо знаю и в данный момент ещё учу. Но автор этой книги ( Андре Ламот ) создал очень много ошибок в коде примеров начиная с отсутствия запятых и кончая ошибками, из-за которых программа не удаляется из памяти... Из-за этого у меня возникают трудности.

Какие именно ошибки, текст в студию? Я вроде читал Ламота, но ошибок не обнаружил.
Цитата:
Не рекомендовал бы Ла Мота.

Почему? Ламот ваще чувак рульный, я сам по нему учился.

_________________
С уважением, Андрей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:46 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Maxi_daxi, спасибо, шоб я без тебя делал =)
Но вот у меня пара мизерных вопросов:
Чем отличается BOOL от boolean и чем отличается NULL от 0 ???

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:47 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
To Infrno... к примеру в главах где рассказывается про добавление ресурсов, он говорит про какой то файл .Ж :D
Или к примеру он пишет вместо #include, ftinctude :D

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB