Задать вопрос
  • Как лучше организовать обмен данными по сокетам между пользователями?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Проектируйте игру таким образом, чтобы требования по частоте обмена трафиком между игроками не превышали разумный пинг.
    Множество проектов загнулись, когда игра была критична к пингу, а из-за популярности и наплыва игроков, играть стало невозможно (тот же tetrisarena, где требовалось до нескольких раз в секунду обмен всего лишь между двумя участниками, начало загибаться, когда общий онлайн на сервере превысил несколько тысяч человек), видимо не успели развести игроков на несколько разных серверов, и на проект забили.

    В то же время, средний пинг на который следует рассчиывать - до 20 мс. в идеале до 10 мс. Вот и посчитайте что и сколько раз можно передать за такой промежуток, умножьте на количество игроков и сравните с аплинком к вашему серверу, сколько игроков он потянет.
    Ответ написан
    Комментировать
  • Как спроектировать авторитетный игровой сервер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    1. Никак. Но у многих игр есть определенный критичный пинг, выше которого играть некомфортно.
    Выход - изначально проектировать игровую механику таким образом, чтобы популярный пинг (до 10-20 мс) был более-менее комфортен.
    2. У вас немного каша даже в том смысле, как вы описываете игру. Это шутер, это реал-тайм стратегия, это симулятор? У каждого свои фичи, но даже 50 мс вполне достаточно, чтобы более-менее адекватно успевать отрисовку. В большинстве случаев клиент некритичные вещи отрисовывает сразу по действию, а получая ответ-подтверждение от сервера уже доделывает более критичные (например уменьшить жизнь можно сразу, а уничтожить корабль можно только после подтверждения от сервера).
    3. Конечно сервер должен регулировать действия. Все критичные вещи должны быть вычислены на сервере. Клиент может делать предупреждающие вычисления, которые дублируют то, что делает сервер, но только в плане отрисовки. Для этого алгоритм должен совпадать. Но подтверждение с сервера обязательно. Иначе такую игру взломать поддельными пакетами будет доступно любому школьнику.
    4. В МОБА играх всего 10 игроков. Между моментальной и быстрой синхронизацией уйма времени.
    Например игроку из России комфортно играть на русском и европейском сервере. А на американском пинг свыше 20-30 уже ВЕСЬМА заметен.

    Протокол конечно же UDP, какой же еще.
    Оптимизация - уменьшение трафика, максимально продумать что именно следует передавать, от этого отталкиваться в механике.
    Ответ написан
  • Java.Возможно ли передать в качестве аргумента метод?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Паттерн Executor
    в java есть класс https://docs.oracle.com/javase/7/docs/api/java/uti...
    Ответ написан
    Комментировать
  • Не запускается explorer в Windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Поищите сколько именно explorer-ов у вас в системе, удалите лишние, потому что должен остаться только один ( /Windows/explorer.exe
    Ответ написан
    Комментировать
  • Как вы боретесь с перфекционизмом?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Нужно научиться смотреть с правильного уровня абстракции.
    Это психологический момент, который определяет адекватность человека, а адекватность понимается "как человек способен оценить события заранее, и чем больше результат совпадает с тем, что он предположил, тем более он адекватен".

    Обычно для перфекционизма достаточно научиться видеть правильный уровень абстракции.
    Пример:
    Нужно сделать дизайн по макету.
    Уровни абстракции примерно такие:
    1. задротский - нужно сделать все до пикселя.
    2. технический - нужно сделать все по макету, чтобы соответствовало
    3. бизнес-уровень - нужно сделать, чтобы клиент был удовлетворен
    4. жизненный - нужно, чтобы работа была завершена в сроки, я получил ЗП, и мог накормить себя и семью
    5. философский - все тлен.

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    На облака проецируется легко.
    Второй вопрос - проецировать с нескольких точек. В месте пересечения лучей можно будет видеть картинку. На этом основываются некоторые из современных попыток сделать 3д изображение в воздухе. Но видно будет только по ночам.

    Самый дешевый и удачный способ - печатать облаками текст. Небольшой самолетик, генератор пара на 5 сопл, самолетик летит и за собой оставляет надпись. Можно больше сопл, тогда можно делать более красивые надписи, но конструкция усложняется, а из 5ти вполне можно уже писать слоганы и развивать стартап. Если раскрутиться, думать уже дальше (больше сопл, разные цвета). В безветренную погоду держится несколько часов, видно издалека.
    Ответ написан
    3 комментария
  • Что такое LF, CLRF и как с этим бороться?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Вы считаете себя программистом, и до сих пор не знаете что в Windows crlf а в Linux lf?

    Настройка в git существует изначально.
    Проблема переноса строк существует с тех пор, когда появился DOS и Windows со своей кодировкой. И чтобы сейчас не изобретали, эта проблема будет оставаться. Точнее не проблема, если есть конфиг.

    В общем ваше нытье удивляет. Технический долг есть не только в говнопроектах. Он есть в проектах любого уровня, включая железную архитектуру. Поэтому да, нужно учить и те вещи, которые исторически сложились, и полезно изучить историю их появления в использования, чтобы понимать почему от них не так легко избавиться, что они существуют уже 20-50-70 лет и никак не пропадают. Тогда будет проще жить и интуиция будет работать лучше.
    Ответ написан
    2 комментария
  • Что быстрее: 2 планки DDR3 или 4 планки DDR3 на FX-9370?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    На память выделено два канала, поэтому разницы между 4x8 и 2x16 особо нет.
    Ответ написан
    Комментировать
  • Вы что на самом деле не выключаете комп?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    Нормальный комп потребляет не так уж и много. Монитор только отключаю, когда ухожу.
    Без особой нагрузки - 20-40 ватт (с запущенным торрентом и всякими бэкапами по ночам).
    Перезагрузка - сугубо по причинам апгрейда или переноса. За год зависает ну может 1-2 раза, а бывает и годами не зависает. Ничего не глючит (windows). Просто не ставлю на комп всякий непроверенный шлак.
    Можете ходить в церковь, а можете заработать, заплатить налоги и электричество - это поможет гораздо больше и энергетике в том числе. Да и на солнечных батареях вполне можно уже жить.
    Ответ написан
    7 комментариев
  • В чем разница Тех. задания от Тех. спецификации?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Техническое задание - это то, что пишет заказчик, когда хочет получить продукт.
    Техническая спецификация - это то, что пишет производитель, описывая технические свойства своего продукта (размеры, различные параметры, материалы, функции, etc).
    Ответ написан
    Комментировать
  • Java backend как это работает?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    java backend представляет собой сервлеты - то есть приложения на java, которые выполняют различные действия по API запросам
    Такие сервлеты запускаются через сервер приложений, например tomcat.
    Разработка java backend идет на том же, на чем и любое приложение java
    Ответ написан
    Комментировать
  • Программирование автомобилей?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Программирование под автомобили? C#? Вы где-то видели автомобиль под управлением Windows?

    Чтобы найти толковую информацию, следует задавать толковые вопросы.
    Если вы хотите какие-то чипы программировать, то это инструкции этого чипа, то есть ассемблер.
    Ответ написан
    Комментировать
  • Как осуществить DDOS атаку на локальный компьютер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    DDOS делается не с одной машины на одну машину, а со многих машин на одну машину.
    В вашем случае вы просто создадите трафик, который не сможет перегрузить ваш канал.
    Ответ написан
    Комментировать
  • Контроль версий photoshop, есть ли?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Пробовали разобраться с автоматизацией через Action?
    Его можно повесить на сочетание клавиши, будете жать комбинацию, выполнять макрос.
    Ответ написан
    Комментировать
  • Как называется вещь, в которую можно положить жёсткий диск 3,5" и подключить к ПК через USB?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    Так и называется - IDE/SATA to USB
    есть решения как внешние (просто проводочки и блок питания).
    Есть карманы, которые вставляются в 5" разъем, а винчестер отдельно закручивается в картридж, и затем вставляется.
    Честно говоря, я перепробовал 3 разных кармана (mobile rack). При активном использовании (вставить-вынуть пару раз в неделю), у всех начинали отпадать разъемы через полгода использования, поэтому я забил на карманы, и пользуюсь USB конвертером. А сейчас вообще внешний USB винт купил
    Ответ написан
    Комментировать
  • Так как же все-таки правильно прикреплять домены и поддомены к хостингу, какой самый правильный способ?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    что такое NS записи? разберитесь с терминами.
    Правильно - А запись, чтобы по адресу mydomain.com вы попадали на нужный сервер (определялся верный IP)
    NS-сервер в записи указывает на NS сервера, которые будут отвечать тем, кто будет искать mydomain.com

    А то, что у вас apache на хостинге настроен криво, это уже другой вопрос. Apache поддерживает виртуальный хостинг, и на одном и том же IP могут висеть разные сайты. Как Apache настроен, так он и будет отвечать для неизвестных ему сайтов (выдавать дефолтный например)
    Ответ написан
    Комментировать
  • Внутренняя сеть, VPN и RDP подключение. Как?

    saboteur_kiev
    @saboteur_kiev Куратор тега Сетевое администрирование
    software engineer
    Пользуйтесь командой route
    Ответ написан
    Комментировать
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Один человек вполне может создать крутой проект, и таких проектов тысячи.
    Но на определенном этапе, он подключает дополнительных людей, делегируя им отдельные обязанности.

    Например Джон Кармак создал первый 3д-шутер, создал 3д-движок, создал множество уникальных технологий, касающихся 3д, но ему помогали делать другие вещи. Уровни, графику, маркетинг.

    Тот же фейсбук - да, его создал один человек, но как только FB вышел за пределы универа, над ним уже работали и дизайнеры и маркетологи...

    IMHO вопрос не нужен.
    Ответ написан
    Комментировать
  • ООП в высоконагруженных проектах считается устаревшим?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Если проект будет писать 1-2 человека за срок до месяца, то можно и функциональное программирование.
    ООП был придуман для того, чтобы сложный и большой проект, можно было грамотно и удобно разбить на части, которые работают максимально независимо друг от друга, и которые разрабатываются и поддерживается людьми, которые друг с другом почти не контактируют.
    ООП подход - как раз и обеспечивает архитектуру того, что уменьшается вероятность факапа от несогласованности действий.

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

    Все.
    Что же касается скорости работы - подходы тут вообще не причем, подходы влияют на скорость и удобство разработки и поддержки, а работа продукта непосредственно в продакшене зависит от криворукости.
    Ответ написан
    Комментировать
  • Кто знаком с платежными терминалами?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В полноценных системах легко использовать специальные сканеры штрих-кодов.
    Многие из них "вставляются в клавиатуру", то есть при считывании штрихкода, эмулируют нажатие цифр на клавиатуре, вводя в нужное поле код товара.

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