<?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' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5986590114216892586</id><updated>2011-11-23T03:33:10.396-08:00</updated><category term='Adobe'/><category term='potential'/><category term='IPhone'/><category term='ActionScript 3.0'/><category term='Flash'/><category term='A*'/><category term='игры'/><category term='junior'/><category term='gamedev'/><category term='Video player'/><category term='JavaDocs'/><category term='start in gamedev'/><category term='тестирование игр'/><category term='fields game'/><category term='начало'/><category term='pathfinding'/><category term='Medi Player'/><category term='playability'/><category term='games testing'/><category term='Android'/><category term='Air'/><category term='games usability'/><category term='RealDocs'/><title type='text'>Games and other in  programming</title><subtitle type='html'>Игры, математика, программирование, и просто размышлизмы</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-5320517951925914652</id><published>2011-11-21T07:45:00.001-08:00</published><updated>2011-11-23T03:33:10.402-08:00</updated><title type='text'>Ссылки по BlazeDS</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;BlazeDS это технология от адоби для общения клиентов на флеш и флекс с серверсайдом&lt;br /&gt;Написана на Java&lt;br /&gt;Ниже ссылки, которые могут пригодиться в работе&lt;br /&gt;&lt;br /&gt;Хороший годный hello world по BlazeDS&lt;br /&gt;&lt;a href="http://www.horochovec.com/2010/03/29/flash-builder-flex-sdk-4-java-blazeds-tutorial/"&gt;http://www.horochovec.com/2010/03/29/flash-builder-flex-sdk-4-java-blazeds-tutorial/&lt;/a&gt;&lt;br /&gt;Использование BlazeDS messaging из Pure ActionScript&lt;br /&gt;&lt;a href="http://meteatamel.wordpress.com/2010/01/22/netconnection-and-remoting-in-blazedslcds/"&gt;http://meteatamel.wordpress.com/2010/01/22/netconnection-and-remoting-in-blazedslcds/&lt;/a&gt;&lt;br /&gt;BlazeDS dev guide&lt;br /&gt;&lt;a href="http://livedocs.adobe.com/blazeds/1/blazeds_devguide/blazeds_devguide.pdf"&gt;http://livedocs.adobe.com/blazeds/1/blazeds_devguide/blazeds_devguide.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Пользователя, который хочет создать в Flash Builder - е приложение и подключить его стандартным способом к BlazeDS ждет неприятный сюрприз. Код работающий для броузерных приложений, для эйра работать отказывается.&lt;br /&gt;По сему, нужно прописывать урл к серверной части руцями.&lt;br /&gt;Вот ссылка&lt;br /&gt;&lt;a href="http://www.brightworks.com/flex_ability/?p=74"&gt;http://www.brightworks.com/flex_ability/?p=74&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-5320517951925914652?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/5320517951925914652/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=5320517951925914652' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/5320517951925914652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/5320517951925914652'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2011/11/blazeds.html' title='Ссылки по BlazeDS'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-8160924637032470010</id><published>2011-11-18T07:09:00.001-08:00</published><updated>2011-11-18T07:44:24.903-08:00</updated><title type='text'>Что будет с флешом</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span lang="RU"&gt;В связи споследними заявлениями Адоби о прекращении поддержки флеша для мобильныхброузеров, среди &lt;/span&gt;IT &lt;span lang="RU"&gt;тусовки возникла некотороеразочарование, если не сказать паника: гипс снимают, клиент уезжает.&amp;nbsp; Шо делать? Некоторые даже говорят, что молвсё, флеша не будет — всем спасибо, все свободны. Попробуем разобраться в том,что же есть на самом деле.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;Итак, начнем.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Факты:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard" style="margin-left: 0cm; mso-list: l0 level1 lfo1; text-indent: 0cm;"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Флешплеером, называется программа способная проигрывать(или исполнять) файлы срасширением &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;SWF&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Изначальнофлеш был просто средством создания анимации, потом пришел в интернет, потомперерос из средства для создания анимированных баннеров в инструмент разработкисложных &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;RIA&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt; – приложений.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Adobe AIR &lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;называется технология по функцияманалогичная &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Java&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt; — машине. Она дополняет флеш плеерфункциями работы с файлами, окнами операционной системы и так далее. Врезультате получается полноценная программа для &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Windows&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Linux &lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;или &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Mac OS&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Apple&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt; с начала существования Айфона занял агрессивнуюпозицию по отношению к флеш плагину, он обвинялся в черезмерной загрузкепроцессора, проблемам с безопасностью и т.д.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Примернополтора года назад, с большим скрипом Эппл позволил создавать приложения длясвоего телефона с помощью сторонних средств, в том числе &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Adobe AIR&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Ещёраньше появилась поддержка &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Adobe AIR &lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;для &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Android&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Занесколько месяцев до описанных событий Майкрософт заявил, что новый броузер для&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Windows Phone&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt; не будет поддерживать плагинов&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Адобиофициально отказался от поддержки флеша для мобильных броузеров, и рекомендуетсосредоточиться на &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;HTM&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;5.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Адобифлекс передается в опенсорс разработку. В статье &lt;/span&gt;&lt;span lang="DE" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://blogs.adobe.com/flex/2011/11/your-questions-about-flex.html"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;http://blogs.adobe.com/flex/2011/11/your-questions-about-flex.html&lt;/span&gt;&lt;/a&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;говорится, что в будущем &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;HTML&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;5 скорее всего займет доминирующееположение, однако сейчас более продвинутой технологии, чем &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;flex &lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;для создания богатых &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;WEB&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;- интерфейсов корпоративных приложений несуществует&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Однакоот поддержки и развития флекса никто не отказывается не отказывается. Простодает возможность ряду компаний, таких например как &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Farata Systems&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;, добавить&amp;nbsp;имеющиеся у них наработки. Пруффлинк в той — же статье&lt;/span&gt;&lt;span lang="DE" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang="DE" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&lt;a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;http://blogs.adobe.com/conversations/2011/11/flash-focus.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Адобиэйр продолжает развиваться. Сейчас поддерживаются Айфон, Андроид и Блекберриплейбук. &lt;i&gt;Как рассказывали евангелисты из Адоби на встрече ФПУГ-а &lt;/i&gt;&lt;/span&gt;&lt;span lang="DE" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://fpug.org.ua/meeting/32"&gt;&lt;i&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;http://fpug.org.ua/meeting/32&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span lang="RU"&gt;запиливание эйра намобильную винду пока не планируется, но тут вопрос в маленьком рынке — маловыпускается телефонов с виндой&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;Флешплеер 11.0.1 для десктопа предлагает целый ряд новых фич:&lt;/span&gt;&lt;span lang="DE" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.adobe.com/products/flashplayer/features._sl_id-contentfilter_sl_featuredisplaytypes_sl_new.html"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;http://www.adobe.com/products/flashplayer/features._sl_id-contentfilter_sl_featuredisplaytypes_sl_new.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;Самые продвинутые из них: 3&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;D &lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;рендеринг, поддержка 64-&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;bit&lt;/span&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;, &lt;/span&gt;&lt;span style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt;H&lt;/span&gt;&lt;span lang="RU" style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt;.264/&lt;/span&gt;&lt;span style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt;AVC&lt;/span&gt;&lt;span style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt;software&lt;/span&gt;&lt;span style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;span style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt;encoding&lt;/span&gt;&lt;span lang="RU" style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="RU" style="color: #333333; font-family: Arial, Helvetica, sans-serif;"&gt;Как обещали представители компании Адоби,через буквально два — три месяца возможности нового флеш — плеера будутдоступны на мобильных устройствах.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; С фактами покончено, попробуемразобраться с аргументами. Главный вопрос: почему всё происходит именно так?Что будет с флешом и куда всё идет.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Итак, флеш плагина на мобильномсафри не будет, точка. Это официальная позиция компании Эппл. Новая редакциявиндовс мобайл вообще не будет поддерживать плагинов для броузера, причем покаустройств под новой виндой не густо.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span lang="RU"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Но нужен ли флеш плагин в принципе?Давайте разберемся! По моему мнению, отказавшись от флеша в мобильных броузерахАдоби де юре закрепила то, что уже давно совершилось де факто. Во первых, флешплагин слишком медленен для работы в мобильном броузере, это факт. Агааа,скажут поклонники &lt;/span&gt;HTML5. &lt;span lang="RU"&gt;Но ведь, приложений на &lt;/span&gt;HTML5 &lt;span lang="RU"&gt;тоже не густо и все они очень маленькие.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span lang="RU"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Во вторых, &lt;/span&gt;RIA &lt;span lang="RU"&gt;приложения хороши тем, что их можно использовать с любого компьютераподключенного к интернету — не нужно таскать за собой ноутбук, или приходить кдевяти часам на работу. Но мобильное устройство потому и мобильное, что егоносят с собой. Почему — бы просто не поставить на него нужное ПО? Айфон иАндроид позволяют довольно легко скачивать обновления для установленныхприложений. Если обновление не требуется, с приложением просто ничего непроисходит — оно работает как работало.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span lang="RU"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Кроме того, Эппл и Майкрософтпринципиально не включают в свои мобильные броузеры поддержки флеш плагина, аАйфон&lt;/span&gt;&amp;nbsp; &lt;span lang="RU"&gt;&amp;nbsp;как — никак самый «денежный» телефондля разработчика.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span lang="RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; По поводу флекс: мне тяжело говоритьхороша — ли передача флекса в опенсорс. Однако, ява ведь тоже опенсорсная, каки куча прекрасно развивающихся средств и платформ.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Итак, подведём небольшой этог: Адобине собирается отказываться от разработки флеш — плеера, прекращена поддержкатолько плагина для мобильных броузеров, который и так мертв. Передача флекса вопенсорс шаг неоднозначный, но назвать его провалом технологии явно нельзя.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;div style="text-align: justify;"&gt;&lt;span lang="RU"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Другими словами, идет концентрациянад тем, что уже работает и отказ от мертворожденных технологий. Это плохо? Ябы не сказал.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-8160924637032470010?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/8160924637032470010/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=8160924637032470010' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/8160924637032470010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/8160924637032470010'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2011/11/blog-post.html' title='Что будет с флешом'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-6797654229804547651</id><published>2011-10-31T01:28:00.001-07:00</published><updated>2011-10-31T01:28:27.470-07:00</updated><title type='text'>Вовза не поддерживает HTML стриминг flv файлов</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Печально, товарищи. ФМС вот подддерживает&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-6797654229804547651?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/6797654229804547651/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=6797654229804547651' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/6797654229804547651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/6797654229804547651'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2011/10/html-flv.html' title='Вовза не поддерживает HTML стриминг flv файлов'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-3089625167676888361</id><published>2011-10-20T12:37:00.000-07:00</published><updated>2011-11-18T06:17:18.230-08:00</updated><title type='text'>Полезные ссылки по maven</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Посколько мейвеновские билды пишешь от случая к случаю, некоторые вещи можно и забыть.&lt;br /&gt;Здесь буду выкладывать полезные ссылки на тьюториалы по мейвен&lt;br /&gt;Итак Введение&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/ru/edu/j-mavenv2/index.html"&gt;http://www.ibm.com/developerworks/ru/edu/j-mavenv2/index.html&lt;/a&gt;&lt;br /&gt;мейвен и спринг&lt;br /&gt;&lt;a href="http://pookey.co.uk/wordpress/archives/50-getting-started-with-maven-and-spring"&gt;http://pookey.co.uk/wordpress/archives/50-getting-started-with-maven-and-spring&lt;/a&gt;&lt;br /&gt;Билд веб приложения&lt;br /&gt;&lt;a href="http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html"&gt;http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html&lt;/a&gt;&lt;br /&gt;Рабочий плагин для eclipse&lt;br /&gt;http://download.eclipse.org/technology/m2e/releases&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Enabled&lt;br /&gt;Site update для установки веб тулов для иклипса&lt;br /&gt;&lt;a href="http://download.eclipse.org/webtools/updates/" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #10456a; cursor: pointer; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;http://download.eclipse.org/webtools/updates/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-3089625167676888361?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/3089625167676888361/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=3089625167676888361' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/3089625167676888361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/3089625167676888361'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2011/10/hello-world-maven-spring.html' title='Полезные ссылки по maven'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-1719820810625931808</id><published>2011-10-20T08:24:00.001-07:00</published><updated>2011-10-20T08:24:24.792-07:00</updated><title type='text'></title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Интересный сайт о мобильных платформах, рекомендую&lt;br /&gt;&lt;a href="http://app2top.ru/"&gt;http://app2top.ru/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-1719820810625931808?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/1719820810625931808/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=1719820810625931808' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/1719820810625931808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/1719820810625931808'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2011/10/httpapp2top.html' title=''/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-325577873857860879</id><published>2011-10-06T15:32:00.000-07:00</published><updated>2011-10-09T00:23:02.055-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Air'/><category scheme='http://www.blogger.com/atom/ns#' term='Video player'/><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='IPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Medi Player'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Ньюансы разработки медиаплееров для мобильных устройств с использованием Adobe Air</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Презентация для &lt;a href="http://fpug.org.ua/meeting/31"&gt;http://fpug.org.ua/meeting/31&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ньюансы разработки медиаплееров для мобильных устройств&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div id="__ss_9582590" style="width: 425px;"&gt; &lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/vkozhaev/ss-9582590" target="_blank" title="ньюансы разработки видео для мобильных устройств"&gt;ньюансы разработки видео для мобильных устройств&lt;/a&gt;&lt;/strong&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9582590" width="425"&gt;&lt;/iframe&gt; &lt;div style="padding: 5px 0 12px;"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/vkozhaev" target="_blank"&gt;Vladimir Kozhaev&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-325577873857860879?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/325577873857860879/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=325577873857860879' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/325577873857860879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/325577873857860879'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2011/10/adobe-air.html' title='Ньюансы разработки медиаплееров для мобильных устройств с использованием Adobe Air'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-7279277054324514044</id><published>2011-09-25T07:29:00.000-07:00</published><updated>2011-09-25T07:32:13.711-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='RealDocs'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaDocs'/><title type='text'>RealDocs для ActionScript 3.0</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span&gt;Редко, но все- же иногда возникает необходимость генерировать документацию по &lt;/span&gt;&lt;span lang="EN-US"&gt;ActonScript&lt;/span&gt;&lt;span&gt; 3.0 коду.&lt;/span&gt;  &lt;p class="MsoNormal" style="text-indent:35.4pt"&gt;&lt;span&gt;Если с &lt;/span&gt;&lt;span lang="EN-US"&gt;Java&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span&gt;в этом деле всё обстоит неплохо, с &lt;/span&gt;&lt;span lang="EN-US"&gt;ActionScript&lt;/span&gt;&lt;span&gt; 3.0 есть трудности: &lt;/span&gt;&lt;span lang="EN-US"&gt;asdoc&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span&gt;перед проверкой осуществляет синтаксический анализ кода и если находит ошибки, документации не генерирует. На практике, это означает, что при генерации кода нужно прописывать пути ко всем либам. Для флекса это ещё туда – сюда, но с флешом дело плохо. Во первых, если я хочу создать мувиклип, не создавая ассоциированный с ним файл, сделать это не удастся. Во вторых есть либы, которые вставляются в &lt;/span&gt;&lt;span lang="EN-US"&gt;flash&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US"&gt;CS&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span&gt;как плагин. Короче, без танцев с бубном сгенерировать не удастся. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;Да и вообще, сам подход неприличен: я должен сам указывать инструменту, что мне делать, а не он мне указывать, как быть. Вот не хочу я ещё раз проверять код - я уже проверил его другими средствами, уже скомпилировал. Зачем мне ещё какой - то &lt;/span&gt;&lt;span lang="EN-US"&gt;asdoc&lt;/span&gt;&lt;span&gt;?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt; Б&lt;/o:p&gt;&lt;/span&gt;&lt;span&gt;лаго, есть другие средства, например &lt;/span&gt;&lt;span lang="EN-US"&gt;NaturalDocs&lt;/span&gt;&lt;span&gt;, расположенный по адресу &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://naturaldocs.org/"&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="text-decoration: none; "&gt;http&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span lang="RU" style="text-decoration: none; "&gt;://&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="text-decoration: none; "&gt;naturaldocs&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span lang="RU" style="text-decoration: none; "&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="text-decoration: none; "&gt;org&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;, там же ссылки на скачивание с соурсфоржа. Кроме экшенскрипта, данное средство поддерживает &lt;span style="color:black;background:white"&gt;C/C++, Java, PHP, Python, PL/SQL, Visual Basic, Pascal/Delphi, Ada, JavaScript, Ruby, Tcl, ColdFusion, Assembly, Fortran&lt;span class="apple-converted-space"&gt; &lt;/span&gt;&lt;i&gt;(free-format only), &lt;/i&gt;R, Makefiles, Plain Text&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;Он написан на перле, в качестве интерпретатора для винды предлагается скачать &lt;/span&gt;&lt;span lang="EN-US"&gt;Active&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US"&gt;Perl&lt;/span&gt;&lt;span&gt;. Вот его сайт: &lt;a href="http://www.activestate.com/activeperl"&gt;http://www.activestate.com/activeperl&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;Далее, качаем &lt;/span&gt;&lt;span lang="EN-US"&gt;RealDocs&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span&gt;и распаковываем его. &lt;/span&gt;&lt;span&gt;Идем в папку, куда разархивировали &lt;/span&gt;&lt;span lang="EN-US"&gt;RealDocs&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span&gt;и правим предпоследнюю строчку так, чтобы получилось нечто вроде.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;C:\Perl\bin\perl D:\install_windows\NaturalDocs\NaturalDocs %NaturalDocsParams%&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;span&gt;Обратите внимание, что вместо &lt;/span&gt;&lt;span lang="EN-US"&gt;wperl&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span lang="EN-US"&gt;exe&lt;/span&gt;&lt;span&gt; в исходном файле написано &lt;/span&gt;&lt;span lang="EN-US"&gt;perl. &lt;/span&gt;&lt;span&gt;И путь к &lt;/span&gt;&lt;span lang="EN-US"&gt;perl&lt;/span&gt;&lt;span&gt; скрипту тоже абсолютный, вместо относительного.&lt;/span&gt;&lt;i&gt;&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;Далее, создаем скрипт для генерации, примерно такой&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;d:\install_windows\NaturalDocs\NaturalDocs -i d:\projects\hello -o html d:\outputdocs -p d:\naturaldocsproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;span&gt;Здесь&lt;/span&gt;&lt;span&gt; &lt;i&gt;&lt;span lang="EN-US"&gt;d:\install_windows\NaturalDocs\NaturalDocs – &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span&gt;путь&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;к&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;соответствующему&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;скрипту&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;Ключи знают следующее:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span lang="EN-US"&gt;i&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;Путь к сырцам&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;-&lt;/span&gt;&lt;span lang="EN-US"&gt;o&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span&gt;Тип документа, который будем генерировать и путь к папке, куда складывать доки &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;- &lt;/span&gt;&lt;span lang="EN-US"&gt;p&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span&gt;путь к файлу проекта, куда складывают логи&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;Запускаем батник – получаем результат. Все!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-7279277054324514044?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/7279277054324514044/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=7279277054324514044' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/7279277054324514044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/7279277054324514044'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2011/09/realdocs-actionscript-30.html' title='RealDocs для ActionScript 3.0'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-2747405155021208191</id><published>2011-09-25T03:15:00.000-07:00</published><updated>2011-09-25T03:34:05.254-07:00</updated><title type='text'>Конференция на Ciklum Game Developers Saturday</title><content type='html'>На этой конференции я рассказывал о принципах создания изометрических движков&lt;div&gt;Презентацию можно посмотреть здесь&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.slideshare.net/vkozhaev/vladimir-kozhayev-isometry-handmade-9412221"&gt;http://www.slideshare.net/vkozhaev/vladimir-kozhayev-isometry-handmade-9412221&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-2747405155021208191?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/2747405155021208191/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=2747405155021208191' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/2747405155021208191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/2747405155021208191'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2011/09/ciklum-game-developers-saturday.html' title='Конференция на Ciklum Game Developers Saturday'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-8052492244061507536</id><published>2010-01-10T11:45:00.000-08:00</published><updated>2010-01-11T16:47:34.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><category scheme='http://www.blogger.com/atom/ns#' term='games usability'/><category scheme='http://www.blogger.com/atom/ns#' term='gamedev'/><category scheme='http://www.blogger.com/atom/ns#' term='тестирование игр'/><category scheme='http://www.blogger.com/atom/ns#' term='playability'/><category scheme='http://www.blogger.com/atom/ns#' term='games testing'/><title type='text'>ТЕСТИРОВАНИЕ ИНТЕРЕСА К ИГРЕ</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Введение&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; На сегодняшний день большое развитие получил рынок компьютерных игр, Индустрия развлечений стабильно развивается и приносит большие прибыли, что стимулирует инвесторов. Однако существует большая разница в подходе к выбору объекта инвестирования в играх и промышленном программном обеспечении. В самом деле: создав п.о. реализующее функции необходимые пользователю и отсутствующие у конкурентов можно с высокой степенью вероятности ожидать, что созданная продукция будет коммерчески успешна. Игры – же не решают бизнес – задач: их главная цель – развлечение пользователей, которые в свою очередь не склонны анализировать свой интерес к игре.  Другими словами, пользователь ждет от программы не реализации конкретных требований, а увлекательного игрового процесса. Часты случаи, когда из  двух игр одного и того же жанра, с примерно одинаковым сюжетом,  построенные с использованием одного игрового конструктора работниками приблизительно одинаковой квалификации  одна имеет ошеломляющий успех, а другая не окупает затрат на её создание.&lt;br /&gt;Другим отличием от промышленного программного обеспечения является важность первого впечатления. Действительно, для решения производственной задачи пользователи выберут программу позволяющую сделать это с минимальными затратами времени, а не обладающую уникальным дизайном, или интересными звуковыми эффектами. В случае, когда, то или иное программное обеспечение  применяется часто, пользователи проходят обучение его использованию, иногда довольно длительное и дорогостоящее, постоянно интересуются вновь появившимися возможностями и улучшениями.  Совершенно другая картина наблюдается, когда цель использования программы – развлечение. Если игровой процесс не заинтересовал пользователя с первых минут, то он прекратит играть и, скорее всего, не заинтересуется следующими версиями данной игры, какие – бы увлекательные возможности они не предоставляли.&lt;br /&gt;Поэтому очень важно тестировать игры до выхода их на суд публики, исправляя  и то, что может привести к снижению интереса. С одной стороны, интерес к той или иной игре субъективен, с другой же есть объективный критерий качества, выраженный во времени проведённым за игрой. Признавая важность фактора  рекламы и маркетинга вообще, тем не менее, можно сказать, что успех игры зависит от выполнения некоторых условий. Таким образом, важно определить, что это за условия и как можно проверить степень их выполнения.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Требования к игре&lt;/span&gt;&lt;br /&gt;Понятно, что основное требование к игре состоит в том, чтобы она была интересной. Но интерес во многом зависит от выполнения некоторых требований, которые иногда, даже не осознаются пользователем, но, тем не менее, невыполнение их ведет к снижению качества игры.&lt;br /&gt;Создание игры состоит из трех этапов: реализации механики игры(game mechanics), &lt;br /&gt;игрового интерфейса(game interface)  и игрового процесса(game play)&lt;br /&gt;Под механикой игры понимается комбинация свойств, присущих созданной программной модели воплощённых с помощью анимации и программирования.  &lt;br /&gt;Под игровым интерфейсом  понимается организация управляющих элементов, с помощью которых пользователь управляет программой. Это реакции на горячие клавиши, иерархические меню, механизмы отклика на действия мыши или джойстика и так далее. &lt;br /&gt;Игровым процессом называется последовательность действий, которые должен проделать пользователь, чтобы достигнуть цели игры. Также к реализации игрового процесса относится создание сюжета игры, уровней, принципы начисления очков и так далее&lt;br /&gt;Ниже представлены те требования, которые автор считает наиболее важными&lt;br /&gt;• Управляющие клавиши и элементы меню должны соответствовать принятым в отрасли стандартам.&lt;br /&gt;• Пользователю должны быть всегда доступны его очки или игровой статус&lt;br /&gt;• Количество горячих клавиш должно быть минимальным&lt;br /&gt;• Для предоставления обратной связи должно использоваться звуковое сопровождение&lt;br /&gt;• Количество пунктов меню должно быть минимальным &lt;br /&gt;• Действия, которые нужно производить должны быть понятны настолько, что нет необходимости обращаться к руководству пользователя&lt;br /&gt;• Скорость отклика на действия игрока должна быть как можно  большей&lt;br /&gt;• Скорость отклика должна быть равномерной&lt;br /&gt;• Скорость &lt;br /&gt;• Цель игры должна быть понятной&lt;br /&gt;• В игре должна быть возможность выбрать уровень сложности&lt;br /&gt;• В каждом уровне должно быть несколько целей&lt;br /&gt;• Должно существовать несколько выигрышных стратегий&lt;br /&gt;• Должна присутствовать возможность сохранить начатую игру и вернуться к ней позже&lt;br /&gt;• Сохранение игры должно производиться автоматически, через определённые интервалы времени или по достижению ключевых точек в игре&lt;br /&gt;• У пользователя должна быть возможность автоматического создания уровней&lt;br /&gt;• Присутствие определённой сложности в достижении игровых задач(Challenge). Как показывает практика, игра, прохождение которой не требует от игрока усилий, не пользуется популярностью&lt;br /&gt;• Сложность уровней должна монотонно возрастать. &lt;br /&gt;• Первый уровень не должен представлять особенной сложности. Его задача пояснить пользователю правила игры&lt;br /&gt;• &lt;br /&gt;Очевидно, что конкретное применение этих условий зависит от жанра игры.&lt;br /&gt;&lt;br /&gt;Ясно, что некоторые из этих правил выполнить довольно просто (например, вывести на экран очки, заработанные пользователем, или предусмотреть возможность сохранения игры), но выполнение большинства из них оценить довольно трудно. В самом деле, то, на сколько правила понятны, или на сколько уровень сложен  субъективно для каждого пользователя. Кроме того, понятия сложности, интереса и т.п. не формализованы, поэтому оценить их численно представляется нетривиальной задачей. Некоторые из методов такого тестирования представлены ниже.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;2. Виды тестирования игр&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;В производстве игр применяются несколько типов тестирования, каждый из которых предназначен для выявления соответствующих данному типу недостатков. Ниже кратко рассмотрены особенности тестирования игр для тех видов, которые являются общими для всего программного обеспечения.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.1 Тестирование функциональности&lt;/span&gt; (functionality testing) Цель – выявить отклонения от требуемой функциональности и ошибки так называемые «баги» (профессиональный жаргон). Этот тип тестирования, как правило, не требует от тестировщика больших технических познаний помимо понимания базовых концепций программирования и сводится к многократному прохождению игры, выявлению неполадок и условий в которых они воспроизводятся. Описание проблем производится в произвольной форме, важно лишь, чтобы текст был понятен разработчику.&lt;br /&gt;Данный вид тестов является общим для всего программного обеспечения, поэтому останавливаться на нём подробно нецелесообразно.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.2 Тестирование соответствия аппаратному обеспечению&lt;/span&gt;(compliance testing) Программирование игр, как и любого другого программного обеспечения, производится на персональных компьютерах: настольных или ноутбуках. В тоже время, многие игры предназначены для других типов устройств, таких как различные игровые приставки(Nintendo, Sony, Microsoft), мобильные телефоны, карманные портативные компьютеры (наладонники), коммуникаторы и другие.  Первоначально разработка производится при помощи симуляторов указанных устройств, однако, как и всякая модель, они отличаются от оригинала, часто существенно. Поэтому, игра, успешно работающая на симуляторе, может иметь проблемы при запуске на устройстве. Кроме того, многие из производителей устройств, вводят лицензирование для программного обеспечения. Одним из необходимых условий успешного прохождения лицензии есть соответствие списку технических требований. Примером могут быть требования компании «Sony» для игровых приставок - Sony publishes a Technical Requirements Checklist (TRC), компании Microsoft - Microsoft publishes Technical Certification Requirements (TCR) и другие. Даже в случае незначительных отклонений от требований, в лицензии может быть отказано. В этом случае программа возвращается  на доработку и таким образом теряется время, что приводит к потере и денег. Кроме того, процесс лицензирования в большинстве случаев платный. Поэтому, очень важно проверить игру на соответствие заявленным параметрам аппаратного обеспечения. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.3 Нагрузочное тестирование&lt;/span&gt;(crash testing) Часто бывает, что программа, нормально работающая в большинстве ситуаций, обнаруживает проблемы при эффективных вычислениях. Этот вид проблем особенно неприятен потому, что интенсивность вычислений может не зависеть от логики игры.&lt;br /&gt;Например, в программах написанных для Java – платформы, AVM2 (flash - player) и других может запускаться сборщик мусора. Принцип его работы такова, что он запускается независимо от деловой логики. В тоже время, его работа дорога в смысле вычислительных ресурсов. Кроме того, игровые ситуации с большим объёмом вычислений могут быть не замечены тестировщиками. &lt;br /&gt;Поэтому, целесообразно создать тестовые ситуации, требующие большой вычислительной нагрузки. Таким образом, гораздо легче заметить и улучшить имеющиеся потенциально ненадёжные участки кода.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.4 Тестирование локализации&lt;/span&gt;(Localization testing) Игры, как и некоторые другие виды развлекательной продукции, часто переводят на язык той страны, где они распространяются. Часто бывает, что переводчики не являются носителями соответствующего языка. Даже правильно переведённое словосочетание может резать слух или порождать неприятные ассоциации. Поэтому, во избежание курьёзов, после локализации полезно тестирование игры непосредственно жителями целевой страны.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Метод экспертной оценки в тестировании игр&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Как было сказано раннее, тестирование игрового интерфейса и процесса игры нетривиальная задача из-за отсутствия чётких определений понятий свойственных человеческой психике. Поэтому, такого рода тестирование производится с помощью двух основных методов: экспертной оценки и анализа реакций пользователя на игровые события.&lt;br /&gt;Метод экспертной оценки позволяет получить информацию о недостатках игры непосредственно, как мнение игрока. Хорошо для качественной оценки и выявления масштабных проблем. Однако трудно поддаётся формализации, в общем случае не подходит для установки конкретных количественных параметров (например, количество выстрелов необходимых для поражения врага, коэффициент трения скольжения игровой трассы и так далее). Часто в качестве экспертов выступают сами пользователи.&lt;br /&gt;Разделяют четыре вида подобного тестирования: фокус группы, ретроспективное анкетирование, бета тестирование и метод игровых тестов. Рассмотрим их подробнее&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3.1 Фокус группы&lt;/span&gt; (Focus Groups) Группа пользователей, обычно содержащая десять – двенадцать человек обсуждает определённый аспект игры. Такой, например, как звуковое сопровождение или реалистичность кинематики движения персонажей. Результаты дискуссии и фиксируются в протоколе. Метод хорошо подходит для выявления глобальных недостатков в концепции игры, может быть использован до завершения работы над игровой механикой.&lt;br /&gt;Недостатки состоят в том, что невозможно получить конкретные численные данные, обсуждаемая концепция игры может коренным образом отличаться от концепции готового продукта, в дискуссии могут превалировать два три участника с более развитыми навыками полемики, подавляя тем самым мнение остальных.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3.2 Ретроспективное анкетирование.&lt;/span&gt; Чаще всего производится после выхода игры. В анкете задаются вопросы о качестве графики, звукового оформления, персонажей, сюжета и так далее. Разновидностью данного вида анкетирования являются комментарии на сайтах соответствующей тематики. В случае онлайн игр пользователю, в большинстве случаев, предлагается оценить игру непосредственно на web – странице, где она расположена. Упоминаемый выше рейтинг на игровых сайтах также можно считать видом ретроспективного анкетирования.&lt;br /&gt; Этот вид тестирования позволяет непосредственно оценить игру - с его помощью можно получить объективную оценку.  Данные, полученные таким образом, можно использовать как критерий качества в методе анализа пользовательских реакций, метод неприменим для улучшения вышедшей игры. Он может помочь лишь в устранении имеющихся недостатков для последующих продуктов. Также, пользователи обычно не стимулированы заполнять большие анкеты, а иногда и необъективно оценивают игру. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3.3 Бета тестирование&lt;/span&gt; Модификацией предыдущего метода можно считать метод бета – тестирования. После выхода бета – версии игры создатель может предложить желающим бесплатно получить программу. Взамен, тестеры указывают на существующие недостатки. Этот метод хорош тем, что позволяет проверить реакцию конечного пользователя до официального окончания работы над игрой. Кроме того, бета -  тестеры в большинстве случаев являются очень опытными игроками, поэтому их замечания объективны и точны. &lt;br /&gt;Для небольших и онлайн игр можно предложить тестирование посетителям тематических форумов. Так на форуме www.flasher.ru присутствует раздел обсуждения готовых flash – приложений, в том числе и игр. &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;3.4 Тестирование с помощью профессиональных тестеров.&lt;/span&gt; Описанные выше методы позволяют тестировать программное обеспечение силами пользователей, без привлечения профессиональных тестеров. Однако в основном тестирование выполняют специально обученные работники. Отличие от вышеописанных методов состоит в многократном проходе каждого уровня, стандартизированных и расширенных анкетах. Данный вид тестирования позволяет наиболее полно исследовать игру, однако его недостатком является то, что мотивация профессиональных тестеров и пользователей, играющих ради удовольствия, сильно отличается. Кроме того, профессиональное тестирование существенно увеличивает стоимость выпуска игры. &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;4. Тестирование игрового интерфейса  и процесса  с помощью записи реакций игрока.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Анкетирование и обсуждение позволяет выявить качественные проблемы игр, однако любая оценка игры субъективна. Кроме того, добровольные тестеры часто не в состоянии пояснить, что именно им не нравится в процессе игры, а профессионалы обходятся дорого. Далее, любое тестирование, основанное на фиксации мнения игрока, способно решить проблему лишь качественно. Конкретные численные характеристики приходится находить экспериментально, что увеличивает время и стоимость работы. Поэтому, принято записывать реакции игрока и путём их анализа корректировать численные параметры игры. &lt;br /&gt;В качестве примера применения логирования и информации, которую можно с помощью него получить, рассмотрим такой класс игр, как головоломки. &lt;br /&gt;Суть таких игр сводится к решению последовательности задач на логику, внимание, память, иногда необходимо решить задачу за определённое время. Классическими головоломками являются пазлы, шахматные и шашечные задачи, судоку, кроссворды и так далее. В последнее время появились головоломки, которые сводятся к  предсказанию поведения механической системы. Такие как игры расположенные по адресам: http://www.kongregate.com/games/TheGameHomepage/red-remover, http://www.kongregate.com/games/inXile_Ent/fantastic-contraption, &lt;br /&gt;http://www.kongregate.com/games/inXile_Ent/super-stacker-2 и другие. Видно, что игра состоит из последовательности логических задач повышающейся сложности.&lt;br /&gt;&lt;br /&gt;Очевидно, что мы хотим получить игру, захватывающую пользователя с первых минут и интересом неослабевающем на протяжении всего времени использования. С постепенным увеличением сложности от уровня к уровню, качественным звуковым и музыкальным сопровождением. Мы предполагаем, что в игре реализовано автоматическое сохранение, возможность настройки элементов управления, включать и выключать звук и музыку и создавать пользовательские уровни. &lt;br /&gt;Важным параметром игр – головоломок является эталонное прохождение уровня. Это прохождение, которое выполняется опытным игроком, хорошо знающим правила. Как правило, производится несколько прохождений и из них выбирается наиболее близкое к средней величине по совокупности параметров. &lt;br /&gt;&lt;br /&gt;Ниже приведены параметры, подлежащие записи и данные, которые можно получить в процессе их анализа.&lt;br /&gt;&lt;br /&gt;• Качество игры Время, проведённое пользователем за игрой&lt;br /&gt;• Понятность правил Скорость прохождение первого уровня по отношению к эталонному прохождению. Количество обращений к помощи&lt;br /&gt;• Сложность уровня Время прохождения уровня по отношению к эталонному времени. Количество проигранных игр, или уровней. &lt;br /&gt;• Корректность выбранных интервалов автоматического сохранения игры Количество сохранений сделанных пользователем. Наличие большого числа сохранений на определённом участке игры говорит о том, что в этом месте необходимо сохранять данные автоматически&lt;br /&gt;• Сложность уровня по отношению к другим Сравнения параметров «сложность» для каждого уровня&lt;br /&gt;• Вовлечение пользователей в игру Количество пользователей, которые прошли больше определённого числа уровней. Количество пользователей прошедших последний уровень. Количество пользовательских уровней, которые были созданы.&lt;br /&gt;• Качество звукового и музыкального сопровождения Количество пользователей, отключивших звук или музыку&lt;br /&gt;• Удобство управления, соответствие стандартам индустрии Количество пользователей изменивших управление&lt;br /&gt;• Оптимальность количества элементов управления Среднеквадратическое отклонение процентных соотношений использования конкретных элементов управления.&lt;br /&gt;&lt;br /&gt;Используя данные характеристики можно судить о слабых местах игры и своевременно изменить их. Очевидно, что кроме представленных данных весьма любопытными представляются знания о персоне пользователя: его возраст, пол, социальный статус, профессия и так далее. Но так – как предоставление этих данных нельзя требовать, они не рассматриваются в этой статье.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Перспективы дальнейших исследований.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; На данный момент актуальным является создание удобных инструментов по автоматизации тестирования игр: ведения логов и анкетирования. Следующим этапом будут исследования, относящиеся к инженерной психологии: между жанром игр, возрастной категорией, сложностью уровней и так далее существуют некоторые связи, которые могут быть выявлены с помощью технологии Data Mining  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Литература&lt;/span&gt;&lt;br /&gt;1. John P. Davis, Keith Steury, and Randy Pagulayan. A survey method for assessing perceptions of a game: The consumer playtest in game design http://www.gamestudies.org/0501/davis_steury_pagulayan/&lt;br /&gt;2. Melissa A. Federoff. Heuristics and usability guidelines for the creation and evaluation of fun in video games&lt;br /&gt;3. Sauli Laitinen. Better Games Through Usability Evaluation and Testing http://www.gamasutra.com/features/20050623/laitinen_02.shtml&lt;br /&gt;4. David Kieras, User Interface Design for Games http://www.eecs.umich.edu/~soar/Classes/494/talks/User-interfaces.pdf&lt;br /&gt;5. Sauli Laitinen. Do usability expert evaluation and test provide novel and useful data for game development?&lt;br /&gt;6. Shannon Lucas and Denise Fulton What We Learned Evaluating the Usability of a Game http://www.stcsig.org/usability/newsletter/0410-gameevaluation.html&lt;br /&gt;7. Martin Peterson Why Game Documentation is Essential to a Satisfying User Experience http://www.stcsig.org/usability/newsletter/0410-gamedocs.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-8052492244061507536?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/8052492244061507536/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=8052492244061507536' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/8052492244061507536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/8052492244061507536'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2010/01/blog-post.html' title='ТЕСТИРОВАНИЕ ИНТЕРЕСА К ИГРЕ'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-1293441700920712985</id><published>2009-08-25T14:59:00.000-07:00</published><updated>2009-08-25T15:36:35.823-07:00</updated><title type='text'>Раздражающие вопросы на собеседованиях</title><content type='html'>Навеяно рсдн - ом, ДОУ и другими форумами.&lt;br /&gt;Итак:&lt;br /&gt;&lt;br /&gt;1) Почему вы выбрали нашу компанию/почему вы хотите у нас работать?&lt;br /&gt;Правильная стратегия поиска работы предполагает отсылать десять - двадцать резюме в день, иной раз люди проходят по три - четыре собеседования. Потом садятся, думают и из полученных предложений выбирают одно. Если предложений кроме этого больше нет, то вопрос вообще не имеет смысла, но никто ж не ответит правдиво, а на первом собеседовании он звучит как нельзя глупо &lt;br /&gt;2) Что вы знаете о нашей компании&lt;br /&gt;Имхо тупая калька с собеседований в Майкрософте, Гугле и др. Там это понятно, но из уст хрюши заштатной обшорки в 20 - 30 человек, у которой только и есть, что хоумпейдж, откуда соискатель может о них знать. Иногда человек приходит на собеседование чтобы узнать подходит - ли ему эта работа, т.е. выбирает он, а не контора. Т.е. и приходишь - то узнать что - нибудь об этой самой компании, насколько вы подойдёте друг - другу&lt;br /&gt;3) Почему вы ищите работу. Почему - почему, деньги я люблю. Гораздо лучше звучит: чем вас не устраивало прошлое/не устраивает теперешнее место работы. &lt;br /&gt;4) Пронумеруйте по степени важности десять вопросов. Ну естественно, каждый сначала выбирает интересную работу, потом деньги или коллектив, в зависимости от степени наглости, и далее по пунктам. Дальше эти бумажки кладут в папочку и выбрасываются при очередной уборке.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-1293441700920712985?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/1293441700920712985/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=1293441700920712985' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/1293441700920712985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/1293441700920712985'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2009/08/blog-post_25.html' title='Раздражающие вопросы на собеседованиях'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-5893710450929455465</id><published>2009-08-20T04:45:00.000-07:00</published><updated>2009-08-20T05:04:26.066-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start in gamedev'/><category scheme='http://www.blogger.com/atom/ns#' term='gamedev'/><category scheme='http://www.blogger.com/atom/ns#' term='начало'/><category scheme='http://www.blogger.com/atom/ns#' term='junior'/><title type='text'>Сетевые игры, которые может сделать джуниор</title><content type='html'>Привет всем.&lt;br /&gt;&lt;br /&gt;Вот что по моему будет посильно для джуна&lt;br /&gt;&lt;br /&gt;1) Самое простое - морской бой. Делать броузерного клиента для неё не имеет смысла т.к. человеку, которому доступен броузер легко найдёт флешовую игрушку поинтереснее. Поэтому клиент лучше всего сделать мобильный использовать для этого можно J2ME, flash light, WinForms mobile, обжектив С если для айфона симбеан си и другие. Выбирай, что ближе. Сервер для игры можно сделать вебовским, используя Java + Spring + Hibernate + MySql. Должна быть авторизация юзера, выбор боёв т.е. список пользователей, которые хотят сейчас играть опционально таблица лучших игроков, чат и так далее. Прикинь, ты сидишь на скучной лекции и играешь со своим другом в морской бой, круто?&lt;br /&gt;Можно ещё написать искуственный интеллект игрока, чтоб играл, когда нет других желающих. Для этого погугли журнал квант, в каком то номере за 80 - й год был алгоритм.&lt;br /&gt;2) Игры типа шашек, шахмат, го и так далее. Тут уже можно сделать и броузерный клиент, делать его лучше используя флеш. Action Script 3.0 по идеологии очень похож на яву, тьюториалов туева хуча. Сервер будет состоять из тех - же частей, что и в морском бое&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Дальше идут игры реального времени. Отличие их от первых двух в том, что http - сервером не обойтись, при большой частоте запросов он ляжет даже если игр и игроков мало. Нужно писать сокет - сервер, использовать что - то вроде red5, wowza или WebOrb я не советую. Во первых изучение займёт много времени, во вторых это специфические сервера, они мало где нужны, в третьих нужно понимать как работают сокет - сервера на самом низком уровне, без обёрток. Это поможет в дальнейшей работе. &lt;br /&gt;&lt;br /&gt;Итак&lt;br /&gt;3) Worms - погугли и станет ясно. Собственно, эта игра скорее пошаговая, чем риалтайм, но управлять движением червячка лучше через сокет.&lt;br /&gt;4) Арканоид на шестиугольнике. Представьте себе шестиугольник по каждой грани которого ездит тележка и отражает мячик. Каждый игрок управляет своей тележкой, задача отразить мячик (их может быть и несколько) Для усложнения задачи можно поместить в центр окружность от которой мячик будет отражаться. &lt;br /&gt;5) Простейшая стрелялка. По игровому полю ездят несколько танков, каждый стреляет пульками, для упрощения проблем с синхронизацией нужно, чтобы пульки и танки двигались медленно.&lt;br /&gt;6) Можно придумать ещё много таких игр. Главное, чтобы они были простыми, без излишних расчётов и сложностей.&lt;br /&gt;&lt;br /&gt;Несколько слов о общем дизайне и организации труда:&lt;br /&gt;&lt;br /&gt;1) Никаких принятий решений на клиенте. Весь игровой алгоритм нужно реализовывать на сервере - клиент лишь отображает ситуацию на сервере и передаёт управляющие воздействия: нажатия клавиш, кнопок и т.п.&lt;br /&gt;2) Не экономь на правильном решении - используй шаблоны, библиотеки, тесты везде, где только можно. Ты учишся и в спину тебя никто не гонит. &lt;br /&gt;3) Нужно делать каждый день, хотябы понемногу. Не позволяйте рутине заслонить от вас процесс.&lt;br /&gt;&lt;br /&gt;Ну вот и всё,&lt;br /&gt;&lt;br /&gt;Владимир&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-5893710450929455465?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/5893710450929455465/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=5893710450929455465' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/5893710450929455465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/5893710450929455465'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2009/08/blog-post_20.html' title='Сетевые игры, которые может сделать джуниор'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-5904014125290318156</id><published>2009-08-12T15:43:00.000-07:00</published><updated>2009-08-15T17:51:53.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pathfinding'/><category scheme='http://www.blogger.com/atom/ns#' term='potential'/><category scheme='http://www.blogger.com/atom/ns#' term='gamedev'/><category scheme='http://www.blogger.com/atom/ns#' term='A*'/><category scheme='http://www.blogger.com/atom/ns#' term='fields game'/><title type='text'>Алгоритмы поиска пути в играх</title><content type='html'>В практике компьютерных игр часто возникает необходимость проложить курс от пункта A в пункт Б на игровом поле с отмеченными непроходимыми областями. Это может быть нужно например при движении бота к персонажу игрока. В зависимости от типа игрового мира к поиску пути применяются разные подходы. &lt;br /&gt; В одном случае карту мира можно представить в виде дискретной сетки. перемещение по нему сводится к перемещению по клеткам карты. Тогда математической моделью может служить ориентированный граф вершины которого соответствуют клеткам, а рёбра возможностям перехода из одной клетки в другую. В другом - же случае мир непрерывен и положение объектов определяется их геометрической формой и взаимным расположением. Часто применяется и комбинированный подход &lt;br /&gt; Если мир дискретен найти путь значит найти последовательность клеток перемещаясь по которым можно перейти из одного положения в другое. Когда — же мир непрерывен, найти путь значит найти функции линейного и углового ускорения от координат. Таким образом алгоритмы поиска пути делятся на дискретные и непрерывные.  В статье [3] также предлагается деление на алоритмы локального и глобального поиска. При этом, под алгоритмами локального поиска автор понимает поиск пути в непосредственной близости от цели, соответственно, под алгоритмами глобального поиска понимается поиск на некотором протяжённом расстоянии. Однако, такое деление представляется достаточно условным так как в различных ситуациях один и тот — же алгоритм может использоваться как вблизи, так и на большом расстоянии от цели.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Алгоритм A*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; Алгоритмы поиска на дискретной карте сводятся к поиску пути на графе. Существует несколько алгоритмов поиска пути. Среди них чаще всего используется алгоритм А со звездой или A* - поиск по первому наилучшему совпадению. ﻿Порядок обхода вершин определяется эвристической функцией «расстояние + стоимость» (обычно обозначаемой как f(x)). Эта функция — сумма двух других: функции стоимости достижения рассматриваемой вершины (x) из начальной (обычно обозначается как g(x) и может быть как эвристической, так и нет) и эвристической оценкой расстояния от рассматриваемой вершины к конечной (обозначается как h(x)). ﻿&lt;br /&gt;Функция h(x) должна быть допустимой эвристической оценкой, то есть не должна переоценивать расстояния к целевой вершине. Например, для задачи маршрутизации h(x) может представлять собой расстояние до цели по прямой линии, так как это физически наименьшее возможное расстояние между двумя точками. Этот алгоритм был впервые описан в 1968 году Питером Хартом Нильсом Нильсоном и Бертраном Рафаэлем. В их работе он упоминается как «алгоритм A». Но так как он вычисляет лучший маршрут для заданной эвристики, он был назван A*.﻿&lt;br /&gt; A* пошагово просматривает все пути, ведущие от начальной вершины в конечную, пока не найдёт минимальный. Как и все информированные алгоритмы поиска, он просматривает сначала те маршруты, которые «кажутся» ведущими к цели. От жадного (который тоже является алгоритмом поиска по первому лучшему совпадению) его отличает то, что при выборе вершины он учитывает, помимо прочего, весь пройденный до неё путь (составляющая g(x) — это стоимость пути от начальной вершины, а неf(x), после чего этот узел раскрывается. На каждом этапе алгоритм оперирует с множеством путей из начальной точки до всех ещё не раскрытых (листовых) вершин графа («множеством частных решений»), которое размещается в очереди с приоритетом. Приоритет пути определяется по значению f(x) = g(x) + h(x). Алгоритм продолжает свою работу до тех пор, пока значение f(x) целевой вершины не окажется меньшим, чем любое значение в очереди (либо пока всё дерево не будет просмотрено). Из множественных решений выбирается решение с наименьшей стоимостью. от предыдущей, как в жадном алгоритме).&lt;br /&gt;В начале работы просматриваются узлы, смежные с начальной; выбирается тот из них, который имеет минимальное значение &lt;br /&gt;&lt;br /&gt;Ввиду большой важности рассмотрим данный алгоритм более подробно. Пусть есть ориентированный граф вершинами которого являются клетки карты а рёбрами пути из клетки в клетку в случае если такой путь существует. Каждому ребру припишем некоторое число - стоимость перехода от клетки в клетку. &lt;br /&gt;Алгоритм оперирует двумя списками: сортированным (далее open), в котором хранятся вершины, ребра которых еще не были обработаны (узлы сортируются по оценке расстояния до конечного узла от наиболее близкого), и не сортированный (далее close) с обработанными узлами. Изложим принцип работы данного алгоритма в виде диаграммы деятельности.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_RLBbq_cvWVA/SoNIawYa4eI/AAAAAAAAAFg/z1h6eLC1cDw/s1600-h/Astar.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 370px; height: 400px;" src="http://3.bp.blogspot.com/_RLBbq_cvWVA/SoNIawYa4eI/AAAAAAAAAFg/z1h6eLC1cDw/s400/Astar.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5369214805256888802" /&gt;&lt;/a&gt;&lt;br /&gt;Алгоритм A* является полным в том смысле, что он всегда находит решение, если таковое существует. Если эвристическая функция h допустима, то есть никогда не переоценивает действительную минимальную стоимость достижения цели, то A* сам является допустимым (или оптимальным), также при условии, что мы не отсекаем пройденные вершины. Если же мы это делаем, то для оптимальности алгоритма требуется, чтобы h(x) была ещё и монотонной, или преемственной эвристикой. Свойство монотонности означает, что если существуют пути A—B—C и A—C (не обязательно через B), то оценка стоимости пути от A до C должна быть меньше либо равна сумме оценок путей A—B и B—C. A* также оптимально эффективен для заданной эвристики h. Это значит, что любой другой алгоритм исследует не меньше узлов, чем A* (за исключением случаев, когда существует несколько частных решений с одинаковой эвристикой, точно соответствующей стоимости оптимального пути). В то время как A* оптимален для «случайно» заданных графов, нет гарантии, что он сделает свою работу лучше, чем более простые, но и более информированные относительно проблемной области алгоритмы. Например, в некотором лабиринте может потребоваться сначала идти по направлению от выхода, и только потом повернуть назад. В этом случае обследование вначале тех вершин, которые расположены ближе к выходу (по прямой дистанции), будет потерей времени. &lt;br /&gt;     &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Проблемы возникающие при реализации A*&lt;br /&gt;&lt;br /&gt;Скорость выполнения алгоритма&lt;br /&gt;&lt;/span&gt;&lt;br /&gt; Основная сложность с реализацией A* состоит в увеличении скорости вычислений. Действительно, с ростом количества одновременных поисков и размеров карты вычисления занимают всё больше машинного времени. Как известно, основное время в поиске пути занимает работа с Open и Closed списками. Хорошо продумав алгоритмы поиска и вставки элементов можно существенно увеличить скорость работы А*. К сожалению правильной реализации собственно поиска может оказаться недостаточно в случае очень большой карты или большого количества одновременных поисков. Кроме того, следует учитывать особенности реализации структур данных для выбранной платформы. Поэтому на практике применяют ряд подходов, которые позволяют уменьшить применение А*. Некоторые из них описаны ниже.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Уменьшение точности поиска.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; В случае, когда расстояние между пунктами, для которых необходимо проложить путь весьма велико, не имеет смысла находить путь с точностью до клетки. Достаточно разделить карту на  непересекающиеся  области или локации и в начале поиска определить последовательность локаций   пройдя которые можно очутиться в исходной точке. Далее, определив необходимую локацию и соседнюю с ней, можно искать путь лишь по клеткам смежных локаций.&lt;br /&gt; Остановимся подробнее на требованиях, которые налагаются на локации. В большинстве случаев путь от точки А к Б ищется для того, чтобы произвести определённые действия, к примеру бот ищет путь к персонажу игрока для того, чтобы атаковать его. Понятно, что для атаки в большинстве случаев необходимо, чтобы игроки были видимы друг другу, или говоря иными словами между ними не должно быть непроходимых областей, или клеток, если речь идёт о двумерной карте. Т.е. между центрами клеток в которых находятся персонажи A и Б можно провести прямую так, чтобы она не пересекала непроходимых клеток. Таким образом мы видим, что локация является частным случаем выпуклого множества [2] и задача разбиения карты на локации сводится к разбиению на выпуклые множества.  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Предварительный расчёт пути.&lt;/span&gt;&lt;br /&gt; Для крупных областей речь о которых шла в предидущем пункте имеет смысл расчитать оптимальные пути до начала игры. В этом случае мы экономим достаточно большое количества времени, в то — же время объем памяти необходимых для хранения матрицы путей незначителен.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Комбинирование различных алгоритмов поиска&lt;/span&gt;&lt;br /&gt; Часто хороших результатов можно добиться используя комбинацию алгоритмов поиска. Например, найдя последовательность локаций при помощи А*. Путь внутри локации или между ними можно искать с помощью менее затратного алгоритма потенциальных полей о котором будет сказано ниже. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Проблема неестественной траектории&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Хотя А* и позволяет найти путь к цели, траектория может выглядеть неестественно. Например, на рисунке&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RLBbq_cvWVA/SoNV0n8tPSI/AAAAAAAAAHY/88q1OWnmiCU/s1600-h/badpath.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 317px; height: 282px;" src="http://1.bp.blogspot.com/_RLBbq_cvWVA/SoNV0n8tPSI/AAAAAAAAAHY/88q1OWnmiCU/s400/badpath.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5369229543320927522" /&gt;&lt;/a&gt;&lt;br /&gt;Представлена ситуация Case 1 в которой найдены два эквивалентных с точки зрения длинны поиска пути, однако очевидно, что ломаная с большим числом углов выглядит неестественно. &lt;br /&gt; Далее, в ситуации Case 2 показана траектория движения соединяющая центры клеток. Понятно, что более естественной траекторией была — бы гладкая кривая обозначенная пунктиром.&lt;br /&gt;В ситуации Case 3 оптимальной траекторией была — бы прямая обозначенная пунктиром. Однако, в следствие квантизации пространства, путь который нужно пройти по клеткам покрывающим её будет эквивалентен показанным сплошной линией ломаным траекториям.&lt;br /&gt; Одним из путей решения проблемы естественности пути является  интерполяция траектории сплайном. Другим путём решения проблемы будет предварительная проверка существуют — ли непроходимые клетки между исходной клеткой и целью. Если таких клеток нет, в использовании A* нет необходимости. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Метод потенциальных полей.&lt;/span&gt;&lt;br /&gt; Другим часто применимым методом поиска является метод потенциальных полей. В соответствии с этим методом каждое препятствие имеет вокруг себя отталкивающее потенциальное поле сила которого обратно пропорционально расстоянию до него. Также существует однородная сила притяжения к цели.  Через близкие постоянные интервалы времени вычисляется сумма притягивающих и отталкивающих векторов и объект передвигается в этом направлении.&lt;br /&gt;Таким образом, отталкивающая сила будет равна&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_RLBbq_cvWVA/SoNWVFuG0EI/AAAAAAAAAHg/Y4ohoZVAHz0/s1600-h/f1.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 217px; height: 31px;" src="http://4.bp.blogspot.com/_RLBbq_cvWVA/SoNWVFuG0EI/AAAAAAAAAHg/Y4ohoZVAHz0/s400/f1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5369230101068566594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Где &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RLBbq_cvWVA/SoNW3tBZGUI/AAAAAAAAAHw/SOLu_q0LL-8/s1600-h/f2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 67px; height: 19px;" src="http://1.bp.blogspot.com/_RLBbq_cvWVA/SoNW3tBZGUI/AAAAAAAAAHw/SOLu_q0LL-8/s400/f2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5369230695733991746" /&gt;&lt;/a&gt; - искомая ф — ция дающее направление движения в данной точке карты,&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_RLBbq_cvWVA/SoNXRbK5myI/AAAAAAAAAH4/jsTfE3qovXE/s1600-h/f3.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 67px; height: 19px;" src="http://4.bp.blogspot.com/_RLBbq_cvWVA/SoNXRbK5myI/AAAAAAAAAH4/jsTfE3qovXE/s400/f3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5369231137618631458" /&gt;&lt;/a&gt; - сила притяжения к цели &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_RLBbq_cvWVA/SoNXgFkamcI/AAAAAAAAAIA/zj6YMJdFyFQ/s1600-h/f4.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 58px; height: 20px;" src="http://4.bp.blogspot.com/_RLBbq_cvWVA/SoNXgFkamcI/AAAAAAAAAIA/zj6YMJdFyFQ/s400/f4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5369231389518109122" /&gt;&lt;/a&gt;- сумма сил отталкивания от препятствия соответственно. &lt;br /&gt;Очевидно, что возможны случаи, когда значение равна нулю, а значит направление движения неопределено. Эта проблема называется проблемой локальных минимумов. &lt;br /&gt;Существует ряд способов её решения.  Так например пытаются подобрать ф — ции, которые не имеют локальных минимумов. Другое решение состоит в том, чтобы при попадении в локальный минимум временно изменить цель, по достижении этой временной цели двигаться по направлению к главной.  Данный способ выхода из локального минимума называется методом виртуальных локальных целей и изложен в [4]. &lt;br /&gt; Вариацией метода потенциальных полей является метод  виртуальных отталкивающих клеток изложенный в [5]. Его суть состоит в том, что игровое поле разделяется на клетки (поля) и если клетка содержит препятствие, она обладает отталкивающим потенциалом. Объект, для которого нужно найти путь представляется находящимся в центре квадрата стороны которого параллельны клеткам игрового поля. Если клетка с препятствием попадает внутрь квадрата, она производит отталкивающее действие, иначе нет. Результирующая сила вычисляется как сумма отталкивающих сил  от клеток с препятствиями и притягивающей к цели силе. Таким образом устраняется влияние удалённых препятствий и отдалённых частей препятствий большого размера. В следствие этого, траектория движения получается более плавной.&lt;br /&gt;Иллюстрация метода представлена на рисунке.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RLBbq_cvWVA/SoNYTCuwtsI/AAAAAAAAAII/150yi4QF-48/s1600-h/potentialfield.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 310px;" src="http://2.bp.blogspot.com/_RLBbq_cvWVA/SoNYTCuwtsI/AAAAAAAAAII/150yi4QF-48/s400/potentialfield.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5369232264929523394" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Метод точек видимости&lt;/span&gt;&lt;br /&gt; Данный метод всегда применяется в комбинации с методом поиска пути на графе и часто с методом потенциальных полей. Суть его в том, что вокруг неподвижных препятствий, на достаточном от них удалении чтобы избежать столкновений, расставляются точки видимости.  Две точки считаются соединёнными если они видимы между собой, то есть отрезок прямой между ними не пересекает неподвижных препятствий. Математической моделью в данном случае является неориентированный граф вершины которого соответствуют точкам видимости. Две вершины соединены если соединены две соответствующие точки. Движение между двумя соседними точками можно осуществлять с помощью метода потенциальных полей. В этом случае другие объекты для которых ищется путь могут рассматриваться как препятствия. Например, когда требуется найти путь для  нескольких роботов противника движущихся к роботу игрока. &lt;br /&gt;&lt;br /&gt;Литература &lt;br /&gt;1.Принцип работы алгоритма поиска пути Астар (A*) http://www.gamedev.ru/articles/?id=70121&lt;br /&gt;2.Материалы сайта http://dic.academic.ru/ &lt;br /&gt;3.The long and short of steering in computer games Simon L. Tomlinson 2 Campden Way, Handforth, Cheshire. SK9 3JA, United Kingdom e-mail: DrSimonT@iclway.co.uk&lt;br /&gt;4.ISSN 1009 - 3095 Journal of Zhejiang University SCIENCE V. 4, No. 3,P. 264-269, May- June, 2003 http://www. zju.edu.cn/jzus; http: //www. periodicals, com. en; jzus@zju. edu. en&lt;br /&gt;Virtual local target method for avoiding local minimum in potential field based robot navigation ZOU Xi-yong( Ä ! )+, ZHU Jing( Ü ft ) ( College of Electrical Engineering National Laboratory of Industrial Control Technology » Zhejiang University * Hangzhou 310027» Chinai 'E- mail : zouxiyong @ 163 . net Received June 3» 2002; revision accepted Aug. 10» 2002&lt;br /&gt;5.Applying an Enhanced Path Finding Avatar for a Virtual Environment Jui-Fa Chen, Wei-Chuan Lin*, Li-Hao Yang Department of Computer Science and Information Engineering, TamKang University, Danshui, Taiwan 25137, R.O.C E-mail: alpha@mail.tku.edu.tw  Department of Information Technology, Tak-Ming College, E-mail: wayne@takming.edu.tw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-5904014125290318156?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/5904014125290318156/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=5904014125290318156' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/5904014125290318156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/5904014125290318156'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2009/08/blog-post.html' title='Алгоритмы поиска пути в играх'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RLBbq_cvWVA/SoNIawYa4eI/AAAAAAAAAFg/z1h6eLC1cDw/s72-c/Astar.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5986590114216892586.post-6879693523908231345</id><published>2008-08-27T06:11:00.000-07:00</published><updated>2009-08-12T17:10:38.268-07:00</updated><title type='text'>Первая запись</title><content type='html'>Сим начаты публикации в блоге. Зесь я буду рассказывать о том, что мне интересно. Как - то об игрострое и ином интеллектуальном программировании&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5986590114216892586-6879693523908231345?l=gamesdevandmath.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gamesdevandmath.blogspot.com/feeds/6879693523908231345/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5986590114216892586&amp;postID=6879693523908231345' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/6879693523908231345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5986590114216892586/posts/default/6879693523908231345'/><link rel='alternate' type='text/html' href='http://gamesdevandmath.blogspot.com/2008/08/blog-post.html' title='Первая запись'/><author><name>Воффка</name><uri>http://www.blogger.com/profile/02656679402418208014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
