Giter Site home page Giter Site logo

GLIST ENGINE

Glist Engine is a cross platform OpenGL game engine written in C++.

The engine supports OpenGL 3.3 and OpenGL ES 3.0. It can be used to develop Windows, macOS, Linux, Android and iOS games and applications. WebGL platform coming soon.

Glist Engine consists of 3 repositories:

  • Glist App
  • Glist Engine (this repo) and
  • Glist Zbin

Glist Engine repo contains the core engine, plugins, samples to use in the development. Glist Zbin contains libs, includes and a preconfigured ide. Glist App is the repo to clone when starting each new game project.

More information about GlistEngine can be found at https://www.glistengine.com

Installation

I. Installation For Students

Glist Engine has one-click installers for Windows, Linux and Mac. You can download the installers from the below links:

II. Installation For Developers

1- Fork our 2 repos into your Github account:

  • GlistEngine/GlistEngine repo
  • GlistEngine/GlistApp repo

2- You need to install some programs into your computer in order to clone and run GlistEngine.

On Windows:

On macOS:

  • Please note that the installation is tested on a clean Monterey. If you have an older OS version, consider upgrading your Mac

  • First of all, you should install Xcode because OpenGL library comes with Xcode. Download Xcode via App Store

  • Open Terminal and install homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  • Install libraries via home-brew and make necessary configurations

brew install llvm gcc@11 cmake glew glfw glm freetype assimp curl openssl pkg-config

export PATH=$PATH:~/usr/local/bin/cmake

sudo spctl --master-disable

On Linux:

  • Install necessary libraries on Ubuntu and other Debian based Linux

sudo apt-get install git cmake clang-14 libstdc++-12-dev libglew-dev curl libcurl4-openssl-dev libssl-dev build-essential

  • Install necessary libraries rpm based system Linux

sudo dnf install glm-devel glfw glfw-devel glew-devel freetype-devel freetype assimp assimp-devel curl curl-devel openssl-devel

3- Open file explorer and create necessary folders:

On Windows:

  • C:\dev\glist\myglistapps
  • C:\dev\glist\zbin

On macOS:

  • ~/dev/glist/myglistapps
  • ~/dev/glist/zbin

On Linux:

  • ~/dev/glist/myglistapps
  • ~/dev/glist/zbin

4- Open command line(cmd.exe or bash) and go to the zbin folder by the command

On Windows:

cd C:\dev\glist\zbin

On macOS:

cd ~/dev/glist/zbin

On Linux:

cd ~/dev/glist/zbin

5- First of all, you need to download the zbin repo. Download the zbin repo by visiting one of these pages and extract the zip:

On Windows:

https://github.com/GlistEngine/glistzbin-win64/releases/latest

On MacOS Arm64 (M1, M2):

https://github.com/GlistEngine/glistzbin-macos/releases/latest

On MacOS X86_64:

https://github.com/GlistEngine/glistzbin-macos-x86_64/releases/latest

On Linux:

https://github.com/GlistEngine/glistzbin-linux/releases/latest

6- Go one folder up

On Windows:

cd C:\dev\glist

On macOS:

cd ~/dev/glist

On Linux:

cd ~/dev/glist

7- Clone the GlistEngine repo

git clone https://github.com/yourgithubusername/glistengine.git

8- Go to myglistapps folder

On Windows:

cd C:\dev\glist\myglistapps

On macOS:

cd ~/dev/glist/myglistapps

On Linux:

cd ~/dev/glist/myglistapps

9- Clone the GlistApp repo

git clone https://github.com/yourgithubusername/glistapp.git

10- Run the GlistEngine

Start the engine.

On Windows:

  • Open file explorer, go to C:\dev\glist\zbin\glistzbin-win64 and double click GlistEngine

On macOS M1:

  • Never start the engine with clicking Eclipse icon on Launchpad! Instead, you should open the Terminal and enter this command:

open ~/dev/glist/zbin/glistzbin-macos/eclipse/eclipsecpp-2022-09/Eclipse.app

  • (If you get an error message "app is damaged and can’t be opened. You should move it to the Trash.", enter this command on Terminal:

xattr -cr ~/dev/glist/zbin/glistzbin-macos/eclipse/eclipsecpp-2022-09/Eclipse.app

  • and restart your computer.

On macOS X86_64:

  • Never start the engine with clicking Eclipse icon on Launchpad! Instead, you should open the Terminal and enter this command:

open ~/dev/glist/zbin/glistzbin-macos-x86_64/eclipse/eclipsecpp-2020-09/Eclipse.app

  • (If you get an error message "app is damaged and can’t be opened. You should move it to the Trash.", enter this command on Terminal:

xattr -cr ~/dev/glist/zbin/glistzbin-macos-x86_64/eclipse/eclipsecpp-2020-09/Eclipse.app

  • and restart your computer.

On Linux:

  • Open file explorer, go to ~/dev/glist/zbin/glistzbin-linux and double click GlistEngine

11- First screen

You will see GlistApp and GlistEngine on the left column. And GameCanvas src/h files will be opened in the code editor. These are the source code of GlistApp.

12- Launch the GlistApp

On the toolbar of the IDE, there is a dropdown button just next to Run button. Dropdown this list. Click "GlistApp Release" on the list. The GlistApp and the engine will be built and run for the first time.

13- Start coding

After closing the running window, you can start coding your new gorgeous game on GameCanvas.

Troubleshooting

1- Unresolved Inclusions

If you see "Unresolved Inclusion" errors on the editor, that means the ide lost the pre-determined include path entries.

  • Open Project->Properties->C/C++ General->Preprocessor Include Paths->Providers. Go to the bottom of the list. Select CMAKE_EXPORT_COMPILE_COMMANDS Compiler and Parser selections. Click Apply and close button.
  • Click Project->Clean Project to clean previous build
  • Click hammer button to rebuild the project.
  • Click Project->C/C++ Index->Rebuild to invoke indexer.

Then the "Unresolved Inclusion" errors should be gone.

Contributing

We are a warm community. We encourage the game developers to contribute into the engine by sending commits, opening bug reports and issues.

If you want to send PR, please open the staging view via

Window->Show View->Other..->Git->Git Staging.

On the Staged Changes list, remove unnecessary files by selecting them and clicking the - (Remove selected files from the index) button on up-right corner of the list. Add your commit message and send the commit to your fork repo. Then login Github and send PR to our repos.

If you installed GlistEngine using the installer

One can contribute to the code when working on the cloned versions of the repos. If you installed GlistEngine by the installer (student installation above) and want to contribute the repo, you can do the following configuration:

1- Right click on the GlistApp and GlistEngine on the left column and select Delete from the drop down menu. (Unselect delete project content on disk)

2- Right click on an empty area of the left column. Select Import...->Git->Projects From Git->Next->Existing Local Repository. Import first GlistEngine, then import GlistApp.

Licence

This project is under heavy development and has a Apache License 2.0.

Version

GlistEngine has a semantic versioning system. The current version is 0.1.2

glistengine's Projects

glistengine icon glistengine

GlistEngine is a cross platform OpenGL game engine written in C++

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.