LINUX.ORG.RU

Какой ЯП посоветуете для решения задачи?

 ,


0

2

Решил сделать некое подобие движка. Движок будет для гоночных игр. В голове уже проработал схемы, что где будет храниться и т.д.. Но вот с ЯП проблемы - не знаю какой выбрать. Сперва решил делать на Java, чтобы не париться особо со сборкой под различные платформы. Но манов под нее по OpenGL не нашел(а может плохо искал).

Что требуется от ЯП: нормальное подключение нормальной версии(не древней) OpenGL и шейдеров GLSL, сборка под Windows/Linux(возможно и под MacOS если есть компиляторы для данного ЯП), отсутствие использования до кучи сторонних библиотек(достаточно рисования окна с OpenGL, ну и поддержка ввода с клавиатуры).

Какой посоветуете?

P.S.: просьба не писать «Чем тебя текущие движки не устраивают?»(хотя найдутся такие кому будет «интересно»).


Ответ на: комментарий от Oxdeadbeef

Вообще я считай никакой не знаю(если не считать JS для Unity3D). Совсем чуть-чуть - C++, нормально - Delphi(Lazarus в опенсорсе), но он слишком жирный. Поэтому я и думаю, какой начать осваивать.

ozzee ()

Бери SDL/C++.

А еще лучше — Unreal Engine. Бесплатная игра — бесплатный движок, все равно не получится новый Need for Speed.

anonymous ()
Ответ на: комментарий от ozzee

Да и не нужно, UE и 2D умеет. https://www.youtube.com/watch?v=cCl1DHhIYeY . Если хочешь сделать игру, в которую кто-нибудь будет играть, то лучше по максимуму воспользоваться готовыми библиотеками, больше времени останется на геймплей.

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

anonymous ()
Ответ на: комментарий от anonymous

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

Так что надо будет попробовать SDL. Но проблема в том что как подключить OpenGL к SDL я не знаю(хотя где-то находил туториал), и зачастую подключается древняя версия OpenGL(IDE у меня CodeBlocks, может быть поэтому).

ozzee ()
Ответ на: комментарий от ozzee

Для того, чтобы делать свою игру и движок, тебе нужно _уже_ уметь языки и OpenGL. Если ты схватишься за такую задачу, не зная инструментов, каменный цветок у тебя не выйдет.

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

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

E ★★★ ()
Ответ на: комментарий от E

Готовый я использую уже достаточно давно.

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

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

попробуй собери статистику по знакомым и форумам

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

Хотя вот на Хабре один пользователей сделал движок OpenTomb(вроде так называется). Хотя по сути это движок для загрузки уровней классической Tomb Raider, все таки он готов и он работает.

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

Я не ставлю себе какие-то сверхзадачи(хотя написание такого приложения будет той еще сверзадачей).

ozzee ()

SDL и C++ - ядро движка, расширять скриптами lua или js.

invy ★★★★★ ()
Ответ на: комментарий от ozzee

Гм, а что там подключать? Я сейчас посмотрел — в комплекте с сорцами SDL идут и тесты. В том числе и testgl2.c , запускает OpenGL и показывает какую-то фигню. М.б. бажит, но все-таки кое-чего кажет.

http://eax.me/tag/opengl/ , начиная с третьей статьи (первые две про хаскель нафиг не нужны). Тоже может помочь.

anonymous ()
Ответ на: комментарий от anonymous

А вообще — не надо на это молодость гробить. Лучше кинь клич на юниора PHP/Java/C# , и постепенно приглядывайся к переезду в Москву или еще куда.

anonymous ()

Haskell конечно. Где еще есть такая мощная система типов? И главное сможешь свои автомбили в монады заворачивать.

Int0l ★★ ()

Для создания окна и инпута можешь попробовать GLFW (http://www.glfw.org/). Маленькая кроссплатформенная библиотека, много биндингов под разные языки.

anonymous ()
Ответ на: комментарий от unt1tled

Ну или rust попробуй, потом напиши на лор историю узбека.

unt1tled ★★★★ ()

PHP конечно. Глобально и надежно.

anonymous ()
Ответ на: комментарий от Int0l

сможешь свои автомбили в монады заворачивать

Китайские порномультики любишь?

anonymous ()
Ответ на: комментарий от ozzee

Qt тебе в руки, там привязки к openGL вполне нормальные. IMHO, будет менее костыльно, чем из SDL.

hobbit ★★★★★ ()

кобол уже советовали?

anonymous ()
Ответ на: комментарий от Virtuos86

Раз такая пьянка, тогда я тоже поддержу Haskell - даже если до результата не дойдет, то по пути ждут удивительные открытия! :)

Ivana ()

Если ничего не знаешь пиши на Lua или Python, так как на изучение самого OpenGL уйдет довольно много времени.

anonymous ()
Ответ на: комментарий от ozzee

Вот и пиши в Lazarus. По сравнению с Java оно совсем не жирное.

anonymous ()
Ответ на: комментарий от ozzee

нормально - Delphi(Lazarus в опенсорсе), но он слишком жирный.

На fpc/Lazarus, кстати, игры пишут. И «жирность» его определается, скорее, тулкитом, чем самим языком.

hobbit ★★★★★ ()
Ответ на: комментарий от ozzee

Тогда дело хорошее, но C++/Java всё равно не стоит брать, если навыков нет. Бери тот язык, который лучше всего знаешь, чтобы не тратить время на борьбу с ним. Тот же fpc - вполне подходящий язык для ООП движка, я сам делал когда-то простенький 3д-движок ещё на Delphi. А обвязки OpenGL найдутся под любой язык.

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

E ★★★ ()
Ответ на: комментарий от E

Хорошо, надо бы попробовать так сделать, спасибо.

ozzee ()
Ответ на: комментарий от ozzee

Если движок на поиграться, то, имхо можно на чём угодно делать, ибо 60% работы всё равно видюха считает.

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

По классике такое делается на плюсах(даже под андроид, хотя там на джаве вроде как сам будда велел). Будь у меня столько свободного времени, я бы попробовал на rust'e.

Но. Может быть я чересчур старомоден, однако, начать таки стоило бы с требований и дизайна. А потом сделать пару прототипов на разном (с готовым дизайном это по 1-1.5w на прототип).

pon4ik ★★★★★ ()
Ответ на: комментарий от ozzee

И алыверды.

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

pon4ik ★★★★★ ()

Решил сделать некое подобие движка.

Не нужно. Берите UT4, язык, соответственно С++. Либо можете найти какой-нибудь движок под свободной лицензией, что попроще. Если UT4 - overkill.

next_time ★★★★★ ()

Любой, какой нравится бери, раз никаких не знаешь. Всё равно наверное потом переписывать будешь.

А так вообще, раз нет предпочтений по языку, зависимостей и т. д., то можно взять и что-то относительно экзотичное, или модное-современное, например Go, Rust или D.

Psych218 ★★★★★ ()
Ответ на: комментарий от next_time

Он же пять раз сказал уже - хочу написать с нуля.

Бери С, OpenGL, исходники quake 2 (именно второго - в первом и третьем кармак знатно поизвращался с vm) и вперед. Да, оно там все процедурно, зато простое в понимании как топор.

cnupm ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.