Текущее время: Сб 23 ноя 2024 9:49

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 28 ] 
Автор Сообщение
 Сообщение Сб 1 янв 2011 4:10
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Mechcraft - это МехоRTS/Меходота на спрайтах. Скорее всего, это будет что-то среднее. Почему так, изложу свои мысли в тезисах:
- в игре будет много микро;
- все детали на локации я постараюсь сделать полезными, например, за ящиками можно будет укрываться, регулируя высоту, как-нибудь можно будет использовать всякие антенны, тарелки, это я придумаю;
- много внимания будет уделено каждому механоиду, каждый будет индивидуален в своем развитии; соответственно опытным механоидом придется дорожить;
- число механоидов на локации = const, меняться будет только число глайдеров, сами глайдеры и их снаряжение;
- на локации будет 3-4 команды, во владении изначально где-то 10 механоидов;
- цель каждой команды - подавить остальные, т.е. собрать в своем составе всех-всех механоидов; механоиды нужно выбивать из глайдеров и быстренько поднимать, пока не подобрали свои или кто не украл;
- должна быть очень хорошая система повреждений, правда, я не знаю, как это визуализировать на спрайтах.
Все это я буду делать почти сам, потому что детали концепции не известны даже мне. Самое сложное будет создать хорошо детализированную продуманную локацию. Для всего этого понадобятся хорошие тестеры, которые будут объективно говорить, насколько уныло или клево все то, что у меня будет получаться.


 Сообщение Пн 3 янв 2011 5:17
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
В общем, вот жутко информативный скриншот:
Изображение
Здесь мы видим, что у меня большие проблемы с моделькой для снаряда, спрайтом для взрыва снаряда и локацией. Мне бы текстурку для плоского ландшафта. :/

Добавлено спустя 2 часа 17 минут 14 секунд:

Уже даже можно поклацать.
Альфо-версио 1.
На размеры файла не смотрите - это все фигня, еще рано что-то оптимизировать. Стрельбу, как на картинке, я убрал, ибо кривая. Зато можно:
- выделять (даже SHIFT работает);
- перемещать (правый клик);
- поворачивать (клавиша R + левый клик);
- клавиша S - "стоп".
Ясное дело, что пока что это все фигня, но то, что сейчас - оно как?


 Сообщение Пн 3 янв 2011 7:01
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
На гле или директе? Как нажатия клавиш обрабатываются?


 Сообщение Пн 3 янв 2011 10:47
Профиль  
Техногенный
Сообщения: 8299
Зарегистрирован: Пт 29 дек 2006 17:31
Мм...не запустилось. Нужны какие-то библиотеки?

_________________
thrusting squares through circles


 Сообщение Пн 3 янв 2011 13:49
 
У меня запустилось.
А что, очень даже ничего выходит.


 Сообщение Пн 3 янв 2011 17:00
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Razum писал(а):
На гле или директе?
Гла.
Razum писал(а):
Как нажатия клавиш обрабатываются?
Винда сообщает в процедуру.
Frozen_Light писал(а):
Нужны какие-то библиотеки?
OpenGL32, glu32, glaux. (Первые 2 обычно есть, 3-я в архиве)


 Сообщение Пн 3 янв 2011 17:34
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Цитата:
Винда сообщает в процедуру.

Стандартные гл-овские функции обработки нажатий клавиш каличные, они обрабатывают символы, то-есть такое понятие как нажал/отпустил там отсутствует, а есть "на ввод поступил символ такой-то". Ты какие использовал?


 Сообщение Пн 3 янв 2011 17:42
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Не, вроде реагируют.
Вот кусок кода:
Код:
LRESULT CALLBACK WinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    switch (uMsg)
   {
        case WM_PAINT:
            BeginPaint(hWnd, &ps);
            EndPaint(hWnd, &ps);
            return 0;
      case WM_MOUSEMOVE:
      {
            //lParam:
            //(0,0)     (1,0)
            //
            //
            //(0,1)     (1,1)
         cursor.X = 1 / GLfloat(WinRect.Height) * (2 * GLfloat(LOWORD(lParam)) - WinRect.Width);
         cursor.Y = 1 - 2 * (GLfloat(HIWORD(lParam)) / WinRect.Height);
         return 0;
      }
        case WM_LBUTTONDOWN:
            //Selection
            cursor.Selection = true;
            cursor.Xp = cursor.X;
            cursor.Yp = cursor.Y;
            return 0;
        case WM_LBUTTONUP:
            if (Command == move)
            {
                PickUnit
                if (u.Selected)
                {
                    u.CurrentOrder.Id = 1;
                    u.CurrentOrder.X  = cursor.X;
                    u.CurrentOrder.Y  = cursor.Y;
                }
                Command = nothing;
            }
            else
            if (Command == rotate)
            {
                PickUnit
                if (u.Selected)
                {
                    u.CurrentOrder.Id = 2;
                    u.CurrentOrder.X  = cursor.X;
                    u.CurrentOrder.Y  = cursor.Y;
                }
                Command = nothing;
            }
            else
            {
            //Selection
            cursor.Selection = false;
            if (cursor.X == cursor.Xp && cursor.Y == cursor.Yp)
            {
                if (!Shift)
                PickUnit
                u.Selected = false;
                PickUnit
                if (GetDistance(cursor.X, cursor.Y, u.X, u.Y) < u.RealSize)
                {
                    u.Selected = true;
                    break;
                }
                return 0;
            }
            return 0;
        case WM_RBUTTONDOWN:
            PickUnit
            if (u.Selected)
            {
                u.CurrentOrder.Id = 1;
                u.CurrentOrder.X  = cursor.X;
                u.CurrentOrder.Y  = cursor.Y;
            }
            return 0;
        case WM_KEYDOWN:
            //VK_0 - VK_9 = 0x30 - 0x39
            //VK_A - VK_Z = 0x41 - 0x5A
            if (wParam == VK_SHIFT)
                Shift = true;
//            if (wParam == 0x41)
//                PickUnit
//                if (u.Selected)
//                    u.Fire();
            if (wParam == 0x4D)
                if (Command == move)
                    Command = nothing;
                else
                    Command = move;
            if (wParam == 0x52)
                if (Command == rotate)
                    Command = nothing;
                else
                    Command = rotate;
            if (wParam == 0x53)
                PickUnit
                if (u.Selected)
                    u.CurrentOrder.Id = 0;
            if (wParam == VK_ESCAPE)
                DeInit();
            return 0;
        case WM_KEYUP:
            if (wParam == VK_SHIFT)
                Shift = false;
            return 0;
        case WM_DESTROY:
            DeInit();
            return 0;
    }
    return DefWindowProc(hWnd, uMsg, wParam, lParam);
}


 Сообщение Пн 3 янв 2011 17:44
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Ага, это вендовая, знач, обработка, а не гловская.


 Сообщение Пн 3 янв 2011 17:52
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Ну, да. Да я так понял, что ГЛовское лучше по минимуму юзать вообще, если только дело не доходит до велосипедостроительства.

Добавлено спустя 3 минуты 27 секунд:

Razum писал(а):
Ага, это вендовая, знач, обработка, а не гловская.
У меня стоит CodeBlocks. Там при создании Win-приложения автоматически прописывается код инициализации окошка со всем необходимым; для OpenGL-приложения - инициализация OpenGL; для Ogre походу тоже что-то. Просто я не знаю, в чем ты обычно пишешь.


 Сообщение Пн 3 янв 2011 18:19
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
На визуалке.


 Сообщение Пн 3 янв 2011 18:44
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
А-а. Но CodeBlocks и поудобнее будет. Раза в 4.

Я щас щиты буду клепать. ^_^


 Сообщение Чт 6 янв 2011 20:39
Профиль  
Механоид 5 поколения
Сообщения: 3845
Зарегистрирован: Вт 31 июл 2007 23:02
А что, по моему понт. Только при запуске вместо текстур скарабеев фигня какая-то. Иногда при повороте такое тоже происходит.

А это вообще какое кунг-фу?
И должно ли все быть настолько сурово построено? В плане чертовой кучи ифов.


 Сообщение Пт 7 янв 2011 0:03
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Сейчас все построено на чертовой куче классов, потому что что-то меня стали стремать всякие наследования.

Зато насладиться успел на все 100: написал какой-то код, например, за два часа, а дебаггю - четыре. :D
Причем еще один глюк найду - и выложу.

Про глюк с текстурами я хз, у себя ни разу не наблюдал.

Добавлено спустя 52 секунды:

Дрон писал(а):
В плане чертовой кучи ифов.
Ифы будут, когда я буду маршруты рассчитывать.)


 Сообщение Пт 7 янв 2011 0:12
Профиль  
Механоид 5 поколения
Сообщения: 3845
Зарегистрирован: Вт 31 июл 2007 23:02
Тееекс, а можно в двух словах все что ты используешь для создания игры и что это самое из себя представляет.
А то сижу и как дурак не могу понять код. То-ли уровень цзена мал, то-ли непонятная фиготень предо мною.


 Сообщение Пт 7 янв 2011 4:02
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Дрон писал(а):
Тееекс, а можно в двух словах все что ты используешь для создания игры и что это самое из себя представляет.
Для создания игры я использую классы: Мир <>-> Юнит <>-> Приказ, ну, т. е. не чертова куча, конечно, но в каждом отдельно описаны методы, которые их реализуют. И на счетчике я обновляю мир, мир обновляет юниты, юниты обновляют свои списки приказов. Рисую при помощи OpenGL.

