На вооружение программисту!

Частенько, разработчики игр (из числа моих знакомых), переходящие с других языков программирования, спрашивают меня о том, с чего начать, чего скачать и т.д. На самом деле, этому вопросу уже уделено много статей, уроков, инструкций, так что пересказывать их нет большого смысла. Лучше я поделюсь своим опытом использования этих самых инструментов :).
В списке:
1. FlashDevelop
2. DropBox
3. One Note
4. Pix.am


1. Среда разработки

FlashDevelop
Где качать: FlashDevelop.org.
Активно развивающийся редактор кода для AS2, AS3, HAXE проектов под Windows. Лучшее из бесплатных что пробовал использоваться для разработки приложений на этих языках. Все необходимые библиотеки можно скачать в том же сообщении, где и ссылка на программу, последний FlexSDK может скачать установщик. Код набирать в нем одно удовольствие. Когда приходится писать в GameMaker, то очень сильно не хватает автокомплита FD.
Фишки на панели:
1) Outline — панель схемы вашего класса.
Эта панель позволяет просмотреть класс, отображая функции, переменные, расширяемые классы и т.д. Пользоваться очень просто, достаточно покликать пару раз, и все станет на свои места. Использую чтобы быстро изучить, осмотреть незнакомые классы.
2) Tasks — панель задач.
Здесь отображаются все комментарии помеченные специальном тегом:
//TODO Добавить звук
Стандартные теги это «FIXME», «TODO», «BUG». Можно добавить свои в настройках Tools -> Settings -> TaskListPanel. Я добавляю «SOUND» и «WTF». «FIXME» меняю на «FIX». Поиск тегов в комментариях затратная процедура, поэтому эта панель обновляется вручную. Нужно кликнуть правой кнопкой мыши, и выбрать пункт «Refresh», после чего начнется поиск тегов. Довольно удобно писать такие комментарии в коде, когда точно знаешь что нужно сделать в этом месте что-то, но пока не можешь.
3) Bookmarks — закладки.
Тут все банально, можно сделать закладку по нажатию на Ctrl+F2, и также убрать. Необходимо, когда прыгаешь между двумя методами, которые находятся на большем расстоянии друг от друга.
4) Быстрый поиск — которым не удивишь :).
Поиск появляется по нажатию на Ctrl+F, в виде панельки под текстом, поиск осуществляется сразу же, как начинается ввод.
5) Profiler — до сих пор не научился включать его с первой попытки, поэтому попрошу помочь с этим пунктом в комментариях)
Фишки в коде
1) Ctrl + Shift + 1 — после того как нашел эту комбинацию, скорость написания кода с нуля возросла где-то на 20%.
а) Написали addEventListener(MouseEvent.CLICK, someEventFunction), но за функцию someEventFunction мы еще не брались. Наводим на нее наш моргающий курсор, жмем волшебную комбинацию, и выбираем в появившемся окошке «generate the event handler». Функция появится сразу после той, в которой мы ее вызвали. Курсор сместиться на нее. Очень удобно, я обычно забываю как их объявлять, так как пишу под Flixel, а там событий нет.
б) Очень часто, мы пишем какие нибудь private переменные, которые в будущем будем передавать другим объектам с помощью getter'ов и setter'ов. Для того, чтобы их объявить, достаточно поставить курсор на объявление переменной, нажать волшебную комбинацию клавиш, и выбрать пункт generate..., что нам хотелось бы).
в) Есть переменная, объявленная в методе через var, но было принято решение вынести ее в класс, выбираем объявление этой переменной жмем ВКК и выбираем «add as function parametr».
г) Пишем код, и понимаем, что нам нужен новый метод, с определенными аргументами. Просто используем еще не существующий метод, так как нам хотелось бы его использовать, а потом переносим курсор на его имя, и жмем ВКК, выбираем интересующую нас генерацию класса (private, public). Имя метода, а также аргументы, буду совпадать с теми, что мы использовали в коде. Вроде бы даже типы будут :). Так можно создавать методы даже в другом классе.
д) Бывают ситуации, когда не прописан import у класса. Чтобы не подниматься в начала пакета, можно выбрать еще не прописанный класс, и нажать на нем ВКК, FD остальное сделает за нас.
2) Ctrl+B — сниппеты. Попробуйте все поймете. Редактор сниппетов находится на главной панели, значок в виде пазла с карандашом.
3) Refactor -> Rename… — безопасно переименовывает переменную во всем классе.
4) Find and Replace In Files [ Ctrl + I ] — собственно поиск и замена в файлах.
Я перечислил только те фишки, которыми постоянно пользуюсь, есть еще некоторые нюансы, о них можно узнать с офф сайта. По поводу авто-комплита, можно почитать эту страничку, тут все интуитивно понятно, и настолько хорошо, что когда пишешь не в FD постоянно спотыкаешься.
Плагины
Их довольно много. Я устанавливаю только highlighter, потому что только этой функции не хватает (подсветка всех одинаковых слов, по двойному клику).
Вроде бы все по кодингу.

2. Место хранения

Я выбрал DropBox. Потому что он чертовски прост. Установил одну программу, появилась папка, положил в папку файл, файл улетел на сервер, и теперь лежит там в надежности. Даже если сам удалишь, то в течении 30 дней можешь восстановить… Вообще dropbox очень мощный инструмент, обсуждение его применения можно найти на различных популярных ресурсах.

3. Контроль процесса

Я могу написать о Teamer.ru, Планфикс и о thn.gs… но я ими не пользуюсь, хотя многожды пробовал. Как оказалось, лучше старого доброго блокнота на столе, может быть только… OneNote :). Люблю эту программу за один ее тег — галочка. Ставится он по нажатию на Ctrl+1, после чего его можно нажать мышкой :). Ну еще очень легко делать ветвящиеся задачи, можно легко их делать на уровень правее\левее (tab\backspace). Применяю для составления задач по игре, идей, перечисления ошибок и всего такого. Вот пример того, как выглядит подобный список для игры PatchWorms:

UPD: Как создать такой список?
Все довольно просто:
1) Создаем новую страницу, и вводим заголовок с именем нашего проекта.
2) Кликаем в любом месте листочка и вводим крупную задачу
3) Чтобы ввести подзадачу, переходим на следующую строчку (enter) и нажимаем tab, вводим имя. Чтобы вернуться на уровень назад жмем backspace. Получается что-то вроде этого:

4) Теперь нужно поставить галочки и прочие теги. Выделяем все наши задачи и нажимаем Ctrl+1. По желанию, у некоторых пунктов можно поменять тег. Например на самую верхнюю поставить тэг Звездочка (ctrl+2). Теги, можно ставить с помощью панели инструментов, там их полный список. Убираются теги той же комбинацией что и ставятся. Чаще всего я использую эти:

Собственно всё.

4. Мелочь, а приятно

Долго искал программу для снятия скриншотов, которая позволяла бы быстро фоткать и сразу выкладывать скриншот в интернет. И чем проще программа, тем лучше. На хабре была история про стартап pix.am который позволяет выкладывать не удаляемые картинки (автоматически аплоадит на все возможные бесплатные ресурсы по хранению изображений, а когда истекает время, продлевает, или меняет хостинг, ссылка одна и та же остается, короче сервис паразит :) ). Так вот, заметил я у них утилитку(эта для windwos, есть еще для linux и маков) которая делает скриншет выбранной области, и сразу же загружает его на сайт, кажется профит! После установки оказывается что никаких настроек у ней нет, сразу после запуска она меняет курсор на перекрестие с координатами, и по клику создает скриншот (ссылка копируется в буфер обмена, и открывается браузер с ссылкой). Выход я нашел очень быстро, не зря же занимал первое место в олимпиаде по владению Windows и MS Office. Нужно создать ярлык на рабочем столе, и в свойствах указать комбинация клавиш для его вызова( я поставил ctrl+shift+p).

Предыдущие два топика были про графику, и, у некоторых может сложиться впечателение что я художник, или дизайнер, но это не так. По большой части моей деятельности, а также по образованию я — программист, хотя и имею довольно обширный опыт в различных сферах дизайна, и даже участвовал в олимпиадах по дизайну и занимал призовые места, но и только. Надеюсь, много людей почерпнут из данной статьи что нибудь полезное для себя. Также буду рад дополнениям и уточнениям, а также конструктивной критике.
  • +24

Комментарии (69)

0
Я вот всю жизнь с флешом работаю с версии 4.0. Помню динозавры живы были еще =)
Но вот никак не понял — для графики не подойдет flash develop? В нем только код наструячить можно.

А как мне связать Flash CS5 и FlashDevelop, чтоб я мог из Flash CS5 компилировать в FlashDevelop для меня загадка. Подошел бы даже обратный процесс — главное быстрее =)

К примеру, сейчас завершаю делать Real Time Strategy типа Warcraf2 по движку — компилирование проекта занимает около 2х минут. Что напрягает.

Как бы сторонним компилятором бахать, чтоб не пережимать графику
0
Наверное эта статья поможет: gamedevblogs.ru/blog/developing/171.html

