Форум Игромании
 
Регистрация
Справка

 
 
Опции темы
Старый 25.12.2007, 13:39   #1
Юзер
 
Регистрация: 19.07.2007
Сообщений: 480
Репутация: 228 [+/-]
Exclamation Танчики

Как вам идея сделать танчики, которые были на денди? Допустим добавим возможность играть на троих? Как идея? Думаю многим было бы интересно...
Можно было бы сделать на дельфи...
ЗЫ Позже можно было бы еще придумать возможностей ,подумали бы всем форумом

Проект пока завис! Пока не наидутся моделеры и художники! Также требуется програмист, который способен освоить уже готовый движок и ядро! Если вы желаете помочь, записываитесь!




Участники
Скрытый текст:
DEAD_Angel - художник
andNsX - художник
HaNproKilleR - художник
^i_Swep - j2me программист
L'ombre - консультант
ORTODOX - руководитель проекта
razor21 - програмист
pokibor - програмист-консультант
Требуются еще участники!


***
Скрытый текст:
основные сущности в игре:
- уровень, он же interaction manager, в дальнейшем - Level
Управляет взаимодействием всех сущностей
- матрица. состоит из элементов. что очевидно..
- элемент матрицы. CellItem. то, из чего состоит матрица.

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

существует два основных подвида Traverser'а:
- MatrixTraverser - это объект, движущийся относительно матрицы И
привязанный к матрице, оставляющий в ней след, имеющий размер.
т.е. вместе с движением объекта перемещается его представление в матрице
- PointTraverser - безразмерный объект, движущийся относительно матрицы И НЕ
оставляющий в ней след (но при этом взаимодействует с остальными объектами)
т.е. объект движется, но не имеет представления в матрице

Таким образом, Танк - это такой специальный MatrixTraverser,
умеющий стрелять, проезжающий по определённым клеткам и не умеющий по остальным и тд.

Снаряд - это PointTraverser, с соответствующими свойствами

Ближе к деталям:

Абстрактные сущности.

Destroyable
Сущность материальная, которую можно разрушить
свойства:
- Armor. Броня, Порог прочности.
определяет взаимодействие с PointTraverser'аим (снарядами)
Чтобы нанести повреждение, нужно, чтобы мощность снаряда была не меньше.
Если броня равна нулю, то снаряды пролетают сквозь этот объект.
- HitPoints. Численное прдставление прочности.
если снаряд пробил броню, то HitPoints уменьшаются.
При достижении значения 0 объект разрушен и исчезает из матрицы
(т.е. заменяется на пустой)
данное свойство показывает текущее значение
- MaxHitPoints - а это максимальное значение Hit Point'ов данного объекта.


Traverser
это нечто движущееся относительно матрицы. Основные свойства:
- X,Y. координаты центра в матрице
- Direction. Направление, одно из четырёх.
- Speed/Delay - так или иначе задаёт скорость

MatrixTraverser
Обладает размером. В общем случае прямоугольный.
- Width, Height - размеры, в клетках матрицы.
Какой ячейке соответствуют координаты, надо решить позже.
Предположительно, той, что ближе к центру.
например, если координата объекта шириной Width == 4 X == 2,
то этот объект занимает ячейки матрицы 1, 2, 3, 4 (нумерация, естественно, начинается с нуля)
(естественно это не окончательное решение)
- ID - может быть некий тип, но пока необязательно..

PointTraverser
на данный момент ещё не решил, должен ли он отличаться просто от Traverser'а,
кроме смысла. А по смыслу - это предок всех снарядов.
Скорее, будут отличаться обработчики событий.
PointTraverser движется иначе. А именно - МЕЖДУ ячейками
(т.е. координаты интерпретируются по-другому)
например, если координата X == 2, то объект находится между второй и третьей ячейкой.

Неабстрактные сущности

CellItem
Элемент (ячейка) матрицы. Потомок Destroyable
дополнительные свойства:
- Passability. Проходимость.
определяет взаимодействие с MatrixTraverser'аим (танками)
(вещественное число. 0 - объект непроходим; отличное от нуля значение влияет на скорость;
1 - нормальная скорость; 0.5 - замедленная в два раза, 2 - удвоенная и тд)
поскольку некоторые клетки могут быть доступны для MatrixTraverser'ов,
для представления этого понадобится ещё одно поле, пусть будет
- Meta. Флаг, который каким-либо образом показывает,
что эта ячейка занята каким-то MatrixTraverser'ом.
Например, порядковый номер танка (индекс в контейнере танков)
Для ядра игры этих свойств достаточно. Для визуализатора понадобится ещё хотя бы одно -
- ID. Уникальное число, идентификатор этого объекта.
Если все взаимодействия определяются вышеописанными свойствами,
то это поле определяет, как нужно объект отрисовывать.
склоняюсь к тому, чтобы не делать сложной иерархии классов для объектов матрицы;
просто все объекты принадлежат к одному классу и отличаются набором свойств.
тогда можно задавать все объекты в рантайме - например, загружать из файла.

Tank
танк является потомком MatrixTraverser'а и Destroyable
(т.е. это объект, способный двигаться в матрице, который можно уничтожить)
со своим набором свойств
- Weapons. вектор орудий. об этом позже.
- Owner. кто этим танком командует. номер игрока, флаг игрок/AI и тд

Missile
потомок PointTraverser'а.
специфические свойства:
- AttackPower. "Пробивная сила". Сравнивается с Armor объектов и танков.
- Damage. Повреждения, наносимые объектам, после того, как пробита броня.
- DamageDepth, DamageWidth - определяют область, затронутую взрывом
- Charges. Свойство, призванное обобщить концепцию снаряда.
Это "количество зарядов" - сколько раз снаряд может взорваться.
То есть, снаряд, после того, как он столкнулся со стеной и взорвал её,
может полететь дальше. Звучит абсурдно для снаряда, но это может быть лазер
или плазменный шар. При достижении количества 0 снярад уничтожается.
(если броня не пробита, или же хитпойнтов оказалось слишком много,
то не важно, сколько зарядов - снаряд уничтожается)
- Owner. Танк, выпустивший этот снаряд. Это понадобится для обработки Friendly Fire -
смогут ли танки противника повреждать дуг друга.

Остальные сущности

Weapon.
Оружие танка. определяется свойствами:
- Тип снаряда. идентификатор (если у снарядов будут идентификаторы)
или собственно указатель на объект.
- Скорострельность. - это максимальное количество снарядов, выпущенных из этого орудия,
которые могут существовать в каждый момент времени.
Например, если 1 - то танк не может выстрелить, пока не взорвётся выпущенный ранее снаряд.
и т.д.
У танка может быть несколько орудий, между которыми можно переключаться.
Делать заканчивающиеся снаряды, думаю, нет смысла.

Explosion
Столкновение снарядов с чем-либо, обладающим ненулевой бронёй,
порождает экземпляр этого класса.
Возможно, нет смысла делать эту сущность, так как решающую роль будет играть метод,
вызываемый во время взрыва. Этот метод обходит все ячейки и танки, и сообщает им,
что с ними случилось,
т.е. какой атаке они подверглись, какие повреждения могут получить итд.
Наличие объекта этого класса может быть полезно для отрисовки

RespawnPoint
точка возрождения. так как это точка, то это просто потомок какого-нибудь Traverser'а

PowerUp
объект, имеющий размер, при "столкновении" с которым танк получает какой-либо бонус:
- новое оружие
- усиление брони или HP
и тд
потомок MatrixTraverser'а, хоть и не движется. Основное свойство - тип бонуса.

BaseStation
(название надо обдумать)
это такой объект, который вражеские танки стремятся уничтожить.
опционально. тоже потомок MatrixTraverser'а и Destroyable

Структура игрового процесса

Основная сущность:
Level, уровень.
основные элементы:
- Матрица
- Вектор танков.
- Список снарядов
дополнительные:
- контейнер точек возрождения
- контейнер powerup'ов
- "базовая станция", которую нужно защищать.

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

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

Двигаться могут танки - находящиеся в одном списке - и снаряды - в другом.
Выстрел любого танка добавляяет его снаряд в список снарядов.
Танк может добавить в список несколько снарядов.
попадание снаряда во что-либо может удалить его из этого списка.
Попадание в танк может его уничтожить - уничтоженный танк не удаляется из контейнера,
так как возможен respawn - этот экземпляр будет перемещён в другое место и "воскрешён"
(если закончились все танки в "запасе",
то этот танк просто пропускается при дальнейшей обработке).


