суббота, 12 апреля 2008 г.

Небольшая заметка об отличном блоге с советами по C++

Сегодня с утра решил пройтись по ссылкам известных IT блогеров и мне попался этот блог
Raider's Programming Blog. Ничего подобного до этого я еще не находил, т.к. в нем очень много интересных заметок по применению C++ в практике. Очень рекомендую посетить тем новичкам кому нравится программирование на C++ и хочет узнать для себя что-то новое (хотя многие из советов автора применимы для boost и stl, что может вызывать некоторые трудности в понимании). Там рассказаны о том, что вы можете узнать сами, проработав много времени с языком, либо набив кучу шишек при разработке.

Как найти моделлера и художника в свой проекта.

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

Самый очевидный способ предложить оплату за выполнение работы, но как правило такой возможности нет (были бы деньги, то такой вопрос и не возникал). Поэтому начинают давать обещания, что как только начнутся продажи, то обязательно вы поделитесь с ними процентом от выручки. Сейчас на такие предложения соглашаются такие же начинающие, которые вам не дадут контента нужного качества. Большая часть людей, которые способны сделать качественную графику обычно не заинтересуются таким переложением.

Большая часть ищет себе партнеров только на ресурсах, посвященных gamedev'у, что является роковой ошибкой в большинстве случаев, т.к. преобладающая доля посетителей таких ресурсов являются такими же программистами, как и они сами. Поэтому лучше сразу забыть про такие ресурсы и начать поиск художников/моделлеров на тех ресурсах, где они водятся в больших количествах, например, render.ru. Там уже проще найти человека, который заинтересуется вашей разработкой и будет готов работать за просто так :)

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

При поиске самым важным является сам игровой проект, который и будет является для вашего нового партнера по проекту гарантией того, что он не потратит впустую свое время.

Еще один важный шаг — это говорить всем о своем проекте, т.е. можете детально не вдаваться в подробности, а кратко говорить что занимаетесь тем-то и тем-то. Я раньше думал, что среди друзей нет никого кто умеет рисовать, но оказалось все с точностью до наоборот. Благодаря этому шагу я нашел через друга замечательного 3D моделлера, который сейчас работает со мною (на моем опыте есть еще один такой пример, поэтому можно сказать, что такой способ имеет все шансы на жизнь).

Все что я написал в этой заметке понимает каждый, т.к. эти истины просты и понятны, но почему-то на том же геймдев.ру куча людей совершают одни и те же ошибки.

среда, 9 апреля 2008 г.

О linux

Все свои игровые проекты я писал только под платформу Windows. Но за рабочим местом у меня стоит два компьютера. Из любопытства несколько месяцев назад поставил на один из них LinuxOpenSuse 10.3. И в первую же очередь начал искать, как там можно начать программировать.

В начале было очень не удобно и не привычно работать в командной строке, если раньше мог собрать свой проект простым нажатием на одну кнопку, то теперь приходилось вводить команды на сборку в консоль (тогда еще не знал о bash, binutils и autotools, что здорово тормозило мою работу). До этого часто встречал в интернете такие фразы как: «Linux создан программистом и для программистов» или «Удобнее всего программировать в linux». В начале думал, что люди, писавшие это как минимум не нормальные, которые никогда не видели удобной Visual Studio. Но постепенно сам втянулся в написание кода в этой новой для меня системе. Оказалось, что ничего удобнее консоли нет (теперь недолюбливаю мышь, т.к. приходится постоянно отрывать руки от клавиатуры, расходуя на это драгоценное время :)). Первое время не мог привыкнуть к использованию консольных текстовых редакторов, зато сейчас начинаю немного нервничать, работая в gedit или блокноте windows, т.к. у меня уходит кучу времени на совершение лишних движения мышкой, в то время как в консольном редакторе я эти же действия выполняю в 2-3 раза быстрее.

Сейчас пишу часть кода, который не зависит от платформы на linux,а потом провожу его интеграцию в проект. Многие скажут, что это не рационально, но я вижу в этому несколько положительных для себя вещей:

  • я буду иметь опыт программирования под другой платформой и расширю свой кругозор.
  • имею очень удобный toolset для программирования (если отстраниться от «windows привычек», то понимаешь насколько все продумано и удобно сделано).
  • и самое главное то, что я получаю от этого удовольствие, а это в работе очень много стоит :)

Есть и недостатки. Это то что, что у меня уходит чуть больше времени на разработку из-за постоянных перебросов кода с одного рабочего места на другое. Хотя subversion помогает частично решить эту проблему.

вторник, 8 апреля 2008 г.

lua в рунете

Сегодня попытался найти форумы, сайты и статьи в рунете, освещающие использование lua. Но ничего путного не попалось. Похоже всё еще не набралась критическая масса людей, которые хотели бы делится между собой идеями по использованию этого скриптового языка.

Вот что мне удалось найти:

www.lua.ru – одним из достоинств данного сайта является наличие переведенной документации для последних версий lua, но это и все что нашлось на данном ресурсе. Так же есть полупустой форум.

http://www.gamedev.ru/articles/?id=70112 – статья, которую уже кто только не копировал. В ней приводятся базовые понятия по работе с lua.

http://www.ibm.com/developerworks/ru/library/l-lua/ - так же вводная статья в lua, которая показывает основные возможности языка, а также указывает способы его применения.

http://ilovelua.narod.ru/ - самое лучшее, что удалось найти в рунете, если не обращать внимания на кейворды для поисковиков в самом начале сайта на главной странице. Есть несколько статей, которые показывают применение lua в условиях простого игрового проекта.

http://gamedev.ru/forum/ - с помощью поиска, можно найти множество тем, которые имеют прямое отношение к применению lua. В первую очередь нужно использовать этот ресурс, при возникновении вопросов.

Если вы знаете еще какие-нибудь ресурсы, связанные с lua, буду благодарен, если напишите о них в комментариях.

воскресенье, 6 апреля 2008 г.

Unit Testing

В течение двух дней писал к своим классами unit-тесты. В предыдущем проекте часто возникали проблемы с проверкой на работоспособность множества классов после изменения одного из них. Сейчас же 30-40% готового кода проходит автоматизированное тестирование, что надеюсь в будущем сохранит время.

Для написания тестов использовал библиотеку CppUnit (скачать можно по адресу http://cppunit.sourceforge.net/ ). Для других языков программирования тоже существуют подобные библиотеки (JUnit — java, DUnit — delphi, PyUnit — python и другие).