#1 Re: Вопросы и ответы » Вопрос о Verlet » 2023-10-09 20:56:48

В физики Verlet с этим все немного сложно, при VerletEdgeDetectorCreate вся модель становится физической, для заморозки вершин, чтобы они не учувствовали в физике используется VerletNodeNailedDown, но для подвижных моделей это не годится, в GLScene был специальный формат файла который описывал какие вершины будут физические, и к какой части скелета будет прикреплен физический плащ или волосы например, но я так и не нашел по этому файлу ни какой информации, или программу где его можно было бы создать, возможно эта была какая-нибудь старая версия 3DS Max'a  hmm

В общем Verlet подходит больше для статичной симуляции, шторы итд.

#2 Re: Разработка движка » Xtreme3D 4.0 64-bit » 2022-11-02 20:33:23

Мдааа, если честно подозревал что будет какой-то подводный камень  hmm
Поэтому я начал писать с нуля свой  big_smile
кстати, твой движок на D, больше графический движок, или прям игровой ?

#3 Re: Разработка движка » Xtreme3D 4.0 64-bit » 2022-10-31 14:10:11

Отличная новость! Если будет время помогу smile
Но сначала надо как то поставить GMS2

#4 Re: В процессе разработки » Xtreme3D Editor » 2022-10-29 20:13:45

Gecko пишет:
FireRun пишет:

Да, сейчас я действительно пишу свой движок с нуля, много чего уже реализовано!

Очень интересно, список фич выглядит многообещающе) Генератор деревьев самописный или на основе чужой библиотеки?

Я кстати тоже начал присматриваться к ImGui, очень понравились некоторые возможности и архитектурные моменты - добавил его поддержку к себе в движок как альтернативу Nuklear.

В общем желаю удачи - больше движков хороших и разных)

Генератор на основе библиотеки.
Да! ImGui действительно удобный, и достаточно прост в использовании, не надо создавать отдельную кнопку и отдельно ее удалять, все можно вписать в цикл)

Насчет движка - руки до fbx и DB пока не дошли, но добавлена полная поддержка шрифтов с помощью freetype2, текст с переносом строк и выравниванием по центру итд, полная поддержка 2D анимаций с использованием Sprite sheet, добавлена возможность хранить ресурсы игры в упакованных архивах с сжатием и паролем, для защиты игровых ресурсов! smile

Так же было принято решение добавить сначала полный функционал для 2D потому уже приступать к 3D. Сейчас добавляю Box2D, следом тайловые карты.

#5 Re: В процессе разработки » Xtreme3D Editor » 2022-07-27 07:11:14

Привет народ!
Как же соскучился по этому форуму)

Да, сейчас я действительно пишу свой движок с нуля, много чего уже реализовано!

Если кому интересно, пишется на С++, графическое api OpenGL 3+, движок пишется под 3D игры так и 2D, например уже сейчас можно сделать 2d сцену в 3d сцене, или наоборот использовать 3d объекты вместо спрайтов в 2d сценах.

Сейчас уже реализовано следующее:
- Debug Mode. Который выводит небольшое отладочное окно поверх всей графики, туда выводится вся отладочная информация, ошибки, предупреждения, и все происходящие действия, в него можно выводить сообщения как в Unity или GMS в духе "leLog("ABC");" 
- Scenes. В любой момент можно переключатся по сценам.
- Загрузка Obj моделей (так же сейчас пишу полноценный загрузчик FBX и GLTF2), движок не использует Assimp.
- Tree3D. Генератор деревьев любой сложности, в нем больше функций и возможностей чем в генераторе X3D.
- Граф сцена. потомки и родители, все можно унаследовать друг от друга, как 3d объекты так и 2d.
- ImGui. Полная поддержка ImGui, движок пишется таким способом - чтобы на нем была возможность писать редакторы уровней, или целый игровой редактор.
- Physics3D.


Пока точно не могу сказать когда выпущу движок, но планирую после завершения рендера движка, так как планируется несколько режимов графики, Low,average, и Nigh, при low будет использоваться вершинное освещение вместо по-пиксельного в духе фиксированного конвейера OpenGL 2, для более слабых ПК, загрузчик файлов Dragon Bones для 2D анимаций, а так же после написания FBX загрузчика, я обязательно напишу тут после завершения выше поставленных задач!

GrzPFXimlnc.jpg?size=1280x986&quality=95&sign=1b941769d416a19b2f9316c83dbf50ad&type=album5&sign=1b941769d416a19b2f9316c83dbf50ad&type=albumhgS6OtEJiT4.jpg?size=815x636&quality=95&sign=39d5b6222a5398956a6810d00c9df43e&type=album

Что касается X3D Editor, технически его практически невозможно написать, из за отсутствия стабильного GUI, в MaxWinApi2 где-то происходит серьезная утечка памяти, при написании своего GUI на чистом X3D, происходят тоже какие-то проблемы с 2D объектами, что-то где то само пропадает,где то созданный текст вообще пишет непонятно что, или же вообще не загружается редактор.
Но в будущем планирую написать свой редактор для своего движка, не хочу заглядывать наперед, но пока это только в планах.

#6 Re: Программирование и геймдев » Dagon и разработка игр на языке D » 2021-12-14 03:47:04

Дааа, мне бы такие шейдерные навыки, все не как не могу привыкнуть к GL 3+.  я кстати когда-то по исходникам Phantom3D пытался свои движок написать big_smile
Решил опробовать язык D, но ничего не понял, в плане где компилировать его вообще, неужели IDE нет? Установил VisuаlD подумав что это и есть IDE, но нет, MVS открывает как обычный текстовой файл, только с подсветкой синтаксиса, а в плане названия самого языка, как мне кажется не очень удобно, гугл вообще не может меня понять что я от него хочу, когда пытаюсь поискать что-то по D.
А синтаксис очень крутой, и не такой инопланетный как с++, надеюсь язык будет активнее развиваться. Там кстати есть WinАPI например? или DX?

#7 Re: Программирование и геймдев » Как получить контекст GM8 » 2021-12-13 20:16:48

Заменил функции таким способом, но все ровно ничего не отображается

function ViewerGetHandle(viewer: real): real; stdcall;
begin
  result:=Integer(TGLSceneViewer(trunc64(viewer)).ParentWindow);
end;

function ViewerGetRC(): real; stdcall;
begin
  result:=Integer(wglGetCurrentContext());
end;

function ViewerGetDC(viewer: real): real; stdcall;
begin
  result:=Integer(GetDC( TGLSceneViewer(trunc64(viewer)).ParentWindow ));
end;

#8 Re: Программирование и геймдев » Как получить контекст GM8 » 2021-12-13 17:46:41

Проверил работоспособность убрав все функции x3d, работает все отлично, но только на новом контексте wglCreateContext, есть идеи как к x3d прикрутить ?

qfm5cqoefOY.jpg?size=1280x759&quality=96&sign=b3dd634fe4b886976628be2aefa6e80c&type=album

в xtreme3d добавил 3 функции:

function ViewerGetHandle(viewer: real): real; stdcall;
begin
  result:=Integer(TGLSceneViewer(trunc64(viewer)).Handle);
end;

function ViewerGetRC(viewer: real): real; stdcall;
begin
  result:=Integer(TGLSceneViewer(trunc64(viewer)).Buffer);
end;

function ViewerGetDC(viewer: real): real; stdcall;
begin
  result:=Integer(TGLSceneViewer(trunc64(viewer)).RenderDC);
end;

но я сомневаюсь, действительно ли они возвращают то что надо, потому что они ни как мне не помогли.

#9 Re: Программирование и геймдев » Как получить контекст GM8 » 2021-12-13 09:46:04

