Silver Shark

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Silver Shark » Используемые технологии » Базовый язык


Базовый язык

Сообщений 1 страница 10 из 10

1

Нужно решить на каком языке будет написан движок для игры (пока по дефолту мы не используем готовых движком, только свое).
Пока два очевидных варианта: С++ и С#, причем как показывает практика первый вариант куда очевиднее.

Итак, смысл:

C# - это "бизнес" язык, производительность - его самое слабое место. Это природа платформы .NET: работая в условиях виртуальной машины и переживая кучу различных трансляций, программа на С# чисто физически не может сравниться по скорости с С++, а уж тем более ассемблером (нет, ассемблер даже не вариант  ^^ ). Чем меньше уровень абстракции - тем выше производительность. С# используется в приложениях, где скорость разработки, куда важнее конечной производительности, а в игровом движке производительность - приоритет номер 1.

Для 3D движка С# не подходит однозначно, слишком долгий рендеринг, для 2D (наш случай) "с пивом покатит". Лично я не думаю, что у нас будут серьезные проблемы, но тем не менее.

ВЕРДИКТ: Для базы игры - С# подходит плохо. Да он удобнее и легче, но он медленный.

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

Все выше написанное ИМХО, на объективность не претендует (ну как, я не видел ни одного поста против))). Жду ваших мнений

Личное: очень не хочу менять шарп на С++, но боюсь это необходимо

0

2

В общем я согласен, но вижу причину несколько в другом. Большинство современных средств визуализации (DirectX и OpenGl, лидеры в этой области) главным образом были созданы на С++ и для С++. Есть мнение (очень большого числа людей), что для геймдева более подходит именно С++.
НО!!!! С# более прост в освоении. Прошу при решении данного вопроса все-таки рассматривать этот пункт. Ибо шарпом владеет из нас хоть кто-то, а С++ "можно изучать всю жизнь и не выучить до конца".

0

3

Сугубо прикола ради. Есть мнение (более малого числа людей, но тем не менее), что вообще бы здорово писать на "пифоне" (Python). Если быть честным, язык выглядит мило и дружелюбно. Но я глубоко в "это" не нырял, да пока и не охота. Почему бы и не глянуть для разнообразия)))

0

4

ИМХО, если брать главным критерием обучение, то тут С++ победил) А асм так вообще космос. Просто чем ниже уровень абстракции, тем более глубоко тебе нужно понимать все процессы происходящие в программе и за ее пределами. Самый низкий уровень - ассемблер - вынуждает знать вообще все: регистры, сегменты, сигналы, ты в буквальном смысле знаешь как электроны по плате бегут)). С++ - более высокий - позволяет забыть про регистры и прочую муть. Достаточно в общем виде представлять устройство памяти, чтобы использовать указатели. С# - можно в принципе не знать, что такое память))) Указатели, биты, байты, стеки и тд и тп, там слов таких нет) (есть конечно, но используются краааайне редко).

Переходить с более низкого уровня на более высокий - в десятки раз проще, чем наоборот. С С++ на С# переход займет неделю(у того, кто знает с++). Если человек, который работал только на C# захочет освоить С++ - ну это почти с нуля его изучать. Вот так то.

0

5

Тогда мой голос за С++. Одновременно и учиться и разрабатывать будем. Ток я его плоховато помню. Придется копаться "с нуля", как ты говорил)

0

6

И возвращаясь к пифону. OpenGl с ним работает. Сам удивился.

0

7

Пифон знают 0 из 4 в нашей команде) Мне кажется это совсем хардкор)

P.S. На XNA и C# полностю написана Magica. Доказательство, что для 2D игр шарп пойдет, но потом любое развитие нам заказано

0

8

Ниииииии. Хочу развиваться.

0

9

Начни с С++) Тебе там еще до хрена чего нового узнать можно

0

10

С++.Его знают все члены нашей команды, он достаточно быстр, хорошая совместимость с OpenGL и GLUT в частности, обширный запас примеров исходного кода. Тема закрыта.

0


Вы здесь » Silver Shark » Используемые технологии » Базовый язык