Odin был разработан для современного системного программирования. Он практичный, простой в освоении, мощный и интересный для написания.

Благодаря ряду официально поддерживаемых привязок для библиотек разработки игр, таких как SDL2, Odin является идеальным языком для программирования игр с нуля.

Если вам интересно программировать игры с нуля с помощью Odin, вы можете учиться вместе со мной на Handmade Games on YouTube.

Если вы заинтересованы в программировании игр с нуля, вы, вероятно, мучились вопросом, с чего начать.

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

Мне очень нравится идея программировать все вручную. Научиться использовать существующий движок, такой как Unity или Godot, непросто. Если вы собираетесь тратить часы на изучение чего-то, вы можете также заняться созданием чего-то с нуля.

Выбор языка программирования

При выборе языка, который я знал, я хотел следующее:

  • нет сбора мусора
  • простой язык
  • простой набор инструментов
  • онлайн-ресурсы, которые помогут мне научиться разрабатывать игры с использованием этого языка

Я рассматривал следующие языки:

  • C
  • Ржавчина
  • Один

В каждом языке есть аспекты, которые мне нравятся.

Что насчет С?

Когда вы учитесь, очень полезно иметь множество ресурсов, а поскольку язык программирования C существовал всегда, есть много примеров того, как создавать на нем игры. Мой любимый ресурс Handmade Hero — яркий тому пример.

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

Ржавчина? не так много…

Я очень ценю набор инструментов Rust и учебные ресурсы. Я профессионально писал Rust около 6 месяцев, когда работал над блокчейном на основе субстрата, и все эти ресурсы действительно помогли мне продуктивно работать.

Но мне жаль говорить, что мне не очень нравится Rust как язык. Мне было очень утомительно следить за всеми трейтами, псевдонимами типов, импликациями и т. д. Мне нравится простота, а Rust сложен.

Не мог бы я просто написать свой собственный код на Rust, чтобы он был менее сложным? Конечно, но в Rust есть еще одна вещь, которая мне не нравится — семантика владения.

В Rust особый подход к управлению памятью. Это А способ написания кода, а не ЭТО способ. И хотя семантика владения может хорошо работать во многих приложениях (я не уверен, что так и есть), я не нахожу этот подход особенно убедительным в контексте разработки игр.

Привет, Один

Я выбрал Odin по многим причинам.

Один простым языком.

Odin прост, как C. Язык очень практичен и предлагает множество полезных функций, таких как программирование массивов, срезы, наборы битов и многое другое.

Odin не использует сборку мусора.

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

Многие руководства по C легко перевести в Odin.

Odin предлагает официально поддерживаемые привязки для полезных библиотек, таких как SDL2. В отличие от привязок Rust, которые более «идиоматичны», привязки Odin SDL2 идентичны C, поэтому любые руководства по разработке игр, использующие C, легко переводятся в программу Odin.

Посетите официальный сайт для получения полного списка библиотек поставщиков Odin.

Odin предназначен для выполнения задач.

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

Он был разработан кем-то, кто занимается поставкой программного обеспечения — Джинджер Билл. Он много думал о том, как работает Odin, и это было испытано в бою и усовершенствовано в реальном мире. Были предприняты целенаправленные усилия по созданию языка, который был бы невероятно мощным, но простым в освоении и на котором было бы весело программировать.

В конце концов, я хочу получать удовольствие от языка, который использую, и Odin, безусловно, дает это.

Что другие говорят об Одине

Если вы хотите прочитать, что другие думают об Одине, я рекомендую следующие посты: