Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2010, 00:19   #1
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию "робобой" динамические бойцы ?

Вобщем пишу игрушку.
2D бои роботов. Сейчас немного в ступоре.
Основная идея, которую я хотел реализовать в этой программке - это динамическая загрузка всех бойцов, ландшафтов и т.д.
Чтобы можно было добавлять новых бойцов без перекомпиляции программы.
С ландшафтами всё просто - просто сделал папку куда можно накидать картинок определённого формата и программка их поднимает и предлагает пользователю в качестве "ресталища".
Проблема с роботами:
Вопрос номер раз - во время боя тело персонажа может принимать очень много положений. Я пока не могу сообразить как сделать более-менее компактную анимацию всех возможных телодвижений перса.
Вопрос номер два - сами действия персонажей тоже должны (по задумке) программироваться внешними настроечными файлами. Например для одного бойца кнопка "z" это удар рукой, для другого удар ногой (это я примитивный пример привёл).
Вопрос номер три - действия персонажа могут зависеть от положений противника. Например кнопка "z" - это удар рукой, но если персонаж находится рядом с противником, то это уже допустим бросок ч.з. бедро.
Вопрос номер четыре - разная геометрия персонажей (у одного руки короткие, у другого длинные, один низкий, другой высокий). Соответственно как то надо и контроль столкновений (попаданий) выносить во внешний файл.

Вот как эту всю логику можно вынести во внешние текстовые файлы?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 17.04.2010, 01:29   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Понаделать классов и рулить ими из lua, например
пыщь
JTG вне форума Ответить с цитированием
Старый 17.04.2010, 15:20   #3
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Да, без скриптов тут не обойтись. Можно написать что-то свое, или lua использовать, как уже предложили.
Вадим Буренков вне форума Ответить с цитированием
Старый 17.04.2010, 17:16   #4
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Ну я на асме пишу как обычно.
Нелепость какая-то. Сама программа 15-20к.
А run-time этой самой луны 150k (ну как я по мануалам понял).
И где я инки возьму. Да не, чё-то не то.

Я может туплю. Но вот не понял, для чего здесь скрипты и классы.
Игра то пятикопеечная. Нельзя что-ли без этого никак обойтись.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 17.04.2010, 18:11   #5
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Ты ведь хочешь чтобы все данные о анимациях, управлении, обработке был во внешних файлах. Тогда надо как-то читать эти данные. Делать конфиги наподобие ini как мне кажется не подходит, следовательно можно использовать скрипты (либо вообще обойтись от внешних файлов и писать все через код на асме). А как еще?
Можно сделать файловый формат робота где будут все данные о нем и написать редактор, правда сложно это будет. Подумай, стоит ли использовать ассемблер для такой задачи.
Вадим Буренков вне форума Ответить с цитированием
Старый 18.04.2010, 21:13   #6
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Цитата:
Сообщение от Вадим Буренков
Можно сделать файловый формат робота где будут все данные о нем и написать редактор, правда сложно это будет. Подумай, стоит ли использовать ассемблер для такой задачи.
Да, именно, файловый формат робота. Вот об этом как раз и был вопрос.
Собственно что и как туда выносить, чтобы оптимизировать анимации и т.д.
Базовый принцип N1:
-все куски анимаций склеены в один большой bmp.
-кадр анимации может склеиваться из произвольного количества кусков этого bmp, значит информация о кадрах должна быть в файле - описателе робота.
- анимация - это последовательность кадров, значит на каждое действие перса вешается анимация, т.е. последовательность кадров. Эту последовательность тоже получается надо хранить в файле.
Вот, примерно такой принцип хранения инф. об анимациях.
А с управлением и контролем пересечений пока в тупике (это самое сложное).
Ещё по поводу управления - всего на управление робота будет работать шесть кнопок - "z", "x" и четыре стрелочки. Все остальные комбо и супер удары - это комбинации этих кнопок и положений перса и его противника.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 19.04.2010, 14:09   #7
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

В CosmoNoid я сделал так, что к каждому bmp шел ini файл, в котором были данные о кадрах анимации, ее скорости, номера использующихся кадров. Надо сделать похожую систему. В редакторе можно лишь указывать конфиг анимации. Контроль пересечений можно сделать подобным образом. То есть будут отдельные текстовые файлы с данными о формах роботов, а редактор будет ссылаться на эти файлы.
Вадим Буренков вне форума Ответить с цитированием
Старый 19.04.2010, 20:16   #8
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Я может немного сумбурно спрашиваю, поэтому не очень понятно, в чём собственно проблема. Хорошо, буду тогда вопросы задавать последовательно.
Итак:
Вопрос номер раз - во время боя тело персонажа может принимать очень много положений. Я пока не могу сообразить как сделать более-менее компактную анимацию всех возможных телодвижений перса.
Здесь вопрос именно в том, как её сделать компактной.
Например один кадр анимации робота имеет размер 180*180 точек.
Теперь элементарные движения:
1. стоит
2. идёт вперёд
3. идёт назад
4. присел
5. прыжок вверх
6. прыжок вверх-вперёд
7. прыжок вверх-назад.
Это элементарные движения без ударов. Т.е. в прыжках могут быть ещё анимации с ударами руками и ногами. Ещё должны быть анимации ударов , разных комбо и суперударов. Ещё я рассмотрел ситуацию, когда боец стоит с одной стороны (например справа), но он также может быть ещё и с другой и эти анимации не обязательно симметричные. Таким образом мы имеем минимум 14 базовых анимаций (на самом деле их гораздо больше). Если на одну анимацию в среднем приходится 5 кадров, то я уже сейчас имею картинку размером 900*2520 точек. И это перс ещё даже никого и ударить то не может. Это только передвижение. По моему перебор.
Поэтому и появилась идея хранить в картинке анимации не полностью робота, а его запчастей (ну там туловище, ноги, руки и т.д.). А в самом ини файле хранить инфу о том, как из запчастей собрать кадр и как из кадров собрать анимацию. Пока даже не представляю, как редактор будет в таком случае выглядеть.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 20.04.2010, 19:22   #9
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Поэтому и появилась идея хранить в картинке анимации не полностью робота, а его запчастей (ну там туловище, ноги, руки и т.д.).
Это вроде называется скелетная анимация. То есть тело (в данном случае робота) состоит из суставов, они имеют фиксированную длину и могут двигаться по заданной схеме, она и хранится в файле анимации. Помимо позиций суставов и их перемещений в файле хранятся данные о текстурах, используемых для текстурирования частей тела. А рисовать сами части просто, достаточно знать немного тригонометрии.
Вот пример как может текстурироваться часть робота (текстурирование происходит по двум точкам, при желании текстура растягивается как в демке (например у робота могут быть пружины))
http://narod.ru/disk/19931814000/2PointsDraw.rar.html (как раз так сделана подвеска в GravityRace)
Такая система подойдет больше всего, проблема лишь в сложности ее создания и написания нормального редактора. И не сложна ли она будет для ассемблера?
Цитата:
А в самом ини файле хранить инфу о том, как из запчастей собрать кадр и как из кадров собрать анимацию. Пока даже не представляю, как редактор будет в таком случае выглядеть.
Если делать как я написал выше то необходимость ини отпадает, да и собираться текстура робота будет по частям "на лету".
Надеюсь что-то прояснил.
Вадим Буренков вне форума Ответить с цитированием
Старый 21.04.2010, 21:32   #10
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Ещё один момент, программа делается на GDI. Никакого OGL/DX в ней быть не должно.
В этом как раз трудность (лично для меня) реализации "скелетной" анимации. Понятно, что на движках (в 3D) развороты, масштабирование и т.д. требуют от программиста всего навсего знать немного тригонометрии. А вот на GDI готовых функций нет, либо я их не знаю.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50