Scirra Constract Classic - всему отвечает. Бесплатный. Для платформера вообще все есть, в том числе готовое настриваемое поведение. (по-моему на нем как раз больше всего платформеров сделано). Графически в 2д вообще отлично выглядит: DirectX9 c кучей плагинов и шейдерных эффектов (можно добавлять дополнительно - ибо тьма их). Разве что avi плохо работало когда я этот конструктор изучал. Русский форум прикрыли, но на сайте все еще есть полезная инфа. На буржуйском всем рекомендуют скачать и пройти "Platform school" - серия уроков по созданию платформеров представленная в виде игры.
Сообщение отредактировал Самоделкин - Суббота, 14 Апреля 2012, 21:43
pixeye Насчет US и С# я ж не всерьез. Я ни того, ни другого не знаю). Просто ради интереса в своб.время набегами ковыряю Unity и выбираю наиболее интересные мне вещи в качестве заманухи, чтоб терпения на дольше хватало. Понимаю что вещи не самые простые. Для меня вообще простых нет.
Но вопрос у меня конкретный был: какое выражение использовать для загрузки данных из отдельного файла (в память). Даже скорее так: какой командой обратиться к нему. Где-то я видел что-то со словом load - ее и искал , и как именно указывается путь на локальном диске т.к примеры все ссылаются на url. + пространства имен нужные. Тут как раз одна строка.
Как загонять это все в массив и как потом из него строить , это отдельная тема. (Разбираю потихоньку рисование меша, препарируя исходник heightmapGenerator с оффсайта. Только вместо текстуры за основу взял цикл и переменные вручную задаю. Вот решил попробовать с файлом поработать.) А морфинг - это вообще неясное отдаленное будущее, научпоп фантастика почти. Просто заранее хотелось бы выбрать для изучения правильный метод, вдруг дойдет и до записи в файл)
За ссылки спасибо, щас глянул, буду курить)
Сообщение отредактировал Самоделкин - Пятница, 13 Апреля 2012, 22:04
Нет, не через www. Прочесть xml можно по разному. Это не одна строчка в любом случае.
если ты будешь ТОЛЬКО загружать информацию из xml файла то самый простой вариант создать папку Resources - это юнитевская папка в которую идут все объекты которые могут быть использованы в игре "на лету". Недостаток в том, что туда насколько мне известно нельзя сохранять данные.
Как прочесть - над этим голову ломать я буду долго и попозже. Для начала бы выбрать правильную команду для загрузки. TextAsset похоже не самый оптимальный вариант. Для неизменной карты он может и подойдет. Но я хотел бы реализовать следующее: Карта (меш как ландшафт) процедурно строится на основе данных массива, который загружается из xml. Но также в мечтах реализовать "терраформинг" (изменение этого меша) в рантайме в игре и возможность сохраняться в файл. Тут TextAsset вроде как не подходит.
Quote (Самоделкин)
Пишу на c# - так что потрудись переконвертить сам.
ЗЫ: Если бы люди пользующиеся Юнитискриптом могли бы легко перегонять его в C#, разве они пользовались бы ЮнитиСкриптом? Но за пример спасибо)
я подозреваю, что там другой класс используется или синтаксис немного другой. Нашел вариант с text.asset (когда просто закидываешь файл txt или xml в папку проекта) но он не подходит, тк не предназначен для записи в файл (как я понял по мануалу)
Работа с xml-файлами на локальном диске выполняется теми же методами что и с xml-файлами в сети?
Code
import System.Xml; var www = new WWW (url); yield www; var xml = new XmlDocument(); xml.LoadXml(www.text);
Меня смущает это "www" В инете нашел что-то о том что различия есть для загрузки из инета (streaming) и с харда, но примеры только для сетевого варианта на юнитискрипте. Как выглядит строка на JS загрузки данных xml-файла с локального диска? (из папки с проектом например). Просто указать относительный путь вместо url? Если так, то относительно какой папки? (Планирую хранить карты в xml - значение высот (y) вершин + размер карты - загружать их в массив и по нему строить меш) Справку честно ковырял, но только в разделе Scripting Reference что-то есть по www. А в Manual и Reference не могу найти то что нужно.
Сообщение отредактировал Самоделкин - Пятница, 13 Апреля 2012, 09:26
Да дело не в непонятности мануалов (а готовый HelloWorld идет в поставке на С++ и Lua), а в том что недостаточно полноценных инструкций для win-версии. Я имею ввиду не конкретно работу над игровым проектом, а подготовку "рабочих инструментов". В этом плане все не "юзерфрендли" с cocs2d-x: хоть на офсайте под ссылкой на сам кокос2д-х добавили бы ссылки на все остальное необходимое и сэкономили бы многим время. А так будто только для гиков задуман проект. Полтора ассета, на форуме только ветхие вопросы без ответов.
Вот корона СДК бы компилила под винду и не только удаленно, работала бы с Armv6 цены бы ей не было. А так на бумаге кокос2d-x ее даже превосходит во всем, но народ почему-то за корону платит. Понятно почему.
Добавлено (11.04.2012, 14:23) --------------------------------------------- Обязан признать - трабл с невозможностью запустить проект (С++) идущий в комплекте под VS2010 был связан с моим полным незнанием VS2010 и оказался смешно решаемым. Сегодня запустил VS и свежим взглядом увидел в чем была проблема (одна из них).
1)Кто пробовал AppGameKit скажите, там компиляция конечного приложения - удаленная или локальная на моем личном компе? 2) Есть ли какие-то дополнительные инструменты? (к примеру я хочу сбацать дым или взрыв из частиц. Мне придетя настраивать все через набирание текста в IDE, тупо подбирая нужные циферки для цвета, направления, времени и тд и каждый раз компилируя или есть прога где ползунками можно было бы быстро все сделать? То же самое для создания карт уровней, физики, и тд и тп)
Quote (JakePower)
Эм...а в чем проблема с короной то? Я ее смотрел, ну годно для мобильных игрушек.
Не удержался: Очень нравится корона. Хорошие 3d party tools для нее (хоть и платные). Но минусы серьезные действительно есть. Не так много всяких графических наворотов (можно было бы и фильтров и много чего еще добавить), имхо криво работает физ.движок. Ну и удаленную компиляцию можно отнести к минусам.
Это все реальные минусы если учитывать, что приложения будут работать только на дорогих мощных мобилах на Arm7 и то, что продукт платный. Разрабы как раз объяснялись на форуме, что им пришлось ограничиться Arm7 из-за того, что физ.движок не вытягивал и кое-каких др.моментов. При этом есть Юнька : а) бесплатная (Веб,iOS,Mac,PC,Android); б)тащит не слишком мудреные приложения на популярных мобилах с arm6; в)3D тока так; г) Компиляция на дому; д) В короне придется заплатить за набор доп. примочек (СoronaProjectManager, Lime.Lua. Tiled, TexturePacker, PhysicEditor, Spriteloq, Kwik ) еще баков 200 по закону. А без них главная и единственная фишка Короны - простота - теряется.
Кстати не помню сколько, но сколько-то за CoronaProjectManager просят (баксов 25 или больше). А по сути это мини-прога, которая просто в списочке отображает все файлы проекта сразу и имеет кнопочку , к которой можно привязать ссылку на запук самого эмулятора. По сути CoronaProjectManager - это окно "Project" из Юнити3D. При этом судя по форуму она стоит почти у каждого, тк лазить по проводнику виндовс постоянно неудобно очень, за нее платят. Я конечно не спец, но такое должно собираться в VisualStudio более-менее знающим ЯП человеком за упорный вечер (для Мака я правда не знаю в чем программы принято делать), + какое-то время на обкатку и тестинг.
Реализуйте кто-нибудь клон CPM и продавайте "коронщикам" (их до жопы на самом деле) по 10$ или с рекламой, или за донат, а мне бесплатно за подкинутую идею.
UPD ---------------------------------------- Второй вопрос снимается. На сайте App Game Kit не видел инфы и faq тоже молчал. Оказалось надо идти на сайт TheGameCreators и ответ нашелся:
Каждая простейшая поделка стоит денежку. За приведенный мной в качестве примера "предпросмотрщик" для частиц (сделанный по-моему на самом AppGameKit)) просят 15 баксов. При чем он похоже просто позволяет настроить частицы, а потом полученный код скопировать. Не интегрирован в сам AppGameKit. И так за каждую мелочь. Все по отдельности и эта самая дешевая.
Потихоньку за пару месяцев поверхностного ознакомления со всякими активно распространяемыми инструментами для разработки игр все больше прихожу к выводу. Системы для разработки игр, коих легион уже, кроме наверно CE3 да UDK, коммерчески полезны для продажи такого рода примочек "игроделам". И для этого и созданы. Сами "игроделы" походу ничего не продают) TheGameCreators вообще ярчайший пример. Столько разного софта и все для создания игр лепят. И простейший редактор добавить в AppGameKit не смогли. В Coron'e отсутствие встроенного менеджера файлов и продажа его отдельно самими авторами вообще не смешно.
А вот второй вопрос в силе: с тем как собираются готовые приложения (не для AGK-плеера, а для конечных девайсов) я так и не разобрался.:(
Сообщение отредактировал Самоделкин - Понедельник, 09 Апреля 2012, 05:11
Такой общий нубский вопрос. Я толком никакими ассетами сторонними не пользовался и не до конца принип действия их понимаю. Вот например есть фреймворки типа Orthello2d и многие другие. Это как доп.библиотеки? То есть я добавляю их в проект, а потом во всех своих скриптах как-то на них ссылаюсь и таким образом использую? Поясните максимально простым языком плиз.
Вот например в CoronaSDK я добавлял .lua файлы из стороннего комплекта Lime.Lua. Добавил в проект файл scrollview.lua , и когда пишу какой-то скрипт - просто ссыдаюсь на этот scollview.lua и использую в скрипте простейшие команды для скроллинга на экране, заранее прописанные автором lime.lua. В Юнити как это работает?
В том и дело, что "взять" не то чтобы очень удобно. Перечитал приличную кучку статей из гугла в которых половину слов впервые встретил. Скачал и установил помимо самого cocos2d-x еще тележку программ и столько же плагинов. Сделал все по кругу раза три, опирался в основном на статьи с хабры (все уже не вспомню): http://habrahabr.ru/post/126582/ http://habrahabr.ru/post/127220/ http://habrahabr.ru/post/109944/
Фиг с ним, что у меня доисторический инет-канал, но даже без учета этого на все это ковыряние я чуть ли не день убил. Хотя по уму все должно занимать минут 30 от силы. Плохо что так и не получил даже небольшого обнадеживающего результата. После того как мне удалось натравить с пятой попытки VS2010 на cocos2d-x, HelloWorld отказался запускаться. Ошибок с каждым заходом становилось меньше. Но последняя ошибка VS2010 что-то вроде "libcocos2d представляет собой неизвестный двоичный код" так и не была побеждена. А я планировал еще настроить все для работы с Lua, да куда там((
Суть предыдущего огромного поста как раз и была в том, что очень муторное занятие новичку собирать всю эту приблуду. И пятиминутная работа, оборачивается часами утомительного тыкания вслепую и топтания на одном месте без хорошего мануала. Что я успел понять: cocos2d-x (для win32) это пока полулюбительский проект и не одно и то же что и кокос для Мака. И непонятно - не работает он из-за моей винды, или из-за кривых рук и незнания матчасти. Может это и отличная интересная и понятная вещь, когда собрана и настроена. Но думаю до этого момента многие не дотерпели и так этого и не узнали.
using UnityEngine; using System.Collections; public class SpawnerScript : MonoBehaviour { public Transform tvojObject; void Update() { if (Input.GetMouseButtonDown(0)) { int addXPos = Random.Range(-5, 5); int addZPos = Random.Range(-5, 5); Vector3 spawnPos = transform.position + new Vector3(addXPos, 0, addZPos); Instantiate(tvoiObject, spawnPos, Quaternion.identity); } } }
Рандомно, но в пределах квадрата 5x5 и по сетке. Скрипт на пустой объект сцены вешать. И в редакторе к скрипту привязать префаб твоего объекта(-ов). Если нужно чтобы вообще рандомно, то наверно надо изменить тип переменной (нецелочисленную). Как-то так.Это если под "рандомно" ты понимаешь место. Если ты имел ввиду случайный выбор того, какой именно из объектов респаунится, то наверно можно ввести переменную, которая будет получать рандомное значение в пределах равных кол-ву типов объектов. Пусть разных объектов 10, то Random.Range(1,10); И каждому значению переменной будет соответствовать спаун конкретного объекта. Я сам не особо шарю, но как-то так бы сделал.
Такая каша из всех этих кокосов, что вообще нефига не сориентируешься. Зашел на сайт Кобольд2Д и там заголовок начинался оптимистично: "Bringing Order to Cocos2D Chaos and Complexity. Kobold2D is open source, all-inclusive, ARC enabled, documented..." а закончился словами "For iOS and Mac OS X." , что многих разочарует. Даже гугл толком не спасает, если ты не очень шаришь в теме. Каждый раз речь о разных кокосах. Подскажите доходчивый для обыкновенного нуба тутор: что нужно качать, как и куда устанавливать. Включая доп ПО типо Явы СДК, Андроид СДК, Эклипс или что там нужно еще? А также другие нужности, типо физических движков и что там еще понадобится. Все что я находил либо отрывочно, либо про MacOS. И в целом поясните кто в теме, саму структуру "сборки" - сколько необходимо компонентов, чтобы полноценно пользоваться движком этим. И какой компонент за что отвечает. Судя по ссылкам в гугле - штука очень популярная у русских мобильных разработчиков. У настоящих) Уверен многие на этом сайте могли бы заинтересоваться, если бы не плюнули на самом первом этапе. Мы тут на форуме какбэ по большей части не специалисты высокого уровня) Вот например может есть что-то типо минигайда "Знакомство с PhoneGap" со странички allxumuk'а . Только под винду и не страшно если поподробнее. Я думаю многим бы было интересно и мб даже полезно. А то всех заинтересовали, топик синеньким выделили и в шапку прицепили. Ну так отдувайтесь - дайте ссылку или сами на пальцах поясните что да как к чему прикручивать
ЗЫ: Меня вот лично интересует решение, которое бы работало на винде и хорошо бы могло компилировать под винду и андроид. Очень хотелось бы чтобы ЯП был простой скриптовый типо LUA (вроде существует вариант с LUA в природе). Хотелось бы узнать можно ли пользоваться библиотеками типо lime.lua так, как в той же Короне СДК, существенно упрощая программирование. Проект сделанный на одной версии(порте) вообще никаким боком с другой не сочитается или все-таки можно исходные коды готового проекта прикрутить к кокосу-родственнику? Что означает фраза "Cocos2d-x for XNA будет ежемесячно обновляться и синхронизироваться с cocos2d-iphone и cocos2d-x. " (а именно слово синхронизация).
Сообщение отредактировал Самоделкин - Суббота, 07 Апреля 2012, 01:15
SnakeR А объекты содержащие инфу нужную на всех уровнях (например счет, прогрес, инвентарь) таким же DontDestroyOnLoad(transform.gameObject) сохраняются? Или это делается через изменение в общих файлах проекта? Можно обращаться из скрипта объекта сцены к какому-то файлу проекта (массиву или просто txt) и изменять его навсегда?
Подскажите такой момент. Я когда-то Scirra Construct изучал. Так вот там можно было настроить какие спрайты (вобщем все ресурсы) на каких уровнях загржаются и на каких выгружаются. Поясню. Можно было поставить нужную галочку в настройках спрайта (текстуры,звука) и графика, которая используется на нескольких уровнях не перегружалась бы каждый раз заново. А в Юнити переход на новую сцену и обратно это всегда полная выгрузка ресурсов и полная загрузка по новой?
Спасибо. Но вообще не в цикличности проигрывания была засада (loop отключен и так), а в том что префаб со звуком создавался постоянно пока условие верно, а как сделать это однократно при постоянно верном условии я не знаю. У меня ведь создается огромное кол-во префабов со звуком для одного и того же объекта. Попробую под свои нужды переписать. Вот только разберусь с Coroutine и YieldInstruction
-------------------------------------- UPD Не могу победить эту фигню. Пуля ведь в твоем случае тоже уничтожается (как и враг). А у меня все объекты остаются на месте и префаб со звуком продолжает создаваться. ------------------------------ Как-то осилил я вчера эту фигню. Другим способом, но пока еще толком не понял каким подтормаживает только, но робит
Сообщение отредактировал Самоделкин - Среда, 04 Апреля 2012, 22:49
SnakeR спс за подсказку Я создал префаб "boom" по твоему совету (в нем только transform и audiosourse). И поскольку у меня одновременно несколько клонов объектов могут падать, я добавил строки для аудио в скрипт прикрепленный к падающем объекту (это правильно или стоило крепить скрипт к чему другому в сцене?). Звук должен срабатывать когда объект достигает y=1. Если коротко, то приблизительно так:
Code
public class BrickScript : MonoBehaviour
{ //myTransform это падающий объект, boom - это префаб со звуком private Transform myTransform; public Transform boom;
// Создание префаба boom в сцене при достижении Y=1 if (myTransform.position.y <= 1) Instantiate(boom, myTransform.position,Quaternion.identity); } }
Но вот при приземлении звук начинает запускаться постоянно и бесконечно и накладываться. Это из-за функции Update видимо? Но она ведь необходима чтобы y-координата отслеживалась постоянно. Посоветуйте как нужно поступить? И что делать с префабом boom после того как звук проиграется? Уничтожить или замьютить и как именно? Он ведь уничтожится еще до того как проиграет звук?
Сообщение отредактировал Самоделкин - Вторник, 03 Апреля 2012, 21:47
PlayUp tools называется плагин. Ссылку посеял, но ее легко нагуглить. . Также этот плагин бесплатно доступен на Asset Store прямо из Интерфейса Юнити. Плагин ставится на сам СкетчАп и в Юнити. На сайте самих разработчиков плагина рекомендую также прочесть все рекомендации о том как лучше делать модели для Юнити и перегонять их (там страничка всего) и подробный туториал. Рекомендую поставить на ScetchUp еще и плагины которые на своей странице рекомендуют авторы PlayUp - это поможет избежать некоторых косяков ScetchUp типо того, что вместо нескольких полигонов создается целая куча. И вообще на их сайте много полезных и простых советов (всегда все объединять в компоненты, уменьшать простыми способами кол-во полигонов и тому подобное) Вспомнил! http://www.playuptools.com/ ---------------------------------------------------------------------
А я зашел свой вопрос задать Есть платформа на которую падают предметы (если грбо,то 3Dтетрис). Требуется озвучить столкновение предметов с платформой. Платформа неподвижна и можно если что использовать координаты падающего предмета как условие. Самое простое для меня, что пришло в голову - это добавить аудиоисточники к префабам падающих предметов и задать срабатывание при достижении нужного значения Y. Но тогда создается очень много аудиоисточников. Я пробовал добавить в скрипт падающего объекта (добавив к нему аудиокомпонент) следующее:
Code
void Update(){ if (myTransform.position.y <= 1) myTransform.audio.Play(); }
Но не работает. (правда иногда внезапно и невпопад клип вдруг проигрывается) А вот добавить в платформу аудиоисточник и в скрипте привязанному к платформе заставить его срабатывать я никак не могу. Прошу помощи (С#) ЗЫЫ: Если я хочу (но это необязательно), чтобы звук исходил именно из точки соприкосновения падающего предмета и платформы, уадиоисточник нужно добавить в префаб падающих объектов или в платформу и как-то "двигать" его? спс
Сообщение отредактировал Самоделкин - Вторник, 03 Апреля 2012, 20:51
Че-то я не догоняю в чем сложность. Разве обязательно Touch должен быть привязан к button? Видимо не понял вопрос. Если интересует конкретное место тыка на экране, то мб touch.position вам поможет?
Добавлено (02.04.2012, 17:24) --------------------------------------------- Подскажите почему когда я делаю chek for updates то вижу сообщение: "The Unity Editor is up to date. Curently installed version 3.4.2f3". Как именно обновиться до версии 3.5 (и стоит ли?)
Можно написать свой импортер gif файла, преобразующий его в последовательность текстур кадров. И скрипт для проигрывания этой последовательности. Однако - нужно писать скрипты. Может проще преобразовать Вашу gif в видео?
Боюсь ошибиться и сказать глупость, поскольку нуб. Но я скачивал бесплатный ассет, который без видео делал анимированные текстуры. И был вроде именно на текстуры заточен. Я его мельком глянул, изучить не успел. Это все к тому что скорей всего уже есть какие-то готовые решения для использования gif-ов как текстур (автоматизированном перегону гифок в удобоваримую для юнити форму).
А от себя такой вопрос: к texture rendering (который недоступен для фри версий) что конкретно относится? Видео в качестве текстуры нет случайно? Поясните плз этот момент на пальцах, кто в теме.
Сообщение отредактировал Самоделкин - Четверг, 29 Марта 2012, 22:04
О) Топик апнули!) С Андроид СДК еще тогда наловчился (нарыл где-то описание как запустить .apk - окзалось не все так очевидно). Раз уж тему подняли, задам еще вопрос: Я заинсталил почти все что можно до версии 3.3 включительно (некоторые компоненты не хотят инсталиться, то ли с лицензиями связано, то ли хз с чем). Так вот я "собираю" устройство сам (указываю память, разрешение и тд) и потом запускаю на нем свой .apk . Но я неуверен насколько точно мои устройства совпадают с реальными. Есть какой-то способ масимально приблизить свои сборки к реальным моделям? Типо готовых "рецептов" - выбрал модель, нажал на кнопочку и она сама "собралась"?
Главная мысль: игры, сделанные на триальной версии, нельзя продавать или использовать в коммерческих целях.
Речь не о триальной версии,а о бесплатной версии. Benz Меня не сами деньги интересуют. Мне интересно другое: если все законно делать на бесплатных версиях, то обязательно ли при этом отдельно контактировать с владельцами двига. На сайте UDK вроде как указано что обязательно. То есть вы делаете коммерческую игру/приложение и перед релизом "дозваниваетесь" до Эпик, сообщаете им свои данные и заключаете соглашение (получаете от них ту лицензию которую хотите). EULA Юнити free я еще не осилил, но подозреваю что там что-то похожее должно быть, иначе как бы они собирались даже в теории оценивать доходы разработчиков работающих с Юнити.
Может есть какой-то толковый "мануал" или просто статья человека (из России желательно), основанный на его собственном опыте. Как абсолютно легально оформлять все при разработке под движки Юнити или УДК. Какие там юридические нюансы должны быть, какие требования (юр.лицо, счет в банке какой-то, что-то еще), как долго это все делается, прочие подводные камни и т.п.
Сообщение отредактировал Самоделкин - Вторник, 20 Марта 2012, 09:14