Понедельник, 18 Ноября 2024, 22:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Структура игры
DarkWizardДата: Понедельник, 20 Декабря 2010, 20:47 | Сообщение # 1
был не раз
Сейчас нет на сайте
Доброго времени суток!
Долго искал куда можно добавить сообщение, решил завести новую тему.
Задался целью написать простенькую 2D-игру. Но при внесении новых идей постоянно приходится переписывать старые участки кода.
Думаю, многим начинающим разработчикам будет полезно определиться с игровой структурой. Ведь это не только графический движок. Еще логика, скрипты и т.д. И нужно еще, чтобы они мирно уживались и работали сообща.
Хочу спросить у профи игростроя: как они видят организационную структуру игры, алгоритмы взаимодействия отдельных частей?


Мое сердце у тебя на ладонях.
Волшебство для тебя лишь одной.
SoWaДата: Вторник, 21 Декабря 2010, 17:34 | Сообщение # 2
частый гость
Сейчас нет на сайте
Профи игростроя я себя не считаю, но назваться профи программирования, наверно, рискну.

Если ты правда программируешь, а не используешь готовые конструкторы, то не важно в чем и что ты пишешь: будь то клиент на флеше, сервер на С или на РНР - все сводится к очень удобной вещи: ООП.
Если знаком с этим термином - здорово.
Если нет - советую почитать.

Разработка очень упрощается, когда ты описываешь все классами, и с ними работаешь. Ну и когда они в иерархию уложены.
Отвлеченный пример моего сервера:
На верхнем уровне класс самого сервера, занимается включением сокетов(обмен данных с клиентом), хранением подключенных людей.
Параллельно с ним на уровне лежит класс работы с сокетами(сервер их только включает, а дальше они сами по себе)
Чуть ниже лежат классы работы с персонажем: Персонаж, который включает в себя еще классы: Опыт, Показатели, Инвентарь, Экипировка, ПАРСЕР.
И еще ниже дергаемые по нужде классы типа Карта, Магазин, Монстр, Бой, ит.д.
Пример, как это функционирует:
Запускается сервер. Загружает в себя из БД все возможные характеристики вещей игры(оружия, брони, зелья). Инициализирует таблицу пользователей.
Потом включается класс передачи данных по сети. Он занимается тем, что ловит все входящие подключения, говорит серверу создать игрока, когда тот подключился, принимает и отдает команды от/к игрокам.
Когда приходит от игрока какая-нибудь команда(например, пройти вверх по карте), класс передачи данных поулчает эту команду и отдает её экземпляру класса игрока, который включает парсер, а тот уже расшифровывает, что за команда пришла и какие характеристики персонажа надо поменять - в данном случае координату У и возможно сообщить игроку, что мы наткнулись на монстра.

Как-то так, но очень кратко.
Суть в двух словах - используй ООП.


ActionScript-программист. Так же Flash Media Server, C#, PHP. Рисовать не умею и не люблю.
Ищу проект, желательно где есть грамотный менеджер, дизайнер и художник.
DarkWizardДата: Вторник, 21 Декабря 2010, 18:25 | Сообщение # 3
был не раз
Сейчас нет на сайте
Объектно-Ориентированное Программирование - само собой))
Просто есть желание создать действительно интересную тему. От общей теории, используя отвлеченные понятия, до описания алгоритмов тех или иных специализированных областей.
Т.е. если идти от частного к обшему, то некоторый надкласс работает постоянно. По пути подключая и отключая необходимые более мелкие классы.
Вот, например, у тебя парсер не просто считывает команда, но и (как я понял) принимает решения о действии. В бою с монстром работает тот же парсер? И в магазине?
Скрипты, например, как работают? Они запускаются из парсера или особняком работают?
Графика, наверное, у тебя отрисовывается только после действия или есть анимация?


Мое сердце у тебя на ладонях.
Волшебство для тебя лишь одной.
SoWaДата: Вторник, 21 Декабря 2010, 20:18 | Сообщение # 4
частый гость
Сейчас нет на сайте
Я не очень понимаю, о каких ты скриптах smile
У меня клиент-серверная игра. Клиент на флеше, сервер на C#

Да, надкласс контролирует все.

Парсер как часть сущности "Персонаж" имеет доступ к персонажу и не дальше. Поэтому все, что с ним происходит - делает парсер. Ну, почти все smile
Если же приходит команда, например "принять бой", то это уже задача не нашего парсера, он передаст управление в класс боя.
Просто так или иначе все завязано на сущности "Персонаж".

Если игра не клиент-серверная, то я думаю, будет уместно сказать о MVC. Тоже очень помогает разделить на полочки: тут модель, тут контроллер, а тут отображение.
Её можно и в мультиплеере использовать, в клиенте. Но все равно все сводится к куче switch-case операторов.
Мне более интересно разрабатывать производительный сервер, нежели красивую оболочку smile К сожалению, приходится делать и то и другое.


ActionScript-программист. Так же Flash Media Server, C#, PHP. Рисовать не умею и не люблю.
Ищу проект, желательно где есть грамотный менеджер, дизайнер и художник.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг