Есть у меня мыслишки по поводу изучения
Есть у меня мыслишки по поводу изучения какого-либо ЯП. Но встал вопрос о выборе. Лично у меня есть желание поизучать С++, и лично представил свой маленький путь:
Ноль в программирование ->? -> C++
Но учитывая факт того, что я не программист, хотел бы спросить, стоит ли изучать его сразу, или сначала (для освоения азов программирования и понимания его сути) изучить другой, чтобы потом плавно перейти в вышеуказанный.
Почему C++? У меня есть кое-какие планы (речь идет о моделировании, анимации и всё, что с ним связано) в обозримом будущем, и они не связаны с геймдевом как таковым, но наличие знаний именно этого языка желательно (по крайней мере это пока лишь планы и нет уверенности в том, что они реализуются, но всё же).
- 02 сентября 2019, 22:08
- 00
А почему не питон? Можно было бы теоретически поскриптовать моделирование с анимациями в блендере
Не знаю. Меня в своё время Blender отпугнул всей этой мешаниной в интерфейсе, где было даже не понятно за что хвататься.
Блендер сильно изменился.
да, сейчас там прикольный редизайн сделали
Я как-то начинал изучать питон. Бросил как только узнал что там может быть ошибка из-за лишнего пробела.
https://ideone.com/t3YOov
"Выполнится ли след. строчка?" Нет, она в коментарий попадет.
Больше всего бесит в Си то, что если ты допустил ошибку в одной строчке, то компилятор сообщит тебе об ошибке в другой строчке. Забыл поставить } и все - компилятор тебе ничем не поможет, иди ищи сам где ты ее забыл поставить. Или поставил \ и все, весь последующий код превращается в тыкву.
В Lua (ну или во всяком случае, в Love2D) с этим проще. В этой же ситуации фреймворк всегда говорит в какой строчке находится начало блока, который ему не удалось закрыть. Сразу находишь и закрываешь.
Мне больше всего нравится Lua. В нем тоже есть проблемы, но хотя бы таких как в Си - не возникает. Этот язык менее требователен к аккуратности и там есть словари с ключами из коробки, поэтому он лучше подходит для говнокода быстрой разработки игр, чем Си. Непосредственно для программирования игр Си не предназначен.
да, с подколом промах, я почему-то думал ты на Си пишешь. А луа я вполне одобряю за паскалевский синтаксис (и индексы с 1), но сам конечно на нем писать не буду (за таблицы вместо нормального ООП).
Я и на Си пишу. Но не игры, а прошивки для микроконтроллеров.
Зато так быстрее говнокодить и не надо много лишних слов писать, class, public, override и т. д.
на руби тоже никаких лишних слов и рай для говнокодеров, но ООП настоящий.
Опять еще один ЯП? В игровых движках он хотя бы используется?
Используется в Libgosu и в моем личном. А, стоп, еще в РПГМукере.
Но так-то я его и не рекламирую и понимаю что луа в геймдеве намного популярнее, просто говорю что ООП не означает кучи лишних слов.
И перешёл на луа, в котором индексы начинаются с единицы :)
Так, на самом деле, удобнее. Не приходится всякий раз делать "+-1 элемент" в уме.
Хочешь массив из 10-ти элементов, создаешь список где 10 - номер последнего элемента (а не 9).
Да, в компьютере массивы начинаются с 0, но людям от этого только хуже. Из-за этого размер массива всегда на 1 больше номера последнего элемента.
Это меня немного путает, потому-что в остальных языках с нуля)
но в остальном Луа мне нравится, я даже в своё время искал себе нормальный движок для этого скрипта,
ибо Tic 80 мне уже мало, там мало спрайтов можно добавить, а я хочу хотя бы был атлас на 1024*1024 пикселей, чтобы можно было делать мини игру покемоны, а Love2D мне как-то не зашёл,
очень сложно там простое окно сделать как в Tic80, чтобы было LowPixels, оконный режим и окно как угодно могло изменяться по воле юзера. А ещё с Love2d мой ноут сильно греется, и там говорят какие-то ошибки бывают с шейдерами, короче я пока остерегаюсь сего творения)
Ещё нашёл Defold , но там так мало документации, мало примеров кода, и походу там всё плохо с оффлайн документацией, что я забил пока-что и на тот движок.
А вот такой пробовал? Там вроде ретро, но с возможностью выбора, и луа. По описанию звучит, как будто прям для тебя делали.
И вот ещё почитай список. :)
Бывают, напишешь не совсем корректно шейдер, на современной видеокарте (драйвере) проглотит, а на старой - ошибка может вылезти.
О, спасибо! Гляну! :3
Так-то да, он не для ноутов. Можно или не писать шейдеры, или взять более древнюю версию движка.
Например 0.9.1, у нее требования ниже (у 0.10.0, например, есть такой пункт "Updated the minimum runtime system requirements of LOVE to require OpenGL 2.1 or OpenGL ES 2 support"). На ссаных ноутбуках игры на 0.10 уже не запускаются. Но, так-то на таких ноутбука игры обычно вообще не запускаются, либо дико тормозят.
Там разница между разными версиями не так велика, в основном это переименования функций и багофиксы. Из нового начиная с 11.0 движок развивается в мобильном направлении. Но 0.11 уже не работает на WinXP.
Я в основном пользуюсь 0.10.1.
Если более по теме, то нет, не начинай с C++. Там много нюансов, архаизмов синтаксиса и устаревших практик в статьях, которые следует игнорировать, а не применять. Тем, кто, как я, учил C++ давно, сложно будет посоветовать, с чего сегодня начать всё это безумие. :D