Giter Site home page Giter Site logo

gost.engine's Introduction

gost.engine

gost.engine

2D/3D Game Engine based on plugins for C++11

gost.engine - это самописный игровой движок, который создаётся для личных нужд (не для конкуренции с топами). Главная особенность этого проекта - независимость. Конечно, быть полностью независимым не получится, но, в некоторых местах она достигается. А этих мест очень много.

Например:

  • Движок состоит из модулей - подключаемых динамических библиотек (в gost.engine называемых плагинами). Основной модуль движка (gost.dll) независим от каких либо библиотек, и может собираться практически для любой системы.

  • Поддерживаемые технологии хранятся в плагинах, они не вшиты в движок как во многих других системах. Если какую-то технологию вы не желаете использовать (например из за её лицензирования), вы можете просто не использовать этот плагин.

  • Использование STL, как и любых подобных, делает проект очень зависимым. STL создан для удовлетворения потребностей различных по специализации программистов и не программистов(напр. химиков, биологов, метеорологов и т.д.), существенно снижая производительность программ, например таких как игры. gost имеет базовые аналоги, простые, быстрые и эффективные.

  • Так как движок состоит из плагинов, можно без особых усилий создать свой плагин. Все базовые плагины созданы с простым стилем кода (как в туториалах), без разных ухищрений, по этому их легко можно изучить.

gost.engine demo - basic physicsgost.engine demo - ray testgost.engine demo - picking gost.engine sprite test

Build

gost.engine можно построить имея компилятор с поддержкой C++11.

Проект настроен для построения с использованием MinGW. Для удобного запуска построения, была создана утилита gost.build.exe (она находится в папке tools). Эта утилита похожа на программу make, только намного проще в использовании. gost.build.exe принимает в качестве аргумента текстовый файл(имя не имеет значения). В этом файле описываются параметры проекта и указывается список файлов. В параметрах проекта необходимо указать папку расположения компилятора, имена компиляторов, указать тип компилятора (пока реализован GCC), указать программу для линковки, указать опции для компилятора и линковщика и т.д. gost.build.exe создан для построения gost.engine, нет задачи создать универсальный инструмент, по этому существуют некоторые особенности. Для компиляции необходимо указать папку с проектом. Поиск include файлов, библиотек, создание файлов и т.д. выполняется в указанной папке с проектом. Программа не создаёт директории, по этому, если это необходимо, нужно позаботится об этом заранее.

Программа по умолчанию помещает все объектные файлы в одну папку, по этому нельзя допускать использования файлов исходных кодов с одинаковыми именами. Для удобства добавлена опция -o которая создаёт папку с именем .objects прямо в директории где лежит файл с исходным кодом. Это позволит избежать конфликта имён.

Для автоматизации удаления старых файлов и создания необходимых папок, созданы соответствующие .bat файлы.

Самый удобный и простой способ построить проект это разместить его в те же директории что указаны в настройках. D:/dev/GoST/ - папка с проектом D:/MinGW/bin/ - GCC для Windows

clear.bat - удалит объектные файлы

Построение на Linux пока не реализовано, ибо не реализованы все ОС зависимые функции в самом движке.

Features

  • D3D11 render plugin
  • .obj model import
  • .png .bmp image import
  • 2D sprite with animation
  • audio loading/audio streaming (.wav .ogg)
  • XML read/write
  • Bullet Physics plugin

Documentation

https://gost.neocities.org/gost/index.html

Wiki for samples https://github.com/532235/GoST/wiki

Contributing

If you want to help the project, write to the email address below. Main conditions:

  • Avoid using standard (std::) things, try not to use STL, if used, then only in special places and in small quantities (for example, in small plug-ins).
  • use a similar style that is used in the code.

Contacts

[email protected]

Special thanks

gost.engine's People

Contributors

mronlinecoder avatar tyomaani avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.