Добавлено спустя 3 часа 35 минут 23 секунды:

Альфо-версио II.
Сделал я мало:
- через Shift ставим приказ в очередь и смотрим маршруты;
- Caps-Lock'ом можно зафиксировать видимость маршрутов;
- разворот я пока убрал.
Из очевидных минусов пока самый большой в том, что глайдеры прибывают не совсем туда, куда надо, потому что они неправильно ориентируются на занос, а чтобы они ориентировались правильно, мне нужно сделать, чтобы они умели им пользоваться. Т. е. выглядеть это будет так: перед прибытием после поворота глайдер разворачивается в том же направлении, чтобы погасить инерцию. Но пока, я думаю, это не так принципиально.
(!) В архиве лежат 2 экзехи: первая - это плавная графика маршрутов, вторая - резкая. Поделитесь мнением, что лучше.

Добавлено спустя 2 минуты 47 секунд:

И да, может, не надо выделять цветом маршрут выделенного юнита?


 Сообщение Пт 7 янв 2011 19:19
Профиль  
Механоид 5 поколения
Сообщения: 3845
Зарегистрирован: Вт 31 июл 2007 23:02
Krogoth писал(а):
В архиве лежат 2 экзехи: первая - это плавная графика маршрутов, вторая - резкая. Поделитесь мнением, что лучше.

Что-то я различий не увидел. По маршрутам ездят? Ездят.
Я думаю что не надо выделять маршрут не выбранного юнита. Можно потом сделать так, чтобы было видно общий маршрут выделенной группы, но это уже в потом.


 Сообщение Пт 7 янв 2011 23:55
Профиль  
Новичок
Аватара пользователя
Сообщения: 16
Откуда: Новосибирск
Зарегистрирован: Ср 22 июл 2009 10:10
Можно вопрос? А это так и задумано, что оно не будет работать на Windows 7 x64? (Ну, в смысле, может используемые библиотеки не поддерживают 64-версии, или >1-ядерные процессы)
Ну как всё происходит: двойной клик, экран становится чёрным (за исключением полоски меню пуск внизу экрана), и на этом фоне тут же идёт "прекращена работа программы Mechcraft1(2).exe"

_________________
http://i068.radikal.ru/1007/4d/99c5d10ec14c.png


 Сообщение Сб 8 янв 2011 0:49
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Ну, видимо мне придется компилировать для семерки отдельно. :/


 Сообщение Сб 8 янв 2011 2:03
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Скорее всего, дело в х64. Может, древние библиотеки юзаешь? Типа глаукса.


 Сообщение Сб 8 янв 2011 2:29
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Э-э-э-э-э...

Добавлено спустя 37 секунд:

А чо есть самое новое и самое классное?


 Сообщение Пн 17 янв 2011 18:13
Профиль  
Активный участник
Аватара пользователя
Сообщения: 89
Зарегистрирован: Ср 12 авг 2009 21:49
не скорее всего он так и есть) у меня 4 ядра у эвм) но норм гоняем)
кстати у меня у 1 нельзя скачать вторую версию?


 Сообщение Ср 26 янв 2011 16:05
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Не, я вот тоже за не своим компом скачать хотел - фик.)


 Сообщение Чт 27 янв 2011 1:03
Профиль  
Механоид 1 поколения
Аватара пользователя
Сообщения: 111
Откуда: Санкт-Петербург. Сектор Больших Болот, Собачников, Хрущовок, в общем окраина...=)
Зарегистрирован: Пт 5 фев 2010 15:55
Не получается на 7ке запустить. Либо "прекращена работа программы" либо (в режиме совместимости) просто белый экран... Может я не туда тыкаю?

_________________
\\\"Главное в искусстве флуда - втянуть во флуд модератора!\\\" ©откуда-то...


 Сообщение Сб 29 янв 2011 15:28
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Не, все правильно. Просто я заюзал старую библиотеку. В общем, как переделаю под новую, выложу и все будет ок.


 Сообщение Сб 29 янв 2011 20:43
Профиль  
Активный участник
Аватара пользователя
Сообщения: 89
Зарегистрирован: Ср 12 авг 2009 21:49
кхм.. а если все картинки в длл запихнуть и ужать?


 Сообщение Сб 29 янв 2011 20:55
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Все будет.


 Сообщение Сб 29 янв 2011 21:00
Профиль  
Активный участник
Аватара пользователя
Сообщения: 89
Зарегистрирован: Ср 12 авг 2009 21:49
давай я те с ландшафтом помогу) текстурку травки там норм) плюс идея насчет ветра е)


Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ] 

Часовой пояс: UTC + 4 часа


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

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB