Конструкторы для создания компьютерных игр
"То, что вы вкладываете в игру, составляет лишь ее половину; другая половина — это то, что люди извлекают из нее"
Марк Лейдлоу, сотрудник компании Valve Software
Просторы геймдева постоянно расширяются, и эта тенденция не собирается прекращаться. Причем возможности есть у всех: от начинающих и разработчиков-одиночек до более-менее крупных и слаженных команд. Рынки сбыта разные, есть множество сервисов по продвижению. Поэтому конструкторы сейчас являются достаточно удобным средством, прежде всего — для быстрого создания компьютерных игр. Иногда работа с ними происходит на очень серьезном уровне со знанием ключевых технологий и языков программирования, требует наличия художников и специалистов по 3D- моделированию/анимации. Разработчики конструкторов берут на себя очень важную роль, а именно, реализацию кросс-платформенности, помимо чего предлагают определенный технологический набор. Нашей задачей является правильный выбор.
На предыдущий материал серии пришло несколько откликов, в основном касающихся Action/Indie Game Maker и Unity3D. В первом случае больше обсуждалась коллизия с названиями. Дело в том, что в геймдеве очень популярна конструкторская среда Gama Maker от Yo Yo Games (www.yoyogames.com), на базе которой не только создаются игры, но и выпускаются специальные уникальные дополнения и библиотеки. В рамках этого решения требуются навыки программирования, причем внутри самой среды имеется собственный очень несложный скриптовый язык GML (Game Maker Language), похожий на С++ и JavaScript, причем напрямую привязанный к объектам, а в дополнительных библиотеках вы можете встретить множество других вариантов, от С++ до AngelScript и тому подобного. Другими словами, многие сторонние разработчики специально портируют свои движки на этот конструктор в силу его популярности. На базе этого Game Maker’а также создано несколько конструкторов, которые могут работать самостоятельно, и рекламируются они отдельно. Иногда в таких решениях не требуется программирования как такового, но при этом есть ограничения в графике и т.п., которые присущи «предку».
Вместе с тем, в прошлом материале серии мы описывали совершенно другой конструктор, а именно Action/Indie (!) Game Maker, мало того, самих конструкторов с присутствием словосочетания «Game Maker» достаточно много, равно как и c «Game Studio». Поэтому не следует путаться. Хотя в большинстве случаев, если просто говорят о Game Maker, то подразумевают продукт от Yo Yo Games.
Что касается Unity3D, то стоит отметить важную поправку, которую внес один из читателей, когда речь шла о trial-версии: «на самом деле 30 дней можно использовать полную версию, а бесплатную можно использовать бесконечно».
Переходим к нашему обзору, и раз уж мы затронули тему…
Yo Yo Games Game Maker
На данный 2010 год Game Maker от Yo Yo Games является продвинутым объектно-ориентированным конструктором с собственным скриптовым языком GML (Game Maker Language). Нужно сказать, что очень многое для формирования программы в нынешнем виде сделали энтузиасты геймдева, сторонники так называемого Easy Game Development, которые организовали довольно большое сообщество. От версии к версии конструктор обрастал новыми возможностями, в него внедрялись новые требуемые технологии, и сейчас в рамках 8.0 это уже полноценный достаточно взрослый продукт. Сам по себе конструктор довольно легок в освоении, особенно для тех, кто когда-либо сталкивался с объектно-ориентированными IDE, даже самыми простыми, куда можно внести множество пользовательского софта, как, например, Adobe Flash.
Кстати, с Flash данная разработка многим перекликается, но тут ситуация больше «заточена» под производство игр. Есть такое понятие как «комната» (room), которая описывает определенное пространство, разбивающееся на координатную сетку. В его рамках мы можем расставлять объекты, добавлять к ним события, прописывать несложные скрипты и так далее.
Yo Yo Games Game Maker
Язык GML легок в освоении. Помимо этого стоит отметить наличие множества различных библиотек, расширяющих возможности конструктора, например, в области 3D сейчас самой интересной является GM Ogre от Houdini (портированный вариант достаточно популярной open-source Ogre SDK, www.ogre3d.org), которая превзошла по возможностям ранее популярные Xtreme3D и Ultimate3D. Помимо этого есть множество других дополнений, касающихся других сфер. Например, можно найти не только модульные компоненты для определенных игровых жанров, но и для написания обычных программ, таких как мультимедиа-плееры. А одной из самых мощных и популярных в пользовательском сообществе библиотек является SBL 3D Ultimate, содержащая множество полезных компонент и примеров.
Среди множества примеров игр, созданных даже в классическом варианте GameMaker 8.0, в основном встречаются несложные 2D или 3D с видом сверху либо в изометрии, а что-то более серьезное является редкостью, хотя можно найти и более-менее красивые 3D-шутеры от первого лица. И тут есть простое объяснение. Все дело в том, что сам Game Maker рассчитан на разработку простых игр, более сложные лучше делать в других технологиях. Активное русскоязычное сообщество вокруг данного конструктора можно найти в Интернете по адресу: www.game-maker.ru.
Metroid online — интересный онлайновый 3D-шутер, созданный в Game Maker с использованием dll-библиотеки Ultimate 3D
Семейство Blitz…
В принципе, если говорить о началах программирования в области современных игр, то на ум приходит не так много простых в освоении примеров: XNA Game Studio, некогда популярный Dark Basic, ряд конструкторов. Именно поэтому имеет смысл обратить внимание на семейство программных продуктов семейства Blitz (http://blitzbasic.com/), самыми популярными из которых являются Blitz3D и BlitzMax.
Разработка самой концепции началась с реализации компилятора специализированной разновидности языка BASIC — Blitz BASIC (автор — Марк Сибли, 2000 год). Сам язык Blitz3D создавался как скриптовый (сценарный) для облегчения автоматизации разработки компьютерных 2D/3D-игр и работал на основе DirectX 7. Сейчас же Blitz3D часто воспринимается и как язык программирования, и как отдельный игровой движок. Со временем появилась и новая разновидность — BlitzMax, являющаяся не только усовершенствованной моделью с внедрением ООП, но и знаковым переходом на OpenGL. Знаковым он является и потому, что OpenGL — кросс-платформенная технология, соответственно, появилась возможность работы не только под ОС Windows, но и для Linux, MacOS.
BlitzMax — у данной разновидности Blitz есть своя IDE
Нужно отметить, что технология очень популярна во всем мире, причем в русскоязычном сообществе вы можете найти множество полезной информации. Если смотреть на Blitz3D (или же BlitzMax) с точки зрения языка программирования, то это специально модифицированный бейсик, где среди основных типов данных мы имеем дополнительно объекты, связанные списки, указатели на функции и так далее. Имеется взаимодействие с другими языками, например, реализована интеграция с Lua, C#, C++, Assembler и т.п.
Если смотреть на Blitz3D (или же BlitzMax) как на движок, то мы увидим поддержку основных ключевых API (графика — DirectX и OpenGL, аудио — DirectSound, FreeAudio), плюс к этому имеется встроенный модуль GNet для быстрого создания сетевых приложений плюс ко всему огромное количество пользовательских библиотек. Есть физика, шейдеры, работа с частицами и тому подобное.
Основная сфера применения Blitz3D (BlitzMax) — написание небольших, но качественных 2D/3D-игр (хотя можно писать и обычный софт), причем, например, трехмерные объекты можно не только импортировать, но и создавать в рамках кода, хотя это больше задача на программирование. Что касается непосредственно импорта моделей из известных пакетов, то тут следует указать на определенную специфику, а именно, модели считываются в формате b3d (хотя есть и другие варианты, но так лучше). Поэтому необходимы специальные конверторы-экспортеры. Они уже написаны для 3DS max, Blender, Cinema4D, Lightwave3D, CharacterFX, Milkshape3D, Ultimate Unwrap 3D. Нужно отметить, что вокруг Blitz собралось одно из самых больших пользовательских сообществ, поэтому пополнение новинками происходит довольно стремительно. Также решается и часть вопросов по исправлению ошибок и т.п.
А в целом, поработав с Blitz, можно получить качественные и профессиональные результаты. Правда, в рамках небольших проектов. Но и этого бывает достаточно. Конечно, многие сразу же хотят выпустить аналог Doom3, Prototype и т.п. Но это не всегда и нужно.
Blitz3D (BlitzMax) отлично учит игровому программированию, такому, какое есть в реале. При этом простота языка позволяет быстро освоиться новичкам, которые с программированием как таковым до этого редко сталкивались. Вы научитесь обращаться с объектами, импортировать модели и текстуры, расставлять свет и камеры, работать со столкновениями, использовать внешние библиотеки, сторонние движки (например, PhysX, Xors) и тому подобное.
Несколько лет назад считалось, что проект Blitz заморозился, потому как обновления появлялись достаточно редко. Сейчас ситуация сдвинулась с мертвой точки.
Silent Walk FPS Creator и P3D
Недавно вышла обновленная версия конструктора Silent Walk FPS Creator 2.1.1 (www.silentworks.hu). Он предназначен для создания 3D-шутеров от первого лица. Что интересно, первая версия этого конструктора была сделана в Game Maker от YoYo Games, вторая… написана на Blitz3D. Качество результатов, сделанных в Silent Walk FPS Creator, устроило далеко не всех (устаревшая 3D-графика), хотя ключевой его особенностью является постановка самого рабочего процесса — никакого программирования не требуется.
В продолжение темы на Blitz3D автором Silent Walk FPS Creator пишется новый конструктор P3D под Windows7, где помимо Blitz используется библиотека FastExtension для эффектов и физика Tokamak. Будут поддерживаться 3D-модели в форматах B3D, OBJ и т.д. Редактор моделей позволит настраивать анимацию объектов из множества поз и движений.
Silent Walk FPS Creator написан на Blitz3D, но в данном случае от пользователей не требуется никакого программирования… а создается 3D
XtremeWorlds RC
Этот конструктор (http://mmorpgmaker.org) интересен тем, что он бесплатен и позволяет создавать простейшие 2D MMORPG без какого бы то ни было программирования. Но это для случаев, когда вы захотите создать нечто простое. Если нужно что-то более сложное, предусмотрена возможность скриптования. Есть видеоуроки.
А вообще, все достаточно просто и понятно, с одним, правда, недостатком — нет русскоязычной версии. Что интересно, на рынке игровых конструкторов сейчас довольно сильно активизировался русскоязычный сегмент разработчиков, но мало кто из них решился на реализацию софта для создания MMORPG. Так что поэтому пока как-то так…
Создаем MMORPG в XtremeWorlds RC
Adventure Game Studio
Adventure Game Studio (http://adventuregamestudio.co.uk) является, пожалуй, одним из самых ярких среди небольших конструкторов для создания игр- квестов. Дистрибутив весит всего 7 Мб, при этом есть хорошо наполненный англоязычный Help с примером создания реальной игры. Разработчики подошли ко всем вопросам максимально продуманно; реализованы:
. поддержка платформ Windows, Linux (x86), Mac;
. легкий в изучении скриптовый язык (похож на Java/C#) с интегрированным отладчиком;
. графика с характеристиками вплоть до 1024х768х32 бит, есть ресайзинг при переходе на полноэкранный режим;
. звук — OGG, MP3, WAV, MOD, XM и MIDI, при этом автоматически рассчитываются и подставляются (с синхронизацией) звуки шагов;
. возможность вставки видеороликов (OGG, AVI, WMV);
. комнаты могут быть больше экрана -> автоматически реализуется скроллинг (прокрутка);
. есть плагины;
. компоновка в единый exe-файл, скрипты переводятся в байт-код.
Adventure Game Studio уже отмечена многими специалистами.
Adventure Game Studio — качественное создание квестовых игр
Обратите внимание(!)
Практически любой более-менее активный разработчик игрового конструктора, собравший вокруг себя сообщество пользователей, устраивает конкурсы. В частности, фактически все вышеупомянутые в этом материале такое делают. Почему стоит обратить внимание? Вы можете заработать ценные призы, деньги и так далее. То есть включаться в общение имеет большой смысл. Также нередко можно встретить просто конкурсы на лучшую казуальную игру, которые проводятся по всему миру, причем их инициаторами чаще всего выступают интернет-магазины, продающие игры, чуть реже — сообщества разработчиков и специализированные сайты. Там призы чуть поменьше по деньгам. Помимо этого, сейчас предлагается целый ряд партнерских программ. Все, что требуется от вас — иметь свою игру.
В завершение
Что интересно, можно пронаблюдать красивую тенденцию: многие разработчики IDE для обычных языков программирования сейчас активно включились в создание игровых конструкторов. Это, во-первых, интересно, во-вторых, довольно прибыльно, при правильном подходе к делу. Ведь, как говорится, можно зарабатывать на музыке, а можно и на музыкальных инструментах.
Кристофер christopher@tut.by
Марк Лейдлоу, сотрудник компании Valve Software
Просторы геймдева постоянно расширяются, и эта тенденция не собирается прекращаться. Причем возможности есть у всех: от начинающих и разработчиков-одиночек до более-менее крупных и слаженных команд. Рынки сбыта разные, есть множество сервисов по продвижению. Поэтому конструкторы сейчас являются достаточно удобным средством, прежде всего — для быстрого создания компьютерных игр. Иногда работа с ними происходит на очень серьезном уровне со знанием ключевых технологий и языков программирования, требует наличия художников и специалистов по 3D- моделированию/анимации. Разработчики конструкторов берут на себя очень важную роль, а именно, реализацию кросс-платформенности, помимо чего предлагают определенный технологический набор. Нашей задачей является правильный выбор.
На предыдущий материал серии пришло несколько откликов, в основном касающихся Action/Indie Game Maker и Unity3D. В первом случае больше обсуждалась коллизия с названиями. Дело в том, что в геймдеве очень популярна конструкторская среда Gama Maker от Yo Yo Games (www.yoyogames.com), на базе которой не только создаются игры, но и выпускаются специальные уникальные дополнения и библиотеки. В рамках этого решения требуются навыки программирования, причем внутри самой среды имеется собственный очень несложный скриптовый язык GML (Game Maker Language), похожий на С++ и JavaScript, причем напрямую привязанный к объектам, а в дополнительных библиотеках вы можете встретить множество других вариантов, от С++ до AngelScript и тому подобного. Другими словами, многие сторонние разработчики специально портируют свои движки на этот конструктор в силу его популярности. На базе этого Game Maker’а также создано несколько конструкторов, которые могут работать самостоятельно, и рекламируются они отдельно. Иногда в таких решениях не требуется программирования как такового, но при этом есть ограничения в графике и т.п., которые присущи «предку».
Вместе с тем, в прошлом материале серии мы описывали совершенно другой конструктор, а именно Action/Indie (!) Game Maker, мало того, самих конструкторов с присутствием словосочетания «Game Maker» достаточно много, равно как и c «Game Studio». Поэтому не следует путаться. Хотя в большинстве случаев, если просто говорят о Game Maker, то подразумевают продукт от Yo Yo Games.
Что касается Unity3D, то стоит отметить важную поправку, которую внес один из читателей, когда речь шла о trial-версии: «на самом деле 30 дней можно использовать полную версию, а бесплатную можно использовать бесконечно».
Переходим к нашему обзору, и раз уж мы затронули тему…
Yo Yo Games Game Maker
На данный 2010 год Game Maker от Yo Yo Games является продвинутым объектно-ориентированным конструктором с собственным скриптовым языком GML (Game Maker Language). Нужно сказать, что очень многое для формирования программы в нынешнем виде сделали энтузиасты геймдева, сторонники так называемого Easy Game Development, которые организовали довольно большое сообщество. От версии к версии конструктор обрастал новыми возможностями, в него внедрялись новые требуемые технологии, и сейчас в рамках 8.0 это уже полноценный достаточно взрослый продукт. Сам по себе конструктор довольно легок в освоении, особенно для тех, кто когда-либо сталкивался с объектно-ориентированными IDE, даже самыми простыми, куда можно внести множество пользовательского софта, как, например, Adobe Flash.
Кстати, с Flash данная разработка многим перекликается, но тут ситуация больше «заточена» под производство игр. Есть такое понятие как «комната» (room), которая описывает определенное пространство, разбивающееся на координатную сетку. В его рамках мы можем расставлять объекты, добавлять к ним события, прописывать несложные скрипты и так далее.
Yo Yo Games Game Maker
Язык GML легок в освоении. Помимо этого стоит отметить наличие множества различных библиотек, расширяющих возможности конструктора, например, в области 3D сейчас самой интересной является GM Ogre от Houdini (портированный вариант достаточно популярной open-source Ogre SDK, www.ogre3d.org), которая превзошла по возможностям ранее популярные Xtreme3D и Ultimate3D. Помимо этого есть множество других дополнений, касающихся других сфер. Например, можно найти не только модульные компоненты для определенных игровых жанров, но и для написания обычных программ, таких как мультимедиа-плееры. А одной из самых мощных и популярных в пользовательском сообществе библиотек является SBL 3D Ultimate, содержащая множество полезных компонент и примеров.
Среди множества примеров игр, созданных даже в классическом варианте GameMaker 8.0, в основном встречаются несложные 2D или 3D с видом сверху либо в изометрии, а что-то более серьезное является редкостью, хотя можно найти и более-менее красивые 3D-шутеры от первого лица. И тут есть простое объяснение. Все дело в том, что сам Game Maker рассчитан на разработку простых игр, более сложные лучше делать в других технологиях. Активное русскоязычное сообщество вокруг данного конструктора можно найти в Интернете по адресу: www.game-maker.ru.
Metroid online — интересный онлайновый 3D-шутер, созданный в Game Maker с использованием dll-библиотеки Ultimate 3D
Семейство Blitz…
В принципе, если говорить о началах программирования в области современных игр, то на ум приходит не так много простых в освоении примеров: XNA Game Studio, некогда популярный Dark Basic, ряд конструкторов. Именно поэтому имеет смысл обратить внимание на семейство программных продуктов семейства Blitz (http://blitzbasic.com/), самыми популярными из которых являются Blitz3D и BlitzMax.
Разработка самой концепции началась с реализации компилятора специализированной разновидности языка BASIC — Blitz BASIC (автор — Марк Сибли, 2000 год). Сам язык Blitz3D создавался как скриптовый (сценарный) для облегчения автоматизации разработки компьютерных 2D/3D-игр и работал на основе DirectX 7. Сейчас же Blitz3D часто воспринимается и как язык программирования, и как отдельный игровой движок. Со временем появилась и новая разновидность — BlitzMax, являющаяся не только усовершенствованной моделью с внедрением ООП, но и знаковым переходом на OpenGL. Знаковым он является и потому, что OpenGL — кросс-платформенная технология, соответственно, появилась возможность работы не только под ОС Windows, но и для Linux, MacOS.
BlitzMax — у данной разновидности Blitz есть своя IDE
Нужно отметить, что технология очень популярна во всем мире, причем в русскоязычном сообществе вы можете найти множество полезной информации. Если смотреть на Blitz3D (или же BlitzMax) с точки зрения языка программирования, то это специально модифицированный бейсик, где среди основных типов данных мы имеем дополнительно объекты, связанные списки, указатели на функции и так далее. Имеется взаимодействие с другими языками, например, реализована интеграция с Lua, C#, C++, Assembler и т.п.
Если смотреть на Blitz3D (или же BlitzMax) как на движок, то мы увидим поддержку основных ключевых API (графика — DirectX и OpenGL, аудио — DirectSound, FreeAudio), плюс к этому имеется встроенный модуль GNet для быстрого создания сетевых приложений плюс ко всему огромное количество пользовательских библиотек. Есть физика, шейдеры, работа с частицами и тому подобное.
Основная сфера применения Blitz3D (BlitzMax) — написание небольших, но качественных 2D/3D-игр (хотя можно писать и обычный софт), причем, например, трехмерные объекты можно не только импортировать, но и создавать в рамках кода, хотя это больше задача на программирование. Что касается непосредственно импорта моделей из известных пакетов, то тут следует указать на определенную специфику, а именно, модели считываются в формате b3d (хотя есть и другие варианты, но так лучше). Поэтому необходимы специальные конверторы-экспортеры. Они уже написаны для 3DS max, Blender, Cinema4D, Lightwave3D, CharacterFX, Milkshape3D, Ultimate Unwrap 3D. Нужно отметить, что вокруг Blitz собралось одно из самых больших пользовательских сообществ, поэтому пополнение новинками происходит довольно стремительно. Также решается и часть вопросов по исправлению ошибок и т.п.
А в целом, поработав с Blitz, можно получить качественные и профессиональные результаты. Правда, в рамках небольших проектов. Но и этого бывает достаточно. Конечно, многие сразу же хотят выпустить аналог Doom3, Prototype и т.п. Но это не всегда и нужно.
Blitz3D (BlitzMax) отлично учит игровому программированию, такому, какое есть в реале. При этом простота языка позволяет быстро освоиться новичкам, которые с программированием как таковым до этого редко сталкивались. Вы научитесь обращаться с объектами, импортировать модели и текстуры, расставлять свет и камеры, работать со столкновениями, использовать внешние библиотеки, сторонние движки (например, PhysX, Xors) и тому подобное.
Несколько лет назад считалось, что проект Blitz заморозился, потому как обновления появлялись достаточно редко. Сейчас ситуация сдвинулась с мертвой точки.
Silent Walk FPS Creator и P3D
Недавно вышла обновленная версия конструктора Silent Walk FPS Creator 2.1.1 (www.silentworks.hu). Он предназначен для создания 3D-шутеров от первого лица. Что интересно, первая версия этого конструктора была сделана в Game Maker от YoYo Games, вторая… написана на Blitz3D. Качество результатов, сделанных в Silent Walk FPS Creator, устроило далеко не всех (устаревшая 3D-графика), хотя ключевой его особенностью является постановка самого рабочего процесса — никакого программирования не требуется.
В продолжение темы на Blitz3D автором Silent Walk FPS Creator пишется новый конструктор P3D под Windows7, где помимо Blitz используется библиотека FastExtension для эффектов и физика Tokamak. Будут поддерживаться 3D-модели в форматах B3D, OBJ и т.д. Редактор моделей позволит настраивать анимацию объектов из множества поз и движений.
Silent Walk FPS Creator написан на Blitz3D, но в данном случае от пользователей не требуется никакого программирования… а создается 3D
XtremeWorlds RC
Этот конструктор (http://mmorpgmaker.org) интересен тем, что он бесплатен и позволяет создавать простейшие 2D MMORPG без какого бы то ни было программирования. Но это для случаев, когда вы захотите создать нечто простое. Если нужно что-то более сложное, предусмотрена возможность скриптования. Есть видеоуроки.
А вообще, все достаточно просто и понятно, с одним, правда, недостатком — нет русскоязычной версии. Что интересно, на рынке игровых конструкторов сейчас довольно сильно активизировался русскоязычный сегмент разработчиков, но мало кто из них решился на реализацию софта для создания MMORPG. Так что поэтому пока как-то так…
Создаем MMORPG в XtremeWorlds RC
Adventure Game Studio
Adventure Game Studio (http://adventuregamestudio.co.uk) является, пожалуй, одним из самых ярких среди небольших конструкторов для создания игр- квестов. Дистрибутив весит всего 7 Мб, при этом есть хорошо наполненный англоязычный Help с примером создания реальной игры. Разработчики подошли ко всем вопросам максимально продуманно; реализованы:
. поддержка платформ Windows, Linux (x86), Mac;
. легкий в изучении скриптовый язык (похож на Java/C#) с интегрированным отладчиком;
. графика с характеристиками вплоть до 1024х768х32 бит, есть ресайзинг при переходе на полноэкранный режим;
. звук — OGG, MP3, WAV, MOD, XM и MIDI, при этом автоматически рассчитываются и подставляются (с синхронизацией) звуки шагов;
. возможность вставки видеороликов (OGG, AVI, WMV);
. комнаты могут быть больше экрана -> автоматически реализуется скроллинг (прокрутка);
. есть плагины;
. компоновка в единый exe-файл, скрипты переводятся в байт-код.
Adventure Game Studio уже отмечена многими специалистами.
Adventure Game Studio — качественное создание квестовых игр
Обратите внимание(!)
Практически любой более-менее активный разработчик игрового конструктора, собравший вокруг себя сообщество пользователей, устраивает конкурсы. В частности, фактически все вышеупомянутые в этом материале такое делают. Почему стоит обратить внимание? Вы можете заработать ценные призы, деньги и так далее. То есть включаться в общение имеет большой смысл. Также нередко можно встретить просто конкурсы на лучшую казуальную игру, которые проводятся по всему миру, причем их инициаторами чаще всего выступают интернет-магазины, продающие игры, чуть реже — сообщества разработчиков и специализированные сайты. Там призы чуть поменьше по деньгам. Помимо этого, сейчас предлагается целый ряд партнерских программ. Все, что требуется от вас — иметь свою игру.
В завершение
Что интересно, можно пронаблюдать красивую тенденцию: многие разработчики IDE для обычных языков программирования сейчас активно включились в создание игровых конструкторов. Это, во-первых, интересно, во-вторых, довольно прибыльно, при правильном подходе к делу. Ведь, как говорится, можно зарабатывать на музыке, а можно и на музыкальных инструментах.
Кристофер christopher@tut.by
Компьютерная газета. Статья была опубликована в номере 24 за 2010 год в рубрике soft