Суббота, 24 июня 2017, 06:32

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 1 из 181231718»
Форум игроделов » Записи участника » Storm54 [341]
Storm54Дата: Среда, 21 июня 2017, 06:08 | Сообщение # 1 | Тема: Сохранения
постоянный участник
Сейчас нет на сайте
Что и куда требуется сохранить?

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.
Storm54Дата: Среда, 14 июня 2017, 06:49 | Сообщение # 2 | Тема: Сцена
постоянный участник
Сейчас нет на сайте
Link
Первая ссылка в гугле, выданная на набор ключевых слов.


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


Сообщение отредактировал Storm54 - Среда, 14 июня 2017, 06:50
Storm54Дата: Понедельник, 29 мая 2017, 12:21 | Сообщение # 3 | Тема: [3D] State of War
постоянный участник
Сейчас нет на сайте
Решил написать здесь, т.к. уже больше двух лет работаю над подобным фреймворком, созданным как раз для реализации детерминированной игровой логики. И мой Вам совет: если действительно планируется что-то более-менее серьезное (хороший мультиплеер с большим количеством юнитов, реплеи, пользовательские модификации), то советую переписать все с нуля, пока не поздно, т.к. подобные изменения закладываются с самого первого дня разработки и позднее их внести будет попросту невозможно.

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.
Storm54Дата: Понедельник, 29 мая 2017, 12:15 | Сообщение # 4 | Тема: [3D] State of War
постоянный участник
Сейчас нет на сайте
Цитата EchoIT ()
в целом без ограничений. По факту - до тысячи, я думаю.

Как будете реализовывать синхронизацию такого количества юнитов в мультиплеере? Посмотрел стрим, чтобы оценить сетевую архитектуру. Детерминированной игровой логики (как во всех серьезных RTS) нет.


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.
Storm54Дата: Понедельник, 29 мая 2017, 07:15 | Сообщение # 5 | Тема: [3D] State of War
постоянный участник
Сейчас нет на сайте
Сколько действующих юнитов на карте планируется?

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


Сообщение отредактировал Storm54 - Понедельник, 29 мая 2017, 07:20
Storm54Дата: Понедельник, 22 мая 2017, 08:13 | Сообщение # 6 | Тема: Устроится кодером в 15 лет?
постоянный участник
Сейчас нет на сайте
Вопрос: Почему именно Вас должен выбрать потенциальный работодатель, исключив огромное количество совершеннолетних специалистов (в том числе с опытом и дипломированных), готовых работать на фулл-тайм?
Ответ: Вы обладаете уникальным опытом работы с определенной технологией, нужной работодателю; Стоимость Ваших услуги значительно ниже, чем у других кандидатов.

Если хотите устроиться на фулл-тайм, то разочарую: никто брать Вас не будет - это запрещено законодательством. На пол ставки опять же нанимать не выгодно - будет простаивать рабочее место.

Остается два варианта: фриланс и удаленка.

Фриланс, думаю, рассматривать в этом сообщении не нужно - все и так должно быть предельно ясно.

Удаленка:

Про Enterprise сразу можно забыть.

Если рассматривать какие-нибудь игровые студии, то это сильно зависит от уровня проектов конторы, в которую хотите устроиться. Есть конторы, выпускающие крайне простые игры, созданные за пару дней одним человеком.
Задача таких контор - наполнить платформу множеством проектов с рекламой.
Туда - да, можно устроиться, доказав свою способность разрабатывать нужные им продукты. Вашем случае будут рассматривать лишь вариант удаленной работы.

В более серьезных студиях услуги программистов на удаленке воспринимаются сомнительно по нескольким причинам:

1. В долгосрочной перспективе выгоднее нанять специалиста на фулл-тайм для основания собственной технической базы на производстве, если ее к тому времени еще нет.
2. Контакт сотрудников в офисе и на удаленке в разы сложнее из-за ненормированного рабочего дня у последних, разницы в часовых поясах, ограниченности в средствах коммуникации.
3. У сотрудников на удаленке меньше заинтересованность в успехе проекта.

Любом HR держит в голове еще десяток подобных проблем.

Это все в общих чертах.

А теперь конкретно ситуацию ТС:

Я посмотрел Ваши сообщения на форуме, так же внимательно отнесся к постановке вопроса в данной теме. Не хочу расстраивать, но у Вас ничтожно малые шансы на данный момент. Вы не представляете, как именно должна вестись разработка продукта, какие технологии используются для тех или иных целей. Так же обладаете крайне поверхностными знаниями во многих, важнейших для программиста, областях. И, мне кажется, не до конца понимаете, чем именно занимается программист, а так же, что от него ожидает работодатель. Если интересно, по каким сообщениям я пришел к такому выводу, то пишите здесь или в ЛС - с радостью отвечу.

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


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


Сообщение отредактировал Storm54 - Понедельник, 22 мая 2017, 08:50
Storm54Дата: Четверг, 18 мая 2017, 09:56 | Сообщение # 7 | Тема: error CS0029. Как так???
постоянный участник
Сейчас нет на сайте
Вроде ошибка совсем в другом месте. Например, класса RootMotion я не вижу

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.
Storm54Дата: Четверг, 27 апреля 2017, 07:47 | Сообщение # 8 | Тема: Оптимизация для веба?
постоянный участник
Сейчас нет на сайте
Так как наработок у тебя немного, то советую начать писать проект с нуля непосредственно под WebGL. Основные моменты оптимизации описаны в официальной документации. В подобных проектах основной проблемой становится контент, который должен быть приемлемого размера для комфортной игры. Так же стоит помнить, что весь код выполняется в одном потоке, что не позволит сделать плавную подгрузку контента без снижения FPS.

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


Сообщение отредактировал Storm54 - Четверг, 27 апреля 2017, 07:48
Storm54Дата: Четверг, 27 апреля 2017, 07:31 | Сообщение # 9 | Тема: Мне нужна ваша помощь
постоянный участник
Сейчас нет на сайте
Меня интересует, как будет организована защита от читеров: будет ли это исключительно авторитарный сервер или же более сложная система?

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


Сообщение отредактировал Storm54 - Четверг, 27 апреля 2017, 07:32
Storm54Дата: Среда, 26 апреля 2017, 13:29 | Сообщение # 10 | Тема: А как правильно писать код ?
постоянный участник
Сейчас нет на сайте
Цитата beril ()
очередное напоминание не юзать foreach

Не всегда foreach приведет к снижению производительности, т.к. компилятор подобные моменты неплохо оптимизирует.

Цитата ArtemS ()
общий код - очень просто запутаться, не знаю но может и обработка будет расти..так как каждый кадр в главном скрипте будет проходить тело всего прооекта..

Думаю, здесь нужно пояснить, что размер программы прямо не связан с производительностью. Все скрипты, лежащие в проекте юнити и так компилируются в одну сборку и загружаются целиком в память при старте приложения.
Так что не важно, в одном классе все описано или же в разных. При разработке архитектуры в первую очередь учитывается ее расширяемость, простота поддержки уже написанного кода.

Цитата ArtemS ()
хренова куча скриптов - как минимум больше памяти будет занимать, но подозреваю, что увеличится работоспособность, да и если грамотно реализовать структуру, то и не запутаешься..

Память, отведенная под код, будет занимать примерно столько же. Если же рассматривать каждый класс, как наследник от MonoBehavior, который вешается на GameObject в Unity, то это увеличит общее время апдейта, т.к. движок делает несколько проходов по всем объектам и вызывает соответствующие методы (Update, FixedUpdate и т.д.). Если писать свой менеджер, который будет делать тоже самое, то можно выиграть в плане производительности, опуская многие проверки, проводимые движком.

А вообще, судя по вопросам, я бы посоветовал прочитать про базовые вещи: как именно выполняется программа на более низком уровне, какие варианты организации памяти бывают, как загружается программный код. Все это не относится напрямую к Unity, но смогло бы дать ответ на подобные вопросы.


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


Сообщение отредактировал Storm54 - Среда, 26 апреля 2017, 13:33
Storm54Дата: Среда, 11 января 2017, 12:25 | Сообщение # 11 | Тема: OnGUI
постоянный участник
Сейчас нет на сайте
Можно воспользоваться новой системой GUI и там настроить масштабирование. Для Legacy GUI можно модифицировать матрицу (GUI Matrix), а можно просто домножить все числа в скриптах. В любом случае стоит определить, какое разрешение будет использоваться в качестве эталонного и для него настраивать все элементы, а коэффициент масштабирования высчитывать уже в рантайме (current resolution / reference resolution). Так же стоит определиться: будет ли учитываться соотношение сторон в разрешении и, если будет, то какая максимальная погрешность допустима. В зависимости от этого уже задавать порог коэффициентов. В зависимости от сложности элементов, может понадобиться создать несколько вариантов интерфейса, как, например, в Dota 2.

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


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

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

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

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


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


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

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.
Storm54Дата: Понедельник, 08 августа 2016, 06:28 | Сообщение # 14 | Тема: Независимый ребенок.
постоянный участник
Сейчас нет на сайте
Код
gameObject.hideFlags = HideFlags.HideInHierarchy;


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.
Storm54Дата: Суббота, 11 июня 2016, 10:48 | Сообщение # 15 | Тема: Как продвигаться на YouTube?
постоянный участник
Сейчас нет на сайте
Извини, конечно, но твою речь слушать невозможно. Найди диктора.

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

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


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

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


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.
Storm54Дата: Вторник, 31 мая 2016, 12:24 | Сообщение # 18 | Тема: Обнуление массива
постоянный участник
Сейчас нет на сайте
Код
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 (Массив же будет очищаться постоянно)

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


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


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


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

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


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

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

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


Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.


Сообщение отредактировал Storm54 - Четверг, 31 марта 2016, 14:50
Форум игроделов » Записи участника » Storm54 [341]
Страница 1 из 181231718»
Поиск:

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