Ответ 1
во-первых, игры, как правило, имеют симуляцию в реальном времени
- поэтому игры имеют петли обновления
- поэтому игры имеют тенденцию к операциям бизнес-логики в микросекундовой шкале.
- поэтому решения базы данных - это не конец и все ваш "уровень данных"
(если у вас нет симуляции (например: "scrabble", "цивилизация", большинство игр в facebook), это неверно. mud не имеет большого моделирования, поэтому неясно, с какой стороны забор вашей игры включен)
таким образом, на практике, в сильных играх,
малые/непостоянные многопользовательские игры (землетрясение, контрстрел, starcraft - игры, которые могут запускаться на одной машине): решить это, не имея слоя данных (и если они реализуют сейвы, они делают это как гигантские отвалы gamestate )
большие многопользовательские игры (mmos - игры, требующие нескольких машин): используйте их постоянное хранилище данных как канал для записи (и для восстановления), а затем добавьте много энергии в схему разделения данных таким образом что логика моделирования (то есть бизнес) может получить то, что ей нужно, с задержками в порядке доступа к локальной памяти.
некоторые цифры для перспективы: если "сервер" обрабатывает 500 игроков, а ваша скорость моделирования равна 15 Гц, каждый игрок получает 0,13 мс процессора за игрока за галочку. поэтому, если вам нужно, чтобы "огненный шар ударил все, что этот фрейм" должен быть < < 13 мс, не достаточно длинным для сетевого маршрута или запроса sql. да, вы можете убрать из игры многие из этих проблем - например, "не иметь столкновения" решает предыдущий пример. Но в какой-то момент вы перестаете быть симуляционной игрой, хе-хе.
вторая большая разница - это "графика"
графическое программирование довольно отличается от программирования бизнес-приложений. хотя я иногда думаю о программировании как "беру данные на место A в формате X и переместившись на место B в формате Y", который применяется как к бизнес-процессам, так и к графическому программированию, графическое программирование на многие порядки меньше прощает большинство.
(хотя, как и в стороне, быстрая обратная сторона конверта конверта ставит проблемы с google-esque в том же ведре:
- игры: управлять "гигабайтами" графических данных в масштабах "миллисекунды" == 10 ^ 9/10 ^ -3 == 10 ^ 12
- google: управлять "петабайтами" данных в "дневных" масштабах == 10 ^ 15/10 ^ 3 == 10 ^ 12
**: и на самом деле игры не могут перемещать столько данных, поэтому "трюк" графического программирования прыгает через обручи "как мы получаем гигабайты графических данных, где это должен быть каждый кадр, с реальностью только для того, чтобы фактически перемещать/манипулировать мегабайтами кадров, - загрузочные экраны являются сообщением, но неудачным ответом: (
снова это менее актуально, если вы делаете игру с низкими требованиями к графике.
Таким образом, игры, как правило, обрамляются в терминах "геймплей/графика"
а не "ui/logic/dal". что, когда я перешел от веб-земли к играм, мой трехуровневый взгляд на мир (да, у нас только было 3 уровня), я почувствовал, что дал много понимания нашему проекту и привел к разработке "уровень доступа к данным" для игрового контента, который был очень успешным в нескольких проектах (решение проблем игрового мира, таких как снятие информации с диска, обработка версий времени разработки, горячая загрузка и т.д.).
В то время, когда будут изучаться новые вещи, где вы будете заниматься разработкой игр, ваш предыдущий опыт поможет вам в этом.
в отношении вашего запроса на консультацию,
я бы предложил сосредоточиться на игре с дизайном, который точно соответствует вашему опыту.
т.е. если вы чрезвычайно компетентны с базами данных, веб-страницами и расписанием, создайте игру с электронными таблицами: http://www.ogame.org/
если вы хотите немного больше логики игры и моделирования, сделайте коллекционную карточную игру: http://apps.facebook.com/warstorm/
если вам нужно немного более сложное взаимодействие с игроком, проверьте мемо-скребок: http://wordsquared.com/
и если вы хотите изучить графику, начните с игры с одним игроком:)
используйте методы и технологии, которые вам нравятся, посмотрите, где они начинают разбиваться, а затем возвращайтесь сюда и публикуйте свои вопросы и открытия.
получайте удовольствие!