Скрытый текст:
http://www.shadow.dynalias.com/tanks/core.rar
пароль у архива t@nk$c0re

фиксы:
- Tank::OrderMove() вызывает MatrixTraverser::Move() (раньше вызывал Traverser::Move(), и это было неправильно)
- MatrixTraverser::RemoveTrace() правильно удаляет из матрицы движущиеся в момент удаления траверсеры (в предыдущей версии я забывал очищать зарезервированные клетки)
__________________
Forza Rossoneri!

Последний раз редактировалось ORTODOX; 13.03.2008 в 13:53.
ORTODOX вне форума  
Отправить сообщение для ORTODOX с помощью ICQ
Старый 25.12.2007, 13:52   #2
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Хм... возможно, возможно, учитывая, что обсуждение физики гонок заглохло (с моей стороны причина более-менее объективная - книга, асприрантура, работа, модерирование), то написание чего-то более простого и выкладывание исходников будет в тему...
Под что писать-то? Под DirectDraw? Или ещё какие предложения?
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ
Старый 25.12.2007, 13:54   #3
Юзер
 
Регистрация: 19.07.2007
Сообщений: 480
Репутация: 228 [+/-]
pokibor
я раньше пытался написать на DelphiX ,может на ней и попробуем?
__________________
Forza Rossoneri!
ORTODOX вне форума  
Отправить сообщение для ORTODOX с помощью ICQ
Старый 25.12.2007, 14:03   #4
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
На Delphi? Тогда от меня ждите только помощи советами. Я на Delphi писать ничего не буду. DelphiX - это что ли DirectDraw-движок для Delphi, или я ошибаюсь?
В любом случае писать что-то на Паскале - меньшее, что мне на данный момент хочется. Извините. Возможно, я оторвусь от коллектива и, если будет желание, замучу что-нибудь такое на Irrlicht или непосредственно на DirectX/OpenGL...
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ
Старый 25.12.2007, 14:07   #5
Юзер
 
Регистрация: 19.07.2007
Сообщений: 480
Репутация: 228 [+/-]
Цитата:
Сообщение от pokibor Посмотреть сообщение
На Delphi?
ты С++ изучаешь?
ЗЫ Я С++ даже на комп ни разу не ставил
ЗЫЫ Я знаю малость дельфи, изучаю потехонечку, сеичас принялся за массивы...а так то хоть неа делфые я помочь чем то мог, а С++ вообще без понятия
Создам сеичас участников, кто хочет чем то помочь, записываитесь!
__________________
Forza Rossoneri!
ORTODOX вне форума  
Отправить сообщение для ORTODOX с помощью ICQ
Старый 25.12.2007, 14:21   #6
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Цитата:
Сообщение от ORTODOX Посмотреть сообщение
ты С++ изучаешь?
Не поверите, я его знаю. А вот Pascal уже лет пять как забыл, словно страшный сон.
Цитата:
Сообщение от ORTODOX Посмотреть сообщение
ЗЫ Я С++ даже на комп ни разу не ставил
Я рад. А не помешало бы.
Цитата:
Сообщение от ORTODOX Посмотреть сообщение
ЗЫЫ Я знаю малость дельфи, изучаю потехонечку, сеичас принялся за массивы...а так то хоть неа делфые я помочь чем то мог, а С++ вообще без понятия
А не кажется ли Вам, что подобных знаний просто не хватит даже для реализации танчиков?
Цитата:
Сообщение от ORTODOX Посмотреть сообщение
Создам сеичас участников, кто хочет чем то помочь, записываитесь!
Хорошо. Я закреплю первый пост. Можете в него добавлять список заинтересовавшихся. Посмотрим, что выйдет.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ
Старый 25.12.2007, 15:45   #7
Юзер
 
Регистрация: 19.07.2007
Сообщений: 480
Репутация: 228 [+/-]
Цитата:
Сообщение от pokibor Посмотреть сообщение
А не кажется ли Вам, что подобных знаний просто не хватит даже для реализации танчиков?
ну так я бы модели создал, я по идее моделированием занимался А вы бы програмировали
Цитата:
Сообщение от pokibor Посмотреть сообщение
Хорошо. Я закреплю первый пост.
спс
__________________
Forza Rossoneri!
ORTODOX вне форума  
Отправить сообщение для ORTODOX с помощью ICQ
Старый 26.12.2007, 00:08   #8
Новичок
 