Заканчиваешь заканчивать real time strategy и ничего не пишешь в блогах? Ну ты даешь) Я думаю все будет интересно узнать производительность игрушки (код), её способности (код, редактор) и вообще как ты такой проект поднял (сколько человек работало над проектом, как разделяли задачи). Жду от тебя подробной статьи!
+1
Можна графику компилить в SWC в Flash CS5, а конечную SWF собирать в FlashDevelop (через FlexSDK).
Такая схема быстрее.
0
Хоть кто то бы рассказал поподробнее как это сделать :)
+1
Тут описано детально:
http://www.flashdevelop.org/wikidocs/index.php?title=AS3:FlexAndFlashCS3Workflow
Там в конце можна скачать пример проекта. Качаем, смотрим что да как.
Удачи!
0
Благодарственную!
0
Еще графику можно рисовать в отдельных swf, а потом грузить в игре.

Если очень кратко то примерно вот так вот (могу названия попутать — так как код пишу из головы). Каждый movie экспортится как класс. А в FlashDevelop коде грузишь swf через Loader — только нужно указывать полную ссылку на ресурс и разрешить этой флешке доступ к локальным файлам.

А потом у загруженной swf через MovieClip::LoaderInfo.applicationDomain.getDefinition(«SwfClassName») — можно вытащить из корневого мувика нужный тебе swf. Там можно подобным образом не только мувики дергать, но и звуки и графику. Получается очень удобно — все файлы игры лежат в виде отдельных файлов. И ты их можешь править сколько влезет не пересобирая весь проект. Можно даже перегружать в игре все ресурсы на лету — и сразу видеть изменения в графике или в настройках (полировка очень удобно получается).

Ну, а саму игру в отдельную swf можно собрать через Mill утилиту. Такими — например — хаксовцы пользуются. У меня все через hxswfml работает. При сборке финальной swf — ресурсы пакуются из директории в ресурсную swf. А потом — из этих двух собирается уже финальная swf.

По памяти — примерно так. Там всяких мелких засад довольно много (по памяти уже не помню всякие). Но — получается довольно удобно. По крайней мере — мне такой пайплайн автоматизирован и более удобен, чем флешевский «все через среду».
0
Классная статья. Зачет. Собираюсь перелезть на флеш девелоп сразу же как закончу текущий проект. Перекидывать его сразу туда не представляется возможным… Про OneNote тоже отдельное спасибо.
0
Ctrl+Shift+1 хорошо, но само сочетание не очень удобное. Не знаешь, где поменять?

А вместо Ctrl+B можно использовать Tab. Начинаешь писать public, for или function — жмёшь табуляцию после первых букв. В настройках Code Snippets можно поправить шаблоны.
  • tdz
  • tdz
0
Ctrl+B это сниппеты (шаблоны кода), а Tab (как и пробел, и ";") это автокомплит.
А перенастроить можно здесь:
Tools -> Settings -> ASCompletion -> Shortcuts -> Contextual Generator
0
Спасибо интересно. А OneNote это что?
0
Wiki-статья. Блокнот вроде как :).
0
OneNote == MicroSoft OneNote?
  • Dulea
  • Dulea
0
Да — да, это он :). С офисом 2007 идет в поставке.
0
+
Для блокнота, галочек и скриншотов юзаю Evernote. Советую попробовать.
  • Arkon
  • Arkon
0
Слишком много для написания ToDo проектов. Почти все те, программы которые я пробовал использовать вместо OneNote пестрили кучей всяких функций. А эти функции мешают заниматься самым важным — вводить текст. Поэтому на телефоне, вместо evernote стоит AK Notepad с возможностью синхронизации на Catch.com.
0
Поддерживаю.
Много пробовал разных тудушников, нотесов, заметок, майндмапов и пр., но самые лучшие — продукты от MS — notepad и OneNote. Считаю OneNote вообще шедевром, который затмил и Evernote и прочие штуки.
0
А на телефоне для заметок юзаю диктофон. Тоже пробовал много всяких приблуд и на КПК и на тлефоне. Но пришел к диктофону.
(Все, как и всегда, только личное скромное мнение, не претендующее на истину. Просто личный, но не интимный опыт.)
0
А у меня андроид с клавиатурой qwerty, я очень много всего пробовал. Говорить не люблю особо, поэтому записываю :).
0
А вы можете рассказать вкратце как и где в OneNote созали такой ToDO лист для проекта?
+1
Да конечно, я статью обновил.
0
Супер — спасибо!
0
Круто! Ты открыл для меня ctrl-shift-1.
А профайлер я тоже не умею сразу запустить. Кстати его наличие тоже мне показал ты :-)
0
По п.3. «Контроль процесса». Пользуюсь Google Tasks. Особенности:
1) Тоже есть галочки и иерархия
2) Интеграция с гугл-календарем и гугл-почтой
3) Все хранится удаленно, соответственно можно использовать на других ПК и устройствах.
0
Открыл его после OneNote), но интеграция с windows немножко напрягает.
+1
Для еще большего ускорения во FlashDevelop рекомендую QuickNavigate плагин. По ctrl+shift+o открывает окно по аналогии с OpenResource для перехода по методам класса.
  • nukie
  • nukie
