<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Форум программистов и сисадминов Киберфорум - Блоги - XAHOK</title>
		<link>https://www.cyberforum.ru/blogs/15074/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Tue, 22 Sep 2026 19:52:44 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - XAHOK</title>
			<link>https://www.cyberforum.ru/blogs/15074/</link>
		</image>
		<item>
			<title>C# SMTPClient и имена прикрепленных файлов вида =?utf-8?</title>
			<link>https://www.cyberforum.ru/blogs/15074/1538.html</link>
			<pubDate>Thu, 15 Aug 2013 09:22:33 GMT</pubDate>
			<description>Один баг .NET 4.0 может привести к геморою по поиску его корней. А источником проблемы оказались...</description>
			<content:encoded><![CDATA[<div>Один баг .NET 4.0 может привести к геморою по поиску его корней. А источником проблемы оказались длинные имена файлов, которые неправильно отправлялись по SMTP. В результате получаем не читаемые имена файлов и битые файлы.<br />
<br />
Решение:<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="48173444"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="48173444" style="height: 350px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
</pre></td><td class="de1"><pre class="de1"><span class="kw1">public</span> <span class="kw4">class</span> AttachmentHelper
<span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> Attachment CreateAttachment<span class="br0">&#40;</span><span class="kw4">string</span> attachmentFile, <span class="kw4">string</span> displayName, TransferEncoding transferEncoding<span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; Attachment attachment <span class="sy0">=</span> <span class="kw3">new</span> Attachment<span class="br0">&#40;</span>attachmentFile<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; attachment<span class="sy0">.</span><span class="me1">TransferEncoding</span> <span class="sy0">=</span> transferEncoding<span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> tranferEncodingMarker <span class="sy0">=</span> <span class="kw4">String</span><span class="sy0">.</span><span class="me1">Empty</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> encodingMarker <span class="sy0">=</span> <span class="kw4">String</span><span class="sy0">.</span><span class="me1">Empty</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> maxChunkLength <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">switch</span> <span class="br0">&#40;</span>transferEncoding<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> TransferEncoding<span class="sy0">.</span><span class="me1">Base64</span><span class="sy0">:</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tranferEncodingMarker <span class="sy0">=</span> <span class="st0">&quot;B&quot;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encodingMarker <span class="sy0">=</span> <span class="st0">&quot;UTF-8&quot;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; maxChunkLength <span class="sy0">=</span> <span class="nu0">30</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> TransferEncoding<span class="sy0">.</span><span class="me1">QuotedPrintable</span><span class="sy0">:</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tranferEncodingMarker <span class="sy0">=</span> <span class="st0">&quot;Q&quot;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encodingMarker <span class="sy0">=</span> <span class="st0">&quot;ISO-8859-1&quot;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; maxChunkLength <span class="sy0">=</span> <span class="nu0">76</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">default</span><span class="sy0">:</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">throw</span> <span class="br0">&#40;</span><span class="kw3">new</span> ArgumentException<span class="br0">&#40;</span><span class="kw4">String</span><span class="sy0">.</span><span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;The specified TransferEncoding is not supported: {0}&quot;</span>, transferEncoding, <span class="st0">&quot;transferEncoding&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; attachment<span class="sy0">.</span><span class="me1">NameEncoding</span> <span class="sy0">=</span> Encoding<span class="sy0">.</span><span class="me1">GetEncoding</span><span class="br0">&#40;</span>encodingMarker<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> encodingtoken <span class="sy0">=</span> <span class="kw4">String</span><span class="sy0">.</span><span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;=?{0}?{1}?&quot;</span>, encodingMarker, tranferEncodingMarker<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> softbreak <span class="sy0">=</span> <span class="st0">&quot;?=&quot;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> encodedAttachmentName <span class="sy0">=</span> encodingtoken<span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>attachment<span class="sy0">.</span><span class="me1">TransferEncoding</span> <span class="sy0">==</span> TransferEncoding<span class="sy0">.</span><span class="me1">QuotedPrintable</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encodedAttachmentName <span class="sy0">=</span> HttpUtility<span class="sy0">.</span><span class="me1">UrlEncode</span><span class="br0">&#40;</span>displayName, Encoding<span class="sy0">.</span><span class="kw1">Default</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="me1">Replace</span><span class="br0">&#40;</span><span class="st0">&quot;+&quot;</span>, <span class="st0">&quot; &quot;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="me1">Replace</span><span class="br0">&#40;</span><span class="st0">&quot;%&quot;</span>, <span class="st0">&quot;=&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encodedAttachmentName <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToBase64String</span><span class="br0">&#40;</span>Encoding<span class="sy0">.</span><span class="me1">UTF8</span><span class="sy0">.</span><span class="me1">GetBytes</span><span class="br0">&#40;</span>displayName<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; encodedAttachmentName <span class="sy0">=</span> SplitEncodedAttachmentName<span class="br0">&#40;</span>encodingtoken, softbreak, maxChunkLength, encodedAttachmentName<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; attachment<span class="sy0">.</span><span class="me1">Name</span> <span class="sy0">=</span> encodedAttachmentName<span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> attachment<span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">static</span> <span class="kw4">string</span> SplitEncodedAttachmentName<span class="br0">&#40;</span><span class="kw4">string</span> encodingtoken, <span class="kw4">string</span> softbreak, <span class="kw4">int</span> maxChunkLength, <span class="kw4">string</span> encoded<span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> splitLength <span class="sy0">=</span> maxChunkLength <span class="sy0">-</span> encodingtoken<span class="sy0">.</span><span class="me1">Length</span> <span class="sy0">-</span> <span class="br0">&#40;</span>softbreak<span class="sy0">.</span><span class="me1">Length</span> <span class="sy0">*</span> <span class="nu0">2</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">var</span> parts <span class="sy0">=</span> SplitByLength<span class="br0">&#40;</span>encoded, splitLength<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> encodedAttachmentName <span class="sy0">=</span> encodingtoken<span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="kw1">var</span> part <span class="kw1">in</span> parts<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encodedAttachmentName <span class="sy0">+=</span> part <span class="sy0">+</span> softbreak <span class="sy0">+</span> encodingtoken<span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; encodedAttachmentName <span class="sy0">=</span> encodedAttachmentName<span class="sy0">.</span><span class="kw1">Remove</span><span class="br0">&#40;</span>encodedAttachmentName<span class="sy0">.</span><span class="me1">Length</span> <span class="sy0">-</span> encodingtoken<span class="sy0">.</span><span class="me1">Length</span>, encodingtoken<span class="sy0">.</span><span class="me1">Length</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> encodedAttachmentName<span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">static</span> IEnumerable<span class="sy0">&lt;</span><span class="kw4">string</span><span class="sy0">&gt;</span> SplitByLength<span class="br0">&#40;</span><span class="kw4">string</span> stringToSplit, <span class="kw4">int</span> length<span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span>stringToSplit<span class="sy0">.</span><span class="me1">Length</span> <span class="sy0">&gt;</span> length<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">yield</span> <span class="kw1">return</span> stringToSplit<span class="sy0">.</span><span class="me1">Substring</span><span class="br0">&#40;</span><span class="nu0">0</span>, length<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stringToSplit <span class="sy0">=</span> stringToSplit<span class="sy0">.</span><span class="me1">Substring</span><span class="br0">&#40;</span>length<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>stringToSplit<span class="sy0">.</span><span class="me1">Length</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="kw1">yield</span> <span class="kw1">return</span> stringToSplit<span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>Решение взято из <a rel="nofollow noopener noreferrer" href="http://www.txl.ru/net4attachments.aspx?id=212" target="_blank" title="http://www.txl.ru/net4attachments.aspx?id=212">http://www.txl.ru/net4attachments.aspx?id=212</a></div>

]]></content:encoded>
			<dc:creator>XAHOK</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/15074/1538.html</guid>
		</item>
		<item>
			<title>Статьи по проектированию игр</title>
			<link>https://www.cyberforum.ru/blogs/15074/499.html</link>
			<pubDate>Wed, 20 Jun 2012 09:00:29 GMT</pubDate>
			<description>Сегодня на DTF появилась интересная статья по рекламе on-line игр. 
 
