для Юниведа UE4 интересен сразу например вшитым Scaleform'oм; GI и отличными нодо-строителями (шейдеры, логика и тп) - крайне удобные штуки.. в остальном имхо, уже плюсов нету.. совершенно другая логика организации проекта, достаточно "узкая" направленность из коробки.. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
привет велосипедистам!! движков много, когда набиваешь руку делая свое - один из самых лучших способов это воссоздавать понравившееся из уже существуюещего.. художник копирует картины мастера, архитектор клеит модели существующих строений, музыкант пишет музыку в хорошо известных стилях... имхо любой 3Д двиг должен иметь такие редакторы: - ..скриптов, кода или других управляющих действиями элементов. - ..сцен - ..моделей (обширность функционала по усмотрению) - ..спецэффектов, шейдеров - ..анимации, твиннинга - ..pathfinding, патрулинг - ..LOD редактор - ..ГУИ, ХУД.
что касается танка с поворотами - то это красиво сделать (во многих местах видел похожее..) - в виде трехмерных хедеров - диски обозначающие сектора вращения, с ручками-регуляторами.. поверх всего этого -- функционал (экранные кнопки или шоткаты) для создания таких дисков, увязки с объектом сцены, фиксации точки начала и конца поворота. плюс к этому у них должен быть программный интерфейс - возможность и в редакторе анимаций и через код управлять каждым.. чтобы это можно было назначить любому объекту сцены - круговые, секторные, линейные, привязки к другим объектам визуальным и нет.. и тп. каждый - с настройками зависимостей, очередности/приоритета (чтоб конфликтов поворота не возникало), увязками с другими частями двига, параметрами и интерфейсом управления.. пойдет такой велосипед? Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Четверг, 19 Февраля 2015, 00:05
ну вот.. есть еще над чем работать конечно. но уже все, что нужно. советов в связи с этим немного: улучшай функционал, используй отладку, отрабатывай навыки.
решение сделанное за 25 мин, с учетом нужного уровня подготовки, на оптимальность не претендует..
Код
namespace ConsoleApplication1 { class Program { static string prompt = "::> "; static string[] stringReact = { "Нуу начинаается!", "Введи 8!", "Мдааа, усталость сказывается...", "Да нормально, а у тебя?", "Да сколько можно то?..", "Конечно! Но может в другой раз?!" }; static int predAnswer = -1; // для того, чтобы разнообразить ответы static Random rnd; // для выбора ответов
static void PrintAnswer(string ans = null) { Console.ForegroundColor = ConsoleColor.Yellow; if (ans == null) { int nom = rnd.Next(stringReact.Length); // проверяем не прежний ли ответ выпал, меняем если так. while(nom == predAnswer) nom = rnd.Next(stringReact.Length); predAnswer = nom; // запоминаем прежний ответ. Console.WriteLine(stringReact[nom]); }else Console.WriteLine(ans); Console.ForegroundColor = ConsoleColor.White; }
static void Main(string[] args) { Console.WriteLine("модуль #KR1 активирован"); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("для выхода введите: exit или выход"); Console.ForegroundColor = ConsoleColor.White; rnd = new Random(stringReact.Length); Console.Write("подготовка консоли"); for (int i = 0; i < 15; i++) { System.Threading.Thread.Sleep(200); Console.Write("."); } Console.WriteLine("\n"); bool wasHello = false; // основной цикл диалога string request = ""; while (request != "exit") { Console.Write(prompt); request = Console.ReadLine(); request = request.ToLower().Trim();
не знаю в чем ты пишешь - но у меня твой код заходит в ту ветку (else) попробуй использовать отладку по шагам и проверь. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
ничего страшного! у тебя же почти все получилось!!.. давай я дам не полный код, а подсказки и с ними попробуешь еще раз?!
1. полезный метод string.ToLower() - для уменьшения грамоздскости кода при поиске! 2. массив можно и один, а приветствия выдавать фикс строками 3. пусть будут служебные команды от пользователя - "exit", "выйти", "пока" 4. строку можно не только Contains, но и StartWith и даже "choise == "exit" " (для оптимизации см пункт 1 тут ;))
а так, я считаю - что в приведенном коде худо бедно все решено у тебя!! полноценный ИИ чатер задачи строить не было, а диалог присутствует.. немного не оптимизировано - но решено.. молоток.
совет: если задача сложная для тебя целиком - то разбей ее на части! имхо, чем учащийся будет вариться "сам в себе" с необъятным для него куском, лучше если он будет задавать конкретные вопросы по сегментам. правильный вопрос = старание и попытка развиваться; наработка негативного опыта "в себе" без вопросов по существу = плохая культура самообразования!! ведет к потере интереса к теме.. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
не дотНэт, но может сможешь перевести - тут. вот тут темка была может пригодиться.
от себя - на Unity мы делаем для такой цели рейкастинг - луч от центра камеры в точку мыши, на бесконечное (или очень большое) расстояние. обрабатываем это в каждом кадре и все пашет. общепринятая практика.. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Есть близкая книга по шейдерам. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
например, в Unity используется c#. развивать навыки программирование на нем - это развивать навыки геймдева. поддерживаю тему - новичкам геймдева будет полезно по максимуму, опытным (у кого нету звездной болезни и 28 часов в сутки занятости..) - возможность подсобить сообществу в лице новичков..
конечно в нэте есть все и можно вообще во всех областях обойтись без форумов, читай себе книжки, смотри видеоуроки и будет тебе все, что нужно. так?! по моему мнению - форум для того и существует, чтобы была своя форма (на уровне живого общения) усваивать материал. ___________________________________________________________
имхо, задачи нужно при выкладывании обозначать: по специфике (акценты или тема или инструментарий реализации) и уровню сложности (от 1 до 20, например). тогда "ученик" сможет выбрать по своему уровню еще на стадии прочтения. вернуться к задаче, когда повысит уровень. ну и можно добавлять третий параметр - свободный, ну там -- рамки решения ("только функционалом класса string", "для Unity3D") или -- подсказка ("делегаты, эвенты, подписка"), предлагаемая форма решения ("консольное приложение", "веб приложение" и тп) и тд. решения предлагаю выкладывать под спойлеры!! чтобы не засоряли внешний вид и не были сразу открыты при чтении задачи начинающим (от соблазна сразу подсмотреть в решение ).. Например: Специфика: классы, разработка иерархии. Уровень: 7 (из 20); Задача: ...... ___________________________________________________________
вот первая: Специфика: диалоговый режим консоли. Уровень: 3-5, оптимальное время реализации - 1-2 часа. Дополнительно: отработка навыков разработки логических цепочек и оптимизации кода. Задача #KR1: написать консольное приложение получающее ввод пользователя, выявляющее некоторые ключевые элементы (слова, знаки, цифры) и выводящие шуточную "реакцию" программы в виде текста. организовать процесс в диалоговом режиме (строка запрос, строка ответ, "столбиком").
"реакции" лучше организовать в массив(ы) строк. Используется рандом. Используется поиск в строке.
Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Вторник, 10 Февраля 2015, 10:46
о! еще меньше! тем более есть ограничение на сроки продления патентов.. т.ч. все ок! ладно, дело было не в патентах. книгу из топа не забываем искать! Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
хочешь ты или нет, любишь или нет, но день сменяется ночью, и нет ни одной игры которую бы не взломали. это просто данность. я не агитирую за хакинг, и не плачу за него, даже не поощряю... частенько. есть просто данность.. у патентов срок 50 лет - рано или поздно он станет доступен всем - так или иначе.. как и все авторские продукты Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
тоже мне разработчики игр, книга то копейки стоит) И наверняка она того стоит.
тоже мне фиеричный комментатор! по твоему разработчики игр должны покупать книги, которые лежат в свободном доступе (мы просто не знаем где пока! скоро узнаем)?? Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
вариантов много. в простых проектах чаще используется collision.contacts[0] - он предоставляет функционал определения координаты возникновения коллизии, используется в OnCollisionEnter(...), в штатной справке пример. дальше - вычисляешь в какое место попала пуля по этой координате и смещению относительно заданного центра тела. а вообще в том чтобы создать несколько коллайдеров на теле - нет никаких сложностей.. просто нужно сорганизовать правильно скрипты,триггеры и логику взаимодействия. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Понедельник, 09 Февраля 2015, 10:05
автоматический перевод PDF тож вариант!! (апаю тему, потому, что тож хочу эту книгу на русском! :) ) Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Понедельник, 09 Февраля 2015, 08:30
есть пара тройка ссылок на русский вариант, которые загружают инсталляторы амиго+однокласники+ и тп. иногда такие загрузчики все-таки дают в конце книгу (я не дошел до финала).. ну и англ pdf лежит свободно в сети.. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Воскресенье, 08 Февраля 2015, 12:28
от 500р. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
понимаю, что никого не интересует, что происходит в жизни разработчика проекта, когда хочешь увидеть релиз. за желание и интерес к Городу всем адекватам Портала большое спасибо!
я убрал промежуточные сводки о разработке в основном -- из за назойливости троллей. но есть более веская причина - проект перешел в уровень глубоко технической отладки, которая привела к тяжелому чувству от закрытого полного теста.
я объявляю о перерыве в разработке на один месяц (до 3 марта)! буду собираться с силами, залечивать изъяны, обязуюсь не зачинать еще одну радикальную перфекционистскую переделку ядра и структур Города! (тем более, что они уже очень хорошо выстроены, я доволен.) всем, кто переживает за Проект и морально поддерживает его в уме или на Портале - еще раз огромное спасибо!! мне жаль, что не вышло сделать быстрее и ..выразительнее, пока что.. удачи и реализации!! Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Вторник, 03 Февраля 2015, 21:45
Ordan, не подумай что троллинг - смогешь написать приключение, в котором будут многообразные события и ситуации, но у пользователя только три варианта - пернуть (каким то образом), не пернуть и само пернулось?! типа такого:
Цитата
Девушка повернулась всем телом, чтобы посмотреть -- кто так бурно зашел в кафе, ее одежда натянулась и обрисовала соблазнительные прелести. В тебе назрела потребность выразить свою реакцию: - пернуть (смачно) - пернуть (вяло) - пернуть протяжно два раза (типа йиихууу) - не пернуть.
задача в предлагаемых обстоятельствах так сказать.. а так - респект, за ржаку - игры у тебя получились с огоньком! удачи!! Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
алгоритмы дробятся, плодятся и увеличивают объемы возможных альтернатив действий. но у этого процесса есть точка схлопывания - когда варианты начинают стремиться к идентичности по результату. для принятия решений разум использует прикладное конструирование, сутевое моделирование и якобы обсчитывает миллиарды возможных сценариев развития ситуации. для создания программной модели, которая будет СОЗДАВАТЬ третий вариант, определив, что два предыдущих не удовлетворительны - нейронные сети нужны, как адронный коллайдер для разогревания обеда! ведь даже трехлетние дети находят решение задачи "как быстрее добраться до конфеты на столе". но тем не менее уже несколько лет естьпрограммы создающие изобретения, совершающие открытия.. и нейронные сети там играют ведущие роли.
вот только надо ли программе изобретать решение, когда есть конечное количество возможных и полезных вариантов действия в заданной среде?? конечно!! зачем строили колайдер тогда, если на нем обеды нельзя разогреть????!!
теория возможной реализации: выработка вариантов решения может быть по принципу калейдоскопа - когда смысловые блоки формируют некоторый конечный рисунок "нового" варианта; по принципу генетических алгоритмов путем скрещивания возможных базовых действий в более сложные решения; по принципу затухающей волны из всех цельных возможностей к выбору конкретной... теорий много - результат один: выработка решения о пути действия никогда не является изобретением - оно всегда является всего лишь выбором цельных или комбинированием частей уже существующих решений. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Вторник, 03 Февраля 2015, 00:18