Обсуждение сайта Xtreme3d.narod.ru

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Форум движка Xtreme3D / Свободный треп / Обсуждение сайта Xtreme3d.narod.ru

Страницы: << Prev 1 2  новая тема

Автор Сообщение

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 26-05-2013 23:08
Что с DDevel, не могу сказать - админ толком не объяснил, вроде, повреждение БД.
Насчет нового языка - желаю удачи. Дело хорошее, но архисложное. У меня когда-то тоже была такая мысль, но очень скоро я понял, каково это - когда попробовал написать хотя бы простенькую виртуальную машину и компилятор в байт-код для нее. Если хотя бы это получится, уже можно считать, что жизнь удалась =) А компилятор в машинный код... Это и вовсе темный лес. Хотя, с использованием LLVM, наверное, задача упрощается.

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 27-05-2013 14:37
Я думаю компилировать в LLVM иили в Си. Есть куча всяких идей, например кроссязычность - возможность работы с классами языка даже из Си, хоть и не с таким удобным синтаксисом. Как раз компиляция в Си и LLVM должна такое обеспечить. Так же введу туда свои велосипедные строки и массивы, которые я написал на C++ и которые по всем параметрам обходят std::string. Сборщик мусора наверно делать не буду, буду по максимуму использовать RTTI и иногда счётчики ссылок.
К тому же наработки парсера пригодятся для собственного препроцессора шейдеров, без которого я наверное не смогу обойтись в своём движке. Так получается, что весь мой код находит применение в движке и прикрепляется к нему. Наверное в итоге получится мегабиблиотека на все случаи жизни. Это потому что я не люблю использовать сторонние библиотеки, а использую только то, что гарантированно есть в системе, остальное делая самостоятельно или заимствуя из чужого кода с переписыванием под себя.
А ты свой Phantom3D совсем забросил? А то я уже четвёртый год делаю свой движок. Недавно на Linux пересел и его портировал.

Что-то давно ничего не было слышно про журнал FPS. Он ещё живой?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 27-05-2013 20:38
Я сейчас пишу игру на D. Ну и движок, соответственно. Последние месяцы писал для него физику - в моем блоге все расписано: http://dlanggamedev.blogspot.ru. Потихоньку идет дело.
FPS регулярно выходит, как и прежде. Недавно 22-й номер вышел. Я просто перестал тут постить о нем, все новости - в Google+: http://gplus.to/fpsmag.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 13-06-2013 17:30
Кстати, новость: DDevel вернулся к жизни.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 13-03-2014 10:25
gammaker, а нет ли желания присоединиться к нашему проекту dlib? Он понемногу растет, превращается в нечто юзабельное. Недавно добавили вот собственные потоки, чтобы не зависеть от фобосовского std.stream, абстракцию ФС и многое другое. Можно портировать код с C++, если уж на то пошло.

Кстати, смешно сказать, но в последнее время я тоже занялся созданием своего ЯП.

Самый нубский нуб
Группа: Участники
Сообщений: 37
Добавлено: 22-02-2016 05:07
До сих пор удивлен, что этот сайт жив не смотря ни на что. Привет, Гекко, если это читаешь. Не мог бы ты чтоль хоть группу в ВК указать на сайте или нечто подобное?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 03-03-2016 10:56
Для меня обновлять этот сайт стало чем-то вроде хобби - типа коллекционирования раритетов =)
А группа ВК давно заброшена, не вижу особого смысла на нее ссылаться. Да я и сам уже в соцсети без особой надобности не захожу.

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 25-04-2016 21:25
gammaker, а нет ли желания присоединиться к нашему проекту dlib? Он понемногу растет, превращается в нечто юзабельное. Недавно добавили вот собственные потоки, чтобы не зависеть от фобосовского std.stream, абстракцию ФС и многое другое. Можно портировать код с C++, если уж на то пошло.