Добыча и переработка игрового...</description>
			<content:encoded><![CDATA[<div>Сегодня на DTF появилась интересная статья по рекламе on-line игр.<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=69888" target="_blank" title="http://dtf.ru/articles/read.php?id=69888">Добыча и переработка игрового трафика</a> - статья Андрея Шарпова и Сергея Бабаева из компании GD-Team и ее рекламной сети PRRE. В ней рассказывается о подводных камнях при организации банерной рекламы в интернете.</div>

]]></content:encoded>
			<dc:creator>XAHOK</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/15074/499.html</guid>
		</item>
		<item>
			<title>Статьи по проектированию игр</title>
			<link>https://www.cyberforum.ru/blogs/15074/289.html</link>
			<pubDate>Tue, 10 Apr 2012 09:09:21 GMT</pubDate>
			<description>К сожалению за время с последнего обновления мне попалась только одна хорошая статья и я никак не...</description>
			<content:encoded><![CDATA[<div>К сожалению за время с последнего обновления мне попалась только одна хорошая статья и я никак не решался ее в одиночестве выложить. Но больше ждать некуда.<br />
<br />
Итак новый раздел:<br />
<b>Презентация игры</b><br />
<br />
<a rel="nofollow noopener noreferrer" href="http://habrahabr.ru/post/140636/" target="_blank" title="http://habrahabr.ru/post/140636/">Как рассказать про вашу игру засранцу</a> - перевод статьи Тома Френсиса про то, как нужно рассказывать о своей игре так, что бы заинтересовать потенциального игрока. Так же эта статья будет полезна для составления текста сообщения о наборе в команду проекта. Ведь при плохом описании будущей игры большинство людей даже не будет смотреть диздок.</div>

]]></content:encoded>
			<dc:creator>XAHOK</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/15074/289.html</guid>
		</item>
		<item>
			<title>Статьи по проектированию игр</title>
			<link>https://www.cyberforum.ru/blogs/15074/288.html</link>
			<pubDate>Tue, 10 Apr 2012 09:08:57 GMT</pubDate>
			<description>Недавно наткнулся на курс лекций по разработке игр на XNA и не могу не добавить ссылки на первые 4...</description>
			<content:encoded><![CDATA[<div>Недавно наткнулся на курс лекций по разработке игр на XNA и не могу не добавить ссылки на первые 4 статьи, которые посвящены общей информации. Почитать для общего развития довольно интересно, тем более размеры лекций небольшие. Аннотации к лекциям я не пишу, т. к. из названий хорошо понятно о чем они.<br />
<br />
<b>Лекции</b><br />
<b>Авторы:  Ю.В. Дашко. А.А. Заика. Курс разработан по гранту от Microsoft и ИНТУИТ.</b><br />
<br />
<a rel="nofollow noopener noreferrer" href="http://www.xnadev.ru/articles.php?article_id=34" target="_blank" title="http://www.xnadev.ru/articles.php?article_id=34"> Основы разработки компьютерных игр в XNA Game Studio</a><br />
<a rel="nofollow noopener noreferrer" href="http://www.xnadev.ru/articles.php?article_id=36" target="_blank" title="http://www.xnadev.ru/articles.php?article_id=36">Инструментарий разработчика компьютерных игр</a><br />
<a rel="nofollow noopener noreferrer" href="http://www.xnadev.ru/articles.php?article_id=39" target="_blank" title="http://www.xnadev.ru/articles.php?article_id=39">Психология компьютерных игр</a><br />
<a rel="nofollow noopener noreferrer" href="http://www.xnadev.ru/articles.php?article_id=43" target="_blank" title="http://www.xnadev.ru/articles.php?article_id=43">Начало разработки игры: игровая документация</a></div>

]]></content:encoded>
			<dc:creator>XAHOK</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/15074/288.html</guid>
		</item>
		<item>
			<title>Статьи по проектированию игр</title>
			<link>https://www.cyberforum.ru/blogs/15074/212.html</link>
			<pubDate>Tue, 20 Mar 2012 04:41:04 GMT</pubDate>
			<description>*Архитектура* 
 
Методы контроля целостности ресурсной системы в процессе разработки игры...</description>
			<content:encoded><![CDATA[<div><b>Архитектура</b><br />
<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=60539" target="_blank" title="http://dtf.ru/articles/read.php?id=60539">Методы контроля целостности ресурсной системы в процессе разработки игры</a> - статья Виталия Чибрикова, программиста проекта Аллоды Онлайн и разработчика инструментария для контроля целостности ресурсной системы проекта. Очень познавательная статья по контролю за игровыми ресурсами. Рассматриваются проблемы и методы контроля за ресурсами при добавлении и удалении их из проекта, а так же их валидация при коммите изменений.<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=40757" target="_blank" title="http://dtf.ru/articles/read.php?id=40757">Гибкая и масштабируемая архитектура для компьютерных игр, часть первая</a> - это не статья, это диссертационная работа Джефа Плюммер. Про нее могу сказать только одно: читать, читать и еще раз читать всем.[/QUOTE]</div>

]]></content:encoded>
			<dc:creator>XAHOK</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/15074/212.html</guid>
		</item>
		<item>
			<title>Статьи по проектированию игр</title>
			<link>https://www.cyberforum.ru/blogs/15074/211.html</link>
			<pubDate>Tue, 20 Mar 2012 04:40:30 GMT</pubDate>
			<description><![CDATA[[QUOTE=XAHOK;2812497] 
*Наши любимые ММО* 
Технические риски разработки MMOG...]]></description>
			<content:encoded><![CDATA[<div>[QUOTE=XAHOK;2812497]<br />
<b>Наши любимые ММО</b><br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=50054" target="_blank" title="http://dtf.ru/articles/read.php?id=50054">Технические риски разработки MMOG</a> - статья Константина Бабушкина, ведущего серверного программиста Арены и CrimeCraft. В статье он рассказывает  о технической стороне MMO сервера и потенциальных проблемах в его реализации. Очень понравилась классификация ботов и методы их выявления, устранение проблем с утечками памяти и баги, которые были обнаружены на боевых серверах, а так же методы выявления их.</div>

]]></content:encoded>
			<dc:creator>XAHOK</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/15074/211.html</guid>
		</item>
		<item>
			<title>Статьи по разработке игр</title>
			<link>https://www.cyberforum.ru/blogs/15074/203.html</link>
			<pubDate>Thu, 15 Mar 2012 08:29:26 GMT</pubDate>
			<description>*По составлению диздока:* 
