PMG
https://www.forum.pmg.org.ru/

Создание и реализация 3D Экшена Колобок
https://www.forum.pmg.org.ru/viewtopic.php?f=4&t=567
Страница 1 из 11

Автор:  Tiger [ 07 июл 2006 15:05 ]
Заголовок сообщения:  Создание и реализация 3D Экшена Колобок

Игра Колобок будет создаваться на C++ под Linux, Windows 98,XP,Vista с использованием DirectX 9.0, OpenGL.
При создании игры Колобок будут использоваться следующие инструменты:
Компилятор MS Visual C++ 2005 Express, DirectX 9.0 SDK, 3DS MAX 7.0, OpenGL.

Автор:  Tiger [ 07 июл 2006 15:07 ]
Заголовок сообщения: 

Идея сюжета принадлежит NETLIB.

Итак игра КОЛОБОК

Нафиг всех пэкманов, у нас своих героев хватает.
Сценарий: я от бабушки ушел, я от дедушки ушел, я от зайца ушел, я от волка ушел, от медведя ушел и от тебя лиса тоже уйду.

Детализация: игровое поле состоит из дорожек по которым бегает колобок. В центре игрового поля стоит изба из которой выходят монстры, гоняющиеся за колобком - дед, бабка, заяц, волк, медведь. Задача колобка - пробежать по всем дорожкам и не попасться монстрам. Пройденные поля отмечаются. Когда отмечены все поля - происходит переход на новый уровень. Между уровнями происходит схватка с боссом - лисой. Колобок должен запрыгнуть ей на нос и спрыгнуть, пока его не съели. Количество запрыгиваний зависит от уровня (чем выше уровень, тем проворней лиса и тем больше раз колобок должен прыгнуть ей на нос).

На уровнях есть различные дорожки с разными свойствами (например, по песку колобок бежит медленнее, чем по земле и т.д.) также на дорожках могут встречаться различные призы (как полезные, так и вредные).

Технические подробности
Игра делается под DirectX (если найдется человек, готовый адаптировать ее под Open GL - пожалуйста). Распространение Freeware с исходными текстами. Команды никакой нет (если хотите - присоединяйтесь). Специального графического движка тоже нет - слишком ничтожна задача, чтобы разрабатывать для нее движок.

Сроки

Игра будет закончена к лету 2007 года. Ход разработки будет освещаться в этой ветке форума.

Автор:  Tiger [ 07 июл 2006 15:09 ]
Заголовок сообщения: 

Переодически в этой теме будут появляться новости о ходе работы над игрой.

Автор:  Tiger [ 08 июл 2006 21:42 ]
Заголовок сообщения: 

Помогите срочно нужна помошь.
Не удаётся скомпилировать код:
Код:
// INCLUDES ///////////////////////////////////////////////
#define WIN32_LEAN_AND_MEAN  // just say no to MFC
#pragma comment(lib,"dxguid.lib")
#pragma comment(lib,"d3d9.lib")

#include "windows.h"   // include important windows stuff
#include "windowsx.h"

#include <d3d9.h>
#include "xdirect3d.h"

// defines for windows
#define WINDOW_CLASS_NAME "WINXCLASS"  // class name

// setup a 640x480 16-bit windowed mode example
#define WINDOW_TITLE      "Kolobok"

// PROTOTYPES /////////////////////////////////////////////
// game console
int Init_Game();
int Main_Game();
int Shutdown_Game();

// GLOBALS ////////////////////////////////////////////////
HWND main_window_handle           = NULL; // save the window handle
HINSTANCE main_instance           = NULL; // save the instance

// FUNCTIONS //////////////////////////////////////////////

LRESULT CALLBACK WindowProc(HWND hwnd,
                      UINT msg,
                            WPARAM wparam,
                            LPARAM lparam)
{
// this is the main message handler of the system
PAINTSTRUCT   ps;         // used in WM_PAINT
HDC         hdc;      // handle to a device context

// what is the message
switch(msg)
   {   
   case WM_CREATE:
        {
      // do initialization stuff here
      return(0);
      } break;

    case WM_PAINT:
         {
         // start painting
         hdc = BeginPaint(hwnd,&ps);

         // end painting
         EndPaint(hwnd,&ps);
         return(0);
        } break;

   case WM_DESTROY:
      {
      // kill the application         
      PostQuitMessage(0);
      return(0);
      } break;

   default:break;

    } // end switch

// process any messages that we didn't take care of
return (DefWindowProc(hwnd, msg, wparam, lparam));

} // end WinProc