Только спустя два года заметил это сообщение. Но отвечу, думаю всё равно актуально ещё.
Я уже обустроил себе нехилую инфраструктуру в C++ со своими велосипедами и стало практически не хуже, чем в D. Строки с utf-8, массивы, списки, ranges, и даже индексацию своих контейнеров с помощи знака $ реализовал. Использую всё это в самом движке и в других своих более мелких программах. При этом всё написано в своём стиле, который отличается от стиля C++ и D и больше похож на стиль, принятый в C#. Так что слезать теперь с этого не хочется. К тому во всяких C++11 и C++14 добавили многие фичи, которых мне не хватало.
И в D вроде как до сих пор нет поддержки Android'а. Там ведь так и не решили проблему с рантаймом?
Ещё D смущает тем, что там бинарники много места занимают. Видимо это из-за его рантайма. Без него получалось почти как в C++, но большая часть языка отваливалась. При этом его непонятно как восстановить из-за кучи ссылок в исходниках D рантайма на другие символы. Мне нравится C++ тем, что там только один сишный рантайм, причём от него даже можно отвязаться или использовать альтернативные версии. Без CRT часть языка C++ конечно отвалится, но её можно легко восстановить или обойтись без неё.
Да и IDE для D как-то отстают до сих пор. До сих пор не могут подсвечивать свои типы и переменные разными настраиваемыми цветами. В MonoDevelop я не нашёл как залезть внутрь стандартного модуля, чтобы посмотреть, какие функции он определяет. Так привык к этому в студии и Eclipse, что не представляю, как на D можно жить без этого.

Из того, чем по-прежнему привлекает D, это красивый и понятный синтаксис шаблонов, нормальные модули, mixin'ы и синтаксис обозначения типов (int[7] value вместо int value[7]). Но это не такие важные вещи, чтобы переходить из-за них на D и мириться с перечисленными выше недостатками.
Ещё очень не хватало рефлексии, но я кажется нашёл способ её красиво прикрутить к C++.
Модули в C++ вроде тоже собираются добавить. В студии уже есть, а в стандарте наверное не раньше 2020 года будет.

