Jump to content
Korean Random

Какой движок самый маленький?


Recommended Posts

Интересно, в сколько строк кода (на C++) обойдется простой графический 3D-движок?

Что подразумевается под простым? Можно и без движка работать - писать сразу для DirectX или OpenGL.

Движок, загружающий модели и текстуры написать совсем не сложно. Строк 500-700, не больше.

 

 

 

(на C++)

Упс, ошибочка вышла. Ну годик-другой уйдет. На изучение C++. 

Edited by Azbuka
  • Upvote 1
Link to comment
Short link
Share on other sites

 

 

Упс, ошибочка вышла. Ну годик-другой уйдет. На изучение C++. 
 

1 вариант - C++ + windows.h - писать с виндовой библиотекой

2 вариант - C++ + windows.h + DirectX

 

Под простым подразумевалось написание движка, умеющего

1) в физику (хотя бы падение объекта)

2) поддерживающий dds формат текстур

3) умеющий загружать модели вместе с костями и анимацией (анимация загружается сразу с fbx-модели)

4) естественно, свет, хотя бы Omni

5) поддерживающий скрипты на c++/c#

 

Идея чем-то напомнила котовый движок, kotofake вроде звали


 

 

На изучение C++. 
 

C++ знаем на уровне консолек. Вы имели ввиду на изучение библиотек, которые я написал выше?

Link to comment
Short link
Share on other sites

 

 

1 вариант - C++ + windows.h - писать с виндовой библиотекой 2 вариант - C++ + windows.h + DirectX

С виндовой библиотекой? DirectX, OpenGL, Vulkan, OpenGL ES и прочее - спецификации для работы с компьютерной графикой. Они позволяют писать приложения, что будут работать на разных видеокартах.

 

 

2) поддерживающий dds формат текстур

Текстуры - не проблема. Нужно только поискать библиотеку для загрузки DDS.

 

 

3) умеющий загружать модели вместе с костями и анимацией (анимация загружается сразу с fbx-модели)

Сложно. Если загрузить модели можно другой библиотекой, то кости и анимацию нужно реализовывать самостоятельно.

 

 

4) естественно, свет, хотя бы Omni

Не думаю, что свет станет проблемой.

  • Upvote 1
Link to comment
Short link
Share on other sites

, намекаете на Питон?
Интерпретаторный же)


почему именно он?

Альфа каналы, DXT сжатие. Да и расшифровывается как DirectDrawSurface image format) +привык к нему)


Очистка памяти станет главнейшей проблемой.

Есть фиксы? Или ручками del[]?)

Link to comment
Short link
Share on other sites

Rust вроде норм, но память отъедает...

Раст на Юньке. Юньку люблю) 

Кстати, post-18657-0-97583700-1474392551.png

Ну... Хотя бы без анимации. >3000 строк кода с DX, да?

Вот графический API на ржавчине: https://github.com/gfx-rs/gfx

Там в описании есть примеры движков на этом API

Интересно, почитаю при свободном часике
Edited by Pavel3333
Link to comment
Short link
Share on other sites

 

 

Есть фиксы? Или ручками del[]?)
 

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

Вам нужен язык с автоматическим управлением памятью и сборщиком мусора.

 

 

 

Альфа каналы, DXT сжатие. Да и расшифровывается как DirectDrawSurface image format) +привык к нему)

Есть много других форматов, которые ничуть не хуже. Формат нужно подбирать под конкретную задачу.

 

 

 

Писать новичку на C++ движок, когда есть другие нормальные языки... Rust вроде норм, но память отъедает...

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

Мне вот D нравится.

Link to comment
Short link
Share on other sites

Определился. Буду писать на Плюсах, DirectX. Пока что займусь написанием d3d приложений. 3 октября, когда будут каникулы, буду читать доки по dx.

>Вам нужен язык с автоматическим управлением памятью и сборщиком мусора.

Т.е. С#? Не вариант, dx, имхо, будет криво работать на с#. Не зря же winAPI делали.

Link to comment
Short link
Share on other sites

Буду писать на Плюсах, DirectX.

Зачем торопиться-то? Если не удалось переубедить на счёт языка, то с DirectX'ом ещё не всё потеряно.

Начать стоит с того, что он создан Microsoft, а значит приложение будет работать только на Windows.

В отличии от него OpenGL работает везде.

 

 

 

Т.е. С#? Не вариант, dx, имхо, будет криво работать на с#. Не зря же winAPI делали.

DirectX и так будет криво работать. Вы проведёте много интересных ночей с отладчиком и горячим чаем.

Edited by Azbuka
Link to comment
Short link
Share on other sites

Удачи, LOL!

:heh:

Хосспаде, это ж идея) Движок писать - громко сказано, скорее попробовать написать какое-нить приложеньице, способное грузить модельки, размещать их на сцене и хотя бы их рендерить)

На dx или любом другом api работать научиться хочу, одним словом. В прошлом году начал и времени не хватило. Даже книжечки читал)

И не обязательно быстро) Свободное для дел и чтения время - только каникулы.

И еще. Что выбрать из этого?

>DirectX, OpenGL, Vulkan, OpenGL ES

Edited by Pavel3333
Link to comment
Short link
Share on other sites

@Pavel3333

  1. Vulkan это современная замена OpenGL + OpenGL ES. Но это не важно, потому что см. п2.
  2. Неправильный подход. Сначала нужно решить что ты делаешь, и какие из этого вытекают требования, а потом уже выбирать средства.
Edited by TwoPizza
  • Upvote 1
  • Downvote 1
Link to comment
Short link
Share on other sites

 

 

Что выбрать из этого? >DirectX, OpenGL, Vulkan, OpenGL ES

DirectX или OpenGL. Vulkan слишком сырой, OpenGL ES - для встраиваемых систем (телефонов, планшетов).
Выбрать ли DirectX или OpenGL я сказать не могу. И то и другое сложно.
  • Upvote 1
Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...