Что лучше для двухмерной графики?
От: Green Chest Россия  
Дата: 06.10.08 12:26
Оценка:
Здравствуйте!

Обдумываю проект простенькой игры. Предпологается среда разработки — VS, язык Visual C++.
Предпологается полноэкранный режим работы, поддерживающий различные разрешения и форматы экранов (должно легко масштабироваться).
Вся графика двухмерная, спрайтовая. Т.е. просто есть набор маленьких картинок, из них мы формируем одну на весь экран. Но таких слоёв будет много (одна картинка сформированная из спрайтов, потом местами с прозрачностью накладываются ещё спрайты, поверх ещё и потом ещё).
Никогда не работал с графикой (выводил на экран картинку с помощью DirectDraw и рисовал на Canvas у визуальных компонентов в Delphi).
Подскажите что вообще использовать для работы с графикой: для вывода сформированных из спрайтов изображений на экран и для формирования самих картинок из спрайтов?

Что я думаю по этому сам:
Для вывода графики:
Почитал я про OpenGL, так как я понял (возможно плохо читал, ткните хорошими ссылками) он используется исключительно для 3d графики и его использование для двухмерной будет извращением (какие-то страшные вещи с расположением объектов в пространстве, с освещением — мне этого всего не нужно), но бибилиотеки эти есть и под win и под *nix, это плюс.
DirectDraw — я так понял это виндовский механизм для быстрой работы с видеопамятью, я неможко с ним поковырялся, сделал что-то типа слайд-шоу, но так толком и не понял как с его использованием можно делать нечто серьёзное (читал на firststeps.ru, перед этим вообще что это такое где-то ещё читал (куда поисковик показал)).
Что ещё можно использовать? Как работаете с графикой вы?
Для подготовки картинок из спрайтов:
В винде с GDI... очень медленно... Но как иначе? У меня есть bmp-шки допустим размерами 16х16 точек, а мне из нужно быстро собирать картинки 1200х1024, да ещё и с масштабированием, накладывать одни на другие с прозрачным цветом и вообще с прозрачностью (просвечивающие)...
Подскажите пожалуйста, как это по-людски делается?

Вся работа с графикой у меня сводиться к следующему:
из маленьких bmp-шек собираю картинки (сразу масштабирую или потом, когда уже собрал),
накладываю их одну на другую с разными настройками "прозрачного" (которого не будет вообще) цвета и с общей прозрачночтью (всех цветов, чтобы под верхней картинкой просвечивала нижняя),
рисую это всё на экране.

Буду рад советам, ссылкам, рекомендациям и пинкам, направляющим на верный путь — как сделать чтобы это было красиво для глаз пользователя в конечном итоге и чтобы работало быстро (не супер быстро, но не как с GDI).

Большое спасибо.
Re: Что лучше для двухмерной графики?
От: Сергей  
Дата: 06.10.08 13:08
Оценка: 3 (2) +3
Здравствуйте, Green Chest, Вы писали:

GC>[SKIPPED]


DirectDraw — устаревшая технология, современная двумерная графика делается на Direct3D/OpenGL. Прошли те времена, когда прямая работа с видеопамятью и фреймбуфером для вывода спрайтов была быстрее вывода текстурированных треугольников.

Рекомендую обратить взор на SDL — кроссплатформенную библиотеку для разработки игр и им подобных программ. Предоставляет библиотеки для работы с вводом (клавиатура, мышь, джойстик), звуком, сетью, помимо этого есть кроссплатформенный способ инициализации OpenGL. Есть и способ вывода графики в стиле DirectDraw, но, как уже было сказано, при наличии 3D-ускорителя это использовать бессмысленно. Если не выходить за рамки предоставляемого библиотекой API, программа может быть портирована на Linux и MacOS путем простой пересборки.
Re: Что лучше для двухмерной графики?
От: WolfHound  
Дата: 06.10.08 13:57
Оценка: 2 (1)
Здравствуйте, Green Chest, Вы писали:

Direct3D или OpenGL без вариантов. С видюхой гоняться совершенно не реально. Даже если она дешовая и встроеная.
Натягиваешь текстуру на 2 треугольника и получаешь масштабирование, повороты, альфу,... с сумашедшей скоростью.
Освещение и тп можно не использовать.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: Что лучше для двухмерной графики?
От: nen777w  
Дата: 06.10.08 15:50
Оценка: 2 (1)
Не повторяй мою ошибку. Бери сразу OpenGL. Я начал писать игру на SDL потом начали вылезать такие задачи как клиппинг (написал свой клипер), потом игровая логика, потом большие куски перерисовки. И в какой то момент времени всё это хозяйство начало подтормаживать, а хотелось ещё и ещё навернуть. В результате начинаешь понимать что в этих рамках больше сделать ничего не получиться.
Благо писал всё за своим интерфейсом, так что переход на OpenGL сделал за несколько дней.
Вылезли правда другие проблемы, например я так и не сделал до сиих пор blur эффект, потому как ориентируюсь на слабые карты, но зато аппаратное ускорение, дало больше возможностей. От SDL в проекте осталась только системная прослойка (клавиатура, мышь, главное окно).
Re[2]: Что лучше для двухмерной графики?
От: Green Chest Россия  
Дата: 06.10.08 16:14
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Direct3D или OpenGL без вариантов. С видюхой гоняться совершенно не реально. Даже если она дешовая и встроеная.

WH>Натягиваешь текстуру на 2 треугольника и получаешь масштабирование, повороты, альфу,... с сумашедшей скоростью.
WH>Освещение и тп можно не использовать.
Спасибо, что не прошли мимо. Так вот, мне самому хочется на OpenGL это сделать... Но во-первых я ничего подобного не могу найти нигде, во-вторых смущает само действо — вы предлогаете организовать некое псевдо-2d и использовать объёмные объекты, их текстурирование для 2d графики.

Михаил Фленов в "DirectX и C++ Искусство программирования" (2006-ой год!) пишет (см. стр. 47) что когда DirectX используется для вывода уже готовых изображений (а у меня такой случай и есть — я формирую сразу из спрайтов несколько картинок — а потом их уже надо одну на другой показать на экране), то "тяжеловесный Direct3D" использовать не имеет смысла, а куда выгоднее использовать "DirectDraw и его интерфейс IDirectDraw" (хоть и оговаривается что DirectDraw стар, но при том в нём есть всё необходимое). Далее в книге он хорошо объясняет как выводить спрайтовую графику с его использованием и с прозрачностью примеры показывает, когда.
Я сколько ни читал, в инете везде, где нашёл что-либо про OpenGL идёт работа с исотничками света, вращением, расположением объектов в пространстве, туманами, какими-то причудливыми отражениями одних объектов в других, фантастическими тенями и прочим... Я пытался найти как создать просто плоскость и применить на ней готовую текстуру (что кстати не избавляет нас от каких-то мучительных собираний спрайтов в одну готовую картинку) — с использованием DirectDraw я дня за два разобрался и сделал это, а вот с OpenGL — я даже близко никаких примеров найти не могу, на нём я так понял вообще никто подобного не делает и никому этого не нужно, а используют что-то иное для 2D. Но вот что...
Помогите мне пожалуйста, покажите (или дайте ссылки), как мне выводить готовые картинки на OpenGl или Direct3D c наложением одна на другую с прозрачностью всех цветов и использованием польностью прозрачного цвета (фонового) и как делать анимацию поверх этого.
Хоть что-нибудь!

Перво на перво стоящая задача до идиотизма проста:
Есть массив однобайтных целых допустим 75х64 (двумерный он), заполнен некими значениями. Есть 256 картинок, они уже в памяти, в удобном для дальнейшего использования виде, в отдельном классе, отвечающим у меня за работу со спрайтами.
Заполнить экран спрайтами, соответствующими значениям массива, если array[0][0] равно 0, то берём из класса нулевой спрайт, его масштабируем до размера (текущая_ширина_экрана/75) — таким образом формируем картинку.
Это первый слой. Земля, вода всякая.
Дальше поверх этого слоя делаем второй слой — травинки, зверинки, лесинки-осинки — спрайты-то квадратные, поэтому часть этого слоя должна быть полностью прозрачной.
Дальше ложим третьи слой — главный герой и его друзья (тоже спрайты, тоже местами полностью прозрачны).
И наконец, ложим четвёртый слой — всякие затемнения, помутнения поверх (аля туман войны) всего этого — теперь мы используем частиную прозрачность.
А ещё надо выделить героя моргающим, меняющим цвета кружочком.
Я знаю как это всё сделать с исп. DirectDraw (что не знаю, то написано у Михаила Фленова в книге).
Но мне не нравится DirectDraw, блокирование кусков памяти для прямой с ними работы, отсечение не влазящих поверхностей и прочие странности... Да и это решение под винду лишь.

Помогите примитивнейшим образом это сделать на OGL. Хоть какие-то наброски, ссылки, советы.
Спасибо.
Re[2]: Что лучше для двухмерной графики?
От: Green Chest Россия  
Дата: 06.10.08 16:16
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Не повторяй мою ошибку. Бери сразу OpenGL

Спасибо огромное за ответ.
Потом:
Да, я вот всё на эти библиотеки слюни и пускаю, но блин, не могу я разобраться, как мне с 2d работать. Она заточена под страшные вещи (освещение, тени, вращение-размещение объектов) — а мне нужно-то в три слоя картинки спрайтов нарисовать и на них юнитик один кружочком маргающим выделить.
За два дня я разобрался с DirectDraw и смог хотя бы картинки рисовать на нём, но OGL!!! Даже примеров какого-нибудь псевдо что-ли 2d (смешно, раньше делали псевдо 3d, а сейчас вот мне в другой ветке тут предлагают делать объёмные фигуры и их одной текстурированной гранью показывать) не могу найти...
Я в соседней ветке этой темы
Автор: Green Chest
Дата: 06.10.08
написал, ответьте пожалуйста там.
Re[2]: Что лучше для двухмерной графики?
От: Green Chest Россия  
Дата: 06.10.08 16:26
Оценка:
Здравствуйте, Сергей, Вы писали:

С>DirectDraw — устаревшая технология, современная двумерная графика делается на Direct3D/OpenGL.

Делается? Вы умеете У меня нифига не делаются Помогите примерами, в соседней ветке этой темы
Автор: Green Chest
Дата: 06.10.08
подробнее описал и попросил. Офисный софт (эконом., бух.) в моих руках делается вроде хорошо (значит ближе к плечам они у меня растут, что в свою очередь значит, что я смогу наверное понять ваши примеры и советы (мб ссылки)), а свою детскую мечту — простенькую игрушку не могу сделать исключительно из-за того что не могу нормально осуществить работу с 2d графикой.

С>Прошли те времена, когда прямая работа с видеопамятью и фреймбуфером для вывода спрайтов была быстрее вывода текстурированных треугольников.

Хм, а чем вы руководствуетесь? Я сам с графикой не работал, только пару дней разбирался с DirectDraw и день с OpenGL, но вот читал книгу Михаила Фленова в 2006-ом году вышедшую, где он писал, что DirectDraw для 2d значительно выгодней, чем Direct3D. Я подробно описал это другому участнику обсуждения, давшему подобные вашим рекомендации, в соседней ветке этой темы
Автор: Green Chest
Дата: 06.10.08
, ответьте пожалуйста там.

С>Рекомендую обратить взор на SDL — кроссплатформенную библиотеку для разработки игр и им подобных программ.

Спасибо, обратил
Re[3]: Что лучше для двухмерной графики?
От: WolfHound  
Дата: 06.10.08 17:30
Оценка: 3 (1)
Здравствуйте, Green Chest, Вы писали:

GC>Я сколько ни читал, в инете везде, где нашёл что-либо про OpenGL идёт работа с исотничками света, вращением, расположением объектов в пространстве, туманами, какими-то причудливыми отражениями одних объектов в других, фантастическими тенями и прочим... Я пытался найти как создать просто плоскость и применить на ней готовую текстуру

Да ладно.
Нашол за несколько кликов.
http://www.opengl.org/resources/code/samples/redbook/

GC>(что кстати не избавляет нас от каких-то мучительных собираний спрайтов в одну готовую картинку)

Что там мучительно натянуть текстуры на треугольники?

GC>- с использованием DirectDraw я дня за два разобрался и сделал это, а вот с OpenGL — я даже близко никаких примеров найти не могу, на нём я так понял вообще никто подобного не делает и никому этого не нужно, а используют что-то иное для 2D. Но вот что...

OpenGL или D3D.
Вот например: http://www.enkord.com/games/clashnslash/download/
Работает на сколько я понял через Direct3D. Если что yxiie поправит.
С какой скоростью это бы работало если бы это попытались сделать через DDraw лучше не думать.

GC>Есть массив однобайтных целых допустим 75х64 (двумерный он), заполнен некими значениями. Есть 256 картинок, они уже в памяти, в удобном для дальнейшего использования виде, в отдельном классе, отвечающим у меня за работу со спрайтами.

Загоняешь эти картинки в одну (или несколько если в одну не влазят) текстур.
И загружаешь это один раз в видео память.

GC>Заполнить экран спрайтами, соответствующими значениям массива, если array[0][0] равно 0, то берём из класса нулевой спрайт, его масштабируем до размера (текущая_ширина_экрана/75) — таким образом формируем картинку.

Скармливаешь видюхе треугольники с правильными координатами и текстурными координатами и все.

GC>Дальше поверх этого слоя делаем второй слой — травинки, зверинки, лесинки-осинки — спрайты-то квадратные, поэтому часть этого слоя должна быть полностью прозрачной.

Замечательно.
Делаем также только текстуры с полупрозрачностью.

GC>Дальше ложим третьи слой — главный герой и его друзья (тоже спрайты, тоже местами полностью прозрачны).

Таже фигня.

GC>И наконец, ложим четвёртый слой — всякие затемнения, помутнения поверх (аля туман войны) всего этого — теперь мы используем частиную прозрачность.

Тоже самое.

GC>А ещё надо выделить героя моргающим, меняющим цвета кружочком.

Делаешь текстуру с кружком и...
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Что лучше для двухмерной графики?
От: WolfHound  
Дата: 06.10.08 17:37
Оценка: 2 (1)
Здравствуйте, Green Chest, Вы писали:

GC>(смешно, раньше делали псевдо 3d, а сейчас вот мне в другой ветке тут предлагают делать объёмные фигуры и их одной текстурированной гранью показывать)

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

И не объемные фигуры, а просто 2 треугольника.
Или вобще один. Но тут текстура будет не экономно расходоваться.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Что лучше для двухмерной графики?
От: Green Chest Россия  
Дата: 06.10.08 17:58
Оценка:
Здравствуйте, WolfHound, Вы писали:
WH>Да ладно.
WH>Нашол за несколько кликов.
WH>http://www.opengl.org/resources/code/samples/redbook/
Да ладно

GC>>(что кстати не избавляет нас от каких-то мучительных собираний спрайтов в одну готовую картинку)

WH>Что там мучительно натянуть текстуры на треугольники?
Дак ведь не одна текстура, а спрайты... Не представляю вообще как это будет.
Ладно, уйду смотреть ссылки, как насмотрюсь — вернусь.

GC>>А ещё надо выделить героя моргающим, меняющим цвета кружочком.

WH>Делаешь текстуру с кружком и...
Так есть возможность накладывать много раз текстуры на текстуры?
Re[5]: Что лучше для двухмерной графики?
От: Cyberax Марс  
Дата: 06.10.08 18:03
Оценка: 3 (1)
Здравствуйте, Green Chest, Вы писали:

WH>>Делаешь текстуру с кружком и...

GC>Так есть возможность накладывать много раз текстуры на текстуры?
Да, расширение GL_ARB_multitexture.
Sapienti sat!
Re[3]: Что лучше для двухмерной графики?
От: WolfHound  
Дата: 06.10.08 18:09
Оценка:
Здравствуйте, Green Chest, Вы писали:

GC>Михаил Фленов в "DirectX и C++ Искусство программирования"

Достал книжку. После прочтения законов "оптимизации" становится ясно что автор "крутой хацкер" в худшем смысле этого слова.
Причем он временами пишет правильные вещи и тутже на следующей строке полный бред.

Да и просто такое колличество книг по разным темам да еще и "глазами хакера" мягко говоря наводит на мысли...
http://yandex.ru/yandsearch?text=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB+%D0%A4%D0%BB%D0%B5%D0%BD%D0%BE%D0%B2++&amp;stpar2=%2Fh1%2Ftm1438%2Fs1&amp;stpar1=%2Fu0
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: Что лучше для двухмерной графики?
От: WolfHound  
Дата: 06.10.08 18:13
Оценка: 2 (1)
Здравствуйте, Green Chest, Вы писали:

GC>Дак ведь не одна текстура, а спрайты... Не представляю вообще как это будет.

А спрайт это текстура натянутая на 2 треугольника.

GC>Так есть возможность накладывать много раз текстуры на текстуры?

1)Есть.
2)Можно и не накладывать. Просто рисуешь еще 2 треугольника поверх.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: Что лучше для двухмерной графики?
От: Рома Мик Россия http://romamik.com
Дата: 06.10.08 19:46
Оценка: 2 (1) +1
Здравствуйте, Green Chest, Вы писали:

GC>Обдумываю проект простенькой игры. Предпологается среда разработки — VS, язык Visual C++.

GC>Предпологается полноэкранный режим работы, поддерживающий различные разрешения и форматы экранов (должно легко масштабироваться).
GC>Вся графика двухмерная, спрайтовая.
Могу предложить посмотреть на hge Получаешь аппаратное ускорение через DirectX8, очень простой интерфейс, разобраться с которым можно за пару часов, а с другой стороны при желании всегда можно чуть влезть под капот (хотя совершенно не обязательно)

Разбираться сейчас с OpenGL и Direct3D, когда уже хочется писать игру — нафига? Тебе чего хочется, разбираться или игру делать? Кстати пока сделаешь многие вопросы сами собой закроются.
Re[3]: Что лучше для двухмерной графики?
От: nen777w  
Дата: 06.10.08 22:52
Оценка: 3 (1)
Ну ты ошибаешься что на OGL никто ничего не делает.
Во первых, OGL позволяет кроссплатформенность, это не маловажно, по карйней мере для меня.
Во вторых. Не хочеится разбираться со API возьми уже готовый движок, например OGRE (он умеет рисовать и OGL и DX9)
В тpетьих. Если тебе нужно только 2D. Вот простой пример, настройки ортогональной проэкции с (0,0) в верхенм правом углу:

Что бы понять код достаточно заглянуть в MSDN и почитать справку. Всегда помни что OGL это машина состояний.

    glShadeModel(GL_SMOOTH);

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glClearDepth(1.0f);

    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

     glOrtho(0, width, height, 0, -1, 1);
    glViewport(0, 0, width, height);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();


В чётвёртых. Для понимания как работает OGL и как пользоваться ней. Вот тебе уроки от NeHe

p.s.
Блин поздно то как... Пальцы заплетаются, пойду спать.
Re[4]: Что лучше для двухмерной графики?
От: Green Chest Россия  
Дата: 07.10.08 04:47
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Green Chest, Вы писали:


GC>>Михаил Фленов в "DirectX и C++ Искусство программирования"

WH>Достал книжку. После прочтения законов "оптимизации" становится ясно что автор "крутой хацкер" в худшем смысле этого слова.
Законы оптимизации там вполне нормальные, банальные так скажем.
Но, про список книг "глазами хакера" и вообще про книгу — действительно видно, что не профессионал этого дела пишет.

Так же вы писали:
"Вот например: http://www.enkord.com/games/clashnslash/download/
Работает на сколько я понял через Direct3D. Если что yxiie поправит.
С какой скоростью это бы работало если бы это попытались сделать через DDraw лучше не думать."
Увы и ах, программа запустившись и показав чёрный экран намертво вешает ОС (под VMWare запускал, в winXP prof sp2, half-life 2 работает кстати под ней)...
Re[2]: Что лучше для двухмерной графики?
От: Green Chest Россия  
Дата: 07.10.08 04:51
Оценка:
Здравствуйте, Рома Мик, Вы писали:

РМ>Могу предложить посмотреть на hge

Спасибо. Очень впечатлило, буду смотреть подробней.
Re[3]: Что лучше для двухмерной графики?
От: 8bit  
Дата: 07.10.08 07:48
Оценка: 2 (1)
Здравствуйте, Green Chest, Вы писали:

GC>Помогите примитивнейшим образом это сделать на OGL. Хоть какие-то наброски, ссылки, советы.


http://gpwiki.org/index.php/OpenGL_Tutorial_Framework:Ortho_and_Alpha
и плюс весь гугл у ваших ног .
Re[3]: Что лучше для двухмерной графики?
От: Сергей  
Дата: 07.10.08 08:15
Оценка: 2 (1)
Здравствуйте, Green Chest, Вы писали:

GC>Делается? Вы умеете У меня нифига не делаются


Делал простенькую игрушку, на OGL.

GC>Помогите примерами, в соседней ветке этой темы
Автор: Green Chest
Дата: 06.10.08
подробнее описал и попросил.


Могу только погуглить чего-нибудь, на большее просто времени нет.

GC>а свою детскую мечту — простенькую игрушку не могу сделать исключительно из-за того что не могу нормально осуществить работу с 2d графикой.


Может, в таком случае проще взять готовый движок?

С>>Прошли те времена, когда прямая работа с видеопамятью и фреймбуфером для вывода спрайтов была быстрее вывода текстурированных треугольников.

GC>Хм, а чем вы руководствуетесь?

Современные (начиная с четырех-пятилетней давности) видеокарты очень быстро рендерят треугольники, с текстурой и альфа-каналом. При этом на борту несут достаточное количество памяти для полной загрузки всей нужной растровой графики. Реализация даже простейшего альфа-канала мощностями CPU через DirectDraw будет в десятки, если не сотни раз медленнее.

GC>Я сам с графикой не работал, только пару дней разбирался с DirectDraw и день с OpenGL, но вот читал книгу Михаила Фленова в 2006-ом году вышедшую, где он писал, что DirectDraw для 2d значительно выгодней, чем Direct3D. Я подробно описал это другому участнику обсуждения, давшему подобные вашим рекомендации, в соседней ветке этой темы
Автор: Green Chest
Дата: 06.10.08
, ответьте пожалуйста там.


Ну там уже ответили
Re[5]: Что лучше для двухмерной графики?
От: WolfHound  
Дата: 07.10.08 11:01
Оценка:
Здравствуйте, Green Chest, Вы писали:

GC>Законы оптимизации там вполне нормальные, банальные так скажем.

Я бы сказал глупые. Автор не знает что даже древние компиляторы умеют заменять умножение/деление на степень двойки на сдвиги.
Да и циклы раскручивают все кому не лень.

Если уж что и оптимизировать это работу с кешем процессора. У меня получалось до 100 раз разгонять алгоритмы укатывая их под кешь процессора.

GC>Увы и ах, программа запустившись и показав чёрный экран намертво вешает ОС (под VMWare запускал, в winXP prof sp2, half-life 2 работает кстати под ней)...

Это к yxiie. Но скорей всего из-за защиты ибо это шароварка.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.