<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-5856673091024765241</id><updated>2009-11-11T14:45:08.685+02:00</updated><title type='text'>Платформа RunServer для MMOG игр</title><subtitle type='html'>Блог Nomad'a, разработчика серверной платформы для MMOG - RunServer. Описываются проблемы разработки масштабных сетевых приложений, а также сопутствующие проблемы разработки онлайн-игр.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.runserver.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-6066822383242682097</id><published>2009-11-11T13:26:00.011+02:00</published><updated>2009-11-11T14:40:43.735+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='оптимизация'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Оптимизация геометрии для 64-битной платформы</title><summary type='text'>Сейчас мы работаем над библиотеками серверной обработки геометрии (нахождение пути, проверка видимости и пр.). В тестовом проекте проявилась интересная проблема: геометрия, особенно со вспомогательными данными, занимала много памяти на платформе х86 и очень много на х64. На первый взгляд все было спроектировано верно, но на диске данные занимали около 100МБ, а в памяти – больше </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/6066822383242682097/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2009/11/64.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/6066822383242682097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/6066822383242682097'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2009/11/64.html' title='Оптимизация геометрии для 64-битной платформы'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-2430738458610677461</id><published>2009-05-20T18:19:00.010+03:00</published><updated>2009-05-28T12:15:33.153+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='runserver'/><category scheme='http://www.blogger.com/atom/ns#' term='mmt'/><category scheme='http://www.blogger.com/atom/ns#' term='rgdc'/><title type='text'>КРИ 2009</title><summary type='text'>В этом году мы ездили в Москву на КРИ 2009 показывать свой проект.В прошлом году я уже был на этом мероприятии вместе с командой Syndicate Online и остался весьма доволен, потому расчитывал как минимум на радушный прием и благоприятную почву для сеяния семян RunServer.Видимо, наши оценки влияния кризиса на игровую индустрию вцелом оказались не верны. Если говорить кратко, то некоторая польза от </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/2430738458610677461/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2009/05/2009.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/2430738458610677461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/2430738458610677461'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2009/05/2009.html' title='КРИ 2009'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oNylKuSmqLQ/ShQ6TNx1nwI/AAAAAAAAADU/9QTm6FM06IA/s72-c/P5170419.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-1299526797272433870</id><published>2009-04-27T10:23:00.005+03:00</published><updated>2009-04-27T11:05:19.505+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='runserver'/><category scheme='http://www.blogger.com/atom/ns#' term='mmt'/><category scheme='http://www.blogger.com/atom/ns#' term='unigine'/><title type='text'>Открытие сайта и анонс проекта MMT Online</title><summary type='text'>Думаю, многим будет интересна причина малой активности в этом блоге за последние полгода. Как ни странно, заключается она не в потере интереса, а в активной работе над собственным игровым проектом.Наш сайт был введен в действие несколько дней назад (http://runserver.net) и сегодня команда RunServer оффициально анонсирует проект MMT Online. Детальне читайте в новостях на сайте: http://</summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/1299526797272433870/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2009/04/mmt-online.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/1299526797272433870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/1299526797272433870'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2009/04/mmt-online.html' title='Открытие сайта и анонс проекта MMT Online'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-958986805327715950</id><published>2008-12-11T23:52:00.003+02:00</published><updated>2009-04-27T10:54:14.597+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='runserver'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Поддержка Mono</title><summary type='text'>Сегодня мы начали работать над возобновлением поддержки Mono (http://www.mono-project.com/) платформой RunServer. Причин для этого несколько, но самая первая из них - кросс-платформенность. Три года назад такая мысль меня уже посещала и результат был неутешителен: на Mono 1.14 мы получали примерно десятикратное падение производительности по сравнению с Microsoft .Net Framework 2.0 в RunWoW. </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/958986805327715950/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/12/mono.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/958986805327715950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/958986805327715950'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/12/mono.html' title='Поддержка Mono'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-6341328661648664015</id><published>2008-12-10T12:04:00.004+02:00</published><updated>2008-12-11T14:11:30.274+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='struct'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='readonly'/><title type='text'>Баг со структурами и readonly</title><summary type='text'>Сегодня столкнулся с любобытнейшим багом в C#. Вполне возможно, что это не баг, а предусмотренное поведение, но выглядит оно необычно.В двух словах: readonly переменная изменяема только в конструкторе класса и даже если конструктор вызовет метод, изменяющий ее - эти изменения будут отброшены.Рассмотрим такой код с вспомогательной структурой и классом.public struct TestStruct{    private int </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/6341328661648664015/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/12/readonly.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/6341328661648664015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/6341328661648664015'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/12/readonly.html' title='Баг со структурами и readonly'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-219279901068744628</id><published>2008-11-13T00:16:00.001+02:00</published><updated>2008-11-13T00:17:52.060+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='тесты'/><title type='text'>Знание языка</title><summary type='text'>Прошел тест на знание русского языка.Я прошел "Тест на определение словарного запаса"ВАШ СЛОВАРНЫЙ ЗАПАС - Результаты тестаВаш словарный запас на очень высоком уровне! Превосходный результат! Вы правильно ответили на 32 вопроса из 35! Поздравляем!Пройти "Тест на определение словарного запаса" здесь</summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/219279901068744628/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/11/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/219279901068744628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/219279901068744628'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/11/blog-post.html' title='Знание языка'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-2990369595614098544</id><published>2008-07-04T21:24:00.005+03:00</published><updated>2008-11-13T17:29:57.704+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='icq'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='sim'/><title type='text'>SIM в Native OS X режиме</title><summary type='text'>Сегодня удалось собрать SIM под qt3/mac. Понадобилось некоторое количество патчей, а также более глубокое понимание принципов работы QT приложений. Основным минусом этой версии являются проблемы с кодировками кириллицы при отправке сообщений и иногда при их приеме. Я постараюсь на днях сделать dmg образ и самодостаточное app приложение, чтобы облегчить процесс установки и тестрования. В </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/2990369595614098544/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/07/sim-native-os-x.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/2990369595614098544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/2990369595614098544'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/07/sim-native-os-x.html' title='SIM в Native OS X режиме'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oNylKuSmqLQ/SG5s8e9sxaI/AAAAAAAAACE/boqci3bxgBo/s72-c/sim_osx1.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-4226491499655542234</id><published>2008-07-04T01:07:00.003+03:00</published><updated>2008-07-04T10:20:21.839+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='icq'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='sim'/><title type='text'>Билд SIM для OS X</title><summary type='text'>У меня получилось собрать SIM под OS X для qt3-Xfree. Это не самый лучший вариант сборки (особенно, с учетом проблем с кодировкой, переключением языка, сворачиванием в док и пр.), но все-таки он работает.К сожалению, билд под qt3-win, т.е. нативный Carbon, все еще не работает и причина его сбоев не известна. Я постараюсь в ближайшее время выложить X-билд, дабы дать хоть какую-то возможность </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/4226491499655542234/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/07/sim-os-x.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/4226491499655542234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/4226491499655542234'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/07/sim-os-x.html' title='Билд SIM для OS X'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-8124111702055994199</id><published>2008-07-04T00:54:00.008+03:00</published><updated>2009-05-28T12:55:22.953+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='книга'/><category scheme='http://www.blogger.com/atom/ns#' term='философия'/><title type='text'>Песни Петера Сьлядека</title><summary type='text'>Этот мой пост не о программах и не о технологиях. Скорее, он о людях, которые их создают.Сейчас я читаю книгу Г.Л. Олди, "Песни Петера Сьлядека".Не смотря на необычное сочетание согласных букв, книга очень близка русскоязычному читателю. Книга является сборником новелл, каждая из которых записана путешествующим музыкантом, Петером Сьлядеком.Авторы хотят донести до нас что-то, что в обыденной </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/8124111702055994199/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/07/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/8124111702055994199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/8124111702055994199'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/07/blog-post.html' title='Песни Петера Сьлядека'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oNylKuSmqLQ/SG1NCcPdNSI/AAAAAAAAAB0/BygczhMAT3A/s72-c/cover.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-3824977395215237490</id><published>2008-07-02T00:27:00.006+03:00</published><updated>2008-07-02T00:58:58.426+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='icq'/><category scheme='http://www.blogger.com/atom/ns#' term='sim'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Фикс SIM для поддержки нового протокола</title><summary type='text'>01.07.2008 многие ICQ клиенты отключились с ошибкой, говорящей о том, что протокол неверен. В эту же категорию попал мой любимый клиент SIM (http://sim-im.org/)Патч был сделан энтузиастами довольно быстро, но готовая версия неизвестно когда появится в общем доступе или на сайте признаного сборщика Windows билдов Noragen. Я взялся пересобрать плагин ICQ для Windows версии и выкладываю его </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/3824977395215237490/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/07/sim.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/3824977395215237490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/3824977395215237490'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/07/sim.html' title='Фикс SIM для поддержки нового протокола'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-917144030356752904</id><published>2008-05-03T12:00:00.002+03:00</published><updated>2008-05-03T18:24:12.399+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GC'/><category scheme='http://www.blogger.com/atom/ns#' term='Maoni'/><category scheme='http://www.blogger.com/atom/ns#' term='Cache'/><category scheme='http://www.blogger.com/atom/ns#' term='WeakReference'/><category scheme='http://www.blogger.com/atom/ns#' term='Pool'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Кеш с гибридными ссылками</title><summary type='text'>Иногда приходится задумываться о том, что выделять новые объекты каждый раз слишком дорого. Особенно это относится к байтовым и пр. буферам. В таком случае, целесообразно организовать некий пул и брать оттуда объекты, возвращая их после использования.Госпожа Maoni Stephens (http://blogs.msdn.com/maoni/) предлагает использовать двухуровневый кеш:use a 2-level caching mechanism:·          Maintain </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/917144030356752904/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/05/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/917144030356752904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/917144030356752904'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/05/blog-post.html' title='Кеш с гибридными ссылками'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-3792004158388113271</id><published>2008-05-02T12:55:00.011+03:00</published><updated>2008-05-03T12:26:47.691+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wow'/><category scheme='http://www.blogger.com/atom/ns#' term='Interlocked'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Собственный BitArray</title><summary type='text'>Представим себе ситуацию, что у нас есть несколько сотен переменных, каким-то образом помеченных номерами. Также представим, что нам надо знать, какие из объектов изменялись, а какие нет.Самый простой способ - держать массив булевых значений и устанавливать true или false по индексу, соответствующему номеру переменной. Чтобы было удобнее, можно наши переменные обернуть в свойства (Property) и в </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/3792004158388113271/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/05/bitarray.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/3792004158388113271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/3792004158388113271'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/05/bitarray.html' title='Собственный BitArray'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-4433724208087352362</id><published>2008-04-09T23:00:00.007+03:00</published><updated>2008-11-13T17:29:57.939+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='P/Invoke'/><category scheme='http://www.blogger.com/atom/ns#' term='Interlocked'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>InterlockedOr/And/ExchangeAdd в .Net</title><summary type='text'>Программистам C++ через WinAPI доступно много различных Interlocked функций на все случаи жизни. Выбор этих функций в .Net невелик: Increment, Decrement, Add, Exchange, CompareExchange и почти бесполезный Read. В большей части случаев этих методов вполне достаточно, да и более 80% программистов вообще не знают об атомарных функциях и не используют их. Не так давно я столкнулся с задачей, в </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/4433724208087352362/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/04/interlockedorandexchangeadd-net.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/4433724208087352362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/4433724208087352362'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/04/interlockedorandexchangeadd-net.html' title='InterlockedOr/And/ExchangeAdd в .Net'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oNylKuSmqLQ/R_2_oxWASmI/AAAAAAAAABM/RUF-JTHilNs/s72-c/kernel32.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-1550648107176807885</id><published>2008-03-28T14:44:00.016+02:00</published><updated>2008-05-02T14:12:19.202+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interlocked'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Многопоточность и свойства. Часть 1</title><summary type='text'>В однопоточном мире есть очень многие вещи, о которых мы даже не задумываемся. Например, в онлайн-игре вполне приемлемо такое описание здоровья «живого объекта» (NPC или игрока) на C#:public int Health{    get { return m_health; }    set { m_health = value; }}Когда наносится повреждение, следующий код вполне логичен:int damage = 100;target.Health -= damage;if (target.Health &lt;= 0){    target.Die()</summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/1550648107176807885/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/03/blog-post_28.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/1550648107176807885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/1550648107176807885'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/03/blog-post_28.html' title='Многопоточность и свойства. Часть 1'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-5869560979449659894</id><published>2008-03-25T18:59:00.007+02:00</published><updated>2008-03-25T19:38:48.863+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Двумерные массивы и foreach</title><summary type='text'>Известно, что если сделать список List&lt;TestObject&gt; list и перебирать его через foreach:  foreach(TestObject obj in list)  {  ..  }скорость будет меньше, чем если бы у нас был массив TestObject [] array и мы перебирали его поэлементно или тем же foreach:foreach(TestObject obj in array){..}Разница в скорости примерно в 2-3 раза, но зачастую это не критично, т.к. сами операции над объектами занимают</summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/5869560979449659894/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/03/foreach.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/5869560979449659894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/5869560979449659894'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/03/foreach.html' title='Двумерные массивы и foreach'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-8423231447852309372</id><published>2008-03-24T21:30:00.002+02:00</published><updated>2008-03-24T21:52:33.430+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ThreadPool'/><category scheme='http://www.blogger.com/atom/ns#' term='P/Invoke'/><category scheme='http://www.blogger.com/atom/ns#' term='IOCP'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>.Net Thread Pool и IOCP</title><summary type='text'>В программировании часто перед нами встает задача выполнить какое-то действие "параллельно" с текущим. Методов решения может быть море: использование дополнительных потоков, откладывание задачи "на потом" (вручную или с помощью APC), использование каких-либо очередей задач и другие варианты асинхронного выполнения.Нас же интересует именно Thread Pool в .Net. Его использование зачастую считается </summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/8423231447852309372/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/03/net-thread-pool-iocp.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/8423231447852309372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/8423231447852309372'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/03/net-thread-pool-iocp.html' title='.Net Thread Pool и IOCP'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5856673091024765241.post-5484660270033957307</id><published>2008-03-24T19:03:00.007+02:00</published><updated>2008-03-26T19:09:38.972+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='runserver'/><category scheme='http://www.blogger.com/atom/ns#' term='wow'/><category scheme='http://www.blogger.com/atom/ns#' term='runwow'/><title type='text'>Создание блога</title><summary type='text'>Запущен блог, в котором будут освещаться вопросы, возникающие в ходе разработки RunServer, а также вопросы сетевого программирования и создания игр вцелом.Я не могу назвать себя опытным разработчиком игровых проектов, но некоторый опыт имеется, в том числе и проект учебного эмулятора World of Warcraft - RunWoW, который на данный момент в кластерном режиме поддерживает 2500 пользователей онлайн (</summary><link rel='replies' type='application/atom+xml' href='http://blog.runserver.net/feeds/5484660270033957307/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://blog.runserver.net/2008/03/blog-post.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/5484660270033957307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5856673091024765241/posts/default/5484660270033957307'/><link rel='alternate' type='text/html' href='http://blog.runserver.net/2008/03/blog-post.html' title='Создание блога'/><author><name>Гарбузенко Алексей (Nomad)</name><uri>http://www.blogger.com/profile/05734934795143690634</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01350903432174091999'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry></feed>