В общем ничего не вышло, ImGui для dx8 нет, минимальная версия это dx9. Но, руки опускать все ровно не хочется, раз с встроенным GUI движком в xtreme3d проблемы, решил стоит попробовать портировать imgui для xtreme3d, там как раз есть биндинг для win32 и opengl 2. Только как подключится к контексту X3D я не знаю, в GLScene нет функции для получения HDC и HGLRC  (или я не нашел), если будет у кого время добавить функции для возврата текущих HDC и HGLRC (wglGetCurrentContext) в x3d, готов полностью добавить ImGui  smile

#10 Программирование и геймдев » OpenGeneration Library - DLL для генерации различного контента » 2021-11-30 17:11:47

FireRun
Ответов: 1
OpenGeneration Lib

Написан на: С++
Версия: 1.7.0.1 (30.11.21)
Автор: FireRun

GitHub: OpenGeneration Lib

Написал не большую библиотеку для генерации различного контента, это может быть лабиринт, ландшафт (PerlinNoise итд), подземелья в духе Roguelike Dungeons, пещеры,текстуры, и так далее, можно использовать в любом жанре игр, вне зависимости от графики (2D или 3D).
Большая часть библиотеки уже готова, но я все ровно буду стараться добавлять различные алгоритмы генерации  smile

RnOoc0Mzx9A.jpg?size=640x480&quality=96&sign=c408e11c022e06cadafdffec92eb4560&type=album

KtiP6s5pjC4.jpg?size=640x480&quality=96&sign=6bd21e5615057fe4996b5301f39ff04b&type=album

FtQavIzCyF0.jpg?size=460x479&quality=96&sign=3f6ad76d36c6bea8cf5df949c755114e&type=album

ynP2m-RbpDE.jpg?size=640x480&quality=96&sign=d48f2ae26f62b86e9e7a9d2214badbb6&type=album

shNygPnE7DE.jpg?size=640x480&quality=96&sign=08551dfdd0079de736f028fa8bd692c9&type=album

2uVDQDP20-M.jpg?size=640x480&quality=96&sign=2d5b8ac1866bf3d20509c3a25af0eb57&type=album

mApkS-8hLK4.jpg?size=640x480&quality=96&sign=1ca3a80ef9c21a5775ae9980a32cdae3&type=album

#11 Re: Программирование и геймдев » Как получить контекст GM8 » 2021-11-22 16:06:37

Спасибо, завтра обязательно опробую)
Если что выложу сюда

#12 Программирование и геймдев » Как получить контекст GM8 » 2021-11-15 18:52:55

FireRun
Ответов: 7

Привет всем, как же давно уже не создавал новых тем на форуме  smile
Вопрос такой, хочу подключить библиотеку ImGui к гм8, только чтобы дисплеи не перерисовывался, а рисовался на контексте самого GM8 (DX8 или DX9?), никогда не пробовал такого, как это можно сделать на С++?

#13 Re: Анонсы » Xtreme3D 3.9.1 для Game Maker Studio » 2021-11-06 10:22:45

Воу, не думал что на gms2 получится перенести, жалко что нету самого gms2 чтобы протестировать.
Как насчет производительности? есть прирост в FPS по сравнению с GM8?

#14 Разработка движка » Рад что старички еще в деле! (xtreme3d update 3.9) » 2021-05-29 19:59:30

FireRun
Ответов: 1

Привет всем! smile  Как же я скучал по этому форуму, будто в какое-то детство окунаюсь. Сегодня приятно удивился что есть еще какие-то движения (Xtreme 3d 3.9), это даже как-то мотивирует снова установить Delphi и продолжить начатое,что я наверное и сделаю, т.к на написание собственного движка, чем я занимался ранее, уходит слишком много времени.
Gecko, что нового? Есть ли какие-то интересные планы на движок? Я так и не закончил свой перенос гуи GLScene (CEGUI) в Xtreme3D, я всегда думал о том чтобы юбилейный выпуск 4.0 был очень крутым, с полноценным гуи, есть какие-то планы по этому поводу? у меня во время написания 3.9 получилось переписать некоторые методы в GLScene, по нажатию кнопок, что бы перенести их адекватно в X3D, но редактор гуи насколько помню не в какую не работал...

А так же мне до сих пор стыдно за не совершенную и не идеальную verlet физику и недостающие функции для TilePlane, думаю снова приступить к работе!

#15 Re: Свободный треп » Ребят что нового у вас ? , будут ли новости с движками и xtreme3d ? » 2020-10-19 22:16:42

Эх, я вот тоже порой захожу посмотреть, произошло ли что то новое)
К сожалению я разработкой пока не занимаюсь, внедряюсь все больше и больше в С++ с OpenGL, и Unity, так же пытаюсь написать аналог Xtreme3D (как когда-то пытался и Gecko) только более быстрый и технологичный, но...Время покажет, пока еще все в сыром виде.
Да и пока таких сильно повышающих эффективность X3D функций, которые можно было добавить в движок я не вижу, из оригинального движка GLScene практически все выжито, если только какие-то утилиты писать, такие как Xmaper, и то его разработку пришлось забросить как и Xtreme3D Editor, из за не понятных проблем в Max WinApi 2.

#17 Уроки и примеры » Пример фейтинга | Example Fighting » 2020-08-02 21:07:03

FireRun
Ответов: 3

Мой старый проект на Xtreme3D 3.7 который я когда-то забросил.

WSDA - Движение
T,Y - Удары

Скачать | Download

#18 Re: Вопросы и ответы » Как установить xtreme 3d для Game Maker 8.1 » 2020-08-02 20:09:18

I don't see much need to use gm8.1 for Xtreme3D, but the installation is exactly the same as for gm8, put all DLL files in your project folder (.gm81), and open the EmptyProject.gmres file to create a new project.

EmptyProject.gmres

#19 Re: Программирование и геймдев » GMHorde3D v1.3 - Порт движка Horde3D для GM8 » 2020-01-15 19:33:30

Прошу скачать данный runtime, для проверки работоспособности движка, хочу решить данную проблему
Microsoft Visual C++ 2010 (x64)

#20 Re: Программирование и геймдев » GMHorde3D v1.3 - Порт движка Horde3D для GM8 » 2019-08-20 23:05:09

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

#21 Программирование и геймдев » GMHorde3D v1.3 - Порт движка Horde3D для GM8 » 2019-08-16 15:29:48

FireRun
Ответов: 6

GMHorde3D v1.3
chicago.jpg
Автор: Я (FireRun)
Версия: 1.3 (16.08.2019)
Написан: на С++
Официальный сайт Horde3D: www.horde3d.org

Портировал графический движок Horde3D на Game Maker 8, В архиве 3 примера основанных на официальных примерах Horde3D. В будуещем возможно буду продолжать его развитие и писать на его основе полноценный движок для GM8, с физикой, обнаружением столкновений, NavMesh итд.

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

Скачать
GitHub

#23 Re: Разработка движка » Xtreme3D 3.8 [dev] » 2019-07-26 21:32:39

Xtreme3D 3.8 by FireRun (27.07.19)

