Saturday, March 30, 2013

KNBLive "Инди-шминди"

После просмотра KNBLive "Инди-шминди" я понял, что термин "инди" довольно аморфен для большинства игроков и я решил внести ещё большую смутуясность в сознание граждан. И таки написал статейку в паб Канобу.


Sunday, March 24, 2013

CodeReview: Chest Work by Muir Dragonne

I've did a review for Muir Dragonne's game for 1GAM March. Theme for this month is roguelike. The game is ok. It deals with theme good.

How ever my task not in review gameplay but code.

So here we go. I've found 11 issues. Some of there simple hacks, some take us a topic to discuss.

  1. Classes should be in separate files (h/cpp).
  2. Classes are used as structs. KISS use structs.
  3. Usually for consants values uses #define. const int - java style.
  4. Some global variables.
  5. There is short init for srand - srand(time(NULL));
  6. Hack for screen clear.
  7. wasd sucks for such kind of games. Use arrows.
  8. A lot of magic numbers. #define it.
  9. There are many classes but no OOP. It's almost C but with classes.
  10. Too much routine in main. I would like to cut it in a functions.
  11. Classes Trap, Chest can be merged in one class Object.
Link to reviewed code.

After all it has good code style, vars naming and such stuff. And also it's simple and not big.

Muir's post about game. It's kinda fun so check this out.

Saturday, March 16, 2013

Out of Another World post-mortem by Eric Chahi

В 1989 французский парень Eric Chahi в возрасте 22 лет вдохновился научно-фантастическими книгами и кинофильмами, и решил создать игру, о далёком непознанном мире - Out of Another Wolrd.

Через 21 год, после начала работы, он рассказал о своём опыте на GDConf 2010. Рассказал, что такое Pixagon и как использовал их в своей игре. Рассказал о своём инструментарии и о само-писанном интерпретируемом языке, чем-то среднем между asm и basic. Показал дизайнер уровней который предоставлял лишь 16 цветов на сцену, но при этом вы могли редактировать всю сцену динамически и изменения сразу же транслировались в код.

И самое важно замечание. У протагониста-то красные волосы, если вы конечно понимаете о чём я :)


Приятного просмотра и хороших воспоминаний об игре, ставшей культовой.

GDC Vault. Another World post-mortem

Tuesday, March 12, 2013

Bad programmer about programming

Кто такие хорошие и плохие программисты? Как быть успешным? Сколько можно зарабатывать если выучить js, cxx, java, asm? На эти и другие вопросы даёт ответ Thomas Figg, с его слов - "плохой программист".

Отличное выступление на EMFCamp2012 в стиле stand-up на темы программирования, образования, языков, что лучше подходят для изучения программирования, а не языков.



Tuesday, March 5, 2013

Какой язык изучать и почему не схх?

Многие товарищи, что хотят начать изучать программирование, долго выбирают язык, технологию, платформу. Долго думают, а правильно ли они поступают выбрав cxx/Java/C$/something else. Затем долго расспрашивают знакомых программистов, читают форумы, собираются с духом, поступают в университет на специальность включающую программирование, идут на работу связанную с изученной технологией... И начинают сомневаться в правильности сделанного выбора.

В этой статье jsonmez очень хорошо описал почему не стоит выбирать схх(ещё один вариант написания C++).

"Ну и что? Очередная статья ни о чём..." - подумаете вы.

Статья очередная, но не бесполезная. В ней написаны 36 вопросов, которые, по моему мнению, очень даже помогают оценить ваши знания в сфере схх. Либо хотя бы понять к чему стремиться, если вы всё же решились изучать "самый сложный язык с ООП".

Можно мысленно разбить схх на уровни по сложности задач.

1ый уровень: высокоуровневые задачи, такие как ввод, вывод данных и сообщений, работа с составными частями системы, работа с библиотеками, оптимизация на уровне логики.
2ой уровень: работа с железом через драйвера, посылка сообщений железу напрямую, в обход системы, работа с API системы.
3ий уровень: низкоуровневая оптимизация программы с применением inline, запечатыванием operator= и copy constructor, оптимизация выделения памяти через placement new, изучение работы компилятора для ускорения работы программы и тп.

Вопросы из статьи относятся в основном к 3ьему уровню. Можете проверить себя и доучить неизвестное вам.

И в конце небольшая хохма. Мой друг работает в большой конторе в Минске и получает что-то в около 600$. За спиной у него около года Java. Я же подался в indie game dev. Заодно подрабатываю в институте проблем информатики за 300$. Я занимаюсь схх 4 года, уже 5ый идёт. Я знаю ответы на все 36 вопросов.

Делая выбор технологии, которую хотели бы изучить отдавайте себе отчёт в том, для чего вы это делаете. Хотите ли вы зарабатывать деньги или создавать нечто, чем можно гордиться.

Sunday, February 24, 2013

R.I.P Pinguin Warrior

Linux Games Programming(John R. Hall) оказалась чересчур устаревшей. До 5ой главы все примеры компилируются и работают (SDL рулит), но после идёт глава о звуке в играх... Оказывается в библиотеке libsndfile (Erik de Castro Lopo) при переходе с 0.0.28 к 1.0.0 версии API был чуть изменён, в следствие чего пример, который автор улучшал на протяжении всей книги не компилируется. Казалось бы на этом можно выбрасывать полотенце на ринг, но я наткнулся на листинги обновлённые в 2004 году Paul Johnson, который немного подновил исходники и используемые в коде API. Вот уж забрезжил луч надежды, но я был обречён наступить на те же грабли, что и в самом начале "пути"...
OpenAL, что используется в примерах книги, при переходе с 0 весрии к 1ой удалил часть дополнений от Loki Software. Поискав немного и наткнувшись на багрепорт в трекере OpenAL я прочёл, что в 0.9 версии библиотеки нужные мне дополнения есть, но я уже не стал ломать себе комп перекидыванием симлинков библиотек на нужные листингу.

Итого: книга прочитана на 2/3. Книга хорошая, но к сожалению потеряла актуальность уже достаточно давно. Хотя первые главы очень даже  полезные, но в целом книгу можно читать лишь как раритет, ибо уж слишком много всего изменилось за последние 10 лет.

PS. Penguin Warrior - это скролл шутер, который разрабатывался в книге.

Thursday, February 14, 2013

Цикл статей по SDL

Решился взяться вплотную за SDL. Планирую дочитать книгу  Linux Games Programming (link), John R. Hall, и затем пройтись по всем примерам описанным в книге, обвязать их cmake и провести code review.
Все исходники будут лежать на гитхабе. Если у вас появится интерес к вышеупомянутой книге, то вы легко сможете подсмотреть код и даже с некоторыми улучшениями.

Пока книга осилена на 1/3, но она довольно хороша и быстро читается.

Хотелось бы отметить как минимум для себя: обновил дизайн, убрал сломанные апплеты.