0
насчет профайлера — вообще его окно не появляется? или туда ничего не выводится? если второе — то нужно использовать дебаг-версию флеш-плейера.
  • juice
  • juice
0
Да все работает, но завести его получается только с второй третьей попытки. Если у тебя получается сделать это с первой попытки, расскажи как :).
+1
да вроде все само собой заводится, если нажать на флажок «Auto Start Profiled Enabled» — то и стартует сразу после компиляции, может как-то связано с версией FD (у меня «3.1.1»)?
0
Возможно :). Сейчас попробовал, стартанула. Хы, а мужики то и не знали. Спасябки. У меня уже 3.3.4. Новая версия вышла за шесть часов до написания статьи :)
0
для работы со скриншотами использую Clip2net.
можно загнать на сервер, в буфер обмена (и вставить в флэш, например), сохранять на диск. Есть хоткеи, при вызове делает скрин экрана, и после его кропаешь — удобно при снятии скриншота во время проигрывания анимации.
0
Вот если бы OneNote умел напоминания — цены бы ему не было. А так я всё ещё в поисках идеального планировщика/задачника/органайзера…
  • iLORd
  • iLORd
0
OneNote можгл прикрутить (легко) к Outlook. Там есть все. И еще Outlook можно прикрутить к Google Calendar, там есть SMS.
0
Спасибо, покопаю… Но хочется же всего, сразу, и в одном интерфейсе)
+1
> Я выбрал DropBox. Потому что он чертовски прост.

А как же контроль версий? Не представляю как разработчику жить без этого.
  • n0uk
  • n0uk
0
Ну во первых я пишу один, во вторых, все удаленные\измененные файлы в dropbox сохраняются на протяжении 30 дней. Проект делается в течении 20-40 дней, этого достаточно чтобы во время производства откатится назад, если возникла такая необходимость (чаще в рисовании откатываюсь, чем в программировании). Честно говоря, я плохо представляю что такое контроль версий, хотел бы почитать об этом литературу, не располагаете?

FlashDevelop поддерживает tortoisehq (GIT\SVN).
+2
Ого, не знал, что он еще ревизии хранит.
Литературой не знаю даже, можете посмотреть svnbook.red-bean.com/, есть также документы по меркуриалу на русском, с описанием рабочего цикла.
Лично у меня необходимость вызывается еще тем, что движок развивается отдельно, и одинаковый для всех проектов, как редактор и прочее, и достаточно часто приходится заглядывать в прошлое смотреть изменения. Как и в прошлое других проектов, которые закончены полгода назад, чтобы просто взять оттуда несколько килобайт кода и сэкономить время.
Продал сайтлок на давно закрытую игрушку, откатил брендинг, навешал новый, и т.п.
0
Пока выпустил две игры, одну дважды :). Но нужда в едином движке уже ощущается, хотя под каждую игру кастрирую flixel по черному (в последней нет анимации, прозрачности, вращения, встроенных функцию перемещения, консоли, панели звука, пауза и прочего).
0
Почему Flixel таким трупом последнее время прикидывается? Даже верится. Может быть FlashPunk его заборол?
0
Потому что у Адама родилась дочка недавно вроде бы(по крайней мере должна была где то в этом районе родится). Ну и других дел полно. На мой взгляд развивать flixel практически не требуется.
0
В SVN можно репозиторий хранить локально в отдельной папке. Что если эту папку на DropBox зашарить?
0
Да пожалуйста)
0
используем DropBox и git для совместной работы над проектом, если интересно могу рассказать как…
0
Интересно!
+2
сначала расшариваем папку DropBox'а для участников проекта и создаем в ней центральный репозиторий
далее, клонируем его в свои рабочие папки проектов, с которыми и работаем все основное время

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

DropBox сразу информирует о появлении изменений, ну его фид тоже )

на словах — немного путанно, но на практике — одна минута делов :)
0
Вроде работает. Спасибоу.
0
Ctrl + Shift + 1 у меня чето вообще не работает
0
Странно, Какая Версия FD, в настройки по стандарту?
0
FD 3.3.1
0
вес я понял в чем моя ошибка я не там курсор поставил :)
0
Интересная статья.)
Софтины а-ля OneNote не использую, стараюсь все записывать на бумагу, удобней как мне кажется. Можно даже в метро ехать и пересмотреть все что надо, может что-то дополнить, если всплыли мысли.
А про ФД статья уже была, после которой я сразу пересел на него, как закончил проект.
  • z3lf
  • z3lf
0
Для записей на ходу есть телефон с qwerty клавиатурой и андроидом на борту (а там AK Notepad + Catch.com). Вот. Рисую на планшете. Изредка бывает, что на чистом листе бумаги записываю что нибудь, но это когда отвлекаться не хочу от программирования, формулы всякие, и прочее. Я искал на этом сайта статьи про FD, которые бы так расписывали его достоинства, но не нашел.
0
про достоинства ФД выясняли в комментариях самой статьи)
0
Получается, что я свел их в статьи, и искать стало проще.
0
намека на бесполезность статьи не было)
кэп)
0
Да уж. Занимает третье место в «Лучшие посты за месяц».
0
В Win7 есть бесплатная утилита для снятия скриншотов — Snipping tool.
На нее можно повесить комбинацию клавиш (на ярлык) или закрепить на панели задач (тогда вызывать можно комбинацией клавиш Win+1, где 1 — позиция иконки на панели задач)
0
3. Контроль процесса
Я использую блокнот. Но не бумажный, а Google Notebook http://www.google.ru/notebook/
0
Узнал о нем из статьи о OneNote, мне не понравился.
0
Его вроде как скоро прикроют. Т.е. его уже сейчас не развивают, скоро откажутся от поддержки и вроде даже закроют. Но это из новостей годовалой давности. Я с тех пор им не пользуюсь, а он, оказываеся, жив ещё. (:
0
Не доверяю всяким электронным штучкам типа, блокнотов и таксменеждеров. Считаю самый быстрый и простой вариант записывать все на бумаге нумерованым списком. Тут и эскиз сразу можно где-то пририсовать и вообще все всегда перед глазами. Просто как валенок, удобно и никакой путаницы.
0
Пока я один пункт напишу от руки, пока вспомню как эти самые буквы рисовать нужно, я все остальное забуду.
0
Кому как. У меня все наоборот, пока программу открою, пока напечатаю, ещё раскладку забуду сменить. Пробовал несколько разных таких прог, подбирал максимально простые, но как-то они у меня не прижились :)
0
Случается :).
0
Имхо на этапе начала разработки бумажный блокнот удобнее. А когда углубляешься в конкретику виндовский блокнот удобнее, вообще постоянно висит открытый)) (в т.ч. многие таски часто меняются местами и в электронном это делается очень просто) Хотя сейчас много изменений, обратно кое что уходит в бумажный блокнот чтобы лежало перед глазами и занимало мозг мыслями как это лучше сделать, ну и можно добавить рядом скетч.
0
Кто-нибудь знает, как решить проблему с отсутствием вывода трейсов в output панель?
FAQ на FD читал, не помогло.
ОС: 7ка, FD: 3.3.4

Походу поторопился я садиться за 3.3.4 =/
  • z3lf
  • z3lf
0
Все, решил проблему. Я тупица. Опция сменилась(внезапно!) с Debug на Release.
0
Очень хорошая и полезная статья.
История из жизни: Есть у меня лучший друг по прозвищу Ганс, он заядлый и закоренелый сисадмин и PHP кодер. И вот однажды он предложил мне чегонибудь навоять. Долго совещавшись мы остановились на флеш игре. Но он за неимением какоголибо опыта/знаний/пониманий AS b вообще флеша начал задавать кучу вопросов. Плюс ко всему этому мы выбрали вариант разработки без Flash IDE, тупо FD и SDK. Я ему до сих пор подсказываю что и где нажимать. Так что + и очень большой!
PS: Плохо нельзя плюсонуть дважды =)
PS2: Плохо нет версии FD под Linux =(
0
Спасибо. А я сперва сам допер до некоторых фишек, а потом специально хелп перерыл.
PS: Плюсануть можно и комментарий :).
PS2: Очень плохо. Пробовал работать под линуксом, бесит интерфейс почти всех программ. Он не незнакомый, он расхлябанный (консоль вещь хорошая, уважаю)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.