Архивные записи по тэгу ‘Games’

«Задело»

В связи с тем что собирался делать онлайновую игрушку ушел в серверную часть.

Это на чистом С# без всякой оптимизации, такчто я думаю с месяцок блога не будет пока не «въеду полностью»

Небольшие уточнение планов.

Урока по работе с клавиотурой скорее всего не будет, особо описывать нечего. Хотя может и появится общий урок по «прикручиванию» Input’a к игровому циклу, но явно не втом порядке который зарание планировался.

(07.07.2008) В качестве сетевых технологий на 90% будет только WCF. По следующим причинам: достаточно новая технология, нет необходимости заморачиватся программированием уровня сокетов.

(09.07.2008) Грусно но вот что получается когда учишься одновременно с написанием, оказывается что Silverlight в данный момент поддерживает только BasicHttpBinding тип привязки, а мне нужен NetTCPBinding. Так что буду ковырять все подряд.

Работа с базами данных будет через LINQ, в качестве примера сервера будет MS SQL Server 2005 Express(бесплатный и быстрый).

Если у Вас возникнут сомнения по поводу быстродействия этой связки, то смею Вас уверить они безосновательны – в инете множество подтверждений по этому поводу. И это пока не наше дело. Из своего опыта могу добавить только правильно подобраные алгоритмы это 95% всей оптимазации. Так что не замарачивайтесь по поводу быстродействия.

Урок:5 Пытаемся работать с изображениями (Мысли о анимации)

Собственно назвать это уроком можно с большой натяжкой, так – больше общие замечания по работе с изображениями в Silverlight.

Итак, изображения, на самом деле это одна из самых слабых сторон Silverlight ‘a. Возможностей тут не так уж много. Давайте их посмотрим.

Так как Silverlight оперирует с объектами и их свойствами, битмап на страницу можно добавить только двумя способами:

· 1) Добавив объект Image

· 2) Использовав ImageBrush уже на существующем объекте

Отсюда все возможности и ограничения по работе с битмапами.

Далее »

Урок 4: Игровой цикл. Часть 3 (Процедурная анимация в Silverlight’e и игровой цикл)

Собственно если вы уже понимаете анимацию Silverlight’a на базе xaml, то процедурная анимация точно для вас не составит труда.

Как случай чистой xaml анимации, так и случай чистой процедурной анимации на C# в реальной жизни по отдельности очень редко встречается. Но для полноты эксперимента мы обязаны их рассмотреть. Так что давайте для начала попробуем создать таймер. Вот что у нас получилось в файле page.xaml.cs:

   1:   Page : Canvas
   2:      {
   3:          Storyboard animation_timer; // объявляем экземпляр таймера Storyboard
   4:          public Page()
   5:          {
   6:              InitializeComponent();
   7:  
   8:              animation_timer = new Storyboard(); // создаем наш таймер
   9:              this.Resources.Add("animation_timer", animation_timer); // добавляем его в ресурсы страницы
  10:              animation_timer.Begin(); // собственно запускаем его
  11:          }
  12:      }

Далее »

Урок 4: Игровой цикл. Часть 2 (Silverlight анимация и xaml)

Ладно продолжем.

Анимация с использованием Blend’а, красиво, легко, но, к сожалению, в случае написания игр не сильно жизнеспособна. Поэтому попытаемся поковырять анимацию руками. Будем ковырять DoubleAnimation как самую распространенную.

Далее »

Урок 4: Игровой цикл. Часть 1 (Простейшая анимация и немного теории)

Тут меня попросили начать с «прикручивания» SQL базы. Но, к сожалению, это, наверное, одна из самых обширных тем, поэтому, надобно подумать с чего начать чайнику, какой сервер поставить, как проще создать БД. Дело в том, что, скорее всего, работать с БД в Silverlight’e будем через LINQ. Если кому ОЧЕНЬ надо почитать, то смотрите здесь. Просто через LINQ нельзя модифицировать и создавать БД :-( вроде как прочитал такую информацию. Поэтому сами понимаете тут «надо покумекать». Хотя я прекрасно понимаю что «прирули» SQL к Silverlight’y даже на том уровне что знаем – то при желании можно создать клон БК или чего ни будь подобное. Кроме того я не вижу ни одного возможного применения баз данных в Silverlight’е при использованием их вместе на одной машине. Поэтому, по любому, вам необходимо будет задействовать или веб-сервисы (WCF) или работу с сокетами для прямого обращения к базе. А это работа с сетью. Так что пойдем по порядку – возможно делая небольшие отступления. Хочется заметить, что существует возможность, что до меня успеет разобраться с этим другой человек – может он и поможет нам с уроком в данном блоге.

К делу. Итак, игровой цикл, в народе известный как геймлуп (Gameloop) и анимация. В связи с тем, что эти темы ОЧЕНЬ тесно связаны – обе задействуют таймеры, мы начнем с анимации, а именно с работы с таймером и изображениями.

В Silverlight’e можно создать два типа таймеров, а именно Storyboard (System.Windows.Media.Animation) и DispatcherTimer (System.Windows.Threading). Что именно использовать мнения разделяются. Некоторые, аргументируя тем, что Storyboard легче «хакнуть» рекомендуют использовать DispatcherTimer. Другие же, рекомендуют наоборот – Storyboard уповая на его более широкие возможности.

Лично для меня окончательно поставил точку в этом вопросе Adam Kinney из Microsoft’а в своем блоге. Суть всего этого, что Storyboard во-первых более стабилен для различных ОS и браузеров. Во- вторых DispatcherTimer имеет меньшую разрешающую способность, чем Storyboard (правда у меня не получилось это протестить – и тот и другой выдают на пустом цикле максимум 63-65 fps, кстати, буду благодарен за пример с более высокими показателями). Ну и, в-третьих – функциональность: DispatcherTimer еще можно использовать для организации игрового цикла, но вот делать в Silverlight’е его средствами анимацию – это просто себя не уважать: сложно и поддерживает только процедурную анимацию, при этом теряется просто две трети всех возможностей анимации Silverlight’а.

Далее »

Чего бы почитать по теме?

Советую начать с
http://www.silverlight.net/quickstarts/,
http://silverlight.net/learn/tutorials.aspx,
http://weblogs.asp.net/mschwarz/archive/2007/06/06/silverlight-tutorials.aspx
(а именно вот с этотого
http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-1-creating-quot-hello-world-quot-with-silverlight-2-and-vs-2008.aspx)
http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx

По программированию игр под Silvelight смотреть особо нечего, исходников много можно найти, а почитать:
http://silverlightrocks.com/community/blogs/silverlight_games_101/default.aspx
http://silverlight.net/blogs/msnow/archive/2008/03/25/introduction.aspx
http://www.andybeaulieu.com/(тут не только игры, ОЧЕНЬ много информации)

И обязательно скачайте Microsoft® Silverlight™ 2 Software Development Kit Beta 1 Documentation – множество вопросов можно почитать)) Повторяюсь НЕ СТАВТЕ сам SDK!!!

На русском особо ничего не посоветую — бо большого ничего не нашел, а так почитать(тем более попадаются интереснинькие примеры):
http://porubov.com/
http://habrahabr.ru/blog/silverlight/
http://heckfy.3eu.ru/

Онлайновые РПГ – возможное будущее

Собственно….. Сразу представлюсь ЧАЙНИК в программировании.

Если чесно просто млею от игр, правда не от всех — только от RPG. Хороших RPG.
Вначале были просто игры, потом подсел на WoW, даже полтора года держал сервер в локалке с онлайном до 400 чеовек. Затем просто надоело, а надоело потому что хотелось чтобы все работало – сами представляете что такое пиратский сервер, вот и забросил это гибое дело.

Но душа требует своего, тебует разгрузки от повседневности или хорошей книги или массовой онайновой игры. Я иногда балуюсь програмированием и переодически интересуюсь вопросами программирования сетевых (сети это моя болячка, моя работа и моя профессия — именно сети а не программирование) игр. Но если из Вас кто либо интересовался этим вопросом то прекрассно понимает что одному не в жизнь не осилить написание нормальной игруши тем более сетевой.

И я так думал, пока не попалась одна ссылка на игру с отрытым кодом, которую написала одна семья(ДВА ЧЕЛОВЕКА, муж с женой) на питоне(Найду ссылочку выложу). И у них онлайн больше 1000. Дасссссссссс…..

Вот тогда то я и задумался, а «где-же истина брат». И за чем будущее?(пока трогаем только игрушки).

Далее »