Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
164 - Battle city II
Сегодня, 08:28
 StormT
Халявные игры (The H…
Вчера, 13:07
 Crusader_Raccoon
Разрешите представит…
Вчера, 20:57
 ChocolateCake
Конкурс по программи…
14.09.2019
 Victor
[Roguelike] Last Imp…
29.08.2019
 KregHek
164 - ?
29.08.2019
 StormT
163 - Arcade
27.08.2019
 pelmenka
[RPG/arcade] Герои п…
25.08.2019
 Teedeush
163 - ?
28.07.2019
 Victor
Swordbreaker: Origin…
9.07.2019
 DuCats Games
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 1,730
новичок: ChocolateCake
Обсуждение «Механика игры и логика игры»
clazz
Avatar пользователя

Опубликовано 09.05.2013 13:53 (6 лет назад)    #
Как бы Вы описали своими словами эти два термина?
Battle City II:Не участвую.
ObelardO
Avatar пользователя

Опубликовано 09.05.2013 13:55 (6 лет назад)    #
логика - это по ту сторону экрана, а механика - по эту :)
Battle City II:Не участвую.
clazz
Avatar пользователя

Опубликовано 09.05.2013 15:20 (6 лет назад)    #
ObelardO, спасибо. Но я бы хотел услышать описание с точки зрения программиста. Сейчас пытаюсь реализовать игровой цикл, где происходит взаимодействие игрок-ИИ, игрок-игрок(на одном ПК или через сеть). Опыта в gamedev нет, поэтому сложно представить игровую архитектуру.
Battle City II:Не участвую.
MysticCoder
Avatar пользователя

Опубликовано 09.05.2013 15:58 (6 лет назад)    #
clazz написал:
ObelardO, спасибо. Но я бы хотел услышать описание с точки зрения программиста. Сейчас пытаюсь реализовать игровой цикл, где происходит взаимодействие игрок-ИИ, игрок-игрок(на одном ПК или через сеть). Опыта в gamedev нет, поэтому сложно представить игровую архитектуру.


Я бы организовал примерно так... Представим каждый юнит в виде конечного автомата, опишем все его состояния, реализуем все его действия, далее пропишем несколько уровней интеллекта, которые будут управлять изменением состояний юнитов. На примере стратегий, базовый - инстинкт самосохранения допустим, если подвергся атаке, то отбежать, если воевать не умеешь, если умеешь то атаковать в ответ, если жизней мало, то убежать. Если рядом союзники есть, то позвать на помощь либо предупредить об опасности. Далее идет другой уровень, на котором более конкретизируются условия для разных типов юнитов. Если работнику нечего делать, то он идет добывает ближайшие ресурсы, охранник соответственно патрулирует, разведчик - разведывает. Дальше более глобальный уровень, который определяет общую стратегию развития: если не хватает таких то ресурсов, то добыть их, если их нет, то найти новые, наклепать небольшую армию - послать в такую то точку на карте(к врагу), воевать будут сами. Ну а игрок по сути это просто устройство ввода, когда некоторые базовые уровни интеллекта реализованы, юниты становятся более самостоятельны, и игрок выполняет роль остальных уровней интеллекта. Т.е. у юнитов подконтрольных игроку включены только базовые, такие как самосохранение. Вообще на эту тему давненько читал статью где всё хорошо расписывалось, точно не помню, но вроде на примере отечественной стратежки тень ворона или ворон. Ну как то так... Может я совсем не про то говорю, но и вопрос достаточно размытый)
Battle City II:Не участвую.
Shirson
Avatar пользователя

Опубликовано 09.05.2013 16:48 (6 лет назад)    #
clazz написал:
Как бы Вы описали своими словами эти два термина?

Логика игры, это система логических связей, ответственная за поведение игры (взаимосвязи событий в игре). Это очень высокий, абстрактный уровень.
Игромех - имплементация предыдущего определения в виде свода правил . (высокий уровень)
Есть еще низкий уровень - это реализация игромеха непосредственно "в корпусе". В зависимости от "платформы" может быть как програмным кодом, так и сводом действий по бросанию кубика или еще чего.
Battle City II:Не участвую.
clazz
Avatar пользователя

Опубликовано 09.05.2013 19:37 (6 лет назад)    #
CoderInTank написал:
... вопрос достаточно размытый)

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

Shirson, т.е. если у меня есть юнит и у него метод "перемещаться в точку" - низкий уровень? А уровень выше определяет правила: куда переместить, можно ли переместить, где обойти, что стало с юнитом в точке?
Battle City II:Не участвую.
Shirson
Avatar пользователя

Опубликовано 09.05.2013 21:07 (6 лет назад)    #
clazz написал:
Shirson, т.е. если у меня есть юнит и у него метод "перемещаться в точку" - низкий уровень?

*Бьёт тапком в глаз за смешивание мух и котлет*
Раз взялся приводить мысли в порядок, делать это надо вдумчиво :)

Абисьняю:
Юнит это высокий уровень. У него не может быть никаких методов. Методы есть у объекта (низкий уровень), который реализует поведение юнита.

А уровень выше определяет правила: куда переместить, можно ли переместить, где обойти, что стало с юнитом в точке?

Высший уровень определяет есть ли вообще что-то, что можно перемещать и где. (У нас RTS с юнитами, которые перемещаются по полю)
Высокий уровень задаёт общие правила поведения (ходючие юниты ходют по полю и не могут пройти по пенькам, летучие юниты могут пролететь где угодно)
Низший определяет как будет происходить перемещение. (Найти путь из точки А в точку Б при заданных (выше) для юнита правилах перемещения, переместиться по этому пути)
Battle City II:Не участвую.
clazz
Avatar пользователя

Опубликовано 13.05.2013 17:24 (6 лет назад)    #
Shirson написал:
*Бьёт тапком в глаз за смешивание мух и котлет*

Не помогло( Придется снова засесть за чтение ООП.
Battle City II:Не участвую.
Shirson
Avatar пользователя

Опубликовано 13.05.2013 18:13 (6 лет назад)    #
clazz написал:Не помогло( Придется снова засесть за чтение ООП.

ООП-то тут причём? Логика, механика и их реализация никак не связаны, ни с ООП, ни с программированием вообще (настолки, карточные, воргеймы и пр)
Battle City II:Не участвую.
Xneg
Avatar пользователя

Опубликовано 14.05.2013 09:44 (6 лет назад)    #
Shirson написал:
clazz написал:Не помогло( Придется снова засесть за чтение ООП.

ООП-то тут причём? Логика, механика и их реализация никак не связаны, ни с ООП, ни с программированием вообще (настолки, карточные, воргеймы и пр)


Я позволю себе вмешаться, потому что, с одной стороны, сталкиваюсь с теми же проблемами, что и clazz, а с другой, имею довольно большой опыт игры в различные настолки, карточные и варгеймы))

ООП для clazz'а очень даже причем, потому что то, что в настольной игре можно уместить условно говоря в одну страницу правил (это как раз механика игры или ее движок), может потребовать довольно сложной иерархии тех же классов, если мы хотим эту игру запрограммировать.
Для меня, например, было небольшим когнитивным шоком то, что помимо классов неких игровых ("движковых") сущностей (типа тех же юнитов), необходимо создавать классы их визуального отображения и каким-то образом все это друг с другом увязывать.
Battle City II:Не участвую.
Shirson
Avatar пользователя

Опубликовано 14.05.2013 15:21 (6 лет назад)    #
ООП это одна из многих возможных технологий реализации игромеха. Сам ООП тут никак не роляет, потому, что игромех может быть реализован и без объёктной модели.
И если проблема в том, что ты упомянул, про сложность понимания того, что нужно отдельные сущности для визуализации, тут надо не ООП перечитывать, а постигать дао MVC :) И делать это вдумчиво и усердно, ибо MVC, особенно для игростроя, это одна из самых важных и самых малопонимаемых девелоперами вещей.

редакция от Shirson, 14.05.2013 15:27

Battle City II:Не участвую.
Selesasha
Avatar пользователя

Опубликовано 14.05.2013 16:43 (6 лет назад)    #
clazz написал:
Сейчас пытаюсь реализовать игровой цикл, где происходит взаимодействие игрок-ИИ, игрок-игрок(на одном ПК или через сеть). Опыта в gamedev нет, поэтому сложно представить игровую архитектуру.


Не важно ООП или не ООП, но хорошим стартом будет написание некой структуры Actor, которая может принимать параметры действия и совершать его. И которой будет все равно откуда пришли эти параметры - от игрока за монитором, ии, или игрока из сети.

Перед этим, конечно, необходимо написать на бумажку список игровых объектов и для каждого построить дерево действий.
Battle City II:Не участвую.
Xneg
Avatar пользователя

Опубликовано 14.05.2013 20:11 (6 лет назад)    #
2Shirson
Согласен) Дао MVC постигать нужно. Просто во многом ООП стал неким стандартом разработки, который сильно облегчает жизнь.
Просто я хотел акцентировать внимание на то, что вещи, которые с точки зрения некой "механики" игры достаточно простые (к примеру, как в шашках, нельзя выходить за доску или вставать одной шашкой на другую) в компьютерной реализации уже не так очевидны.
Battle City II:Не участвую.
Shirson
Avatar пользователя

Опубликовано 14.05.2013 20:21 (6 лет назад)    #
Xneg написал:
2Shirson
Согласен) Дао MVC постигать нужно. Просто во многом ООП стал неким стандартом разработки, который сильно облегчает жизнь.

ООП это одно из средств реализации низкого уровня. У топикстартера серьёзные проблемы с пониманием архитекрутры в целом. Перечитыванием ООП его проблема не решится никак.

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

Это понятно по дефолту. Поэтому низкоуровневая имплеменация занимает в сто раз больше места, чем её хидеры :)
Но к сути темы отношения это особого не имеет ;)
Battle City II:Не участвую.
Xneg
Avatar пользователя

Опубликовано 14.05.2013 20:40 (6 лет назад)    #
Shirson написал:
ООП это одно из средств реализации низкого уровня. У топикстартера серьёзные проблемы с пониманием архитекрутры в целом. Перечитыванием ООП его проблема не решится никак.


Ну так может и расписать тогда чуть подробнее эту архитектуру, не вдаваясь пока в конечные автоматы? Мне тоже было бы очень интересно)
Battle City II:Не участвую.
Shirson
Avatar пользователя

Опубликовано 14.05.2013 22:51 (6 лет назад)    #
А причём тут конечные автоматы? 8(
Battle City II:Не участвую.
Xneg
Avatar пользователя

Опубликовано 15.05.2013 06:49 (6 лет назад)    #
Ну, просто в первых сообщениях речь пошла именно о них)
Battle City II:Не участвую.
Перейти на форум:
Конкурсы
Открытые конкурсы:
Battle City II

Старт: 31 августа 2019г.
Финиш: 16 сентября 2019г.

Участники: 4
Недавние конкурсы:
 163 - Arcade
 162 - Programming
 161 - Demake
 160 - Arena Shooter IV
 159 - RPG VII
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

17,094,871 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.