Аватар для L'ombre
 
Регистрация: 07.03.2006
Адрес: !here();
Сообщений: 38
Репутация: 26 [+/-]
Цитата:
Сообщение от ORTODOX Посмотреть сообщение
Как вам идея сделать танчики, которые были на денди?
посещала меня такая идея лет шесть назад. в результате сделал этакое нечто под DOS на Borland Pascal 7. Игра, созданная с наскока, без проектирования, на чистом энтузиазме - нельзя так игры делать. код далёк от совершенства, осталась парочка багов, но в целом работает, и даже содержит в некотором роде оригинальные отличия от тех самых NES'овских Tank 1990/Battlecity/и тд.

Скрытый текст:

как и обещал, линк был актуальным в течение недели.
Так как сообщений в PM после этого не было, то (несмотря на попытки скачивания) линк удаляю
__________________
Use the Darkness that you have inside

Последний раз редактировалось L'ombre; 13.01.2008 в 17:16.
L'ombre вне форума  
Старый 26.12.2007, 10:55   #9
Юзер
 
Регистрация: 19.07.2007
Сообщений: 480
Репутация: 228 [+/-]
L'ombre
Лагает Вот скрин
Скрытый текст:

Перезалей пожалуиста на slil.ru или подобное"! + поставлю (и надеюсь не я один )0))))
__________________
Forza Rossoneri!
ORTODOX вне форума  
Отправить сообщение для ORTODOX с помощью ICQ
Старый 26.12.2007, 13:20   #10
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
ORTODOX
Такое бывает порой. Браузер зачем-то пытается открыть rar-архив вместо того, чтобы его скачивать. Воспользуйтесь лучше качалкой какой-нибудь для скачивания.
Впрочем, специально для Вас я перезалил L'ombre'овыский архив на ifolder, однако ссылку и пароль пошлю через личку, чтобы не нарушать его прав.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ
Старый 26.12.2007, 13:28   #11
Юзер
 
Регистрация: 19.07.2007
Сообщений: 480
Репутация: 228 [+/-]
pokibor
ага спасибо1
В след. выборе лучших модераторов выберу тебя, редко так помогают !!!
Не подлизывайтесь и не флудите.
__________________
Forza Rossoneri!
ORTODOX вне форума  
Отправить сообщение для ORTODOX с помощью ICQ
Старый 11.01.2008, 20:56   #12
Юзер
 
Аватар для ^i_Swep
 
Регистрация: 28.01.2007
Сообщений: 116
Репутация: 20 [+/-]
Хмм.. Есть вариант написать под сотовый
Однако для придания ускорения (мы же хотим завершить за неделю ? ) не плохо бы ещё одного программера на java me
^i_Swep вне форума  
Старый 11.01.2008, 22:51   #13
Юзер
 
Регистрация: 19.07.2007
Сообщений: 480
Репутация: 228 [+/-]
^i_Swep
Неплохо было бы На сотовый,как раз в школе гамать Еще через блютуз,вообще бы чинно было
__________________
Forza Rossoneri!
ORTODOX вне форума  
Отправить сообщение для ORTODOX с помощью ICQ
Старый 12.01.2008, 00:50   #14
Юзер
 
Аватар для DEAD_Angel
 
Регистрация: 30.12.2007
Адрес: г.Краснодар; Мой комп.
Сообщений: 227
Репутация: 51 [+/-]
А проект в 2D или 3D графике будет ?
Цитата:
Сообщение от ORTODOX Посмотреть сообщение
Неплохо было бы На сотовый,как раз в школе гамать Еще через блютуз,вообще бы чинно было
Да под сотовый хорошо будет, но вот только у разных фирм телефонов платформы разные, придётся вам как минимум 3 версии выпускать.
DEAD_Angel вне форума  
Отправить сообщение для DEAD_Angel с помощью ICQ
Старый 12.01.2008, 19:35   #15
Юзер
 
