Задать вопрос
  • Как создать лаунчер для CS: GO?

    Макс Максимов: тогда тут не лаунчер нужен а совсем иная система. К примеру как раньше был устроен tf2lobby.
    1) Сайт на котором сделана аутентификация по Steam OpenID:
    -игрок авторизуется на нем
    -сайт получает информацию о игроке.
    -игрок выбирает лобби и подбираются союзники\противники.
    -после подбора игроков и выбора карты в БД сайта заносятся steamid игроков и имя лобби
    -где то на vds запускается свободный сервер с заданным режимом\картой\настройками
    -появляется ссылка на страничке по протоколу steam browser protocol вида "steam://connect/1.0.0.27:27015" при нажатии на которую запустится стим и нужная игра сразу с быстрым подключением на указанный сервер.
    2) На игровых серверах стоит sourcemod плагин который:
    -цепляется к БД сайта под своим уникальным ID.
    -ждет игроков.
    -при подключении игрока сверяет его steamid с тем который хранится в БД сайта конкретно для этого матча. Если совпадает то дает подключиться иначе дисконектит.
    -по оканчании матча выгружает в БД сайта статистику игроков к их учеткам.
    -сервер выключается.
    -срабатывает скрипт который любым удобным способом выгружает в файловое хранилище сайта демку матча(причем необходимо не обычное демо а сурствшное) и прикрепляет ее к истории и статистике матча и игроков.

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

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

    В целом сделать все это не так сложно, намного сложнее будет нарисовать шаблон сайт а его визуальную часть чем все эти внутренние кишки в виде запуска сервера, плагина к серверу и т.д.
  • Через что реализовать очень простую сетевую игру?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Есть и называется рефлексия. Но это очередной ужасный колхоз вокруг простейшей задачи. Есть и другой вариант в виде сериализации\десеарилизации но и это оверкилл для такой задачи. Один из самых простых способов с практически готовым видом я вам привел уже.
    Хочется изощриться так толкайте в сокет не строку а сразу байты опять же по принципу "номер_типа_пакета , опциональные_данные" потом также их разбирать, только тут еще желательно будет добавить какой нибудь волшебный байт перед пакетом и в конце чтобы понимать проще было где начало и конец.
    В примере что я вам дал выше в каком то смысле уже сделано то что вы хотели, если так хочется имя метода то вместо "число_идентификатор_типа_пакета" пишите "название_метода", смысла от этого не меняется.
  • Какой linux самый быстрый?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    VVVVVV dad: самый простой вариант тогда любой базовый дистр и легковесную DE. Тут на тостере много раз эту тему поднимали уже.
  • Что на чем пишут?

    jamakasi666
    @jamakasi666 Куратор тега Java
    freecoder-ru: используем много оборудования от"Системы промавтоматики", внутри ява.
    Используем атс siemens hipath 4000, внутри assistant конфигуратора ява.
    В некоторых железках еще более неизвестных тоже ява.
  • Что на чем пишут?

    jamakasi666
    @jamakasi666 Куратор тега Java
    4.Embedded (насколько я знаю используется не особо но можно)

    Очень даже используется.
  • Способы объединения удалённых офисов кроме vpn?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    athacker: ну на моей текущей работе если нам нужны каналы где нет нашей оптики то арендуем у рт\мегафона\теле2 волокно. Тоже самое и когда у нас арендуют, выделяем волокно, никакого активного оборудования не ставим, никаких вланов не делаем. Профилактику делаем сами и на арендованные волокна(рефлектометром по диаграмме и потерям), если что то становится подозрительным то звоним их инженеграм и там ребята довольно быстро устраняют косяки(где то у них там волокно закрутили или профилактику делали и плохо продули пигтейлы и т.д.).
    В общем зря вы так =) добрые люди еще не перевелись.
  • Способы объединения удалённых офисов кроме vpn?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    tartarelin: я прямо отсюда вижу как Вы соплями забрызгали свой монитор. Вот прямо сейчас откройте в своей Windows 8-10 "центр управления сетями и общим доступом" и сдается мне ваша челюсть пробьет дно до самого подвала от увиденного названия Вашей домашней сети "частная сеть".
    У вас абсолютно смыто понятие "частной(локальной\домашней\малой\приватной) сети" и "виртуальной сети".
    Если же почитаете еще раз предыдущий пост то внезапно обнаружите что я написал что:
    ...А именно "виртуальная частная сеть" как услуга кажется тоже была но стоила в несколько раз дешевле.

    и вновь сильно удивитесь.
    Могу даже сказать почему мы прибегли именно к "частной локальной сети", элементарно и просто, с ней у нас был шнурок с интернетом на фиксированной скорости и второй шнурок с "частной локальной сетью", в каждом шнурке была гарантировання скорость. В случае вашей "виртуальной частной сети" провайдер прямо в шнурок интернета давал и локалку(каким способом незнаю т.к. не пробовали и не проверяли) и достаточно было того что в договоре был пункт о том что скорость доступа по сети и в интернет делится с 1 канала и с 1 шнурка и зависит от нагрузки локалки и интернета по нему.
    Продолжать срач лично с вами на эту тему считаю бессмысленным, обосрались так обтекайте.
  • Способы объединения удалённых офисов кроме vpn?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    tartarelin: вы ненаходите что "частная локальная сеть" и "виртуальная частная сеть" абсолютно разные понятия.
    Василий Печерский: не факт что VLAN, ибо даже просто пинг между IP давал пинг в 60-70 мс, с услугой включенной пинг был 4-6 мс. Кроме того при подключении затянули отдельный шнурок именно с такой локалкой и мало того за отдельную цену предлагали апнуть скорость до гигабита. Быстрее поверю что просто выделили волокно и скросировали на своих узлах.
    А именно "виртуальная частная сеть" как услуга кажется тоже была но стоила в несколько раз дешевле.
  • Как лучше объединить филиалы?

    Дмитрий: про несколько канал на каждом тике в вопросе сказано не было.
    Pavel: опять же если нет нескольких каналов в каждом тике то смысла в OSPF тоже никакого нет.
    Если планируется все делать только на микротиках то можно еще глянуть на EOIP фирменный. EOIP может только RouterOS, вот если предвидятся что то другое то лучше GRE.
  • Какой аналог BGE (Blender Game Engine) стоит выбрать?

    Blyyya: Да что удобнее и проще то и используй. Лично мне как jav'исту больше импонирует Libgdx\JmonkeyEngine.
    Есть еще пара десятков движков, просто написал то что вспомнил сразу.
  • Пишу МиниОС на asm, не работает int 13h?

    Не могу помочь но снимаю шляпу если изучаешь такое. Уважуха.
  • Какую роль выполняет метод newInstance в Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    thatmaniscool:
    нет, сам метод .newInstance() тоже самое что и FooClass data = new FooClass();
    1) Фактически рефлексия дает очень много возможностей во время выполнения программы. Не только родителя а вообще полностью неизвестный класс и то что в нем.
    2) А так же удалять\изменять\переопределять и все прямо во время выполнения программы причем можно ковырять даже private методы и переменные.
    Соответсвенно данный метод( .newInstance() ) может создать экземпляр класса\объекта.
    Другой пример, к примеру рефлексией можно сделать некоторую защиту программ от взлома контролируя ей важный класс или метод на то чтобы он соотвествовал таким то критерям и виду.
    Рефлексия достаточно сложно в понимании на первый взгляд, но в тоже время крайне мощная и является одним из столпов всей джавы.
    Очень хорошая и простая статья.
  • Какую роль выполняет метод newInstance в Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    thatmaniscool: рефлексия довольно сложная и к ней лучше вернуться потом. В целом такие фишки используются для динамической работы с неизвестными классами. Т.е. к примеру можно так взять скомпилированный class файлик и работать с ним, посмотреть его методы, переменные и сделать его экземпляр. Можно к примеру залезть в класс и что то изменить в нем. Но это уже совсем глубоко.
    Банальный пример, к примеру ты пишешь библиотеку в которой хотелось бы взять заранее неизвестный класс и сериализовать его в json. Для этого ты делаешь такое вот фокус:
    ...
    public String serializeToJson(Class <T> type){
    //рефлексией ныряешь внутрь type и выцепляешь все объявленные переменные, их имена и значения.
    //К примеру получились полученные пары имя_переменной_в_классе и значение_переменной_в_классе обрабатываешь дальше и делаешь валидный_json
    return  валидный_json;
    }

    Провернуть такое с помощью интерфейса намного сложнее или невозможно.
    Дальше можно также и десериализовать по принципу
    ...
    public Class <T> deserializeFromJson(String myjson, Class <T> type){
    //рефлексией ныряешь внутрь type и выцепляешь все объявленные переменные, их имена.
    //К примеру получились полученные пары имя_переменной_в_классе
    //Создаешь через рефлексию экземпляр целевого класса type.newInstance() с "каким_то_именем"
    //Вытаскиваешь из json строки значение для каждой имя_переменной_в_классе
    //Засовываешь в экземпляр "каким_то_именем" значения полученных переменных
    return  каким_то_именем; //вернул экземпляр этого самого неизвестного класса наполненного данными
    }

    Как то так если пытаться объяснить на пальцах.
  • Разработка плагинов для minecraft, как практика Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Дмитрий Александров: Самое главное всегда, сначала напиши сам себе ТЗ с минимум функционала и потом уже реализовывай его не выходя за пределы ТЗ, а то часто бывает такое что начинает получаться и сразу хочется именно этот аспект делать и делать, потом понять что получилось плохо и переделать. Делай проще, не знаешь как делать почитай что это и как используется, сделай так и ни шага в сторону.
    Банальный пример, начинают писать код с целью сделать игру бомберман, делают отрисовку текстуры к примеру через awt, получилось но тут как бы захотелось ну например на GL это сделать, начинают делать снова на GL, опять получилось, потом захотелось еще и шейдер со светом прикрутить и т.д. . Так делать не надо ни в коем случае ибо в конечном счете забуксуешь на месте а проект для обучения так и останется с отрисованным одним полигоном без всего остального и делать станет уже лень т.к. захочется уже чтонить круче но и там будет ровным счетом тоже самое.
  • Разработка плагинов для minecraft, как практика Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Иван Мурашкин: Для обучения полезного лучше начать с java rush. Если хочется чего то "такого" то можно для практики писать классические игры с нуля типа тетрис\шашки\шахматы\спейс инвадерс\бомберман\марио и т.д. Потом можно снова сделать их же или что то сложнее уже с фремворком типа libgdx параллельно изучая подходы библиотек и их javadoc'ов.
    Майнкрафт это один огромный колхоз оббитый со всех сторон костылями. К нему если сильно хочется лучше вернуться позже когда будет среднее понимание языка и его тонкостей.
  • Lightweight socket library for java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Aleksey: в таком случае тащить любую либу не самое правильное решение ;)
  • Как отправлять/получать данные в TomP2P/Hive2Hive DHT между Android-узлами?

    jamakasi666
    @jamakasi666 Куратор тега Java
    А конечная цель какая? Получить аналог Torrent sync?