1) Портабельность программы (как минимум возможность переносить в любые папки в рамках текущей системы)
В рамках текущей системы - это как раз реестр лучше, потому что INI файл придётся таскать вместе с файлом программы. С другой стороны, INI легче перенести на другой компьютер. Но у меня там такая мелочь, что переносить на другой компьютер нет смысла.
Quote (trew)
2) Всегда можно подкорректировать настройки в том же блокноте , не запуская программу
В реестре так же просто отредактировать. Run > regedit > ветка "текущий пользователь" (или другая, например, "весь компьютер") > ключ Software (софт) > ключ - имя программы или производителя, потом просто параметры редактируешь. Продвинутый пользователь легко разберётся. А вот "чайник" вообще ни какие файлы настроек трогать не должен, а то сделает так, что программа вообще не запустится.
Quote (trew)
3) Нет лишнего мусора в реестре.
Ну от мусора ни как не избавишься. Впрочем, он никому не мешает... И потом, есть программы для чистки реестра. Или можно сделать специальную опцию в настройках программы...
Quote (trew)
4) Нет проблем с антивирями.
Ага. Чтобы создать файл в папке с программой, нужно получить доступ к записи в эту папку. Записать файл и записать ключ в реестр - разные вещи, и, думаю, пользователь скорее удалит программу, пишущую какие-то файлы, чем пишущую ключи в реестре... Я так думаю.
Про то, что антивирус проверяет поведение программы - я знаю. Просто не мог понять, что за поведение в данном случае не нравится DrWeb...
Вот что интересно: у меня в программе два окна. Одно изначально скрытое, на нём настройки, но создаётся сразу. В нём тоже производится чтение и запись в реестр, но его код я не убирал, т.е. на него антивирус не ругается.
Как я понял, ругается именно на запись в реестр чего-либо во время создания (create) или отображения (show) главной формы... Т.е. без предупреждения пользователя.
Всё, проблема решена. Просто не нужно ничего записывать в реестр во время создания/отображения главного окна. Если проверка выявляет отсутствие нужного мне ключа - он будет создан не сразу, а только тогда, когда пользователь зайдёт в настройки и сохранит их. Теперь по всем антивирусам чисто.
Я подозреваю, что под BackDoor.Click (именно click) подразумевается программа, которая сразу же, только запустившись (без ведома пользователя, точнее сразу после клика пользователем на её ярлык, например), записывает что-то в реестр. Но мне всё равно не понятно, какая связь между записью в реестр и "открытой задней дверью"... Т.е. как можно получить доступ к чему-либо, просто-напросто записав что-то в реестр?
Quote (Serg1971)
Вирусы ведь тоже пишут, обычно, с применением стандартных библиотек...
Ага, это вирусы "высокого уровня", которые лепятся в любом "конструкторе" за пару минут и также быстро распознаются.
Quote (PBPROG)
Пиши не в реестр, а в INI файл и антивирь не будет ругаться.
Это можно, но, мне кажется, реестр в данном случае будет удобнее.
Хм, а где основная идея игры? Для чего она, что в ней делать нужно? Чем будет оправдываться такое громкое название? Почему именно браузерная игра?
Quote (Lord135)
Действие игры
Какое действие? Будет сюжет?
Quote (Lord135)
до 60% делаю
Quote (Lord135)
в голове появляется новая идея, и игру беспощадно стираю
Жестоко. 60% - это же почти готово, зачем удалять? Лучше отложить до лучших времён, или вообще передать в добрые руки другого разработчика...
Quote (Lord135)
брошу, только не при первой трудности, а от новой идеи в голове...
А ты сначала придумай такую идею, которую сложно бросить. Ведь бросаешь-то из-за того, что придумываешь что-то гораздо лучшее, чем сейчас делаешь. Впрочем, не нужно сразу делать что-то лучшее. Лучше доделать до конца несколько небольших проектов...
Возникла такая проблема. Пишу одну свою программку, завязанную на сети, поэтому заливаю все файлы на свой сайт на Народе. Внезапно сайт заблокировали. Ясно, что в программе что-то намутил и у меня получился "вирус". Стал проверять. Сразу понял, что проблема - в алгоритме работы реестра, т.к. ничего другого такого серьёзного пока не добавлял. Методом научного тыка с помощью virustotal обнаружил примерное положение "вирусного" алгоритма. Алгоритм прост: проверяется наличие ключа моей программы в реестре, и если его там совсем нет - создают его и записывают стандартные значения (настройки программы по-умолчанию). Вся проблема в том, что DrWeb каким-то образом определяет этот кусок кода как BackDoor.Click.origin или BackDoor.Click.1279 (число точно не помню). Пробовал немного изменить алгоритм, но изменилось только последнее слово в названии вируса. Сразу скажу, что разрабатываю в Delphi, но от среды это, я думаю, не зависит - используется стандартный компонент со стандартными функциями, ничего особенного. Вот примерный код:
Code
if not reg.KeyExists('название программы') then begin reg.CreateKey('название программы'); reg.WriteString('download_path','C:\Downloads'); DownloadDir:='C:\Downloads'; reg.WriteBool('check_updates',false); reg.WriteBool('auto_download',false); end else begin reg.OpenKey('название программы',true); DownloadDir:=reg.ReadString('download_path'); checkingupdate:=reg.ReadBool('check_updates'); autoupdate:=reg.ReadBool('auto_download'); end;
Конкретно на это выдаёт BackDoor.Click.origin. На предыдущую версию (без keyexists, только openkey) выдавало что-то типа BackDoor.Click.1279... Так вот, что это за BackDoor.Click и почему мою программу принимают за него?
P.S. Как же мне надоели все эти антивирусы, которые принимают мои вполне нормальные программы за вирусы...
Ага. 100 пикселей в ширину и 3000 в высоту. Или 10 в высоту и 5000 в ширину. А может быть, пиксели шестигранные? Или треугольные, тоже вариант. Нужно предусмотреть все возможные модели мониторов! А ты подумал о пользователях, которые используют принтер вместо монитора?! Специально для них предлагаю сделать частоту 5 кадров в минуту.
Ну нет, все варианты не предусмотришь.
Quote (Serg1971)
Возможно наилучшим решением будет выставлять в игре разрешение рабочего стола, ведь обычно на рабочем столе люди выставляют самое комфортное для них разрешение. Как такой вариант?
Наверное, на нём игроки типа "Подключился к серверу и пошёл гулять. Пришёл под утро - вышел с сервера".
Обычно на таких серверах выкидывают за бездействие в течении пяти-десяти минут. Можно, конечно, бота сделать, чтобы он двигался. Но зачем? Чисто для "опыта" и "денег" на этом сервере? Вряд ли это кому-то нужно.
Quote (kukashka)
Я скриптер, но не такого большого уровня, да и и не смогу сложные функции реализовать...
А ты за сложные и не берись. Сделай сначала простые. А то, ничего не делая, опыта не наберёшься и сложного ничего не сделаешь. А простые потом можно улучшать. Да и вообще, прежде чем функции делать, нужно диз-док написать... Без диз-дока получится очередной слепленный из всякой всячины, попавшейся под руку, сервер, на котором мало кто будет играть и он развалится, в лучшем случае, через пару месяцев.
Хм... В играх, в которые я играл, видел в настройках только 4:3, 16:9 и 16:10 или просто список со всеми возможными; отдельно 1280х1024 и правда, встречал часто.
Quote (masb8ly-GC)
Или же не хватает скорости обновления оперативной памяти, поэтому она больше загружается!
Ну не знаю, не знаю... Если бы память обновлялась медленно, то игра бы работала медленнее, а не потребляла бы больше памяти. Память используется только под конкретные данные. По крайней мере, должно быть так.
Quote (masb8ly-GC)
Насколько мне известно подобные видеокарты не потребляют оперативную память в свою подкачку!
Ясно. Поэтому у меня GTA 4 идёт только на самом-самом минимуме.
HerrPotapov, я правильно понял, что для игры придётся бегать по городу, ища точки, на которых реально ничего нет (только в игре), а потом тупо играть в связанные с этой точкой мини-игры на том же устройстве? Интересно, сколько человек на это согласятся. И ведь придётся составлять карты (в смысле точки на картах с миссиями и всякой всячиной) для каждого города, где будут игроки, а потом ещё обновлять их каждый день, чтоб нескучно было... Это же море океан работы. Может быть, предложить игрокам самим давать задания другим игрокам? А сама система будет как бы платформой для свободной игры.
Quote (Uzzzer_V)
Скорее всего Android должен быть приоритетом!
Quote (HerrPotapov)
Uzzzer_V, на iOS больше платежеспособной аудитории (и не просто платежеспособной, а еще и привыкшей платить, в отличие от андроидщиков-халявщиков).
Какая разница, какая система, если, конечно, ты не собираешься продавать само приложение через AppStore или AndroidMarket - тут да, быстро взломают и раздадут всем халявщикам. Предлагаю если делать, то делать сразу на две системы.
Сообщение отредактировал TimKruz - Понедельник, 16 Апреля 2012, 17:57
За счет чего тогда у меня настолько низкое потребление памяти и высокое процессора в сравнении с вами?
Наверное, у меня видеопамяти не хватает, и автоматически используется основная.
Quote (Serg1971)
Если выставить одно разрешение 1024х768 - то на широкоформатниках картинка хреновая мягко говоря, если выставить разрешение для широкоформатных 1360х768, то соответственно на простых мониторах будет фигня.
Это ты перечислил форматы 4:3 и 16:9, а у меня, например, вообще 16:10... Сделай лучше в настройках выбор расширения.
У вас когда нибудь было такое чувство... вот вы на пол-года пропадаете, потом внезапно появляетесь и ради интереса читаете комментарии, которые вы писали раньше. Видите, какой неадекват и бессмыслицу вы писали, и думаете: "Какого хрена я это все чиркал?!" Вот сейчас, дорогие друзья, я впервые испытал это. Если у вас когда-то было что-то похожее, или просто хотите отписаться - прошу. Я очень хочу получить хотя бы чуть-чуть информации для этой темы =)
Не беспокойся, у меня, например, такое чувство всегда.
На предыдущей странице я показал скриншот с голубой водой... Я понял, откуда это, протестировав сразу после загрузки системы. Собственно вода:
И вот откуда она такая (выбор пользователя):
Мне кажется, что твой алгоритм генерации обращается не в ту область памяти, куда ему нужно обращаться...
Quote (Serg1971)
Да, я понял в чём дело.
Когда исправишь ошибку, пиши, я ещё протестирую.
***
Quote (masb8ly-GC)
Протестировал на своей NVidia GTX590 3Gb, вроде бы все отлично! Запускал несколько десятков раз, картинка все время одинаковая, ничего не меняется. Разрешение 1920х1536.
Ещё бы не отлично, с таким-то монстром... Одна твоя видеокарта стоит как весь мой компьютер плюс часть переферии.
Сообщение отредактировал TimKruz - Воскресенье, 15 Апреля 2012, 17:21
Зачем останавливаться на чём-то одном? Можно сделать freeplay (свободная игра, как хочешь - так и играешь) с DM/TDM аренами, функциями для гонок, функциями РП и мини-играми (видел такие серверы). Только, конечно, всё нужно делать по-порядку.
***
Quote (GameMix)
kukashka, в SAMP не играю, но в ДМ интереснее играть.
Для кого как. У всех свои вкусы. Я вот, например, не понимаю, почему у samp-rp аж 10 одинаковых RPG-серверов, на которых по 400-800 человек онлайн круглосуточно...
Сообщение отредактировал TimKruz - Суббота, 14 Апреля 2012, 18:05
TimKruz, - я бы предложил тебе ещё погонять тесты памяти если не трудно...
Давай, погоняю.
Во, сейчас ещё разок запустил твою программу, и, кажется, я что-то понял... Думаю, это должно тебе помочь... Смотри:
Это последний скриншот, только что сделал. Обрати внимание на левый верхний угол: в нём видны обрывки чёрных и красных букв, обрывки жёлтой таблички, сереньких картинок, и при этом много бледно-оранжевых квадратиков. Ещё не узнал?.. Перед запуском твоей программы я только начал писать это сообщение, но решил сделать ещё один тест и свернул Firefox. При этом в нём была открыта эта страница, а на ней твоё сообщение, вот его кусочек:
Как видишь, тут есть всё, что есть в текстуре на первом скриншоте. Вот так вот. В текстуру каким-то невероятным образом попал кусочек GCUP'а. Это гениально, генерировать текстуру из кусочков сайта.
*** Более того, я ещё два теста сделал, при чём перед вторым закрыл браузер, но текстура ни разу не изменилась, осталась абсолютно такой же. А, нет, вот ещё четвёртый раз запустил, теперь почему-то стёрлось (стало чёрным) эдак 90% текстуры, остальное осталось от предыдущих запусков:
Quote (Serg1971)
Мне бы твой комп - вот тогда бы я поработал!
Общие характеристики компьютера сказать? Вот:
Quote
ОС: Windows XP (5.1 сборка 2600); Процессор: Intel Core 2 Duo E6550 2.33 GHz (два ядра, естественно); Память: 2 ГБ; Файл подкачки: перед тестом было 590 МБ использовано, во время теста - примерно 1216 MБ (но это я измерил на фоне Firefox и Delphi 7); Версия DirectX: не поверите, но 10.0 (4.10.0000.18000), это я давно как-то поставил "DirectX 10 для XP", при чём, мне кажется, графика стала немного по-лучше, чем раньше; Видеокарта: NVIDIA GeForce 8600 GT 256 МБ.
Вообще, вот файл с системными данными из средства диагностики DirectX, если интересно.
Сообщение отредактировал TimKruz - Суббота, 14 Апреля 2012, 16:33
Это же для Flash? Не только с помощью Flash можно делать приложения для браузера. Можно на JavaScript (динамичные, в браузере, но весь код на лицо), PHP (серверные, выдают только результат).
Просто. Хочешь сделать кнопку: выводишь на экран полигон с текстурой кнопки. Ждёшь и отлавливаешь нажатие кнопки на окне. Определяешь, где был сделан клик, следовательно, по какой кнопке кликали (если кнопки неподвижные - просто математически проверяешь координаты точки на вхождение в полигон или фигуру другой формы, если подвижные - нужно учитывать ещё и положение в каждый момент времени). Всё. Можно ещё отлавливать отдельно нажатие и отжатие кнопки, чтобы сделать анимацию нажатия. Чек-боксы или радио-кнопки работают также, как и кнопка, только клик просто меняет их текстуру. (радио-кнопки группируются) Скроллы всякие лучше делать двумя отдельными полигонами - полоской и бегунком. Тут придётся отлавливать перемещение мыши при зажатой кнопке. Коробки с текстом - просто пустой полигон, поверх которого выводятся полигоны с буквами, если по нему был сделан клик и нажата буквенная клавиша. Курсор делается полигоном, привязанным к курсору (отслеживается любое перемещение), в то время как системный курсор выключен (есть такая системная функция).
Если твой язык программирования позволяет, всё это можно инкапсулировать в объекты, для удобства. Текст можно выводить отдельно, с помощью OpenGL-функций.
Сообщение отредактировал TimKruz - Вторник, 10 Апреля 2012, 20:34