Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Архив (Общеигровые вопросы) (http://forum.igromania.ru/forumdisplay.php?f=173)
-   -   Танчики (http://forum.igromania.ru/showthread.php?t=54945)

System32 21.01.2008 16:29

Хм неплохо ! Я бы даже сказал хорошо !

И вот ещё , вдруг прегодится !

^i_Swep 21.01.2008 16:41

Цитата:

Сообщение от ORTODOX (Сообщение 3200489)
а что добавить,что-то я не понял

концепцию ядра L'ombre

DEAD_Angel 21.01.2008 17:08

Цитата:

Сообщение от ^i_Swep (Сообщение 3200378)
кста, почему бы не в psd ?

А движок его (формат PSD) поддерживает ?

P.S.Спасибо всем, что одобрили мой танчик. :)

pokibor 21.01.2008 17:12

^i_Swep
Спасибо. Серия видюх GeForce 6xxx под подозрением. Чего-то они не умеют делать... Буду разбираться.

DEAD_Angel
dds DirectX поддерживает, psd, конечно, нет.

Миланчег 21.01.2008 18:40

Всем Сорри!! ORTODOX опять забанился :( Теперь я заместо него :))
ЗЫ Анимацию снаряда сделали?

Добавлено через 1 минуту
ЗЫ pokibor знаешь в чем баг на 6 серии жирафов?

pokibor 21.01.2008 18:54

Миланчег
Если б знал, бага бы уже не было. Впрочем, его нет, если использовать другой класс для квада, который с Lock'ом памяти. Стало быть, баг не является критическим, просто приложение, возможно, будет работать чуть-чуть медленнее.
P.S. Сейчас не до таких разборок. Закончил добавление клавиатуры через DirectInput. Скоро будет первый общественный релиз (в рамках сидящих здесь людей, конечно :) ). В ближайших планах - реализация мыши, добавление связанных с ней событий и пара методов у квада. Тогда движок будет уже готов к тестам игры.
P.P.S. Администрация сочла Миланчег'а фейком. Сочувствую. Только заверяю, что объяснительный пост был принят во внимание.

^i_Swep 21.01.2008 18:58

Цитата:

Сообщение от Миланчег (Сообщение 3202399)
Всем Сорри!! ORTODOX опять забанился

Поржал...
Пора выбирать заместителя ORTODOX
Пишите кандидатуры (синим)

System32 21.01.2008 19:17

pokibor
Цитата:

Скоро будет первый общественный релиз (в рамках сидящих здесь людей, конечно)
А помоему на дисках мании выкладывают работы читателе ! А ? Думаю вам стоит попробовать подать заявку . Естественно после того как игра будет готова и более менее сболансированная . (Я имею в виду в плане вылетов и ошибок !) :sml:

pokibor 21.01.2008 19:25

System32
Вы что-то не поняли. Я говорю о движке, а не об полноценной игре. Движок простейший пока, так что не надейтесь на его мощь, и для посылки куда-то там он точно не подходит...

System32 21.01.2008 19:28

Цитата:

Сообщение от pokibor (Сообщение 3202978)
System32
Вы что-то не поняли. Я говорю о движке, а не об полноценной игре. Движок простейший пока, так что не надейтесь на его мощь, и для посылки куда-то там он точно не подходит...

Зато есть к чему стремиться !!! :appl:

DEAD_Angel 21.01.2008 21:00

Цитата:

Сообщение от System32 (Сообщение 3203008)
Зато есть к чему стремиться !!!

Спасибо, что оптимистично настраеваешь нас.
System32, вступай ещё одним художником (ну, если конечно, остальные не против) ! :)

ORTODOX, ну ты даёшь - из бана в бан ! :lol: (не обижайся, я похорошему)
Кончаем флуд. Я стараюсь к нему гуманно относиться, ибо тема всё-таки живому обсуждению проекта посвящена, но всему есть предел.

System32 21.01.2008 21:44

Для связи !
 
Скрытый текст:
ORTODOX попросил всем вам объявить его ICQ для связи сним :
Скрытый текст:
360626199

DEAD_Angel 21.01.2008 22:06

Хотелось-бы чтобы управление танчиком было организованно не как в "стандартной версии"
Скрытый текст:
(т.е. жмёшь вверх - таник вверх..., жмёшь вниз - танчик резко развернулся, и вниз...)
, а так как в "top-down гоночках" на флеше, на мобильнике (думаю все поняли, о чём я :) (расписывать поподробнее - влом)). :)

L'ombre 21.01.2008 22:13

Цитата:

Сообщение от ^i_Swep (Сообщение 3200378)
надо дописать, что у level'a есть такие свойства как
- общее количество танков выпущенных на поле
- максимальное одновременное количество танков на поле

да, согласен.

про cooldown. Да, если танк может выпустить несколько снарядов, то нужно задать промежуток между выстрелами.
Грубо говоря, танк может выстрелить при выполнении двух условий:
- с момента прошлого выстрела прошло достаточное время, и
- количество существующих сейчас его снарядов меньше его максимума.


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

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

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

так что cooldown можно добавлять в свойство оружия, но это величина не в секундах, а в тактах, единицах "логического времени"

-----

ещё один важный аспект, по которму ещё нет единого решения - динамика.
нужно определить, как именно осуществляется движение в этом клетчном мире, как реализовать движение с разными скоростями, и как это соотносится с логическим временем и реальным временем.



Тут можно отталкиваться от двух идей.
Первая - считаем движение непрерывным. хм.. абстракция: все traverser'ы на самом деле движутся где-то в ином измерении и имеют вещественные координаты, а мы отсчитываем такты и в каждый такт определяем, какие ячейки матрицы они занимают - т.е. какие у них целочисленные координаты; округляем, в общем). Сюда хорошо вписывается вещественная скорость, и веществвенные же модификаторы скорости у объектов. Однако при таком подходе скорости могут быть (и будут) такими, что объекты - танки и снаряды - могут перемещаться за один такт на несколько ячеек, т.е. перескакивать через ячейки. Поэтому обрабатывать столкновения снаряда, двигающегося со скоростью, например, 3, будет сложнее (потребуется обрабатывать не только столкновения, но и пробегать по "предшествующим" ячейкам)

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


Кроме того (это относится к движению вообще, независимо от выбранного варианта), Танки (MatrixTraverser'ы) занимают ячейки в матрице, поэтому нужно не допустить таких ситуаций, когда на первом такте танк решает переместиться куда-то в свободное место, и за то время, пока он ждёт, это место кто-то занимает (а графический движок уже начал анимацию, передвинул картинку на половину ячейки!) Это можно сделать двумя способами - перемещать танк сразу и потом ждать, или же "зарезервировать" целевые ячейки, подождать, потом переместится (в этом случае танк стоит на месте и снаряды его там могут повредить, но на его новое место никто заехать не сможет, а снаряды там спокойно пролетают).

pokibor 21.01.2008 23:42

Ловите первую версию недо-движка с демонстрационным приложением. Сразу говорю, что в демонстрации затронуты далеко не все возможности даже из уже имеющихся в наличии (так, например, нет буферизации ввода DirectInput). В общем, смотрите и разбирайтесь. Программеры... :D
Да, там вроде как все объекты я сделал нетрансформируемыми, следовательно, проблем ни у кого быть не должно. Сглаживание, кстати, надо бы сделать... займусь этим позже :)
К движку относятся следующие файлы:
global.h
i_keyboard.h; i_keyboard.cpp
r_window.h; r_window.cpp
renderer.h; renderer.cpp
resource.h; resources.rc;
Короче, все h-cpp кроме main'а и пустых пока t_core, плюс ресурсный файл rc.
Ссылки: http://ifolder.ru/5048137 либо http://webfile.ru/1698709

Проект сделан в VS 2005 с использованием DirectX SDK от ноября 2007'ого года, но загрузить все файлы и скомпилить, думаю, можно и при более ранних версиях. Повторяю, не открыть проект (VS может выдавать ошибку!), а создать новый и загрузить в него все h, cpp и rc-файлы! Только новый создавайте в той же папке либо модифицируйте в коде путь к текстурам (в main.cpp, найдёте сами).

P.S. Бывает же такое... Дико стормозил и вместо нормальных enum'ов пихнул какое-то Java-подобное извращение с уймой констант в классе... Ну да ничего, я уже исправился, заодно нашёл баг в оптимизаторе VS 2005 (он просто не понимает то ли членов enum'а в качестве default-значений, то ли ещё чего-то, с enum'ами связанного) и перешёл под бету VS 2008, попутно качая релизную версию. О чём и оповещаю участников проекта. Отныне под 2005 мои файлы вполне могут не компилиться из-за традиционных M$'ных БАГОВ.

Fey 22.01.2008 11:10

А демо-игры ещё нету?? или хотяб какую-нить версию игры.:)

ХаН 22.01.2008 11:27

Fey
Цитата:

Сообщение от andNsX (Сообщение 3165761)
DEAD_Angel
Это архив спрайтов с Сайта о Гамаке. Сейчас экзешник танков кину...
Вот ссылка http://ifolder.ru/4986017

Будь внимательнее :wnk: Это конечно далеко не демо........просто версия одного из наших участников

DEAD_Angel 22.01.2008 12:51

pokibor
У меня работает нормально. :)

HaNproKilleR
Ну как там с уровнями ? Придумываешь ?

pokibor 22.01.2008 13:31

DEAD_Angel
Да что работает нормально, ясно. Я жду, пока программист(ы) наши распробуют текущую версию движка. Для кого я его пишу, в конце концов?

DEAD_Angel 22.01.2008 13:49

Цитата:

Сообщение от pokibor (Сообщение 3207698)
Я жду, пока программист(ы) наши распробуют текущую версию движка. Для кого я его пишу, в конце концов?

Если ты про программеров на С++, то их у нас (помоему) ещё не завелось, вроде...
P.S. Придётся тебе программером "записываться" :))

P.P.S. Простите за флуд.

Добавлено через 7 часов 15 минут
pokibor
Как движок назовёшь ?
Это только движок на С++ написаный, такую структуру имеет, да? А на каких языках програмирования другие движки пишут ?
(Извините, понимаю немного не по теме)


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

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.