Рубрика «tengine»

Совсем недавно я опубликовал пост о моем небольшом проекте tengine. Для меня довольно неожиданным было то, что многие проявили интерес к его идеям и наработкам. А раз есть интерес – это повод продолжить публикации.

Предлагаемая вам статься является туториалом по созданию небольшой игры. Необходимость в нем очевидна: идеологически, создать что-либо в tengine без редактора уровней (MapEditor3, далее me3) фактически невозможно. Именно с помощью него ресурсы привязываются к объектам игры, генерируются файлы с константами-идентификаторами, создается сцена, звуковые схемы и т.д. И самое главное – me3 генерирует готовые бинарные файлы уровней, необходимые для работы логики tengine: файл с общими данными (o-файл), файлы с данными по каждому уровню (l[0..n]-файлы) и файлы с текстовыми тынными (t[0..n]-файлы)

Читать полностью »

Приветствую всех, кому стало интересно узнать о моем небольшом проекте, которым занимаюсь в свободное от работы время, о своем долгоиграющем проекте под названием «tengine».

Какова же цель этого поста? Ответ простой — я ищу однодумцев. Я верю в то, что есть еще много людей, которым нравится славный и добрый олдскул. В этом и вся миссия — писать удовольствия ради что-то маленькое, но вполне функциональное, платформу для «приставочных» игрушек в стиле 8/16 бит.

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

  • архитектура проекта делает упор на минимизацию использования динамической памяти. Если память и выделяется, она выделяется исключительно на инициализации подсистем
  • использовать динамическую память нужно так, как будто не существует операционной системы, постоянно помнить о фрагментации. Удаление памяти происходит в строго обратном порядке создания (за этом следит простой механизм контроля удаляемых указателей)
  • использование сторонних библиотек сведено к минимуму и должно быть аргументировано, зачастую это потенциальный источник фрагментации памяти
  • игровая сцена представляет собою готовую для использования память, сгенерированная редактором уровней
  • работа с объектами сцены игры ведется исключительно через идентификаторы, динамически создать объект невозможно
  • использование fixed point вместо float
  • мультиплатформенность
  • официальный язык проекта — си

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js