Pull to refresh

Comments 27

Очень понравилась компонентная структура. Когда автор мне про неё впервые рассказал, я так возбудился, что тут же побежал прикручивать её к своему проекту :) Подход действительно работает очень хорошо и заставляет посмотреть свежим взглядом на заезженную парадигму ООП и её место в народном хозяйстве :)
UFO just landed and posted this here
В Unity используется точно такая же структура
Компонентная? Не сталкивался с Unity.
На реализацию меня вдохновила презентация разработчика Dungeon Siege, кажется, его зовут Scott Bilas.
UFO just landed and posted this here
Хм. Лишних — это каких?
UFO just landed and posted this here
Не к одному компоненту, а к одному объекту. Я сомневаюсь, что буду это делать в ближайшее время, не стоит такой задачи. Мне от архитектуры нужна была гибкость в добавлении новых объектов, а выносить это все в конфиги — дело десятое.
Оно лично мне ничего особо не принесет в плане удобства — разве что внутреннюю гармонию, мол «вот сейчас все как надо»)
UFO just landed and posted this here
Ну просто это уже наведение лоска, не добавляющее по сути ничего нового.
У меня слишком много других проектов (в основном, хардварных), чтобы достигать гармонии путем выноса списка компонентов в конфиг)
Интересно.
P.S. Хотелось бы хотя бы видео игрового процесса глянуть.
Хотел записать видео настоящего матча с друзьями, когда трое играют оно повеселее)
Но сейчас только один друг в пределах досягаемости, так что записал трехминутный демо-матч. Приложил к статье.
Спасибо! Забавно :-)
Я с озвучки выпал просто :) Пишу из-под стола…
Этой озвучке уже 9-10 лет) Но т.к. некоторые фразы там эпичны, оставил ее же в новой версии)
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Я с XNA никогда не работал (а выглядит эта хна, кстати, весьма тяжеловесной...), а с OpenGL в свое время развлекался. К тому же, я упомянул, что сначала решил писать на C++, и цппшная версия была на ОпенГЛ, разумеется — поэтому когда я перешел на шарп, было проще повторить то, что я реализовал на С++, нежели начинать внедрять новую технологи.
Спасибо большое за статью, хотелось бы поподробнее узнать про реализацию отрисовки. Как вы добились легкой подмены рендера (например, рендер directX, openGL, GDI и т.д.)

Архитектура прекрасно описана, еще раз спасибо за статью и ждем новых.
Я опишу это подробнее после. Если коротко — все, что связано именно с отрисовкой вынесено в Graphics.dll. Внешней системе важен только интерфейс IGraphicSystem. У него есть метод AddToFrame(IGraphicsObject);
Соответственно, для опенГЛ, допустим, реализуется OGLGraphicSystem:IGraphicSystem, и всего несколько классов объектов — OGLSprite:IGraphicsObject, OGLMap:IGraphicsObject, OGLText:IGraphicsObject — это все, что юзает игра.

Соответственно, если нужно написать другой рендерер, просто реализуется наследник интерфейса IGraphicSystem, допустим Direct3dGraphicSystem вместе с D3DMap, D3DSprite, D3DText.

Спрайт, допустим, можно заменить 3Д моделькой — внешней системе, в принципе, все равно — она просто берет графический объект, выставляет ему координаты и кидает на рендер.
Понятно, спасибо большое за ответ
Спасибо большое, очень полезная статья. В избранное, однозначно. Чувствую почитаю ее еще не раз, чтобы полностью понять.
Если бы я был таким молодцом в те годы, сумевшим написать игру в которую интересно рубиться с друзьями, я бы собой однозначно гордился. Вы молодец :)
Автор, дайте, пожалуйста, ссылочку на исходники или на exeшник. Хочется «ручками потрогать» игру.
Sign up to leave a comment.

Articles