Я раздумывал над идеей создания сетевой игры Roguelike с использованием Silverlight (или, может быть, просто настольной игры с использованием WPF).
Если вы не знаете, что такое Roguelike, то это тип графической ролевой игры, в которой графика отображается с использованием текста. Поскольку графический движок относительно прост, вы можете потратить свое время на создание функций в игре, и один человек может быстро создать что-то интересное.
Например, типичный экран может выглядеть примерно так (@ - это игрок, # - стена, другие символы - это монстры, лестницы и предметы):
(источник: thangorodrim.net)
Я опытный разработчик ASP.Net и только начинаю работать с Silverlight. Есть ли особый подход, который я должен использовать для этого?
Чтобы обеспечить некоторый фон, в Winforms большинство стандартных подходов слишком медленные - текст в конечном итоге обновляется с видимым некрасивым миганием. Я думаю, что что-то связанное с Canvas может быть подходящим, но еще лучше было бы как-то нарисовать экран в буфере, а затем мгновенно перевернуть его на экран, чтобы он сразу стал видимым.
Но я действительно не хочу возиться с DirectX прямо сейчас - я надеюсь, что WPF может привести меня туда, где мне нужно быть, без большой кривой обучения.
Есть предположения?
Обновление: Итак, это оказалось довольно сложной задачей. Я пробовал много разных подходов, и мне наконец удалось заставить его на самом деле рендерить достаточно быстро, но я думаю, что для того, чтобы он быстро вспыхивал, вам, вероятно, следует создать карту спрайтов шрифта, который вы хотите использовать, и работать с этим вместо этого. попытки использовать любой из встроенных средств рендеринга шрифтов. Я этого не делал.
Когда я закончил работу с основным движком рендеринга, у меня возникли некоторые раздражающие артефакты, связанные с особенностями рендеринга шрифтов (даже шрифты с фиксированной шириной иногда бывают немного шириной ...), и когда я, наконец, решил это, я обнаружил libtcod, очень впечатляющий рогалик-движок с оболочкой C #. Это все для консоли. Я немного поигрался с ним, и я был потрясен.
Начиная с версии 1.5.1, все, что я коснулся в libtcod, отлично работает, за исключением ввода с помощью мыши и одного из режимов ввода с клавиатуры (который, я думаю, они недавно отказались от этого), но все, что вам нужно для создания рогалика, есть там, и который включает в себя несколько алгоритмов прямой видимости, поиска пути и даже создания подземелий. Визуально он довольно продвинутый. Вы когда-нибудь видели такой RL?
http://doryen.eptalys.net/files/screenshot0014.png
Короче говоря, можно создать roguelike с Silverlight, но я бы не ожидал, что это будет легко, если у вас уже нет сильного опыта Silverlight или разработчика игр. Вам придется заново изобретать некоторые серьезные колеса, и даже с мощным набором инструментов, позволяющим сосредоточиться на игровом процессе, недостатка в делах нет.