Каковы возможности PascalABC.Net для реальных проектов?

Мне интересно можно ли на PABC.Net разработать игру или довольно хороший софт? В случае с разработкой игры интересует насколько хорошей ее можно сделать, насколько сильно позволит ваш PABC.Net в этом? Если ли ограничения в этом деле?

На киберфоруме есть пара игрушек реализованных на PABC.NET Полезные коды для PascalABC.NET - PascalABC.NET

1 лайк

Какой в этом сакральный смысл? 3D-игры пишут на готовых движках, чтобы получать нормальный fps. Вы какой fps собираетесь получать, управляя видеокартой из-под .NET ?

Т.е. можно, конечно, построить дом, не покупая стройматериалы, но для этого придется строить соответствующие фабрики самому. Найти глиняный карьер, построить рядышком кирпичный заводик…

Быстро или медленно - это в 3D как раз и есть fps. Вы уж определитесь…

Он опережает в чем? Во времени выполнения Вами написанных программ? Во-первых, это всего лишь какие-то Ваши конкретные программы. Можно легко написать в ABC такую программу, что Free Pascal просто “уйдет в себя”, а ABC за пару секунд даст результат. Дело в классе задачи и в умении использовать те или иные средства конкретной реализации языка. Поэтому, когда используете термин “лучше” в отношении какого-то компилятора, всегда делайте оговорку, что лучше не “вообще абстрактно”, а для конкретных задач, конкретно Вами написанных.

К паскалю можно прикрутить игровые движки:

Поищите там и другую инфу.

Проблема здесь не в паскале, а самом движке. Обычно они непростые и требуют изучения. Работать они будут, но есть ли в этом смысл?

разработать игру Большая программа 5000 строк кода fps не главное, надо протестировать, быстро ли будет работать игра на .NET платформе

Зашел тут на свой любимый форум, и сразу же сломался. Зачем так?

А если по сабжу, нарисовать спрайтов и подвигать можно хоть на кубейсике. А вот сделать так, чтобы результат был кому-нибудь нужен - для начала посоветую познакомиться с С++, а затем почитать Unreal Engine. Ну, можно еще присоединиться к сообществу ЛГБТ и использовать Unity. CRYENGINE тоже из православных.

Заметим, что поддержка C# в некоторых из них есть(cry), но в виде расширения к Visual Studio, так что интереса оно представляет чуть менее чем совсем никакого в данном контексте. Не забудем еще того, что и работать оно будет медленнее - выбирая платформу .NET, автоматически получаешь тормоза в комплект. А что касается PABC.NET… Да, наверное, какие-нибудь самодельные движки, написанные такими же/чуть умнее умниками, использовать получится. Только процентов 99, что это программирование никаким образом не будет отражать реальные проблемы геймдева, и придется к тому же дебажить и править эти самые самоделки(т.к. они никому не нужны, и никто их по серьезному не использует).

tl;dr:

Игровой движок, написанный для Free Pascal, особенно если он написан руками не курильщика, будет использовать низкоуровневое API используемой платформы для максимальной производительности, т.к. не ограничен в возможностях платформы(язык компилируемый, и не использует виртуальную машину AFAIK). .NET такими возможностями не обладает, и поэтому портировать его никому бы и в голову не пришло - придется переписать самые сложные и критические системно-зависимые участки кода, которые к тому же в новой версии должны работать хотя бы не в два раза хуже по производительности…

Нет, castle-engine никто никуда не портировал. Ищите в сторону движков, разработанных изначально с поддержкой платформы .NET(лучше - исключительно с поддержкой .NET). Потом можно подтянуть скомпилированные .dll-сборки, и использовать их хоть в C#, хоть в F#, хоть в PABC.NET.

Кстати, вот забавный сайтик. Только про PABC.NET там, судя по всему, не знают пока… :frowning:

http://www.pascalgamedevelopment.com/

Как думаете, автор вот этой презентации нам нагло врет? На странице 8 читаем: “PascalABC.NET опережает Free Pascal по скорости выполнения программ на большинстве тестов.” Эту презентацию немного подлатали, до этого там было еще сравнение с С++ - практически один к одному… Вот у меня почему-то нет причин автору не верить. А у Вас, как следует из процитированного выше, видимо есть? Были прецеденты?

Мда… Значение слова “чувак”: открываем и читаем, в частности вот что:

А вот народы Азии так называют молодого кастрированного барана или козлика. В жаргонном варианте отталкиваются как раз от этого варианта словообразования, поскольку так исторически сложилось, что подавляющее большинство словарного запаса воров и злодеев имеют яркую сексуальную окраску…"

Наверно, все же стоит подумать, прежде чем так публично обращаться к незакомому человеку.

Ну, это дело сугубо российское/СНГшное. Проблема в том, что учителя информатики в школах(да и в университетах некоторых, чего уж тут говорить) забальзаковского возраста, и в его силу совершенно не хотят изучать ничего современного. Чтобы сократить “разбег” между современным программированием и доисторическим, я так полагаю, и был создан PABC.NET - Питон, к примеру, мог бы выполнять 99% функциональности ни разу не хуже, IDE/модули вроде GraphABC вполне можно написать или даже найти неплохие готовые. Действительно, и приходящим студентам, и школьникам гораздо проще изучать что-то новое и современное именно таким образом, если есть некоторая база старого Паскаля, внушенная старыми преподавателями. Для этих старых преподавателей, опять таки, переход происходит гораздо плавнее, нежели на любой другой язык. Паскаль - на самом деле отсталый от жизни язык, т.к. его уже полтора десятка лет никто толком не использует при разработке реальных проектов, а именно это необходимо для полноценного развития языка. Ну, я тут не шучу. То, что находятся энтузиасты, которые таки приводят это в продакшен(сайт с паскаледевелопментом), скорее, во-первых, исключение, а во-вторых - в основном, проблема, т.к. для такой разработки специалистов будет очень мало, что чрезвычайно неэффективно для менеджмента компании(уйдет такой паскалепрограммист из компании, понаписав ~1kk строк кода за пару лет, и никто потом этого добра не разгребет).Программиста на Python/Java/C++/JavaScript/Node.js/Ruby/[нужное_вставить] найти проще, и особенных преимуществ, помимо религиозных(а именно это движет старой школой) Паскаль не дает.

В Европе/Америке этого не происходит, т.к. там учительская/преподавательская база обновляется значительно быстрее, и стагнирующий курс/учитель/преподаватель долго не протянет - там за эту работу платят, а у нас работают “по призванию”… К сожалению, именно эти “призванцы” в большинстве случаев уверены, что знают все лучше всех, Единственный Правильный Путь, и попытка заставить их выйти из “зоны комфорта” может привести к чему угодно, только не к изменению учебного курса.

Как мне кажется, для различных вариантов Паскаля есть такие пути развития событий:

Delphi: развивается, забыта, не нужна, стоит бешеного бабла. Пользуется некоторым количеством энтерпрайза, в основном для поддержки легаси-кода(по ссылке). Умрет, как только этот небольшой набор компаний куда-нибудь денется. Free Pascal: мертворожденный проект с претензией на кроссплатформенность и продакшен. Слышали о нем только пара олимпиадников, да преподаватели. Вот пример того, почему он мертв. А их много… Лазарус за убогость не клевал только ленивый. Borland/Turbo Pascal: этим семидесятилетним учителям информатики пора идти на пенсию. PABC.NET: Выполняет функциональность “моста” между Turbo Pascal и современными языками программирования, ради чего и нужен. За пределами этого неинтересен, и интересу этому просто так не возникнуть - .NET-языки, за исключением C#, даже у Microsoft толком пиарить не получается(F# 32й в списке популярности)…

Не надо полагать, для чего был создан этот паскаль: его головной разработчик вот тут подробно об этом говорит - и почему именно паскаль, и почему именно такой.

Паскаль, безусловно, в коммерческих проектах практически не используется и об этом открыто говорят его разработчики (все та же ссылка, что и выше). Но вот по поводу TIOBE - это очень спорный критерий. TIOBE - это индекс цитируемости, т.е. величина, показывающая насколько много и часто о том или ином программном средстве упоминается в СМИ и приравненных к нем источниках. Понятно, что если С++, к примеру, обладает миллионами “дремучих загогулин”, в них часто будут ловиться и много об этом писать. Т.е. наряду с действительно популярным ПО в TIOBE будут попадаться языки, на которых приходится работать в силу тех или иных причин, какими бы заковыристыми и неудобными они не были. Более верно, по-моему, смотреть на ресурсах, связанных с трудоустройством - куда больше всего нужны разработчики.[quote=“JediKnight, post:20, topic:1502”] Delphi: развивается, забыта, не нужна, стоит бешеного бабла [/quote]

Дельфи - закрытый Борландом коммерческий проект и он уже ничего не стоит, поскольку с сопровождения снят.

А вот это верно.

@RAlex Delphi ~ RAD Studio, в таком контексте. Как горшок не назови… Что касается TIOBE - да, конечно, 100%-корректного рейтинга он не дает. Но суть вопроса темы там все-таки отображается: Паскалем там и особенно и не пахнет, а мелкие дергающиеся время от времени проценты дельфей есть медленный но верный процесс, понятно, какой. @EvolutionPixels Гхм. И что? На дельфи в хорошие годы много софта написали - если не ошибаюсь, кстати, чрезвычайно популярный Windows Commander, ставший Total’ом впоследствии. То, что есть написанный софт, никак не говорит о популярности языка. D? А какие кардинальные преимущества он мне перед С++ даст(я на нем деньги зарабатываю)?^^

Вы просто не умеете писать на С/С++, я полагаю.

Как человек, имеющий непоследнее отношение к ААА гейм-индустрии в общем и к Remedy Entertainment в частности, могу сказать, что Northlight engine (Quantum break) написан преимущественно на С++. К тому же это пример довольно плохого движка, так что на рекламу D он не тянет.

В научных работах до сих пор активно используется фортран :slight_smile:

1 лайк

Подтверждаю

И в инженерных расчетах ему пока тоже нет реальной альтернативы.

Я просто тихо ненавижу этот язык C++. Си мне гораздо ближе и мене мозго выносящий. Холивар дальше продолжать не буду, сил и нервов не хватит спорить. Язык каждому свой нравится и тут уж спорить незачем.

Как довольно хорошие и развивающиеся на стадии альфа-бета версий есть такие движки для языка D - http://dash.circularstudios.com/ - https://github.com/gecko0307/dgl - https://github.com/gecko0307/atrium Если интересно глянте, но не надо после этого что-то говорить типо C++ лучше. Для меня язык C++ самый неудобный из компилируемых.

Я уже сказал с вами я холивар на эту тему не продолжаю все. Использую то что мне нравится и все.

Если вы так свято в это верите то почитайте это https://geektimes.ru/post/280272/ и это https://www.linux.org.ru/forum/development/12413943 - в последней ссылке есть все необходимые ответы от пользователей. Да новый Vulkan хорош, но что-то я на нем много игр то не нашел (где его новая популярность?). А про DirectX вообще говорить нечего, он не кроссплатформенный (Windows only), так что он отпадает а Vulkan да подойдет. Нашел список игр на Вулкане но чет мало http://pluggedin.ru/open/tablica-igr-s-podderghkoy-API-Vulkan и вот еще http://www.amd.com/ru-ru/markets/game/technologies мда если так пойдет то Вулкан сольется быстрее чем OpenGL.

Я имею доступ к информации от nVidia и AMD driver teams в рамках BDP (benchmark development process) и знаю, что они собираются поддерживать, а что — нет. В драйверах будет сохраняться legacy-поддержка OpenGL и nVidia возможно некоторое время будет продолжать добавлять новые функции в виде проприетарных расширений. Кстати, на проходящих в данный момент GDC и MWC Khronos заявлений об обновлениях OpenGL не сделали.

Direct3D 12 и Vulkan (и, кстати Metal) очень похожи, но HLSL более удобен, в сравнении с GLSL и пока отсутствуют хорошие компиляторы Spir-V -> HLSL, им будут ограниченно пользоваться. Игр мало, т.к. архитектура движков для D3D12/Vulkan очень отличается и компаниям требуется время, чтобы реализовать новые рендеры. Иными словами, сложность программирвоания графики ОЧЕНЬ выросла. Кстати, у D3D12 есть одно серьезное преимущество перед Vulkan помимо HLSL: когда вы пишете под D3D12 вы пишете код “практически” совместимый с XBox One.

Давайте на этом оффтоп закончим. Вы можете пользоваться, чем хотите, разумеется.