Понедельник, 23 января 2017, 07:22

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 1 из 171231617»
Форум игроделов » Записи участника » Storm54 [331]
Storm54Дата: Среда, 11 января 2017, 12:25 | Сообщение # 1 | Тема: OnGUI
постоянный участник
Сейчас нет на сайте
Можно воспользоваться новой системой GUI и там настроить масштабирование. Для Legacy GUI можно модифицировать матрицу (GUI Matrix), а можно просто домножить все числа в скриптах. В любом случае стоит определить, какое разрешение будет использоваться в качестве эталонного и для него настраивать все элементы, а коэффициент масштабирования высчитывать уже в рантайме (current resolution / reference resolution). Так же стоит определиться: будет ли учитываться соотношение сторон в разрешении и, если будет, то какая максимальная погрешность допустима. В зависимости от этого уже задавать порог коэффициентов. В зависимости от сложности элементов, может понадобиться создать несколько вариантов интерфейса, как, например, в Dota 2.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Среда, 11 января 2017, 12:31
Storm54Дата: Вторник, 27 сентября 2016, 09:49 | Сообщение # 2 | Тема: Авторизация, подобно Clash of Clans? Как она работает?
постоянный участник
Сейчас нет на сайте
Нормальной авторизацией можно заняться в самом конце. Просто сделайте логин по ID пользователя без всяких паролей и прочих усложнений. Человек скачивает APK, вводит ID и играет за аккаунт, привязанный к этому идентификатору.
Такой подход поможет быстрее отлаживать проект и сосредоточиться именно на игровой логике.

Проблема кучи твинков обычно решается балансом. В том же Clash Of Clans новичок не в состоянии как-то повлиять на экономику всей игры.

Насчет авторизации в Clash Of Clans: скорее всего, там действительно генерируется UUID и отправляется на клиент.
А привязка осуществляется для того, чтобы была возможность вновь воспользоваться этим аккаунтом, если UUID будет утерян (например при смене девайса)

P.S. Как писали выше: регистрация нового аккаунта - это обычная запись в базу и существуют транзакции куда более требовательные к ресурсам, такие как, запрос на выставление предмета на аукцион.


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Вторник, 27 сентября 2016, 10:04
Storm54Дата: Воскресенье, 14 августа 2016, 17:10 | Сообщение # 3 | Тема: Проблема с поворотами объекта при многократном вращении
постоянный участник
Сейчас нет на сайте
Советую прочитать про Gimbal lock.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Storm54Дата: Понедельник, 08 августа 2016, 06:28 | Сообщение # 4 | Тема: Независимый ребенок.
постоянный участник
Сейчас нет на сайте
Код
gameObject.hideFlags = HideFlags.HideInHierarchy;


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Storm54Дата: Суббота, 11 июня 2016, 10:48 | Сообщение # 5 | Тема: Как продвигаться на YouTube?
постоянный участник
Сейчас нет на сайте
Извини, конечно, но твою речь слушать невозможно. Найди диктора.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Storm54Дата: Четверг, 09 июня 2016, 09:43 | Сообщение # 6 | Тема: Программирование шейдеров в Unity (Добавлен шестой урок)
постоянный участник
Сейчас нет на сайте
Плохо. В уроке много времени было уделено на всякие минорные элементы, как, например, имя шейдера в инспекторе, однако про значения по-умолчанию для параметров ничего не сказано. Про Fallback сказано непонятно что. Причем тут return в программировании? В документации коротко и ясно написано, что при невозможности использовать сабшейдер из текущего шейдера (при отсутствии аппаратной поддержки), будет произведена попытка использовать сабшейдер из указанного в Fallback. И в уроке не должно быть "если я не ошибаюсь". Перед изложением материала необходимо освежить в памяти всю информацию, чтобы не возникало сомнительных моментов.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Четверг, 09 июня 2016, 09:44
Storm54Дата: Вторник, 31 мая 2016, 13:18 | Сообщение # 7 | Тема: Обнуление массива
постоянный участник
Сейчас нет на сайте
Цитата seaman ()
Alloc в куче в два раза медленнее всех предыдущих.

Могу добавить, что время аллокации в куче зависит не только количества выделяемой памяти, а еще и от ее фрагментации, поэтому точно назвать разницу во времени нельзя.


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Storm54Дата: Вторник, 31 мая 2016, 12:24 | Сообщение # 8 | Тема: Обнуление массива
постоянный участник
Сейчас нет на сайте
Код
using System;
using System.Diagnostics;

namespace Test
{
    public class Program
    {
        private static int[] globalData;

        private static void Main()
        {
            const int cycles = 100;
            const int arraySize = 256 * 256;

            long clearTicks = 0;
            long allocTicks = 0;

            var sw = new Stopwatch();

            globalData = new int[arraySize];
            for (var i = 0; i < cycles; i++)
            {
                sw.Reset();
                sw.Start();

                Array.Clear(globalData, 0, globalData.Length);

                sw.Stop();

                clearTicks += sw.ElapsedTicks;
            }

            for (var i = 0; i < cycles; i++)
            {
                sw.Reset();
                sw.Start();

                globalData = new int[arraySize];

                sw.Stop();

                allocTicks += sw.ElapsedTicks;
            }

            Console.WriteLine("CLEAR TICKS: " + clearTicks + " ALLOC TICKS: " + allocTicks);

            Console.ReadKey();
        }
    }
}


Держите. Постарался воспроизвести более-менее реальную ситуацию. Размер массива 256x256 (размер средней карты во многих RTS) Количество итераций 100 (Массив же будет очищаться постоянно)

У меня получились такие результаты:


Ваш тест я считаю некорректным, т.к. показан результат для одной итерации, а выделение памяти происходит на стеке.


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Вторник, 31 мая 2016, 13:05
Storm54Дата: Понедельник, 30 мая 2016, 12:47 | Сообщение # 9 | Тема: Обнуление массива
постоянный участник
Сейчас нет на сайте
Извините, конечно, но пишите вы, товарищи советчики, бред. Array.Clear подходит, но стоит понимать, что он очищает массив так же за O(N), где N - длина массива. Конечно, по производительности этот метод будет чуть быстрее, чем реализация с циклом, но по большому счету разница незначительна, т.к. внутри Clear тот же цикл, только без проверки на out of range при доступе к каждому элементу. new int[N] - вообще идиотское решение. Ладно, если память будет выделена на стеке - аллокация не займет много времени, хотя стоит помнить, что в управляемых языках, коим .NET (и его Mono реализация) и является, каждому элементу массива будет присвоено значение по-умолчанию (в данном случае default(int), т.е. 0). В итоге получаем аллокацию плюс Array.Clear внутри. Оно нам надо? Если же выделение будет происходить в куче, то это попросту приведет к дефрагментации памяти, что в свою очередь снизит производительность. Итог: юзать Array.Clear и стараться лишний раз не выделять память, а заранее создать один большой буфер, который будет использоваться во время всей жизни приложения.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Понедельник, 30 мая 2016, 12:52
Storm54Дата: Четверг, 31 марта 2016, 14:44 | Сообщение # 10 | Тема: [3D] Orange Cast
постоянный участник
Сейчас нет на сайте
Озвучка в видео-анонсе ужасная! Сначала голос вообще плохо слышно на фоне музыки, далее он все-таки становится более различимым. Так же "подростковость" голоса портит впечатление. Как я понял, по задумке, в видео пытались изобразить разные колонии, каждая из которых переживает свои проблемы, но на деле же получился какой-то обзор игры от разработчиков, состряпанный на скорую руку. А самое интересное, что в конце ролика, когда остается лишь черный фон, озвучка очень качественная! И, слушая, действительно хороший голос, я начинаю представлять происходящие события. Зачем же было его засовывать в самый конец? Ведь не многие досмотрят до туда - я, например, хотел выключить видео после трети увиденного.
Подведя итог, хочу сказать, что после просмотренного, у меня остались крайне неприятные впечатления: низкое качество видео подразумевает и низкое качество игры, даже, если картинка и хорошая (а она хорошая, хоть и простенькая), то вполне возможно, что оптимизация на никудышном уровне.

Конечно же, хочу сказать, что это лично мое мнение и я никоим образом не пытался оскорбить проект и ваше виденье на его счет. Я выразил свои мысли и, надеюсь, что некоторые вещи вы все-таки сможете почерпнуть.

И советую нанять профессиональных актеров, хотя бы для видеороликов.


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Четверг, 31 марта 2016, 14:50
Storm54Дата: Вторник, 29 марта 2016, 07:51 | Сообщение # 11 | Тема: Профессиональный композитор | Саунд-дизайнер
постоянный участник
Сейчас нет на сайте
Очень качественное исполнение! Буду признателен, если отправите прайс в ЛС

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Storm54Дата: Пятница, 15 января 2016, 07:37 | Сообщение # 12 | Тема: Вопрос-[ответ] по Unity.
постоянный участник
Сейчас нет на сайте
Цитата zisX ()
P.S. Но это все происходит на моем домашнем пк, мб я не так считаю?


Насколько я помню, в Photon Sever по-умолчанию выставлена небольшая задержка перед обработкой пакетов. Этот параметр можно изменить в конфиге сервера.


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Storm54Дата: Пятница, 15 января 2016, 07:30 | Сообщение # 13 | Тема: Округ 255. Секреты Бейцухе
постоянный участник
Сейчас нет на сайте
Дизайн уровней, конечно, сильно хромает, но посмотрим что получится.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Storm54Дата: Четверг, 07 января 2016, 18:21 | Сообщение # 14 | Тема: не переключаеться платформа
постоянный участник
Сейчас нет на сайте
Необходимо скачать пакет для сборки под определенную платформу. Самый простой способ - скачать unity installer с официального сайта, в нем должно быть все необходимое.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Четверг, 07 января 2016, 18:21
Storm54Дата: Четверг, 07 января 2016, 16:39 | Сообщение # 15 | Тема: Photon Server и Мир
постоянный участник
Сейчас нет на сайте
На клиенте может быть античит, который способен отследить инжект и прочие способы взлома. Другое дело, что модифицируя исполняемый код можно попросту удалить логику античита на клиенте, поэтому абсолютной защиты не существует. Нужно стараться критичные для игры элементы считать на сервере. Например, в World Of Tanks клиентам приходит вся информация о состоянии игрового мира, они же в свою очередь отсылают лишь клавиши управления. Но, если для танков такой подход вполне приемлим, т.к. они достаточно медлительны, то, скажем, для шутера, в котором, требуется мгновенный отклик, приходится использовать сразу несколько алгоритмов для создания иллюзии плавного движения всех объектов.

На самом деле это крайне сложная тема и нет универсального подхода для организации грамотной сетевой части в играх разного жанра.


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Четверг, 07 января 2016, 16:41
Storm54Дата: Четверг, 07 января 2016, 13:47 | Сообщение # 16 | Тема: Photon Server и Мир
постоянный участник
Сейчас нет на сайте
Конечно, правильней считать такие вещи на сервере. Лучше всего и движение клиента корректировать в случае серьезных расхождений.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Storm54Дата: Четверг, 07 января 2016, 10:39 | Сообщение # 17 | Тема: Какая операция быстрее SendMessage или GetComponent?
постоянный участник
Сейчас нет на сайте
SendMessage сам по себе является каким-то костылем и работает всегда медленней, чем GetComponent.
Лично я советую вообще его не использовать, т.к. рефакторинг с такими методами невыносим, да и отследить вызов в некоторых случаях достаточно проблематично.


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Четверг, 07 января 2016, 10:40
Storm54Дата: Воскресенье, 03 января 2016, 09:27 | Сообщение # 18 | Тема: Создание Хоррора в Unity 3d [5]. Линейка уроков.
постоянный участник
Сейчас нет на сайте
Зачем голос обработал? Слушать из-за этого невозможно.

Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Воскресенье, 03 января 2016, 09:31
Storm54Дата: Среда, 23 декабря 2015, 17:43 | Сообщение # 19 | Тема: Практикуете ли вы смешение С и С++?
постоянный участник
Сейчас нет на сайте
Цитата 8Observer8 ()
Идея в том чтобы использовать C# и Си.

Переключение между managed и unmanaged кодом не бесплатное.

Цитата 8Observer8 ()
Я думаю, это будет случаться крайне редко.

При написании простой логики и правда, вполне достаточно C#, однако, все обстоит иначе при работе с большими объемами памяти.

Цитата 8Observer8 ()
У C++ огромное количество проблем по сравнению с C#

Проблемы не в языке, а у тех, кто не умеет его использовать.
Сам по себе C++ не несет каких-то подводных камней, если не использовать хитрые конструкции языка. Выделил память, поработал с ней, освободил.
В C# же правила несколько усложняются: объект никогда не будет удален, пока к нему есть доступ, многие объекты используют дополнительные ресурсы, которые нужно освободить (обычно все такие объекты имеют реализацию интерфейса IDisposable). Тот же деструктор у объекта вызывается когда захочет GC, что тоже может поставить в тупик новичка.

По крайней мере у меня сложилось такое впечатление, т.к. я много лет писал на C++ и когда перешел на C#, то в первые месяцы все время натыкался на подобные ньюансы.

Цитата Storm54 ()
изобретаю язык, на котором задача описывается естественно, а затем его реализую

У Вас есть опыт коммерческой разработки или хотя бы опыт работы в команде? Ни в одном проекте не встречал более одного скриптового языка (аля LUA), каждый из которых был бы заточен под конкретную задачу.
А уж тем более, писать свой язык - слишком дорого и не в одной нормальной конторе на такое бы не согласились, если, конечно, этот язык не планируют использовать для сотен, а то и тысяч задач.


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.


Сообщение отредактировал Storm54 - Среда, 23 декабря 2015, 17:55
Storm54Дата: Пятница, 23 октября 2015, 13:50 | Сообщение # 20 | Тема: Как проверить столкновения
постоянный участник
Сейчас нет на сайте
Подробней можно узнать? Что из себя представляет объект?
Если луч, то естественно райкастом проверять, если же какой-то примитив, то можно overlap заюзать (а можно вообще написать тригонометрией)


Более 9 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity3D, PhotonServer
В основном помогаю с C++, C#
Пишите в Л.С.
Форум игроделов » Записи участника » Storm54 [331]
Страница 1 из 171231617»
Поиск:

Все права сохранены. GcUp.ru © 2008-2017 | Free GIF Animator Рейтинг