// WINMAIN ////////////////////////////////////////////////
int WINAPI WinMain(   HINSTANCE hinstance,
               HINSTANCE hprevinstance,
               LPSTR lpcmdline,
               int ncmdshow)
{
WNDCLASSEX winclass; // this will hold the class we create
HWND      hwnd;    // generic window handle
MSG         msg;       // generic message

// first fill in the window class stucture
winclass.cbSize         = sizeof(WNDCLASSEX);
winclass.style         = CS_DBLCLKS | CS_OWNDC |
                          CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc   = WindowProc;
winclass.cbClsExtra      = 0;
winclass.cbWndExtra      = 0;
winclass.hInstance      = hinstance;
winclass.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
winclass.hCursor      = LoadCursor(NULL, IDC_ARROW);
winclass.hbrBackground   = (HBRUSH)GetStockObject(BLACK_BRUSH);
winclass.lpszMenuName   = NULL;
winclass.lpszClassName   = WINDOW_CLASS_NAME;
winclass.hIconSm        = LoadIcon(NULL, IDI_APPLICATION);

// save hinstance in global
main_instance = hinstance;

// register the window class
RegisterClassEx(&winclass);

// create the window
hwnd = CreateWindowEx(NULL,                         // extended style
                      WINDOW_CLASS_NAME,            // class
                 WINDOW_TITLE,                 // title
                 WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION,
                 0,0,                           // initial x,y
                 SCREEN_WIDTH,SCREEN_HEIGHT,   // initial width, height
                 NULL,                           // handle to parent
                 NULL,                           // handle to menu
                 hinstance,                    // instance of this application
                 NULL);                       // extra creation parms

// save main window handle
main_window_handle = hwnd;

Init_Game();

// enter main event loop
while(1)
   {
   if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
      {
      // test if this is a quit
        if (msg.message == WM_QUIT)
           break;
   
      // translate any accelerator keys
      TranslateMessage(&msg);

      // send the message to the window proc
      DispatchMessage(&msg);
      } // end if
   
    // main game processing goes here
    Main_Game();

   } // end while

// shutdown game and release all resources
Shutdown_Game();

return 0;
}

//////////////////////////////////////////////////////////

int Init_Game()
{
Init_Direct3D();
return 0;
}

//////////////////////////////////////////////////////////

int Main_Game()
{
return 0;
}

//////////////////////////////////////////////////////////

int Shutdown_Game()
{
return 0;
}

//////////////////////////////////////////////////////////


Компилятор выдаёт следуюшие ошибки:
Цитата:
1>.\game.cpp(108) : error C2440: '=' : cannot convert from 'const char [10]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>.\game.cpp(127) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [10]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast


Кто-нибудь знает как исправить эти ошибки и чем они вызваны. =)

Автор:  MagicWolf [ 10 июл 2006 09:08 ]
Заголовок сообщения: 

Ошибка 1 - приведение типов, вторая тоже самое.

Автор:  Tiger [ 10 июл 2006 12:47 ]
Заголовок сообщения: 

Цитата:
Ошибка 1 - приведение типов, вторая тоже самое.

Вопрос был не в том что это за ошибки ,а как их исправить и чем они вызваны.
Я нерасчитавал что мне кто-то ответит и поэтому решил ответ поискать в интернете.
И вот что мне удалось найти:
Цитата:
Visual C++ 2005 по умолчанию настроено на использование юникода.
Это всё легко исправить при создании проекта снять значение использовать юникод.

Вот как нужно отвечать.Просто и ясно.

Но всё равно MagicWolf спасибо за совет!!! =)

Автор:  Tiger [ 10 июл 2006 12:55 ]
Заголовок сообщения: 

Я вижу MagicWolf вы хотите присоединиться к проекту.
Чтож милости просим. =)

P.S. Если я ошибся и вы нехотите присоединятся к проекту.
То хотелосьбы знать причины:
Почему вам ненравиться мой проект? :-(
Что вас в нём не устраивает? :-(

Автор:  ypp [ 10 июл 2006 13:46 ]
Заголовок сообщения: 

:D

...

Immortal писал(а):
также на дорожках могут встречаться различные призы (как полезные, так и вредные).


Вопрос с точки зрения геймдизайна. Допустим на одной дорожке встечается "вредный приз". Естественно игрок не захочет его брать, но для прохождения уровня нужно пробежать по этой дорожке. Получается:
1) Заставляем игрока сделать то, чего он не хочеть - взять плохой приз.
2) Не даем игроку показать свои способности и избегать подобных "бяк".
Еще несколько таких моментов и игрок может подумать, что его тут "за лоха держат" и выкинуть игру. Или може я не прав?

Автор:  Tiger [ 10 июл 2006 15:00 ]
Заголовок сообщения: 

VPP писал(а):
Цитата:
Immortal писал(а):
также на дорожках могут встречаться различные призы (как полезные, так и вредные).

Если ты незаметил то идея сценария принадлежит NETLIBу.
Поэтому все вопросы насчёт сценария и тех подержки к нему!!! =)

Цитата:
Вопрос с точки зрения геймдизайна. Допустим на одной дорожке встечается "вредный приз". Естественно игрок не захочет его брать, но для прохождения уровня нужно пробежать по этой дорожке.

Основа сценария взята у Netliba, но это незначит что я собираюсь его слизовать как корова. :D
Естественно сценарий который будет использоваться в игре будет значительно доработан.
В доработаном сценарии игрок небудет знать хороший это приз или плохой.Он узнает об этом только тогда когда его возьмёт!!! =)

Цитата:
Еще несколько таких моментов и игрок может подумать, что его тут "за лоха держат" и выкинуть игру. Или може я не прав?