(Xtreme3D)
Один из самых крупных релизов в ветке 3.x - было добавлено множество новых функций,новые примитивы, а так-же интегрированный новый физический движок для симуляции ткани,волос и мягких тел.
- Функция ViewerRenderToFilePNG сохраняет скриншот в формате PNG вместе с альфа каналом (прозрачности)
- Функция ViewerPixelRayToWorld
- Добавлена функция ViewerShadeModel, которая задает тип отображения нормалей у мешей,в заданном виде, то есть плоские нормали, или сглаженные
- Добавлен новый тип примитива Pipe, благодаря которому можно создавать различные трубчатые предметы, трубы,щупальца (К сожалению он не любит материалы...)
- Функция ActorGetAnimationName, возвращает имя анимации у Актера
- Функция ActorGetAnimationCount, возвращает количество анимаций у Актера
- Функция ActorAnimationDestroy, Удаляет определенную анимацию у Актера
- Функция ActorAnimationNextFrame, переключает кадр анимации на шаг вперед
- Функция ActorAnimationPrevFrame, переключает кадр анимации на шаг назад
- Функция ActorTriangleCount, возвращает количество треугольников в Актере
- Функция ActorSetFrame, Задает текущий кадр актера
- Функция MovementPathShow, позволяет отображать путь
- Функция MovementPathSetLoop, позволяет зациклить путь
- Функция MovementPathDeleteNode, Удаляет узел из пути
- Функции HUDSpriteXTiles,HUDSpriteYTiles, задают количество повторений текстур на HUDSprit'е
- Новый тип примитива TilePlane, для более детального тайлового текстурирования плоскости
- Добавлена функция FireFXRingExplosion
- Добавлена функция FreeformMeshObjectGetName которая возвращает имя меша в объекте свободной формы
- Добавлена функция FreeformMeshObjectSetName которая задает имя меша в объекте свободной формы
- Добавлена функция FreeformMeshObjectDestroy которая удаляет меш в объекте свободной формы
- Теперь менеджер DCE можно отсоединять от объектов функцией ObjectDestroy, и манипулировать стандартными функциями. Пример: dyn=DceDynamicSetManager(obj,mng); ObjectDestroy(dyn);.
- Функция ObjectFindByName возращает id объекта по имени
- Добавлен новый физический движок VerletWorld для симуляции ткани,веревок,волос, желе, и других мягких объектов, с учетом силы ветра, и гравитации

(Исправления в справке)
- Изменены названия функций с MouseGetX на MouseGetPositionX итд
- Исправлены параметры функции ViewerCreate в уроке 2 c ViewerCreate(window_handle, 0, 0, 640, 480) на правильные ViewerCreate(0, 0, 640, 480, window_handle());

(SDK)
- Добавлен пример по FPS
- Добавлен пример по Octree
- Добавлен пример по VerletWorld
- Изменен пример thirdperson

К сожалению у меня не вышло добавить PerlinHDS, не знаю с чем это связанно, но GM8 просто не прогружался с ним. Так же был бы рад если бы кто-то придумал функцию, с помощью которой можно было бы закрашивать TilePlane в реальном времени мышкой, у меня не получилось ее реализовать. Что насчет редактора карт, базовый функционал готов, но я столкнулся с багами, например когда клонируешь объект и затем выбираешь его в списке выходит ошибка, или моментами при сохранении карты из редактора просто выкидывает, буду признателен если его кто то протестирует, будут ли у вас подобные проблемы с ним.

Xtreme3D 3.8 SDK 
Xtreme3D 3.8 Source
XMaper

Управление в XMaper:
Управление в редакторе я старался сделать в стиле Blender

Перемещение: выбираем объект, нажимаем G и двигаем по карте, нажимаем X или Z и двигаем по одной оси, с зажатым Space перемещаем по Y крутя колесо мыши.

масштаб: выбираем объект, нажимаем T , нажимаем X,Y или Z и масштабируем по одной оси, с зажатым Space масштабируется по всем осям.

Вращение: выбираем объект, нажимаем R , нажимаем X,Y или Z и вращаем по одной оси, с зажатым Space вращается по двум осям.

С зажатым Shift'ом включаеться режим сетки, работает он в режиме G и R

Чтобы загрузить карту в проект Xtreme3D, надо загрузить gex расширение и использовать код OpenMap('map file'),затем, чтобы найти id объекта из карты, надо использовать код ObjectFindByName, так как объекты в карте сохраняются с тем же именем, что и в редакторе карт.

#24 Re: Вопросы и ответы » GLScene 1.8 » 2019-07-25 16:01:47

Хм, я думал это уже давно всем извезно про версию 1.8, только там под лазарус если не ошибаюсь, и API движка немного изменен.
Вот недавно тоже думал над версией 4.0, практически весь функционал версии GLScene 1000714 уже есть в Xtreme3D. В общем, время покажет, интересно что Gecko думает на этот счет

#25 Re: Разработка движка » Xtreme3D 3.7.3 » 2019-07-21 09:29:34

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

Подвал доски

Под управлением FluxBB