Ну и ещё я в принципе сомневаюсь, что смогу работать не над лично своим проектом. По крайней мере никогда не пробовал. Всегда делал всё один, в команде не работал. А когда смотрю на чужой код, всегда хочется всё переделать под себя. Сейчас, кстати, гляну на исходники dlib и посмотрю, что мне нравится, а что нет.
А то вообще я подобные велосипеды люблю делать.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 25-04-2016 22:58
gammaker, понятно. Я лично нашел свой выход - постепенно избавился от привязки к рантайму, память выделяю вручную. dlib сейчас где-то на 80% независима от Phobos, это практически замена стандартной библиотеке. При желании можно довести и до 100-процентной независимости (сейчас с DMD, тем более, стало несколько проще собирать программы без рантайма), но на данном этапе не вижу в этом особой необходимости - сборщик мусора не используется, да и ладно.
Что там с поддержкой Андроида - точно не знаю, особо не интересовался, но вроде бы LDC умеет собирать под ARM, были какие-то умельцы, которым удавалось что-то сделать в этом направлении. Phobos, кажется, все еще не портировали, т.к. Android не является полноценной Posix-системой - если не ошибаюсь, там какой-то свой урезанный libc. Я высказал на форуме D идею о компиляторе в байт-код Dalvik или ART (мне кажется, это было бы хорошее решение), но этим никто особо не заинтересовался.
Шаблоны - это да, я только из-за них на D и остался. IDE не пользуюсь, размер бинарников меня не смущает, там все в районе 2-3 Мб. Если особо не использовать Phobos и выделять память самостоятельно, получается вполне себе неплохой компромисс между производительностью и удобством.
Хотя, если бы появился более простой язык, без сборщика, но с такими же шаблонами, как в D, то я бы, может, перешел. В D я считаю лишним все, что требует неявного выделения памяти и сборки мусора - это динамические и ассоциативные массивы и замыкания. Если их убрать, было бы идеально. Замыкания - вообще довольно опасная вещь, сильно запутывают код, да и на практике мало где нужны. Массивы и строки можно свои сделать, а классы спокойно работают с malloc/free. Exception'ы тоже можно заменить чем-то более простым - я в dlib так и сделал, там сообщение об ошибке, где нужно, возвращается в кортеже вместе с результатом функции (кажется, в Go что-то похожее сделали).
Я, кстати, пробовал писать на Go, но там метапрограммирования вообще как такового нет, как и перегрузки операторов. Мое впечатление - просто C с модулями, не более. Даже не совсем понятно, зачем он нужен, когда есть C (а модули, если уж на то пошло, еще в Паскале были).
Сейчас присматриваюсь к Rust, он поинтереснее выглядит. Но тоже - уж слишком заточен под веб, для игровых программистов мало привлекательных фишек, кроме компиляции в машинный код. Нет union'ов и много чего другого из C. Пока из всех "зол", так сказать, D является наименьшим - он достаточно близок к C, чтобы программист знал, что делает, но не настолько, чтобы было тяжело писать: всегда есть возможность соорудить нужные тебе абстракции.
Впрочем, я вот говорю о выкидывании динамических массивов - а, между тем, смешно вспомнить: я с C++ ушел как раз от нежелания вручную выделять память, а сейчас возвращаюсь, по сути, к его идеологии. Но без модулей, крутых шаблонов, CTFE, mixin'ов и "static if", конечно, уже неинтересно - на C++ возвращаться желания уже нет.

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 25-04-2016 23:52
Что там с поддержкой Андроида - точно не знаю, особо не интересовался, но вроде бы LDC умеет собирать под ARM, были какие-то умельцы, которым удавалось что-то сделать в этом направлении.

С ARM самим по себе уже давно всё хорошо. Я ставил Ubuntu на ARM устройство и прямо через apt-get install gdc устанавливал. Ничего сложного правда писать на D делать не пробовал, но то что делал, работало. И ldc тоже работал нормально.


Phobos, кажется, все еще не портировали, т.к. Android не является полноценной Posix-системой - если не ошибаюсь, там какой-то свой урезанный libc.

Тут проблема именно не в Phobos, а в druntime, который дёргается по любому поводу обычным кодом на D. Например копирование слайсов массивов приводит к вызову одной из функций рантайма. Классы и структуры с RAII вроде тоже вызывают оттуда функции. И вот этот рантайм на Android не работает, потому что он использует glibc, а на Android bionic. Если бы я писал на C++, я бы разницы не заметил, но в druntime видимо используется что-то, в чём есть отличия.

Я высказал на форуме D идею о компиляторе в байт-код Dalvik или ART (мне кажется, это было бы хорошее решение), но этим никто особо не заинтересовался.

Ну это не интересно, сила D в его нативности. В Java вроде даже структур нет, а значит, есть сомнения в том, что они представимы в байт-коде. А если они не представимы, то будет очень проблематично реализовать D поверх него и работать будет намного медленнее - ведь они будут прогоняться через GC и не будут лежать линейно в памяти, как должны были бы. И вообще любую работу с сырой памятью там не сделать, хотя в D это вполне возможно.

Exception'ы тоже можно заменить чем-то более простым - я в dlib так и сделал, там сообщение об ошибке, где нужно, возвращается в кортеже вместе с результатом функции

Я их тоже не использую в C++. Использую возврат информации об ошибке через указатель - параметр функции, который по умолчанию null. Если мы проверяем ошибки, передаём указатель. Если нам пофиг на них, не передаём.
Я как-то даже не сталкивался с тем, чтобы были где-то реально нужны исключения. Обычно вызывающий код может обработать ошибку или перекинуть её максимум на один уровень выше. А если просто кидать исключения, не задумываясь о том, кто их перехватит, то будет программа падать из-за каждого пустяка.

Сейчас присматриваюсь к Rust, он поинтереснее выглядит. Но тоже - уж слишком заточен под веб, для игровых программистов мало привлекательных фишек, кроме компиляции в машинный код. Нет union'ов и много чего другого из C.

Да, я тоже смотрел. Не понравились сокращённые ключевые слова. Начинает выглядеть, как разрозненный поток букв или слогов. И что-то ещё оттолкнуло, но уже не помню что.

Но без модулей, крутых шаблонов, CTFE, mixin'ов и "static if", конечно, уже неинтересно, на C++ возвращаться желания уже нет.

Когда добавят модули и концепты, в C++ будет повеселее. Огрызок от CTFE в виде constexpr функций там тоже есть, но конечно совсем огрызок. Никаких строк тебе и выделений памяти. Вместо static if делают две шаблонные функции с возвращаемым типом std::enable_if_t (мой велосипед называется покороче - EnableIf). А вот там, где пригодился бы mixin, мне приходилось совершать пляски с шаблонной магией в сочетании с препроцессором. Хотя вроде внешний результат выглядит прилично, если не смотреть в папку Meta, где вся эта магия сконцентрирована.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 26-04-2016 10:18
gammaker, а где твою библиотеку для C++ можно посмотреть? Или ты ее не выкладывал?

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 26-04-2016 13:30
gammaker, а где твою библиотеку для C++ можно посмотреть? Или ты ее не выкладывал?

Выкладывал уже давно. Вот тема для обсуждения.

Но с тех пор многое поменялось, несколько багов было исправлено, и куча всего нового добавилось. Учёл некоторую критику из той темы, стиль кода тоже стал получше, я стал меньше пихать всего в одну строчку. Но я эту новую версию не выкладывал, так как надо её отдельно от движка собирать, выкидывая неожиданно возникающие зависимости от движка. Например мой assert использует обёртку от оконной системы, чтобы выдавать кроссплатформенный MessageBox. А оконная система помимо этого годится только для инициализации графики в нём и принятия ввода. В библиотеке ей места нет, я считаю. Вот подобные вещи надо отвязывать.
И я ещё не привёл свою библиотеку к окончательному виду, который задумал: не добавил те фичи, которые есть в стандартной библиотеке но которыми я не пользуюсь, забросил некоторые баги, не исправив. И ещё есть контейнеры, которые я начал писать, но забросил на время, занявшись другими делами.

Например у меня до сих пор нет ассоциативных массивов в виде дерева или хэш-таблицы. Просто потому что мне не нужны. В большинстве случаев мне надо было делать поиск среди очень малого количества элементов, где линейный перебор наиболее эффективен, либо поиск среди 100 элементов, но в местах, некритичных к производительности. Например при парсинге значения крупного enum'а.

Так что я пока не хочу выкладывать текущую версию. Нужно тратить время, чтобы потом получить критику по вещам, которые и так собираюсь поменять. Но вообще надо будет ближе к завершению на гитхабе выложить. Но до этого момента надо будет освоиться с гитом. Знаю, что ничего сложного, но стимула нет - у меня исходники синхронизируются с Dropbox'ом и вроде и так удобно.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 11-01-2018 00:21
Решил перевести сайт на коммерческий хостинг (заодно обновил дизайн): http://gecko0307.siteme.org/xtreme3d/.

Не то, чтобы возможности Ucoz перестали устраивать, просто надоела их навязчивая реклама (отключение которой, по правде сказать, стоит дороже, чем минимальный тариф на Hostingru ).

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 09-02-2018 12:37
Теперь новый сайт доступен по домену http://xtreme3d.tk.

Страницы: << Prev 1 2  новая тема
Раздел: 
Форум движка Xtreme3D / Свободный треп / Обсуждение сайта Xtreme3d.narod.ru

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU