forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Пишем 3D движок - замену Xors3D (http://forum.boolean.name/showthread.php?t=18971)

bugway 25.02.2014 06:36

Пишем 3D движок - замену Xors3D
 
Вложений: 1
Для создания 3D движка (альтернатива устаревающему движку Xors3D) собирается команда энтузиастов.

Цели проекта:

+ Сделать движок не хуже Xors3D
+ Получить опыт в разработке
+ НЕ убийца КРИЗИСА и Unity !!!
+ Реализовать некоторые интересные идеи

Фичи проекта:

+ Платформа только РС
+ Движок в виде внешней DLL
+ Поддержка 3D Vision и Oculus Rift
+ Поддержка терраморфинга
+ Большие ландшафты
+ Наличие удобного редактора

Что есть на текущий момент:

+ Исходники на PowerBasic 10
+ Репозитрий GIT на bitbucket.org
+ Несколько демок (очень примитивных, чтобы выкладывать тут)
+ Материалы, примеры, гайды и. т.п. (как использовать lua.dll и.т.п.)

Движок (точнее его зачатки :) ) уже может:

+ Инициализировать DX9
+ Устанавливать видеорежим
+ Рендерить сцену
+ Реализованы некоторые примитивы: кубы, плоскости, треугольники.
+ VBO. Реализована загрузка моделей формата OBJ
+ Работа с камерой
+ Есть зачатки редактора мира на Xors3D - можно портировать на чистый DirectX

Лог разработки:


06.03.2014

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

04.03.2014

- Написан с нуля модуль для работы с HID-устройствами. Работает поиск трекера Oculus Rift на шине USB.

03.03.2014

- Портирован исходник для работы с видеокартами NVidia (nvapi.dll)



Скрины и демки:




Одна из первых демок:

Вложение 20195



Кто требуется в первую очередь:

- Человек, имеющий опыт в работе с шейдерами.
- Человек, имеющий опыт работы с физическими движками

а также все заинтересованные.

UPD: Нужность и целесообразность обсуждаем тут

Пара скринов с репозитория:



Пример кода (метод загрузки модели формата OBJ, выдранный из класса):

Код:

'===============================================================================================================================
METHOD xLoadMeshFromOBJ(File AS STRING)
    DIM buf AS STRING, FN AS LONG, FC AS LONG
    DIM tc AS LONG, vc AS LONG, P(4) AS STRING, v() AS vertexType, vtu() AS SINGLE, vtv() AS SINGLE
    DIM z(4) AS WORD, zp(4) AS STRING
    IF ISFILE(File) THEN 'если файл найден
        FN = FREEFILE
        OPEN File FOR INPUT AS FN
        WHILE NOT EOF(FN)
            LINE INPUT #FN,buf
            INCR FC
            IF MID$(TRIM$(buf),1,1)<>"#" THEN
                PARSE buf, p(), " "    'парсим строку в массив P()
                SELECT CASE p(0)
                    CASE "mtllib":      'файл с материалами          'пока не нужно
                    CASE "o":          'новый подмеш (набор) subset  'если текстурный атлас - субмеши не нужны
                    CASE "v":          'координаты вертекса
                        REDIM PRESERVE v(vc)
                        v(vc).x=CSNG(VAL(p(1)))  :  v(vc).y=CSNG(VAL(p(2)))  :  v(vc).z=-CSNG(VAL(p(3)))
                        INCR vc
                    CASE "vt":          'координаты текстуры
                        REDIM PRESERVE vtu(tc), vtv(tc)
                        vtu(tc)=CSNG(VAL(P(1)))  :    vtv(tc)=1-CSNG(VAL(P(2)))
                        INCR tc
                    CASE "vn":          'нормали - пока не нужны
                    CASE "f":          'индексы стрипов или треугольников (делаем только треугольники!)
                        PARSE P(1), ZP(), "/"
                        Z(0)=CWRD(VAL(ZP(0))):  Z(1)=CWRD(VAL(ZP(1))):  Z(2)=CWRD(VAL(ZP(2))) ' (Z(0)-1)  - индекс вертекса
                        me.AddVertex (v(Z(0)-1).x, v(Z(0)-1).y, v(Z(0)-1).z, vtu(Z(1)-1), vtv(Z(1)-1))

                        PARSE P(2), ZP(), "/"
                        Z(0)=CWRD(VAL(ZP(0))):  Z(1)=CWRD(VAL(ZP(1))):  Z(2)=CWRD(VAL(ZP(2))) ' (Z(0)-1)  - индекс вертекса
                        me.AddVertex (v(Z(0)-1).x, v(Z(0)-1).y, v(Z(0)-1).z, vtu(Z(1)-1), vtv(Z(1)-1))

                            PARSE P(3), ZP(), "/"
                            Z(0)=CWRD(VAL(ZP(0))):  Z(1)=CWRD(VAL(ZP(1))):  Z(2)=CWRD(VAL(ZP(2))) ' (Z(0)-1)  - индекс вертекса
                            me.AddVertex (v(Z(0)-1).x, v(Z(0)-1).y, v(Z(0)-1).z, vtu(Z(1)-1), vtv(Z(1)-1))

                END SELECT
            END IF
        WEND
        CLOSE FN
        IF FC<5 THEN MSGBOX "Incorrect file - please convert it with MilkShape! (or convert from UNIX format!)"
    ELSE 'файл не найден
        MSGBOX "File not found:  " & file
    END IF
END METHOD


Как видите - очень простой пример процедуры загрузки формата OBJ...

Randomize 25.02.2014 07:20

Ответ: Пишем 3D движок - замену Xors3D
 
Скрины? Прмеры кода? Бенчмарки?

Harter 25.02.2014 08:57

Ответ: Пишем 3D движок - замену Xors3D
 
Отличный ник! Хорошо бы смотрелся в качестве названия какой-нибудь аутсорс-студии.
"BugWay - we provide only high quality bugs!"
"BugWay - try to deBug!"
...
:)

bugway 25.02.2014 09:39

Ответ: Пишем 3D движок - замену Xors3D
 
Скрины еще посмотрю, может что более привлекательное найдется... Кто что может сказать по поводу задумки?

Судя по обсуждениям только одного форума о Xors3d - все хотят продолжения поддержки движка, т.к. он очень простой. Но до сих пор НИКТО не предложил сделать аналогичный движок.

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

pax 25.02.2014 10:58

Ответ: Пишем 3D движок - замену Xors3D
 
А почему бейсик? Ксорс же на С++ под любой язык подключается... Имхо вы хотите написать новый Blitz3d, а не Ксорс...

L.D.M.T. 25.02.2014 11:14

Ответ: Пишем 3D движок - замену Xors3D
 
DIM z(4) AS WORD, zp(4) AS STRING - я щитаю лишнее, будет проще указывать DIM z#(4), dim zp$(4)

Samodelkin 25.02.2014 11:17

Ответ: Пишем 3D движок - замену Xors3D
 
И чем он новее если опять dx9?

Кстати Knightmare вроде собирался что то делать только не для блица. Есть инфа?

bugway 25.02.2014 11:35

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от pax (Сообщение 275295)
А почему бейсик? Ксорс же на С++ под любой язык подключается... Имхо вы хотите написать новый Blitz3d, а не Ксорс...

Нет. Задачи написать новый блиц желания нет. Цель - сделать движок с рендером DX9/10/11 с продуманной архитектурой и совместимый со всем, с чем только можно. Блиц, си, VB6, PowerBasic, PureBasic, FreePascal и т.п. К тому же с редактором мира.

Выбор языка PowerBasic 10 обусловлен следующим:

+ Простой синтаксис языка
+ Мощь и возможности Си (+ есть встроенный ассемблер, 17 типов данных!!!)
+ Чисто нативный код без виртуальных машин
+ Поддержка классов, COM, и.т.п.
+ самое главное: есть готовые заголовочные файлы для ВСЕГО WIN32API!!! Включая DX9/10/11!!!

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

bugway 25.02.2014 11:39

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от L.D.M.T. (Сообщение 275299)
DIM z(4) AS WORD, zp(4) AS STRING - я щитаю лишнее, будет проще указывать DIM z#(4), dim zp$(4)

Код набран на скорую руку, но вообще суффиксы обещали исключить в следующих версиях компилятора...

Mr_F_ 25.02.2014 12:04

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

PowerBasic 10
ну это несерьёзно как-то.

DStalk 25.02.2014 12:14

Ответ: Пишем 3D движок - замену Xors3D
 
Несерьезно - это лепить виртуальную машину на android и пихать это дело в мобилки с многоядерными процами.
А PowerBasic для данной задачи я думаю вполне подходит...

jimon 25.02.2014 14:06

Ответ: Пишем 3D движок - замену Xors3D
 
Запилите мне версию под Mac, Ubuntu\Debian, FreeBSD, iOS, Android, WP8

MadMedic 25.02.2014 15:13

Re: Пишем 3D движок - замену Xors3D
 
Да, действительно, надо мультитаргетенджин.
Виндовс, Андроед, Айёос, HTML5 или WebGL и опционально, но желательно Линух и Мак

HolyDel 25.02.2014 17:09

Ответ: Пишем 3D движок - замену Xors3D
 
как подключить к пурику библиотеки?
всякие там фритайпы да злибы.
плюсы выбирают не из-за языка, а потомучто к ним библиотек немерено.

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

bugway 25.02.2014 18:31

Ответ: Re: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от MadMedic (Сообщение 275315)
Да, действительно, надо мультитаргетенджин.
Виндовс, Андроед, Айёос, HTML5 или WebGL и опционально, но желательно Линух и Мак

Думаю если человек реально собрался выпускать игру на всех платформах - ему НЕ НУЖЕН движок уровня Xors3D, т.к. это уже совсем другой уровень. Скажите честно - кто-нибудь сделал на Xors3d убийственный коммерческий проект? Я думаю ответ очевиден.

Задача сделать движок, в основном, для начинающих игрописателей. Таким движком был Xors3D. Таким будет и мой движок. Только добавятся более современные фичи.

Я реально оцениваю свои силы и возможности и говорю сразу - "Убийцы Unity" не будет. Но должен получится (если мы сообща приложим усилия) вполне приемлемый по качеству движок.

Что могу гарантировать я - как минимум не пропаду как Сквид. А если вдруг и заброшу проект, то как минимум оставлю исходники всем желающим. (кстати, обсуждаем вопрос изначальной открытости исходников)

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

Если есть энтузиасты, готовые полученный код портировать на PureBasic, который поддерживает Linux и Mac - нет проблем!

Хотя чем и интересен именно PowerBasic - он позволяет делать все тоже самое, что и на Си - только намного проще и код намного более читабельный и понятный. Не думаю, что кто-то будет иметь желание ковыряться в чужом коде Си. Особенно Си++.

Если все-таки не сойдемся в выборе инструмента - можно писать алгоритмы на псевдоязыке и переводить на свой любимый язык или платформу. Но согласитесь, задача не завоевать рынок, не убить Юнити - мы сделаем удобную и нужную обвертку под графическое АПИ в первую очередь для себя, для воплощения своих творческих идей. Мне кажется - что это было стержнем у Xors3D.

От сообщества поклонников Xors3D требуется список фич, которых не хватало в Xors3D. Например мне не хватало функций для работы с ландшафтом, были глюки с LODом и дыры в ландшафте. И много чего еще. Так давайте вместе это дело исправим?

bugway 25.02.2014 19:12

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от HolyDel (Сообщение 275320)
как подключить к пурику библиотеки?
всякие там фритайпы да злибы.
плюсы выбирают не из-за языка, а потомучто к ним библиотек немерено.

если в PureBasic нельзя подключить стандартные DLL библиотеки - то в топку такой язык. Все нормальные языки умеют использовать DLL библиотеки. В том числе блиц, для которого и делался Xors3D. Вместе с библиотекой DLL распространяются также заголовочные файлы (headers), которые содержат описание импортируемых функций. Вся Windows по сути большой сборник библиотек DLL (которые можно использовать на многих языках). Суть - сделать такую библиотеку.

PS. A на Purebasic библиотеки цеплять можно!
С их сайта:

Цитата:

- Access to full OS API for advanced programmers
- Easy but very fast 2D game support through dedicated libraries (DirectX, SDL, ...)

Knightmare 25.02.2014 21:10

Ответ: Пишем 3D движок - замену Xors3D
 
Вся эта затея имеет смысл только в том, чтобы получить опыт работы с GAPI, например. Но в реалиях этого вашего бейсика опыт будет бесполезен чуть более чем полностью. Ну и если смотреть на вещи реально, то чтобы лепить куличики в песочнице хватит и дряхлого блитза, а все эти ващи типа "ололо, будут шейдеры и вообще все охуенно" не взлетают, я проверил, лол. В конце-концов есть сраный Юнити, и если выбраться из своей зоны комфорта и потыкаться в шарпы, то ВНЕЗАПНО окажется что лабать говно на них не сложнее чем на бейсике (да еба, говно с одинаковой эффективность лабать можно и на плюсах), но зато есть куда расти и хоть какие-то перспективы.
Суть в том, что блитзоюзеры только кричали что вот если им дать шойдеры, то они захватят мир и все дела, когда они их получили, то ВНЕЗАПНО поняли что это нихера не тривиальная штука и нельзя просто сказать - "ДВИЖОГ, ЗОПЕЛИ МНЕ БЛУМ, МОУШЕНБЛЮР И ПАРАЛЛАКСМАППИНГ БЫСТРОБЛЯТЬ" и оно все заработает быстро и идеально на любой сцене с любым контентом и т.д. и т.п. Все это говно требует знаний графического конвеера и каких-либо допилов для частных случаев. Тащем-то можно выдать и универсальное решение, но универсальные орешения всегда сильно медленнее частных, потому что учитывают овер9000 вариантов использования долбанутыми на всю голову юзерами (и блджад всегда найдется еще 100500 вариантов которых не учли, но они прям очень и очень нужны 3.5 пользователям твоего движка).
По итогу всей возни реально шейдеры осилило пара десятков человек, остальным даже не хватало сил внести малейшие правки самим. Это не добавляет мотивации при разработке.

Цитата:

Судя по обсуждениям только одного форума о Xors3d - все хотят продолжения поддержки движка, т.к. он очень простой. Но до сих пор НИКТО не предложил сделать аналогичный движок.
Да не нужно это никому на самом деле, достаточно того что есть чтобы играть в гамедевилопиров.

Цитата:

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

Цитата:

Кстати Knightmare вроде собирался что то делать только не для блица. Есть инфа?
Планы были, наработки были, но потом было решено это дело свернуть, т.к. перспектив никаких. Хотя в моменты лютчайщего будапешта от юзания кокоса возникает желание возродить последний проект кроссплатформенного 2D движка (3D на мобилках никому особо не упало, а остальное меня сейчас не интересует).

Цитата:

Цель - сделать движок с рендером DX9/10/11 с продуманной архитектурой и совместимый со всем, с чем только можно.
Не нужно.

Цитата:

Выбор языка PowerBasic 10 обусловлен следующим:

+ Простой синтаксис языка
+ Мощь и возможности Си (+ есть встроенный ассемблер, 17 типов данных!!!)
+ Чисто нативный код без виртуальных машин
+ Поддержка классов, COM, и.т.п.
+ самое главное: есть готовые заголовочные файлы для ВСЕГО WIN32API!!! Включая DX9/10/11!!!
В двойне не нужно.

Цитата:

Думаю если человек реально собрался выпускать игру на всех платформах - ему НЕ НУЖЕН движок уровня Xors3D, т.к. это уже совсем другой уровень.
Для написания очередного клона Flappy Bird и прочей казуальщины более чем, а это большая часть рынка.

Цитата:

Для меня же ценен сам опыт работы в команде, изучение чего-то нового , создание чего-то своими руками и т.п.
Работа удаленно с кучкой человеков за идею никак не соотносится с реальным миром разработки. Потратить на что-то свободное время - да, получить какой-то вменяемый опыт - нет (ну, есть минимальный шанс конечно, при наличии человека, который действительно понимает что и как должно быть).

Цитата:

Хотя чем и интересен именно PowerBasic - он позволяет делать все тоже самое, что и на Си - только намного проще и код намного более читабельный и понятный.
Шта? Для меня, как для С++ разработчика, твой кусок кода выглядит полным пиздецом, от обилия капса аж глаза начинают кровоточить.

Цитата:

Не думаю, что кто-то будет иметь желание ковыряться в чужом коде Си. Особенно Си++.
Обычное дело, это вообще не должно быть хоть какой-то проблемой для нормального разработчика, тем более при командной работе. Ну и еба, С++ это же не Perl:-)Откуда такие фантазии о его неебической сложности?

Цитата:

От сообщества поклонников Xors3D требуется список фич, которых не хватало в Xors3D.
Кто был серьезно заинтересован разработкой - давно свалил с бейсиков. Оставшимся все твои потуги не нужны.

moka 25.02.2014 21:40

Ответ: Пишем 3D движок - замену Xors3D
 
Ещё 2 копейки:

Рассмотри логику разраба: Я знаю С++, пойду искать двиг под С++.
Я знаю Blitz и только (таких единицы), пойду искать двиг, О Xors3D (мёртв), так бля, чё там ещё, PureBasic? Уф.. Учит значит новый язык, и ещё движок. Ну думаю о качестве излагаемого кода таким самоучкой можно и не говорить..

Есть PureBasic разраб, погодите, только их практически нет.

Так что я не совсем вижу на какую аудиторию ты целишься?
Вот глянь:
http://www.outracks.com/
http://www.godotengine.org/wp/
https://unity3d.com/
https://turbulenz.com/
И ещё десятки, и они умеют на все платформы. Многие из них на очень популярных языках, и с большими комьюнити.
Либо вы предлагается что-то новое и что потенциально имеет свой рынок, либо смысла очень мало суваться.

Опыт? Думаю Knightmare прав - опыта будет мало.
Я с 15 на блице сидел, на Xors3D один из первых шейдеры начал писать на нашем комьюнити, и тогда уже .Net учил, и PureBasic немного, и так вот тыкался до 19. А когда в 20 лет пошёл на работу разрабом на сраном PHP над сраными проектами (без опыта кодинга на PHP), то понял - вот теперь пора начать учиться.
С тех пор уже как более 4 лет, в разных компаниях учусь, и думаю только так стоит учиться, при этом если компания в которой работаешь не способствует твоему развитию интересными проектами и коллегами - то стоит менять пока молодой.

Сидя дома, да можно что-то замутить, но сегодня таких уже очень много, следственно "шанс" чего-то дельного без реального конкретного плана, анализа риска и людей по интересам изначально - далеко не уйдёшь, и опыта будет не много.
У нас на форуме этот паттерн с как минимум 3 людьми повторялся, далеко не ушли.
А кто-то и збсь пошёл (HolyDel, Knightmare, jimon).

St_AnGer 25.02.2014 23:33

Ответ: Пишем 3D движок - замену Xors3D
 
Ещё одна копейка в сторону выбора С/C++ (да и вообще любого человеческого ЯП):
Когда мне поднадоел блиц я качнул исходники Quake2 (idTech2 engine, да, не самый сложный проект). И, внимание... Абсолютно не зная синтаксиса и принципов языка C (никогда до этого не притрагивался к нему), я относительно спокойно разобрался в коде (большинстве его мест). Потому что он хорошо организован и читаем, хоть и с минимальным количеством комментариев. К чему я это? Да к тому, что читаемый и понятный код можно написать на ЛЮБОМ языке, и если человеку надо разобраться в любом коде - он разберётся в нём. Си как таковой язык не сложный, если пользоваться им на уровне того же бейсика. Но все его плюшки как раз раскрываются именно при изучении сложностей :)
Минус бэйсиков как таковых - они не нужны, кроме как для обучения основных принципов программирования в школе/техникуме/колледже (может быть с ОГРОМНОЙ натяжкой Visual Basic и нужен).
Ну и да, даже твой код на PowerBasic не так читаем простому смертному, как ты думаешь (для меня код на С++ понятнее был бы в разы, чем это; плюсом постоянный капс лок... фу таким быть).
Разумеется, это всё ИМХО и мне интересно посмотреть во что это выльется в дальнейшем, если конечно работа пойдёт дальше.

moka 26.02.2014 03:49

Ответ: Пишем 3D движок - замену Xors3D
 
Да и если вы в приоритет ставите опыт - то С++ - там опыта много, и полезный, т.к. игровой индустрии именно С++ разрабы нужны.

bugway 26.02.2014 09:14

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от St_AnGer (Сообщение 275348)
... читаемый и понятный код можно написать на ЛЮБОМ языке, и если человеку надо разобраться в любом коде - он разберётся в нём. Си как таковой язык не сложный, если пользоваться им на уровне того же бейсика. Но все его плюшки как раз раскрываются именно при изучении сложностей :)
Минус бэйсиков как таковых - они не нужны, кроме как для обучения основных принципов программирования в школе/техникуме/колледже (может быть с ОГРОМНОЙ натяжкой Visual Basic и нужен).

1. В современных "бейсиках" мало что осталось от оригинальных "бейсиков", которые были в 90-е.
2. Не нужно брать во внимание всякие поделки и интерпретаторы. (которых, к сожалению, большинство и которые даже не понятно, для чего создавались. Подозреваю, что как курсовики :) )
3. Нормальных компиляторов единицы. Один из которых PowerBasic.

Вообще считаю, разницы нет, на чем писать код. Лишь бы он правильно компилировался. Но если два компилятора делают одно и тоже, то в контексте данной задачи выбирается тот, у которого меньше писанины на входе и по прочим удобствам. Не нужно зацикливаться на "инструменте", нужно решать поставленную "задачу".

Вообще выбор компилятора - это больше религиозный вопрос.

Что касается сложности языка СИ. Я не говорил что он сложный. Не сложнее PowerBasic`a. Портировать программы с Си на PowerBasic - одно удовольствие! Кому-то тут КАПСЛОК глаза резал... Мне так же режет глаз синтаксис Си. Но это не значит, что я кроме компиляторов BASIC ничего не признаю. Для каждой задачи какой-то более удобен, какой-то менее. Регистр исходного кода вообще никак не связан с компилятором - это всего лишь оформление.

Цитата:

Вся эта затея имеет смысл только в том, чтобы получить опыт работы с GAPI, например.
Именно! Это одна из главных целей. Совместить приятное с полезным. Главное - алгоритмы и API.

В целом Knightmare прав. Он уже прошел путь разработчика движка, знает многое, имеет опыт. Но почему всё оценивается с позиции перспектив и коммерческой выгоды? Изобретатель шахмат не получил ничего и даже погиб, но ведь многие играют в шахматы и сегодня. Существует огромное количество нишевых продуктов.

И еще не совсем понимаю: о каком магическом опыте на Си идет речь? Чем отличается опыт написания оконной процедуры с отловом сообщений на Си от опыта написания такой же процедуры на ассемблере или PowerBasic? Тоже самое и с DirectX - если знать АПИ - не важно на чем его использовать.

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


St_AnGer 26.02.2014 10:14

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 275369)
И еще не совсем понимаю: о каком магическом опыте на Си идет речь? Чем отличается опыт написания оконной процедуры с отловом сообщений на Си от опыта написания такой же процедуры на ассемблере или PowerBasic? Тоже самое и с DirectX - если знать АПИ - не важно на чем его использовать.

Попробуй устроиться в любую "игродельную" (грубо говоря) студию, где делаю более-менее серьёзные проекты и объяснить, что PowerBasic это как Си, только бэйсик. Больше чем уверен, что посмотрят на тебя глазами по диаметром с кубовую бочку и на работу не примут (хотя тут зависит от случая).

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

Ну и да, весь тот пост был чисто моим мнением о ситуации и не больше. И я согласен с тобой, что выбор ЯП - это вопрос довольно-таки "религиозный", если это можно так назвать. Главное, что бы в конце-концов была выполнена поставленная задача.

bugway 26.02.2014 10:36

Ответ: Пишем 3D движок - замену Xors3D
 
Немного поправил шапку - озвучил цели и задачи

Randomize 26.02.2014 11:27

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Knightmare (Сообщение 275334)
Ну и еба, С++ это же не Perl:-)

:4to: Чем это он так тебя напугал?

Wegox 26.02.2014 16:34

Ответ: Пишем 3D движок - замену Xors3D
 
Ну делай сам пока:dontknow: будут демки - бенчмарки, народ может и подтянется.
А пока просто, без шейдеров и физики.. сделай поддержку 3D Vision и Oculus Rift, замути терраморфинг что та ещё:dontknow: удобный редактор например:super:

bugway 26.02.2014 16:43

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Wegox (Сообщение 275400)
Ну делай сам пока:dontknow: будут демки - бенчмарки, народ может и подтянется.
А пока просто, без шейдеров и физики.. сделай поддержку 3D Vision и Oculus Rift, замути терраморфинг что та ещё:dontknow: удобный редактор например:super:

Видимо так и будет... :)

Samodelkin 26.02.2014 19:20

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

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

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

К тому же чем быстрей подключишь всё что запланировал тем проще будет исправить или адаптировать архитектуру ядра, которое все эти дела синхронизирует. Потом когда будет понаписано много всякого кода, перекопать базовую архитектуру будет проблематично.

И делать сразу три гапи (дх9,10,11) это странно. дх10 тут вообще лишний, зачем он? К тому же не рассчитывай что ты напишешь рендер и всё, его нужно будет постоянно сопровождать, и тебе придется сопровождать сразу все гапи, а еще тот код который их обобщает, чтобы для юзания было прозрачно какое гапи используется. К тому же каму понадобиться дх9 если будет 11 (у него есть режимы совместимости если что)? Лучше сразу определись с минимальным необходимым набором (и целевыми платформами) и разрабатывай только его.

И да - используй лучше с/с++ (поновее желательно и без всяких мелкомягких расширений - так будет проще потом портировать).

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

pax 26.02.2014 19:39

Ответ: Пишем 3D движок - замену Xors3D
 
В пользу С++ хочу сказать что проще найти помощников по разработке движка. Бэйсик это редкость.

bugway 27.02.2014 04:32

Ответ: Пишем 3D движок - замену Xors3D
 
Отлично - один человек присоединился!

Arton 27.02.2014 04:46

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 275447)
Отлично - один человек присоединился!

И кто этот герой?

Пётр 28.02.2014 02:26

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 275326)
если в PureBasic нельзя подключить стандартные DLL библиотеки - то в топку такой язык.

Все есть.
Работа с DLL (динамическая загрузка). http://purebasic.com/documentation/library/index.html
Статическая линковка DLL используя LIB файл, а так же импорт статических библиотек и объектных файлов.http://purebasic.com/documentation/r...endimport.html
Создание DLL. http://purebasic.com/documentation/reference/dll.html

По теме.
По моему, использование PowerBasic не совсем логично. Почему? Потому что этот ЯП перестал развиваться и текущая версия вышла несколько лет назад. Компиляторы есть только для DOS и Win32. Сейчас происходит переход на Win64 и под эту платформу нельзя компилировать на PowerBasic, а значит ваш движок уже устарел даже еще не появившись.

bugway 28.02.2014 04:51

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Пётр (Сообщение 275568)
Сейчас происходит переход на Win64 и под эту платформу нельзя компилировать на PowerBasic, а значит ваш движок уже устарел даже еще не появившись.

Что мешает при выходе 64-битного компилятора сделать х64 версию? Версии выходят примерно одна в 2.5 года. В связи со смертью основателя Боба Зейла грядут значительные перемены. Надеюсь хорошие. Еще примерно год до новой версии. :)


К тому же считаю, что несмотря на наличие большого объема памяти в современных ПК, ее нужно использовать с умом, а не загружать все подряд. Итого 2 Гб достаточно для подавляющего числа игр. Эталоном и идеалом считаю 3D шутер c полностью генерируемым контентом и размером всего 95 килобайт (!!!) под названием Krieger.

Именно из-за наличия такого эталона, считаю:

1. .Net Framework - монстром. Я не хочу таскать со своей программой 300 метров библиотек.
2. Я не понимаю, что в современных играх можно такого засунуть в ЕХЕ файл, чтобы он весил 48 мегабайт (!!!). А такое сплошь и рядом.
3. Меня раздражает требования программ ставить кучу рантаймов типа .NetFramework, 10 версий msvcrxxxx.dll, и т.п. для работы маленькой программы.
4. Не люблю JAVA и всё, что на ней.
5. Люблю ассемблер.


moka 28.02.2014 05:00

Ответ: Пишем 3D движок - замену Xors3D
 
Уф... Столько ненависти..
Всё имеет свои причины быть, и понимание этих причин избавит тебя от "не люблю" и удивления тому как можно сделать так или сяк.
В тот же exe можно запихать файлы с картинками (лого например) или дллки, да и кучу других вещей, почему нет?

Думаю пока мы тут рассуждаем, кто-то уже написал мало-мальский набросок на Сях, с вращяющимся кубиком.. А мы тут холиварим..

ARA 28.02.2014 05:15

Ответ: Пишем 3D движок - замену Xors3D
 
bugway Ты затеваешь многолетнее бесперспективное занятие. Между тем жизнь у тебя не бесконечная :)

bugway 28.02.2014 05:16

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от moka (Сообщение 275579)
В тот же exe можно запихать файлы с картинками (лого например) или дллки, да и кучу других вещей, почему нет?

Я не имею ввиду казуальные игры, где вшиты ресурсы, а именно 3D action, где все ресурсы внешние.

Цитата:

Сообщение от moka (Сообщение 275579)
Думаю пока мы тут рассуждаем, кто-то уже написал мало-мальский набросок на Сях, с вращяющимся кубиком.. А мы тут холиварим..

Я сейчас прикручиваю Oculus Rift к движку... Снова вопрос: чем отличается вращающийся кубик на Си, от такого же кубика на другом языке? :)

ABTOMAT 28.02.2014 05:27

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 275581)
Я сейчас прикручиваю Oculus Rift к движку... Снова вопрос: чем отличается вращающийся кубик на Си, от такого же кубика на другом языке? :)

Тем что у сях (сях - всмысле крестах или C# или даже Java или, если совсем стыда лишиться, JavaScript) большое коммьюнити по всему миру, как следствие — большое количество готовых наработок и решений и компиляторы (интерпретаторы) есть под все популярные платформы. И эти языки постоянно развиваются, то есть если появится новая платформа, то оперативно сделают, чтобы нацеливаться можно было и под неё. А PowerBasic — я вообще о таком впервые слышу (нет, вру, пару лет назад что-то слыхал краем уха, блин, я даже про Пурик наслышан, а у него коммунити вообще сдутое), как тут говорят, последняя его версия вышла несколько лет назад, т.е. язык мёртв. Ты не сможешь своё двигло перекомпилить под новые винды, которые появятся, под другие оси. И ситуация будет как с Блицем: на современной винде УЖЕ работает дерьмово, на Linux сасай, на Mac сасай, про мобилки и говорить нечего.

А вообще уважаю что ты своё двигло пишешь, если и не взлетит, то богатый опыт, полученный во время разработки, пригодится точно. Просто хотелось бы, чтобы ты мог в будущем использовать свои наработки, а если ты будешь расти, то ты неизбежно придёшь к тому, что язык надо сменить (и не только по вышеописанным причинам)

bugway 28.02.2014 05:32

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от ARENSHI (Сообщение 275580)
bugway Ты затеваешь многолетнее бесперспективное занятие. Между тем жизнь у тебя не бесконечная :)

Скажем так: программирование для меня - хобби. А хобби может быть всю жизнь... :)

bugway 28.02.2014 05:59

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от ABTOMAT (Сообщение 275582)
большое коммьюнити по всему миру, как следствие — большое количество готовых наработок и решений

Что мешает наработки на одном языке использовать в другом? Не важно на чем писать код, хоть в машинных кодах. Главное - понимать суть и логику программы. Остальное - вторично.

Цитата:

Сообщение от ABTOMAT (Сообщение 275582)
Ты не сможешь своё двигло перекомпилить под новые винды, которые появятся, под другие оси. И ситуация будет как с Блицем: на современной винде УЖЕ работает дерьмово, на Linux сасай, на Mac сасай, про мобилки и говорить нечего.

Цитата:

Сообщение от ABTOMAT (Сообщение 275582)
А вообще уважаю что ты своё двигло пишешь, если и не взлетит, то богатый опыт, полученный во время разработки, пригодится точно. Просто хотелось бы, чтобы ты мог в будущем использовать свои наработки, а если ты будешь расти, то ты неизбежно придёшь к тому, что язык надо сменить (и не только по вышеописанным причинам)

Конечно! Самое главное опыт! А "наработки" должны храниться в голове. Один раз написав FTP клиент - уже знаешь как его вообще писать, знаешь, как работать с сокетами и т.п. Все остальное - компилятор, платформа, синтаксис - вторично. Соглашусь, язык возможно придется сменить и не один раз. Все будет зависеть от "задач".

moka 28.02.2014 06:58

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 275583)
Скажем так: программирование для меня - хобби. А хобби может быть всю жизнь... :)

Только в нашем обществе потребления, есть одна вынужденная потребность - деньги, чтобы пропитать себя и крышу иметь.
А как обычно водиться - делать деньги требует кучу времени. Но если ты умудрился делать деньги занимаясь своим хобби - то вот это круто, и на самом деле доставляет. Хобби на энтузиазме не бесконечно, это "драгоценное" время когда тупо "потому что хобби" мог сидеть ночами по 8-12 часов, кодить всякую хрень, и нравилось! Но потом перестанет, нужно искать другие способы мотивации, и со временем это всё сложнее и сложнее. И если не будет работы на которой ты будешь кодить, в итоге как это водиться - ты забросишь кодинг, и будешь лишь вспоминать о былых клёвых временах..

Позаботься чтобы твоё хобби, стало твоей работой, чтобы ты мог этим делом кормить себя, иначе потратишь драгоценное время "попусту" лишь "покормив" свои эмоции.
Самое отстойное видеть людей с интересами по молодости, не вложившиеся в хобби как положено, вырастают и работают продавцами в магазинах или грузчиками..

Мне повезло, с 14 лет хобби, а сейчас не могу представить если бы не добился работы разработчиком.. Я бы подыхал от тупизма и осознания что пр**бал время когда мог вложить..

seaman 28.02.2014 09:41

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Эталоном и идеалом считаю 3D шутер c полностью генерируемым контентом и размером всего 95 килобайт (!!!) под названием Krieger
А ты видел сколько она занимает после распаковки и генерации ресурсов? У меня чуть менее 300 Мб. Чем это лучше:
Цитата:

Я не хочу таскать со своей программой 300 метров библиотек.
Тем более, что винда их уже по умолчанию таскает.

pax 28.02.2014 10:10

Ответ: Пишем 3D движок - замену Xors3D
 
Сейчас рулят вэб инсталеры, и вообще DX9 в комплект Win7 не входит, тебе его тоже с собой таскать надо ;)

bugway 28.02.2014 14:02

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от seaman (Сообщение 275588)
А ты видел сколько она занимает после распаковки и генерации ресурсов? У меня чуть менее 300 Мб. Чем это лучше

Ну можно и в память сразу генерировать, но зачем при каждом запуске генерировать одни и те же текстуры? Логично их в кэше держать. Но распространять ведь нужно всего 95 килобайт! Я тут прикинул, кризис 1 можно было бы теоретически уместить в 15 мегабайт, а кризис 2 - в 100 мегабайт...


Цитата:

Сообщение от seaman (Сообщение 275588)
Тем более, что винда их уже по умолчанию таскает.

Вот так Windows и распухла до 13 гигов, хотя когда-то умещалась в 15 мегабайт. Боюсь, что для Windows 10 уже терабайта мало будет...:(

Цитата:

Сообщение от pax (Сообщение 275589)
Сейчас рулят вэб инсталеры

если бы идея процедурной генерации прижилась - игры бы весили как веб-инсталляторы.


pax 28.02.2014 14:10

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 275606)
если бы идея процедурной генерации прижилась - игры бы весили как веб-инсталляторы.

Так она еще не вымерла, Unity например поддерживает это

bugway 28.02.2014 14:15

Ответ: Пишем 3D движок - замену Xors3D
 
Спасибо за ссылку - не знал, что еще жизнь теплется... :)

SBJoker 28.02.2014 14:28

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 275606)


Ну можно и в память сразу генерировать, но зачем при каждом запуске генерировать одни и те же текстуры? Логично их в кэше держать. Но распространять ведь нужно всего 95 килобайт! Я тут прикинул, кризис 1 можно было бы теоретически уместить в 15 мегабайт, а кризис 2 - в 100 мегабайт...




Вот так Windows и распухла до 13 гигов, хотя когда-то умещалась в 15 мегабайт. Боюсь, что для Windows 10 уже терабайта мало будет...:(



если бы идея процедурной генерации прижилась - игры бы весили как веб-инсталляторы.


Вы меня простите что влезаю, но это отборный бред.

HolyDel 28.02.2014 15:05

Ответ: Пишем 3D движок - замену Xors3D
 
сгенеренный арт хуже смотрится и дороже лампового нарисованного арта.

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

как будет демка с nvidia vision - выкладывай. ко мне в понедельник 3д монитор подойдет))

Kohol 28.02.2014 15:08

Ответ: Пишем 3D движок - замену Xors3D
 
bugway, ЧОООО??? БЭЙСИК? СТЫДПОЗОРГОРИвОДУ!!! Тут же серьезые люди, ТУТ БЭЙСИКАМИ не пользуются, ТОЛЬКО СИПИПИ!!! И ВООБЩЕ давно пора ЗДЕСЬ ПОСТАВИТЬ ФИЛЬТР на такое слова КАК БЭЙСИК(марально устаревшее слово), ЧТОБЫ не нервировать нервных ЛЮДЕЙ.
И зачем делать ДВИЖОК ЕСЛИ ЕСТЬ юнити? ВЕДЬ ничего ЛУЧШЕ юнити НА ЗЕМЛЕ еще не придумали. ВСЕ СЕРЬЕЗНЫЕ люди [s]всех школ[/s] УЖЕ ПЕРЕШЛИ НА НЕЕ.
Булка ОЛОЛО! (прокричать 3 раза)
ПС. обилие КАПСА спецом, ЧТОБЫ У ОДНОГО невьебенно ОПЫТНОГО товарисча ГЛАЗА НЕ ПЕРЕСТАВАЛИ КРОВОТОЧИТЬ БЛЕАТЬ!

pax 28.02.2014 15:14

Ответ: Пишем 3D движок - замену Xors3D
 
2Kohol Предупреждение. Еще одно подобное сообщение и бан.

ARA 28.02.2014 15:19

Ответ: Пишем 3D движок - замену Xors3D
 
Kohol, привет дядь Дим. У тебя стокгольмский БАМБИТ :-D

bugway 28.02.2014 17:43

Ответ: Пишем 3D движок - замену Xors3D
 
И ведь не лень было тролю из 47 поста зарегистрировать аккаунт, чтоб оставить сообщение... :)

Лучше бы показал свои суперские исходники на "СИПИПИ" ...:)

Samodelkin 28.02.2014 17:54

Ответ: Пишем 3D движок - замену Xors3D
 
bugway, кстати зачем распинаешься про бесик если всё равно тебе кодить то? Пиши на чём тебе удобней - ты же сам сказал какая разница какой язык - на выходе всё равно бинарники0101010100.

Ты главное демку давай, нам же надо поюзать чтобы адекватно оценивать сабж.

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

bugway 01.03.2014 20:02

Ответ: Пишем 3D движок - замену Xors3D
 
Есть прогресс - разобрался с nvapi.dll и hid.dll. Надеюсь скоро смогу выложить демку.

KCEPOKC 01.03.2014 20:46

Ответ: Пишем 3D движок - замену Xors3D
 
Интересно будет поглядеть, что же из этого выйдет. Буду следить:)
Только странно, почему эта тема лежит в "Юнити"? Понимаю ксорс(или зоркс, фиг знает как его читать), бейсик, проекты. Но тут?

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 150 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

Samodelkin 01.03.2014 23:11

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Понимаю ксорс(или зоркс, фиг знает как его читать)
Хорс (бог солнца) - по русски так и читается.

Пётр 02.03.2014 03:50

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 275730)
hid.dll.

Как это связанно с 3D?
Или планируется USB 3D, класса HID?:-D :)

bugway 02.03.2014 08:04

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Пётр (Сообщение 275778)
Как это связанно с 3D?
Или планируется USB 3D, класса HID?:-D :)

Oculus Rift, а точнее его трекерная часть - подключается по USB и видится как hid-устройство.

bugway 02.03.2014 08:11

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от XoreX (Сообщение 275731)
Только странно, почему эта тема лежит в "Юнити"? Понимаю ксорс(или зоркс, фиг знает как его читать), бейсик, проекты. Но тут?

Раздел "Собираю команду" на глаза попался только тут. А вообще подходящего раздела нет. Это и не о Xors3D, и не о Unity, и не о создании игры... Эта тема о создании движка... Может админ создаст соответствующий раздел и перенесет тему?

pax 02.03.2014 09:53

Ответ: Пишем 3D движок - замену Xors3D
 
Для аналогичных С++ проектов у нас есть спец раздел...

bugway 04.03.2014 17:00

Ответ: Пишем 3D движок - замену Xors3D
 
Народ, есть ли у кого 3D vision или Oculus Rift вообще?

St_AnGer 04.03.2014 17:08

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от bugway (Сообщение 276029)
Народ, есть ли у кого 3D vision или Oculus Rift вообще?

3d-vision возможно (возможно!) у кого то найдётся, Oculus Rift - ооооооочень сильно сомневаюсь.

bugway 04.03.2014 17:12

Ответ: Пишем 3D движок - замену Xors3D
 
Еще вопрос: есть ли смысл выкладывать сырые, примитивные демки? Камнями не закидают? :)

ant0N 04.03.2014 17:32

Ответ: Пишем 3D движок - замену Xors3D
 
Выкладывай конечно, а тот кто без греха пусть первым кинет камень :)

St_AnGer 04.03.2014 18:33

Ответ: Пишем 3D движок - замену Xors3D
 
Смысл выкладывать любые демки есть, на то он и движок. Начинать надо с простого в любом случае. А мы тут подскажем что, где и как работает/неРаботает :) для этого форум программистов и есть, а не для обсуждения ситуации на Украине и срачей по этому поводу с самовыпиливанием старейшин форума....

bugway 04.03.2014 20:39

Ответ: Пишем 3D движок - замену Xors3D
 
Выложил скрин и демку (одна из первых). Шапку постоянно буду править. Там же лог разработки.


Часовой пояс GMT +4, время: 07:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot