Задать вопрос
  • Сложно ли создавать 3D игры, какие знания нужны для создания 3D игр?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Знания нужны те, что соответствуют вашей роли в разработке игры. Если вы программист, то программирование. Если художник - арт, моделирование, дизайн, левел-дизайн, UI/UX. Если менеджер, то навыки управления. А если продюсер, то всего понемногу. И это не полный список.

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

    Сейчас, в 2019, для нормальной игры лучше брать уже готовый движок. Отлично подойдет Unity, заточенный под 3D, - это шедевр по современным меркам, даже не смотря на редкие кейсы неудобства. Еще можно Unreal. В любом случае, это гораздо дешевле, чем писать свой. Ну а так - дело вкуса, смотрите, сравнивайте, выбирайте, движков много, 2000-е годы уже прошли.
    Ответ написан
    Комментировать
  • Книги по созданию стратегий?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если вы хорошо понимаете основное ощущение, присущее стратегической игре, то этого достаточно. В остальном можно просто смотреть на готовые игры, книга не нужна.

    Кстати, сейчас мало кто делает чистые стратегии, потому что они уже сделаны. А быть вторым, третьим, точнее двадцатым на рынке - это явный провал. Делают смешение жанров, это позволяет хоть как-то выделиться, и появляется шанс на успех.
    Ответ написан
  • Почему не работает функция прототипа valueOf?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Согласно спецификации:
    1. Сначала JS честно пытается вызывать valueOf.
    2. И находит его, но не в объекте, а в прототипе. И тот valueOf устроен очень просто - возвращает сам объект.
    3. Далее происходит проверка на примитивность результата. Если да, то этот результат и будет использован. Но user2 - это объект, и он явно не примитивен, так что JS переходит к следующему шагу.
    4. А следующий шаг - проверить метод toString. Если он есть, и это функция, то взывать его.
    5. Потом также смотрим, что он вернул. Здесь ваш метод возвращает 10, то есть число, а это примитивный тип.
    6. Таким образом, этот результат и возвращается и передается для дальнейшей обработки оператором +.
    7. Последний шаг редко срабатывает. До него доходит очередь, если даже toString не смог вернуть примитив. В этом случае произойдет исключение.


    Иногда всё же можно добиться исключения, но это надо постараться. Пример:
    let o={toString:e=>e=>1}; //Переопределить toString, чтобы убрать строку
    console.log(+o);
    Ответ написан
    Комментировать
  • Кто то читает журнал Хакер?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Хабр
    Ответ написан
    Комментировать
  • Как проверить, что у массивов есть одинаковые элементы?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    У вас они не ассоциативные в примере.

    Если задача сравнить именно их, то эффективнее будет превратить один из них в ассоциативный (то есть в объект) и далее просто пробежаться по свойствам второго. Сложность алгоритма O(2*N) получается.
    function compare(arr1, arr2) {
      let obj1 = {}; //Превращаем arr1 в ассоциативный obj1.
      arr1.forEach(e=>obj1[e]=true);
      return arr2.some(e=>e in obj1);
    }
    console.log(compare(arr1, arr2)); //Результат
    Ответ написан
  • Развитие десктопных приложений?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зависит от задачи. К примеру, видомонтаж в браузере проблематично делать по техническим причинам, поэтому приложение. Игру делать в браузере хуже по причине сложности передать нужные ощущения. И так далее. Нужно отталкиваться от задачи, и затем уже выбирать адекватные инструменты и платформу.
    Ответ написан
    Комментировать
  • Почему валидация сработала не так как задумывалась?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Потому что задумка не соответствует реализации.

    К слову, довольно не красиво прилагать минимум усилий к тому, чтобы вас поняли, и намекать на то, что нужно прочитать код и телепатически догадаться о том, какая была цель и в чем проблема.
    Ответ написан
    7 комментариев
  • Как доработать данный код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    function removePreloader(){
      if (removePreloader.done) return;
      removePreloader.done = true;
      $('.preloader-wrapper').delay(100).fadeOut('slow');
      $('body').addClass('siteloaded');
    }
    
    $(window).on('DOMContentLoaded', function () {
      removePreloader()
    });
    
    setTimeout(removePreloader, 2000);
    Ответ написан
    3 комментария
  • Что такок хакатон?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Хакатон (вики)
    Если конкретное мероприятие, то читайте правила там же, на странице мероприятия.
    Ответ написан
    Комментировать
  • Какую БД выбрать для мобильной стратегии?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А при чем здесь БД?
    Используйте MySQL, как и раньше.

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

    Что касается распределенного хранилища, то есть хитрые варианты, когда данные хранятся на устройстве пользователя и сервера им доверяют. Это убирает жесткое требование репликации, и даже добавляет возможно разгрузить сами сервера, но в замен придется много программировать т.н. арбитражную систему по принципу "доверяй, но проверяй".
    Ответ написан
  • Как регуляркой проверять на пустоту?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Смотря что считать пустотой.
    Если это все пробельные символы, то примерно так: ^\s*$
    (Расшифровывается, как любое количество пробельных символов, даже нулевое, от начала и до конца строки).
    Ответ написан
    Комментировать
  • Можно ли определить, что сайт использует несколько языков с помощью PHP?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    С помощью PHP можно всё то же самое, что и руками.
    Например, дёргать ru.example.com или example.com/ru и т.д. Ну и заголовки пробовать, смотреть. Короче, на что фантазии хватит. Но 100% способа нет.

    Самый надежный (но не 100%) способ - написать скрипты по сложности аналогичные поисковым ботам, то есть просканировать весь сайт и проиндексировать его. И по словам определить, какие там языки использованы. Как вы понимаете, это очень сложная задача. Тем не менее, отвечая на вопрос "можно ли с помощью php...", могу сказать, что можно.
    Ответ написан
    Комментировать
  • Как закрыть XMLHttpRequest от общего доступа?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В дополнение к Сергей Соколов могу подсказать следующий этап: защита от кражи сессии. Это делается путем нумерации запросов. То есть каждый запрос передается число, которое на 1 больше предыдущего. Так что даже если кто-то украдет сессию и сможет ее использовать, у пользователя она протухнет и вы сможете показать ему ошибки рассинхронизации. И уже сам пользователь начнет искать злоумышленника.

    Хотя если сам пользователь является злоумышленником, причем умным и упёртым, то понадобится дальше наращивать защиту. Но это уже война снаряда и брони, а она, как известно, вечная, и выигрывает тот, у кого больше ресурсов и терпения.
    Ответ написан
    Комментировать
  • Много обещаний в ожидании?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Будет плохой дизайн кода.
    spoiler
    Насколько я помню, V8 падает, когда память JS превышает 2 Гб.
    Ответ написан
    Комментировать
  • Двумерный массив в виде шахматной доски?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    if((Math.floor(i*0.25)+Math.floor(j*0.25))%2 == 0) mas[i][j] +=1;
    Ответ написан
    1 комментарий
  • Какой процессор лучше взять?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Лучше взять такой, который подойдет к материнской плате. Из предложенных у всех разные сокеты. Ну и если собирать с нуля, то я бы тоже начал с материнской платы.

    Лично у меня уже лет 10 стоит i5 3570, точнее i5 3570K, но я так и не разогнал. Не жалуюсь. Был лучшим из холодных в свое время, и до сих пор не устарел.
    Ответ написан
  • Насколько перспективна смена профессии на разработчика С++?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А при чем здесь язык?
    Ведь не язык делает программиста программистом.

    Хотя С++ это отдельная история, но после года изучения этого языка плюс смежные области (архитектура компьютера, сети и пр.) можно легко перейти на любой другой язык. Таким образом, сам язык второстепенен, и более важным являются умение писать понятный (для других) код, документировать его, знать подходы и практики программирования, стили, парадигмы, математику, алгоритмы и пр. Плюс можете загуглить что-то типа "навыки программиста", чтобы понять, что требуется, кроме языка.

    Вообще здесь два крайних варианта (а истина где-то посередине):
    1. Если проблема выжить, то нужно сделать упор на пробелы в знаниях и навыках. И, как я сказал выше, это не только ЯП. Пожалуй, важным в такой ситуации будет качать софт скиллз, то есть умение работать в команде, общаться, договариваться, добиваться взаимопонимания, да и просто презентовать себя. Сюда же входит понимание трендов, так что ваш вопрос по идее отпадет сам собой.
    2. Если запас прочности большой, и проблема найти работу, которой человек будет заниматься всю жизнь, то нужно смотреть на то, что человеку нравится делать. Ведь профессионалом со временем можно стать в любой области. И это в любом случае даст нормальный доход. Но важно заниматься любимым делом, чтобы была мотивация и собственно счастье от работы и профессионального роста в ней.
    Ответ написан
    Комментировать
  • Как определить максимальную частоту процессора?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Характеристики процессора удобно определять с помощью утилиты CPU-Z.
    Ответ написан
    Комментировать
  • Как разблокировать порт 25 на ПК?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Полностью отключить Firewall (например, брандмауэр windows).
    Если не поможет, то дело не в ПК.
    Ответ написан