tag:blogger.com,1999:blog-32297526571012767082024-03-13T10:25:16.853-07:00Gamedev by gamerБлог инди разработчика компьютерных игр.Unknownnoreply@blogger.comBlogger4125tag:blogger.com,1999:blog-3229752657101276708.post-61718665437369786642011-04-06T08:53:00.000-07:002011-04-06T08:54:27.217-07:00Поиск товаров электроники в Сургуте<div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: left;">Захотелось <i>быстро <span class="Apple-style-span" style="color: #38761d;"><b>сравнить цены</b></span> на электронику в <b><span class="Apple-style-span" style="color: #38761d;">Сургуте</span></b></i>. Сел и сообразил за пару вечеров сервис для поиска товаров электроники в городе. <b><a href="http://www.yoursurgut.ru/"><span class="Apple-style-span" style="font-size: large;">www.yoursurgut.ru</span></a></b> Для этого проиндексировал 4 основных магазина: <b><span class="Apple-style-span" style="color: #38761d;">Арсенал</span></b>, <span class="Apple-style-span" style="color: #38761d;"><b>Первый</b></span>,<span class="Apple-style-span" style="color: #38761d;"><b> Техноцентр</b></span> и <span class="Apple-style-span" style="color: #38761d;"><b>Мвидео</b></span>. У Арсенала и Мвидео пришлось скрабить информацию с сайтов. Паук-поисковик был написан на Python с использованием Beautiful Soup. Сервер реализовал на php, а клиент js-jquery-html. В общем все было не сложно и по фану (-:</div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dzYOl4yNPMr33J93i-Vzb84AyKtkyX7FKViWqbO300tVsFNsqEjEm2rhOs3ZyNvJfMnGdyqZwg7Wgy16DPd8w' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><div style="text-align: left;"><br />
</div><div style="text-align: left;">Для сравнения цен попробуйте следующие товары:</div><ul style="text-align: left;"><li>MB292RS (разница в ~5000! :) )</li>
<li>SUB5A1</li>
<li>MC516RS</li>
<li>VX2268WM</li>
</ul>Сервис будет улучшен если получит хотя бы 100 посещений. Если есть вопросы или предложения пишите.<br />
<div style="text-align: left;"></div></div>Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-3229752657101276708.post-5008336109847323082011-03-28T05:57:00.001-07:002011-03-28T05:57:52.224-07:00Дежавю в играх<div dir="ltr" style="text-align: left;" trbidi="on">Запускаю COD Black ops и сразу пробивает дежа вю. Вспомнилась игра <b>"In Cold Blood"</b>, которая издавалась у нас как проект "Не зная страха". Это просто потрясающий action/pointer adventure от Revolution Software, создатели Broken Sword 2. Начало игры пробирало мурашками по спине;) Звук и атмосфера пытки и голос. "С начала, с самого начала...". Создатели COD пытались создать такую же атмосферу и закольцовывание сюжета, но что то было не то... Ах да. Дежавю выбивала все из колее моего подсознания. <br />
Игра "In Cold Blood" это просто потрясающее смешение жанров : stelth, action, adventure, quest и элементы rpg. <br />
Эта игра в 2000 году уже была кинематографичной не меньше чем современный Mass Effect. Эффект был и от музыки и от детального описания мира и проработанных харизматичных персонажей. Эта игра заставляла сопереживать героям и вела под постоянной интригой и напряжением до заключительных титров. <br />
<div class="illustration horizontal"><a class="image-lightbox-gallery" href="http://static.kanobu.ru/kanobu/modern/upload/images/2011/03/25/3fb5d245-4edd-4aa7-8f7a-b407ca2be55f.jpg" id="gal-1"><img alt="Хорор появлялся в играх" src="http://static.kanobu.ru/kanobu/modern/upload/images/2011/03/25/resize/3fb5d245-4edd-4aa7-8f7a-b407ca2be55f_510x0_q99.jpg" width="510" /></a><span>Хорор появлялся в играх</span></div><div class="illustration horizontal"><a class="image-lightbox-gallery" href="http://static.kanobu.ru/kanobu/modern/upload/images/2011/03/25/cd91abfb-6dd0-45e9-95f5-e12ce8ad930c.jpg" id="gal-2"><img alt="Стелс" src="http://static.kanobu.ru/kanobu/modern/upload/images/2011/03/25/resize/cd91abfb-6dd0-45e9-95f5-e12ce8ad930c_510x0_q99.jpg" width="510" /></a><span>Стелс</span></div><div class="illustration horizontal"><a class="image-lightbox-gallery" href="http://static.kanobu.ru/kanobu/modern/upload/images/2011/03/25/13dae363-32c5-4024-9227-391074faccbc.jpg" id="gal-3"><img alt="Action" src="http://static.kanobu.ru/kanobu/modern/upload/images/2011/03/25/resize/13dae363-32c5-4024-9227-391074faccbc_510x0_q99.jpg" width="510" /></a><span>Action</span></div><b>В общем, must have 1.</b> <br />
После увиденного дежавю я попытался вспомнить когда еще я такое испытывал. Сразу вспомнил кадры из игры "Splinter Cell: Conviction", когда Сэм попадает в главный холл своей секретной организации и идет к ресепшену. Огромный зал, много света, один стол с девушкой и !!! <b>"ONI"</b> - компьютерная игра в жанре экшена от третьего лица, вышедшая омг в 2001 году. Вот времечко было. Я вспомнил как Конока пришла в свою сверх секретную организацию в поисках правды. Конока шла через огромный зал, наполненный светом.И в дальнем конце зала , находился ресепшен с девушкой. Потом небольшой диалог... И включается сирена и девушка ныряет под стол. <br />
<div class="illustration horizontal"><a class="image-lightbox-gallery" href="http://static.kanobu.ru/kanobu/modern/upload/images/2011/03/25/8a9067a3-7bd2-4142-bfbf-63e819c4ac93.jpg" id="gal-4"><img alt="Oni" src="http://static.kanobu.ru/kanobu/modern/upload/images/2011/03/25/resize/8a9067a3-7bd2-4142-bfbf-63e819c4ac93_510x0_q99.jpg" width="510" /></a><span>Oni</span></div>Обе игры вызывали в этот момент кучу эмоций и в обеих играх это удалось, но 2001 год и 2010) <br />
Кстати , <b>ONI - must have 2.</b> </div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3229752657101276708.post-37456059678337363642011-03-22T08:27:00.000-07:002011-03-22T08:27:46.235-07:00Создание прототипов #2<div dir="ltr" style="text-align: left;" trbidi="on">Итак создадим <b><span style="color: #6aa84f;">прототип игры Lines</span></b>. В этой игре игрок управляет шариками на поле 9x9 клеток и собирает из них линии. Если игрок собирает линию из 5 элементов то линия уничтожается. Если игрок после своего хода не уничтожил ни одну линию, то падают дополнительные шарики на поле и так пока все поле не заполнится шариками и игрок ничего не сможет больше сделать.<br />
<br />
Бриф закончен - достаем инструменты. Если на Lua вы не программировали то вам не помешал бы интерпретатор lua 5.1 и какой нибудь текстовый редактор.<br />
<div style="color: #6aa84f;"><b>Для Windows: </b><b><a href="http://code.google.com/p/luaforwindows/">http://code.google.com/p/luaforwindows/</a></b></div><div style="color: #6aa84f;"><b>Для Linux: <code>sudo apt-get install lua5.1</code></b></div><div><code>Редактор я использую SciTE(Win) и GEdit(Lin).</code></div><div><code>Создаем hello.lua </code></div><div><code>Теперь пишем:</code></div><pre class="prettyprint">print "Hello world..."
--или
print("Hello World")
--или
print "Hello World";</pre><div><code>И запускаем : lua hello.lua</code></div><div><code>Вот и все lua мы теперь как бы знаем;)</code><br />
<code>Теперь чтобы воять графику скачиваем Love2d.</code><br />
<code><b style="color: #6aa84f;"> Love2d - <a href="https://bitbucket.org/rude/love/downloads" style="color: #6aa84f;">https://bitbucket.org/rude/love/downloads</a></b></code><code> </code><br />
<code>Стабильная версия 0.7.0! Именно с помощью нее можно собрать exe файл в Windows без ошибок. "Теперь wget и все в порядке" ;)</code><br />
<code>Накидаем пример для love2d :</code><br />
<pre class="prettyprint">function love.draw()
love.graphics.setBackgroundColor(200, 200, 200)
love.graphics.setColor(255, 40, 40, 100)
love.graphics.print('Lines ALPHA VER: 0.01', 10, 10)
end
</pre>Называем файл main.lua. Кидаем его в папку EpicLines. И переносим папку на love.exe.<br />
Увидели серый экран и надпись розовую. Отлично! По Love2d отличное wiki на сайте разработчика. Мало того это wiki на русском языке.<br />
<br />
Итак в наших руках теперь есть все инструменты чтобы создать прототип. </div><div>Теперь скачаем исходный код проекта. Ну дык проще один раз увидеть как говорится.Переходим по ссылке <b><a href="https://github.com/Partysun/OpenLines" style="color: #6aa84f;">OpenLines исходники</a></b> либо просто:<br />
<b><span style="color: #6aa84f;">git clone https://github.com/Partysun/OpenLines.git </span></b><br />
Lines- это впервую очередь массив 9x9 который должен содержать игровые объекты. Разных видов всего 7 : Желтый , Голубой , Синий , Зеленый ,Оранжевый ,Розовый ,Красный. В Lua нет массивов, а есть таблицы. Это не тавтология!) Если мы определим таблицу:<br />
mytable = {"hello", 2, "3", 4}<br />
То обратиться, можно как к массиву только первый элемент не 0 ,а 1.<br />
print (mytable[1] ) --"hello"<br />
Двухмерный массив соответственно реализуется вложенностью таблиц.<br />
mytable = {{},{},{}} . А обращение mytable[i][j] . Кроме того Lua не имеет нормальной объектной поддержки - ее вообще нету. Чтобы добиться эмуляции ООП на Lua можно использовать возможности таблиц и метатаблиц языка. Существует много разных решений ООП на Lua, которые дают высокую абстракцию и возможность работать с классами как на java или c. Я выбрал middleclass. Один Lua файл , делаем require и работаем с псевдо ООП. Примеры работы с этой библиотекой находятся на github страничке автора.<br />
<div style="color: #6aa84f;"><b>Middleclass - <a href="https://github.com/kikito/middleclass">https://github.com/kikito/middleclass</a></b></div>В исходниках есть main.lua (Controller + View) и gamelogic.lua (Model) Шаблон M-V-C очень важен в разработке кросс платформенного решения. Основной смысл отделить логику игры от зависимых библиотек работы с управлением, либо библиотек работы с графикой. Вообще сначала я сделал gamelogic.lua, а тестировал работу модуля через консоль. Консольный вариант для прототипа не самый лучший так как видеть в играх все таки очень важно. Прототип должен иметь тоже управление, что и конечная игра! Ведь управление это один из главных элементов геймплея. <br />
Как собрать exe файл или исполняемый файл на Linux можно почитать в Wiki Love2d либо вот на этой страничке - <b style="color: #6aa84f;"><a href="http://love2d.ru/">http://love2d.ru/</a></b><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfFxbUUUqZL9egBbNLPyDecjax1oE-i5pL5WceTyzZIVmuPKpS6McFz8ReZQLqdYlODBaBUR1jwqqq8hvnhVlxxb3cg-Z5QkvlqDOkODCzCIbO4nf0eTMwuDkZImEzMRgqXpPWBT_UPyw/s1600/lines2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfFxbUUUqZL9egBbNLPyDecjax1oE-i5pL5WceTyzZIVmuPKpS6McFz8ReZQLqdYlODBaBUR1jwqqq8hvnhVlxxb3cg-Z5QkvlqDOkODCzCIbO4nf0eTMwuDkZImEzMRgqXpPWBT_UPyw/s320/lines2.png" width="320" /></a><br />
<a name='more'></a>Во второй части статьи о прототипах в игрострое я рассказал о том откуда достать инструменты для разработки и как их приложить для создания прототипа игры. В статье опущено подробное описание кода игры. Собственно по игре только приведены исходники. Код простой и его изучение не должно вызвать у вас проблем + к тому в коде присутствуют комментарии. В следующей части статьи о прототипах я расскажу о том как собрать нашу логику на мобильном устройстве (Android или IPhone) на примере Corona SDK. И сделаю коммит на github. <br />
<br />
<br />
<br />
<br />
</div><div></div><div></div><div><code><br />
</code></div><div style="color: black;"></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3229752657101276708.post-1664043148567965832011-03-22T01:17:00.000-07:002011-03-22T01:17:53.574-07:00Создание прототипов #1<div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #6aa84f;">Прототип игры</span></b> - это модель будущей игры в которую можно поиграть и прочувствовать геймплей. На основании прототипа можно сказать есть будущее у проекта или его нету. Прототип дает возможность геймдизайнеру сразу начать манипулировать с игровым миром , физикой внутри игры, экономикой и процессами. Основной смысл прототипа это проверить идею на практике и уменьшив риски , продолжить разработку проекта.<br />
<br />
<div style="text-align: left;">Процесс создания любой игры это в первую очередь рождение идеи игры. Процесс вынашивание такой идеи для инди игр не может быть долгим как и сама разработка. Для моих проектов это не более 1-2 недель. Идея обсуждается с художником ,с женой:) , формируем общий концепт. Как появляются идеи? Откуда берутся идеи? Это обширные философские вопросы,свое виденье на которые я опишу как нибудь еще. </div>Но вот имеется концепт , который кстати лучше всего немного формализовать и описать на бумаге.<br />
<ul style="text-align: left;"><li> Что за игровой мир? </li>
<li> Чем управляет игрок? </li>
<li> Какая цель у игрока? </li>
<li> Логика победы и поражения</li>
</ul>Так как я пишу игры для мобильных платформ(iOS, Android, Symbian) то процесс разработки игр может сталкиваться с различными языками программирования и различными технологиями которые предоставляются нам авторы этих платформ. До понимания сути прототипа игр я открывал eclipse и сразу начинал кодить под какую либо из плафторм и тестировал на своем девайсе что из этого выходит. Минусы:<br />
<ol style="text-align: left;"><li>Художник не мог попробовать прототип игры </li>
<li>Сразу сталкивался с сложностью разработки(сюда кстати входит зависимость от технических средств и инструментария) </li>
<li> Нельзя получить полную абстракцию от технических проблем и работать над геймплеем игры. </li>
</ol><br />
После нескольких проектов я наконец сел и выделил для себя основные требования для прототипа игр:<br />
<ul style="text-align: left;"><li>Скорость разработки</li>
<li> Независимость от платформы</li>
<li>Возможность художнику пощупать прототип</li>
<li>И возможность посмотреть на прототип на конечных устройствах</li>
</ul>Решение оказалось очень простым и выполняло все требования.<br />
Программировать прототип я решил на Lua (ну аддоны к WoW, Аллоды то я писал:) <b><a href="http://ui9.ru/forum/realagror/topic/322/page=1" style="color: #6aa84f;">Агрометр</a></b> и гилдхол . Эх было дело...)<br />
А использование фреймворков <b><span style="color: #6aa84f;">Corona SDK</span></b> и <b><span style="color: #6aa84f;">Love2d</span></b> сделало реальностью создание одного игрового кода ,который запускался бы как на Windows, Linux, MacOS так и на iOS , Android.<br />
Вообще инструменты имеют очень важное значение в решении задач, кэп.<br />
<b><span style="color: #6aa84f;">Corona SDK - </span><a href="http://www.anscamobile.com/corona/" style="color: #6aa84f;">http://www.anscamobile.com/corona/ </a></b><br />
<b><span style="color: #6aa84f;">Love2d - <a href="http://love2d.org/" style="color: #6aa84f;">http://love2d.org/</a></span></b><br />
<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrJbD_VrJjiqGJFoIvL58O7S-cJgmUn9g40fp_RuomyJnwE1MOn4YXbgEvDm_FGLvxDS_BL9tHnyK6bGWf3RzrclW01ymnEwkSpFmXr382c8OpryjNGUsarN-xNJPBkw5aZydR6aDv1tw/s1600/lines.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrJbD_VrJjiqGJFoIvL58O7S-cJgmUn9g40fp_RuomyJnwE1MOn4YXbgEvDm_FGLvxDS_BL9tHnyK6bGWf3RzrclW01ymnEwkSpFmXr382c8OpryjNGUsarN-xNJPBkw5aZydR6aDv1tw/s320/lines.png" width="320" /></a></div>Эта первая часть статьи о создании прототипа игр. Я попытался выделить основные плюсы, которые дает протип и зачем его вообще надо создавать. В следующей части я опишу создание настоящего игрового прототипа. Игра будет клоном Lines. <i>Надеюсь все знают, что Lines, разработана Олегом Дёминым, Геннадием Денисовым и Игорем Ивкиным в 1992.</i><br />
<b><br />
</b><br />
<b><span style="color: #6aa84f;">P.S</span></b> Это моя первая интернет статья, как бы это не баяно бы и звучало ;) Если вы будете следить за этим блогом то в скором времени вы напишите вместе со мной игру Lines, в которую сможете поиграть на своем собственном телефоне. Успехов вам и мне.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div><div></div></div></div>Unknownnoreply@blogger.com0