Эта игра распространяется бесплатно то есть на халяву.
Нахаляву как известно и уксус сладкий!!! :joke:
Но это незначит что мы небудем прислушиваться к мнению игроков.

Автор:  MagicWolf [ 10 июл 2006 16:44 ]
Заголовок сообщения: 

Immortal писал(а):
Цитата:
Ошибка 1 - приведение типов, вторая тоже самое.

Вопрос был не в том что это за ошибки ,а как их исправить и чем они вызваны.


Вызваны они приведением типов, просто LPCWSTR нельзя адресовать const char [10]. Главное в данном случае понять что за ошибка, а вот исправить ее можно по разному, в зависимости от ситуации.

Immortal писал(а):
Вот как нужно отвечать.Просто и ясно.

Но всё равно MagicWolf спасибо за совет!!! =)


Большая просьба - не учи людей как жить. Это неприятно. Как ответили, так и ответили, сам понимаешь - это не работа.

Автор:  MagicWolf [ 10 июл 2006 16:46 ]
Заголовок сообщения: 

Immortal писал(а):
Я вижу MagicWolf вы хотите присоединиться к проекту.


Нет, пока не хочу.

Immortal писал(а):
Чтож милости просим. =)


Это ты забегаешь вперед. И от такой стремительности остается не приятный осадок.

Immortal писал(а):
P.S. Если я ошибся и вы нехотите присоединятся к проекту.
То хотелосьбы знать причины:
Почему вам ненравиться мой проект? :-(
Что вас в нём не устраивает? :-(


Просто нет возможности - времени.

Автор:  Tiger [ 10 июл 2006 17:44 ]
Заголовок сообщения: 

Цитата:
Большая просьба - не учи людей как жить. Это неприятно. Как ответили, так и ответили, сам понимаешь - это не работа.

Извини если обидел.Я несобирался никого учить.Это была шутка.Не стоит принимать шутки всерьёз. ;)

Автор:  Tiger [ 10 июл 2006 17:53 ]
Заголовок сообщения: 

Цитата:
Нет, пока не хочу.

Что нужно сделать чтобы заинтересовать вас. =)
Цитата:
Это ты забегаешь вперед. И от такой стремительности остается не приятный осадок.

Это не есть забегать вперёд.Это есть планирование проекта на будушее.
Цитата:
Просто нет возможности - времени.

Проект не требует много времени.Всего навсего 10-30 минут в рабочий день.Выходные проект отдыхает. =)
Если у вас нету свободных десяти минут в рабочий день, то извените что побеспокоил. :-(

Автор:  MagicWolf [ 11 июл 2006 09:44 ]
Заголовок сообщения: 

Immortal писал(а):
Цитата:
Нет, пока не хочу.

Что нужно сделать чтобы заинтересовать вас. =)
Цитата:


Ну если бы мне платили деньги за сайт, а не за работу, может тогда у меня было бы достаточно мотивировки, чтобы присоедениться, или хотя бы оказать посильную помощь. НО это мое хобби, так что это вряд ли вообще реализуемо.

Immortal писал(а):
Цитата:

Это ты забегаешь вперед. И от такой стремительности остается не приятный осадок.

Это не есть забегать вперёд.Это есть планирование проекта на будушее.


Не дави на людей, а то им будет неприятно. Планирование и работа с кадрами разные понятия. Я думаю, кроме меня найдуться и другие люди, которые захотят учавствовать в проекте.

Immortal писал(а):
Цитата:
Просто нет возможности - времени.

Проект не требует много времени.Всего навсего 10-30 минут в рабочий день.Выходные проект отдыхает. =)
Если у вас нету свободных десяти минут в рабочий день, то извените что побеспокоил. :-(


За 10 минут, можно и не вспомнить, что раньше написал. Если работать, то работать по нормальному, а не спустя рукава.

Автор:  Tiger [ 11 июл 2006 10:10 ]
Заголовок сообщения: 

Цитата:
Ну если бы мне платили деньги за сайт, а не за работу, может тогда у меня было бы достаточно мотивировки, чтобы присоедениться, или хотя бы оказать посильную помощь. НО это мое хобби, так что это вряд ли вообще реализуемо.

Вы правы этот проект не комерческий, но это незначит что он обречён на провал.К томуже мне подойдёт любая помошь.Программирование игр для меня тоже хобби и уменя всё реализуема!!!
Цитата:
Не дави на людей, а то им будет неприятно. Планирование и работа с кадрами разные понятия. Я думаю, кроме меня найдуться и другие люди, которые захотят учавствовать в проекте.

Я не накого не довлю.Проект этот не комерческий люди могут в любое время вступить в него и также уйти.
Цитата:
За 10 минут, можно и не вспомнить, что раньше написал. Если работать, то работать по нормальному, а не спустя рукава.

То что написано раньше можно прочитать на форуме.
Когда будем создавать комерческий проект тогда и будем работать по нормальному.Невозможно работать нормально когда утебя пустой корман.

P.S. Все большие коммерческие проекты начинались с маленьких, а не
наоборот.
Например: Космические рейнджеры, а начиналось всё с генерала.

Страница 1 из 11 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/