Антон @ Лялин: Он из коробки это и делает. Сядьте и почитайте про компановщики, все вопросы сразу отпадут потому как в билдере сцен есть предпросмотрщик и результат будет виден сразу наглядно и именно так же оно будет вести себя в программе.
Антон @ Лялин: я не совсем понимаю суть проблемы. Тебе нужно чтобы программа всегда была поверх любых окон или чтобы при запуски из idea она сразу была на глазах?
Антон: Онлайн игры это настолько непредсказуемая вещь в вайне из за своих частых обновлений которые могут внезапно загнать игрока в бан или доставить головной боли на ночь с фразой "какого хрена половины текстур нет, вчера же были". Поэтому думаю не зря, хотя это дело ТС, я просто поделился своим опытом и выводами после довольно долгого общения с wine.
Islam Ibakaev: докер универсален тем что это не виртуалка и он полностью избавляет от проблемы "dependency hell" и проблемы поиска репозитории или пакета нужной версии(с зависимостями).
Абстрактный пример: скачали вы программу "А" и поставили, она потребовала и потянула за собой MYSQL версии 1.0, все встало и работает. Тут потребовалась программа "Б", она требует зависимость MYSQL 2.5 и php 3. Тут возникает конфуз, программа "А" может работать только с MYSQL 1.0 и php 2. Решить проблему станет очень сложно. В случае с докером вы просто запустите параллельно контейнер с любой нужной версией MYSQL и PHP без каких либо проблем и поисков решений конфликта.
В общем если не знакомы с докером то крайне рекомендую потратить 1 вечер и изучить его, как он работает и в чем преимущества, затем посетить хаб с контейнерами и познать дзен осознав как раньше можно было жить без таких удобств.
По производительности в среднем потеряешь столько же сколько и при вайне. В плане стабильности и отсутсвия графических багов виртуалка выйграет, в плане легкости установки игр виртуалка тоже выйграет. Если комп не особо мощный то еще проще параллельно поставить винду. На винде только играть в такие вот особенные игры с которыми проблемы под линем.
Тирион Ланнистер: ненадо ничего писать. Все .class файлы пакуются в jar, запуск Main.class т.е. точка входа прописывается в манифесте. Дальше на выбор, если вы уверены что у пользователя точно установлена jre и она точно нужной версии то распростроняете прямо так. Если хочется красивее то делаете инсталяшку(которая просто распакует ваш jar в нужное место, распакует иконку рядом и сделает ярлык вида ''javaw -jar MyAwesomeApp.jar").
Если вы не уверены что у пользователя установлена JRE да еще и нужной версии то собираете native pack(по факту все тот же jar + JRE + MyAwesomeApp.exe который соберет за вас jdk).
Если тупо нужно получить ехе то берется какой нибудь Launch4j(или аналоги) и им делаете ехе с нужной иконкой, но учитывайте что если у пользователя нет явы то ничего не произойдет от слова совсем(хотя у каждого такого пакера есть свои фишки, к примеру при запуске ехе он проверяет установлена ли ява и какой она версии, и если что то не так то включает матюгальник в виде окна что так и так ставь яву да еще и такой версии а вот сюда можешь нажать чтобы перейти к скачиванию).
На практике говорю что идеальный вариант это native pack т.к. получите нативную прогу которая независит от ОС и установленных jre.
Janus74: 1) Про весь трафик у вас нет ни слова.
2) Софтварное, ок. Ставите на сервер mikrotik ROS, покупаете лицензию на него по необходимости.
- Делаете ограничения по трафику через очереди, топорно через скрипт который дергаете шедулером. Пример
- Для визуализации кто куда ходил и возможности ограничивать доступ к ресурсам и добавить кэширование, включаете штатный микротиковский вебпрокси, и указываете ip удаленного syslog сервера (к примеру WebProxy Log для просмотра, и WebProxy Log catcher как syslog сервер).
Если хочется заморочиться и написать под это все единую вебморду то вперед, у микротика есть штатный хороший api, работать с syslog одно удовольствие. Дело на недельку неторопливого быдлокода на коленке.
Janus74: 1. Боже мой, открой гугл и набери "squid квотирование трафика". Какой вопрос такой и ответ.
2. Купи циску или джуниора. Удовлетворен?
Я не могу понять либо ты слишком глуп и не понимаешь о чем тебе говорят либо не хочешь понимать и ждешь готового.
"Доктор у меня болит! Где болит? Ну болит, вы же доктор! Где болит!? Ну там вот доктор, я рукой показываю же !!! Пациент, вы мне позвонили и я не вижу и не понимаю где и что у вас болит. Ой все, вы все такие, сидят там дармаеды я ему говорю и показываю а они не помогают!!" (Рассказал реальный случай знакомый хирург)
Janus74: для того чтобы была проблема надо сначало ее найти, начните с малого, поднимите сквид, сделайте детализацию, получилось? Прикручивай к полученному шейпинг? снова получилось? Иди дальше пока не упрешься в конкретную проблему и уже с этой проблемой и конкретикой того что уже есть тебе подскажут как его решить, возможно будет проще попробовать что то совсем другое.
Сейчас ваш текст выглядит как: "Братва, мне вот тут хочется машину купить, хочу чтобы была тонированая, неверное мерин, обязательно хочу в нее панель от жигулей и надо бы еще кузов ибо навоз периодически вывожу, ах да еще надо пульт радиоуправления прикрутить через блютуз но от моего телевизора сони старого потому что там очень удобно сделаны стрелочки".
Будет конкретика, будет и совет, пока я не вижу ничего. Где топология сети, какие операционки юзаются, кто выступает шлюзом, какая конкретная цель все этого, кто будет пользоваться всей этой статистикой, куда вы там что натить собрались, что уже есть на данный момент и в чем проблема?
Вадим Егоров: коробка размером с обычный 2.5 дюймовый винт. Имеет дисплей и пару органов управления + переключатель в RO. Этим функционалом прямо на нем выбирается нужный iso(диски CD/DVD/BD)\ima(флоппик)\vfs(виртуальные фс RMD/DSK/VHD). Имеет 3 режима работы: CD-ROM + HDD,только CD-ROM, только HDD. Выбрав режим и образ получаем нужное. При подключении по e-sata получаем обычный винт подклюенный по sata =).
В общем крайне компактный и очень удобный убердевайс. Весь джентельменский набор таскаю именно на нем уже какой год. Место не просит, кушать(зарядки как телефон) тоже, все крайне безопасно и можно быть уверенным что при подключении к неизвестно с какой заразой ПК я могу пользоваться всем набором своих утилит в режиме RO не опасаясь что их кто то угробит(пошифрует или подкинет троянов). Надо любую ось поставить или загрузиться с нее, да не вопрос.
Airat1995: Precach\Preload каждый реализует сам в конкретном движке со своими хитростями, нет универсального способа или особых финтов в opengl на тот счет. В целом как я и выше писал, либо грузите все необходимое заранее до геймплея, либо грузите все в реальном времени и изобретаете велосипеды чтобы это было незаметно либо комбинируете оба способа.
По поводу мипмапов https://www.khronos.org/registry/OpenGL-Refpages/g...
Без LOD смысла нет, но лоды обязательно надо делать.
Airat1995: TBO если проще говорить это линейный буфер с не совсем известными данными(внутри может быть 1D\2D\3D\Cube и т.д.), никаких мипмапов или фильтраций нет, только хардкор. Мипмапы автоматически не генерируются, на этот счет от версии к версии opengl было и есть куча разных методов для генерации оных.
С IO надо исходить из задачи. Раньше когда видеопамяти и озу было не так много то часто хитрили и на лету грузили и выгружали ресурсы. Сейчас эта проблема остро не стоит, памяти везде много и она очень быстрая. Исключением может быть игра с бесшовным миром и огромным числом текстур. Если исключить такие миры то текстуры грузят не в реальном времени на лету а вначале при загрузке уровня загружают абсолютно все что понадобится для уровня(обычно называют прекэшем), по времени это опять же становится не критичным т.к. пока грузятся ресурсы игроку обычно показывают экран загрузки с нескучными картинками.
Намного больше времени,как правило, уходит на разработку алгоритма грамотного прекэша. Решают или в лоб путем статичного списка прекэша который точно не меняется на протяжении игры(текстура героя\оружия... в общем все то что на протяжении всей игры не меняется и будет почти на каждом уровне) и данимаческий список(текстуры присущие конкретному уровню, составляется обычно отдельной утилитой которая делает файлик со списком всех текстур на уровне). Динамический список при каждой смене\загрузки уровня сначала вычищается а потом на его место грузится новый. Такой подход в движке сорса и вообще почти в каждом.
Бывает что идут немного интереснее и эти списки составлют динамически на лету и также динамически асинхронно по этому списку все грузят и выгружают. Чтобы сделать этот процесс незаметным идут хитрым путем. Делают свой "велосипед" формат текстур в котором запекают мипмапы, располагают их в начале файла самый мелкий а в конце самые большие т.е. текстура в оригинальном разрешении. При необходиомсти загрузки асинхронно быстро грузится начало текстуры и сразу накладывается на объект(он получается мыльный) и по мере загрузки файла подменяют мипмапу на более качественную. Такой подход тоже много где используется, живой пример был и остается двиг UE3. В нем на компьюерах с малым количеством памяти\медленной памятью или медленным хардом можно наблюдать в реальном времени за этой загрузкой. Карта грузится очень быстро, затем включается рендер мира и все мыльное мыльное и в течении секунд на глазах все обрастает деталями, стоит поднять новое оружие как оно несколько секунд мыльное и вдруг резко становится красивым. У этого подхода к плюсам можно отнести более быструю загрузку, возможность делать огромные и бесшовные миры, возможность загружать огромные текстуры но все это прекрасно и красиво на очень мощных ПК или на более слабых с условием что игра не шибко динамичная а размеренно плавно медленная.