Геймдизайн - взгляд дилетанта...</description>
			<content:encoded><![CDATA[<div><b>По составлению диздока:</b><br />
<a rel="nofollow noopener noreferrer" href="http://www.gamedev.ru/community/gamedezcont/articles/lamedesign1" target="_blank" title="http://www.gamedev.ru/community/gamedezcont/articles/lamedesign1">Геймдизайн - взгляд дилетанта</a> - хороший цикл статей от  Алексея Евгеньевича Быкова. Много полезной информации по составлению диздока и описание недостатков примера диздока от 1С для команды.<br />
<br />
<b>С чего начать</b><br />
<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=67645" target="_blank" title="http://dtf.ru/articles/read.php?id=67645">С чего начать?</a> - очень хорошая статья про выбор средств реализации, как одиночных, так и сетевых игр. Что мне больше всего понравилось, так это наличие ссылок и отсутствие призывов писать свои движки, чем грешат большинство авторов статей для новичков. Про разработку своих движков я не говорю, что это плохо, но к таким призывам отношусь весьма негативно. Так же в статье хорошо описан выбор структуры серверного решения для ММО проектов (для МО и социалок это тоже актуально). В конце статьи в сжатом виде приводятся основные моменты по организации документации, поддержки, управления игрой, статистики и биллинга. В общем еще одна хорошая статья на DTF.<br />
<br />
<b>Дизайн уровней:</b><br />
Ни для кого не секрет, что дизайн уровней одна из важнейших составляющих вашей игры. Именно дизайн первого уровня по большей части составляет первое впечатление о вашей игре (после стартового меню конечно). Так что этот раздел статей несомненно будет полезен неопытным разработчикам. Сам я правда этой стороной проектирования игр практически не интересовался, так что надеюсь на вашу помощь.<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://www.gamesmaker.ru/75-sozdanie_atmosfery_na_igrovykh_urovnyakh/" target="_blank" title="http://www.gamesmaker.ru/75-sozdanie_atmosfery_na_igrovykh_urovnyakh/">СОЗДАНИЕ АТМОСФЕРЫ НА ИГРОВЫХ УРОВНЯХ</a> - копипаста с сайта <a rel="nofollow noopener noreferrer" href="http://voodarius.com" target="_blank" title="http://voodarius.com">http://voodarius.com</a>. Неплохая, хоть и короткая, статья о придании уровню уникальной атмосферы. Информация конечно банальная, но почитать все равно стоит.<br />
<br />
<b>Наши любимые ММО - монетизация:</b><br />
Проблема проектирования монетизации онлайн игр является наиболее острой. Особенно это характерно для российских игроков. Вспомним сколько умерло любительских игровых серверов LA2 из-за несбалансированной системы доната? Или давайте посмотрим на игры в контакте: сколько игр в лоб требуют от игроков вложения реальных денег, тем самым отпугивая огромное количество игроков, которые втянувшись могли начать приносить огромный доход? Практика F2P игр однозначно показала, что они ничуть не менее прибыльные, по сравнению с P2P, а порой и наоборот. Люди готовы 10 раз по 10 рублей гораздо чаще, чем один раз 100. Этой стороне проектированию онлайн игр и будет посвящен этот раздел статей.<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://www.gamesmaker.ru/131-monetizatsiya_mmo_rpg_freetoplay_igr_osobennosti/" target="_blank" title="http://www.gamesmaker.ru/131-monetizatsiya_mmo_rpg_freetoplay_igr_osobennosti/">МОНЕТИЗАЦИЯ MMO RPG FREE-TO-PLAY ИГР. ОСОБЕННОСТИ</a> - &quot;Выступая на Virtual Goods Summit в Сан-Франциско, Жан И ( Zhan Ye ), президент компании GameVision, рассказал о своём опыте работы над традиционными сингл-плеерными играми для PC, а также о новых free-to-play играх в Китае.&quot;. Хороший сравнительный анализ принципов монетизации MMO игр западно-европейской и азиатских особенностей менталитета. Со своей точки зрения данную статью я бы охарактеризовал как обязательную к прочтению. Причем не только юным разработчикам ММО, но и для разработчикво сингловых игр можно найти массу полезного (если конечно анализировать текст, а не просто читать).<br />
<br />
<br />
<b>Экономика игрового мира:</b><br />
Думаю все играли в первый сталкер и думали куда девать деньги, аналогично было в Диабле, Готике и многих других играх. Так что экономическая составляющая очень важна для всех игр и статьи по методам и средствам разработки и тестирования экономической модели игр будут очень полезны, особенно RPG и ММОG жанрам.<br />
<br />
Экономика в ММОРПГ:<a rel="nofollow noopener noreferrer" href="http://www.gamesmaker.ru/133-ekonomika_v_mmorpg_chast_1/" target="_blank" title="http://www.gamesmaker.ru/133-ekonomika_v_mmorpg_chast_1/">Часть 1</a>,<a rel="nofollow noopener noreferrer" href="http://www.gamesmaker.ru/134-ekonomika_v_mmorpg_chast_2/" target="_blank" title="http://www.gamesmaker.ru/134-ekonomika_v_mmorpg_chast_2/">Часть 2</a><br />
Очень хорошая статья по проектированию игровой экономики. В статье рассматривается разработка экономики ММО мира, но многое можно использовать и в сингл играх. Как показала практика - в синглах экономика чаще всего присутствует только на начальном этапе, а потом деньги тратить просто некуда. <br />
<br />
<b>Диздок и геймдизайнер</b><br />
<a rel="nofollow noopener noreferrer" href="http://www.gamedev.ru/gamedesign/articles/?id=4277" target="_blank" title="http://www.gamedev.ru/gamedesign/articles/?id=4277">Тёмная сторона геймдизайна</a> - хорошая статья, которую нужно периодически перечитывать в на этапе предпроектной подготовки и составлении диздока. В статье описаны основные критерии хорошей идеи, которые в полете фантазии часто забываются. После каждого осмысления порой хочется себя убить об стену за то, что ранее казалось супермегаубер крутой фишкой игры, которая одна сможет обеспечить успех (к сожалению такие идеи очень трудно из своей головы выкинуть).<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://www.gamesmaker.ru/129-printsipy_sozdaniya_igr_10_sposobov_izbezhat_oshibok/" target="_blank" title="http://www.gamesmaker.ru/129-printsipy_sozdaniya_igr_10_sposobov_izbezhat_oshibok/">ПРИНЦИПЫ СОЗДАНИЯ ИГР: 10 СПОСОБОВ ИЗБЕЖАТЬ ОШИБОК</a> - Почему некоторые моменты в играх нас раздражают, но мы их видим снова и снова, и снова? Потому что о некоторых моментах разработчики или не думают (ибо уже забыли) или не принимают во внимание то, что в некоторых моментах игрока нельзя ограничивать. Итак, 10 незначительных, но весьма неприятных ошибок проектирования игр.<br />
<br />
<b>Физика</b><br />
<br />
<a rel="nofollow noopener noreferrer" href="http://www.gamedev.ru/code/articles/?id=4233" target="_blank" title="http://www.gamedev.ru/code/articles/?id=4233">Marco Monster. Физика автомобиля для игр</a> - перевод очень интересной и познавательной статья о реализации реалистичной физики движения автомобиля. Если вы хотите создать автосимулятор или гибрид с ним, то это все что вам нужно. Пожалуй лучшей статьи в интернете я так и не нашел.<br />
<br />
<b>Методологии разработки:</b><br />
<br />
<a rel="nofollow noopener noreferrer" href="http://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D1%82%D1%80%D0%B5%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" target="_blank" title="http://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D1%82%D1%80%D0%B5%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5">Экстремальное программирование</a> - В любой команде разработчиков обязательно должен быть менеджер проекта, но у большинства новичков, которые хотят заниматься разработкой игр отсутствует не то что опыт управления командой, но и опыт участия в серьезных проектах. По этому рассмотрим методология &quot;Экстремального программирования&quot;, которая хорошо подходит для организации работы небольших команд разработчиков. Не смотря на то, что основной упор в статье сделан именно на работу программистов, многое можно адаптировать и для художников, композиторов, гейм-дизайнеров и дизайнеров уровне. Так что если вы собираете команду и опыт управления коллективом отсутствует - читать обязательно.<br />
<br />
<b>Интервью:</b><br />
Анализ предметной области разработки игр не возможен без знания текущего состояния дел, а где его узнать как не у самих разработчиков игр? Тем более весьма полезна информация от небольших студий, т.к. от нас они не сильно оторвались и некоторые советы могут оказаться очень полезными. Конечно все они ориентированы преимущественно на соц. сети, но это скорее плюс, чем минус. Социальные сети - это очень хорошая база для тестирования казуальных игр, т.к. такой штат тестеров держать накладно. Аннотации к этим статьям я писать не буду, т. к. смысла от них особого и нет. Перечислю только несколько названий игр и общее количество проектов.<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=67377&amp;page=2" target="_blank" title="http://dtf.ru/articles/read.php?id=67377&amp;page=2"><br />
Интервью с Exteer Ltd</a> - <b>Ферма одежды</b>, всего 8 проектов<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=66774" target="_blank" title="http://dtf.ru/articles/read.php?id=66774">Интервью с Lionwood Studios</a> - <b>Crystal Runner</b>. 2 проекта<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=65501" target="_blank" title="http://dtf.ru/articles/read.php?id=65501"><br />
Интервью со студией KramBamBoo! Games</a> - <b>Астерия</b>, <b>Лига скорости</b>. 4 проекта<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=65410" target="_blank" title="http://dtf.ru/articles/read.php?id=65410">Интервью со студией AbsolutSoft</a> - <b>Contract Wars</b>. 3 проекта<br />
<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=65279" target="_blank" title="http://dtf.ru/articles/read.php?id=65279">Интервью со студией Dark Online Entertainment</a> - <b>Хеллгард</b>. 3 проекта<br />
<a rel="nofollow noopener noreferrer" href="http://dtf.ru/articles/read.php?id=67194" target="_blank" title="http://dtf.ru/articles/read.php?id=67194"><br />
Интервью со студией Playkot</a> - <b>Поселенцы</b>, 4 проекта.</div>

]]></content:encoded>
			<dc:creator>XAHOK</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/15074/203.html</guid>
		</item>
	</channel>
</rss>
