Я - первокурсник в колледже, который занимается моей степенью в области компьютерных наук... Я программировал много последних нескольких лет, но только недавно я получил больше теоретических идей об организации кода, шаблонов дизайна, различий в языках, и т.д.
У меня есть класс Java, поэтому я отбросил свои исследования и разработки на С++ и перешел в Java и JOGL (Java OpenGL). Это замечательно! Но это не относится к делу.
Я хочу сделать небольшую ролевую игру, но этот вопрос действительно относится к любой игре. Как вы упорядочиваете игровые объекты таким образом, который структурирован, как шаблон Model-View-Controller? Это выглядит потрясающе, очень широко используется и имеет большой смысл, но мне трудно понять, как его реализовать.
Например, мне нужно отслеживать объект GL для рисования на экране. Я должен иметь классы, которые реализуют MouseListener, MouseMotionListener, MouseWheelListener и KeyListener (или один класс, менеджер ввода-вывода "все-в-одном" ). И я должен поместить свои игровые данные где-нибудь, где все эти разные классы могут получить доступ и изменить его; если кто-то нажимает кнопку на клавиатуре, класс управления вводами должен каким-то образом выполнить действие, к которому привязан ключ; когда кадр должен быть нарисован, графическому классу необходимо найти способ перебрать все разные "вещи" и нарисовать их все.
И моя самая большая проблема, GUI; где он привязан ко всему этому? Это что-то вроде ввода, но не совсем, и ему нужно как установить, так и получить кусочки данных из фактического игрового моделирования... И усложнять его даже БОЛЕЕ, если я решит попробовать и добавить сети, которые (подобно графическому интерфейсу ) также должен иметь доступ к большому количеству данных для изменения и чтения...
О, я просто смущен. Я не знаю, как сделать все это совместной работой объектно-ориентированным способом... Это достаточно легко писать вещи, которые явно соответствуют шаблонам, но когда у вас много вещей, которые все связаны с одним игровым циклом, изменяя друг друга и данные игры и т.д., я даже не знаю. Возможно, я просто делаю это крупнее, чем на самом деле.
Кто-нибудь еще так чувствовал? Пожалуйста, предложите некоторую ясность в моей ситуации, чтобы я мог тратить меньше времени на беспокойство и не знать, с чего начать!
-Ricket
Изменить: Найдена хорошая диаграмма, которая может помочь мне понять все это... Источник: (остерегайтесь, файл PS!) http://www.tucs.fi/publications/attachment.php?fname=TR553.ps.gz
http://img10.imageshack.us/img10/6278/mvcdiagramgamesbl5.png
Edit2: Мне также нравится, что этот парень объясняет, как он планировал свою игру MVC: http://interactivesection.wordpress.com/2007/11/19/dum-de-dum-drum-my-first-mvc-game-development/
Edit3: Еще одна замечательная статья! http://dewitters.koonsolo.com/gamemvc.html