Регистрация: 19.07.2007
Сообщений: 480
Репутация: 228 [+/-]
Цитата:
Сообщение от DEAD_Angel Посмотреть сообщение
А проект графике будет
Цитата:
Сообщение от DEAD_Angel Посмотреть сообщение
проект в 2D
Обычные дендивские танчики,ну что,есть участники?
__________________
Forza Rossoneri!
ORTODOX вне форума  
Отправить сообщение для ORTODOX с помощью ICQ
Старый 13.01.2008, 17:55   #16
Юзер
 
Регистрация: 27.10.2007
Адрес: г. Омск
Сообщений: 442
Репутация: 91 [+/-]
ORTODOX
Жаль что тебя забанили, но предлагаю сильно не парится и попробовать на GameMaker, тем более, что pokibor дело говорит, знаний не хватет, а вот на Гамаке очень легко будет. Так что если Гамак, то я в команде.
andNsX вне форума  
Старый 13.01.2008, 21:47   #17
Юзер
 
Аватар для DEAD_Angel
 
Регистрация: 30.12.2007
Адрес: г.Краснодар; Мой комп.
Сообщений: 227
Репутация: 51 [+/-]
Цитата:
Сообщение от ORTODOX Посмотреть сообщение
Обычные дендивские танчики,ну что,есть участники?
Ну я дезайнером могу быть (я не профи, и не очень хорошо рисую: смотри на мой аватар (это лучший мой рисунок) и ещё я плохой аниматор), но сильно не расчитывайте... (у меня инет плохой, и не всегда доступ в инет будет)

Последний раз редактировалось DEAD_Angel; 14.01.2008 в 01:01.
DEAD_Angel вне форума  
Отправить сообщение для DEAD_Angel с помощью ICQ
Старый 13.01.2008, 23:01   #18
Юзер
 
Аватар для ^i_Swep
 
Регистрация: 28.01.2007
Сообщений: 116
Репутация: 20 [+/-]
Цитата:
Сообщение от DEAD_Angel Посмотреть сообщение
Да под сотовый хорошо будет, но вот только у разных фирм телефонов платформы разные, придётся вам как минимум 3 версии выпускать.
В чём отличия ? Размер экрана? Можно изначально нацеливаться на так сказать расширяемость. И для первого релиза сделать например под 178х220

Цитата:
Сообщение от DEAD_Angel Посмотреть сообщение
А проект в 2D или 3D графике будет ?
Хмм.. зачем 3D танчикам ? Лишний труд, цени время.

andNsX
К сожалению, не знаю про GameMaker. Также вынужден согласится, что у ORTODOX маловато знаний.. Но, продолжая о своём.. могу кодить под j2me, но одному лень. Поэтому и сказал - ищем второго Java2 ME программиста (а ещё художника, и вообще всех - кто что предложит ), и танчики будут готовы через неделю.
ORTODOX может быть координатором (идея его ) и перенимать опыт (как пафосно звучит ! )

DEAD_Angel
А я вообще рисовать не умею xD, а вообще, главное - работа в коллективе
^i_Swep вне форума  
Старый 14.01.2008, 01:04   #19
Юзер
 
Аватар для DEAD_Angel
 
Регистрация: 30.12.2007
Адрес: г.Краснодар; Мой комп.
Сообщений: 227
Репутация: 51 [+/-]
Цитата:
Сообщение от ^i_Swep Посмотреть сообщение
В чём отличия ? Размер экрана? Можно изначально нацеливаться на так сказать расширяемость. И для первого релиза сделать например под 178х220
Там такая штука, например: у меня MOTOROLA и игры с SONY ERICSON у меня не идут.
DEAD_Angel вне форума  
Отправить сообщение для DEAD_Angel с помощью ICQ
Старый 14.01.2008, 09:42   #20
Formula 1 Driver
 
Аватар для ХаН
 
Регистрация: 07.10.2007
Адрес: On Formula 1 Circuit
Сообщений: 209
Репутация: 77 [+/-]
andNsX
А где мона скачать GameMaker?


На счет проекта - идея класс )) Особенно заинтересовала под сотики ))
Кстати могу быть полезен в рисовании ( умею но неочень впринципе текстуры нарисую подгоню оптимизирую )
__________________
Alex Gorbunov
ХаН вне форума  
Отправить сообщение для ХаН с помощью ICQ Отправить сообщение для ХаН с помощью Skype™
 

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 10:57.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Rambler's Top100 Яндекс цитирования