Skip to content

Is-Daouda/is-Engine-Level-Editor

Repository files navigation

is::Engine Level Editor

Level editor of the Game Engine Demo. It was created with the is::Engine. This tool allows you to create your own levels and to be able to integrate it into the game engine Level-Editor. You can also adapt it to use it for your own game.

Please consult the user guide to learn how to use the Level editor.

Image

Prerequisites


How to use is::Engine with the different development tools:

cmake CMake

1. Prerequisites

  • CMake (3.1 +)

2. Installation

Windows

  1. Compile SFML with CMake to have static libraries and put on C:/ (C:/SFML).
  2. Move the is-Engine-Level-Editor project to your C:/ (C:/is-Engine-Level-Editor).
  3. Execute this command :
cmake -S "C:/is-Engine-Level-Editor" -B "C:/build"
cd build
make

Linux

  1. Install SFML 2.5.1 on your machine.
  2. Move the is-Engine-Level-Editor project to /home/user/ (/home/user/is-Engine-Level-Editor).
  3. Execute this command :
sudo cmake -S "is-Engine-Level-Editor" -B "build"
cd build
sudo make

3. After installation

  • You will have a bin folder in which the engine Level-Editor is located.

5. Adding Source Files


qt Qt

1. Installation

Windows

  1. Download Qt 5.12.9 MinGW here and install it.
  2. Download this version of SFML already compiled for Qt 5.12.9 and extract it in C:/ (C:/SFML_Qt_MinGW).

2. Opening the project with the IDE:

Windows

  1. Run the file open_qt_creator.bat in the main directory (Make sure you have included the path to the Qt executable in your PATH environment variable).
  2. Or open the file is-Engine.pro in the location is-Engine-Level-Editor/app/src/main/qt

3. Executable location

  • The compiler files can be found in is-Engine-Level-Editor/app/src/main/bin-Qt.

vs Visual Studio Code

This project uses the template of andrew-r-king. For more information on this template click here.

1. Prerequisites

Windows

Linux

  • Get SFML 2.5.1 from your distro if it has it, or compile from source.

2. Installation

Windows

  1. Download & Extract SFML 2.5.1 to C:/SFML/ where the bin/lib/include folders are contained within.
  2. Download & Extract MinGW to C:/mingw32/ where the bin/lib/include folders are contained within.

Linux

  1. Ensure the GCC Toolchain is installed (sudo apt install build-essential).
  2. Run sudo apt install libsfml-dev. The SFML version you got will vary depending on the distro. 2.5.1 is included in Ubuntu 19.04 Disco Dingo for example.

3. Opening the project with the IDE:

Windows

  1. Run the file open_vscode.bat in the main directory.

Linux

  1. Execute this command in the main directory:
code -n "./app/src/main"

All

  1. Or open the is-Engine-Level-Editor/app/src/main folder with Solution Explorer.

4. Executable location

  • The compiler files can be found in is-Engine-Level-Editor/app/src/main/bin-vscode.

cb Code::Blocks

1. Installation

Windows

  1. Download Code::Blocks 20.03 MinGW here and install it.
  2. Download this version of SFML already compiled for Code::Blocks 20.03 and extract it in C:/ (C:/SFML_CB_MinGW).

Linux

  1. Download Code::Blocks 20.03 and install it.
  2. Ensure the GCC Toolchain is installed (sudo apt install build-essential).
  3. Run sudo apt install libsfml-dev. The SFML version you got will vary depending on the distro. 2.5.1 is included in Ubuntu 19.04 Disco Dingo for example.

2. Opening the project with the IDE:

Windows

  1. Run the file open_codeblocks.bat in the main directory (Make sure you have included the path to the Code::Blocks executable in your PATH environment variable).
  2. Or open the file is-Engine-windows.cbp in the location is-Engine-Level-Editor/app/src/main

Linux

  1. Execute this command in the main directory:
codeblocks "./app/src/main/is-Engine-linux.cbp"
  1. Or open the file is-Engine-linux.cbp in the location is-Engine-Level-Editor/app/src/main.

3. Executable location

  • The compiler files can be found in is-Engine-Level-Editor/app/src/main/bin-codeblocks.

cb Develop with SDL 2

1. Installation

Windows

  1. Download Code::Blocks 20.03 MinGW here and install it.
  2. Download this version of SDL 2 and extract it in C:/ (C:/SDL2).
  3. Put the .dll files which is in the bin folder of SDL2 in the main folder.

Linux

  1. Download Code::Blocks 20.03 and install it.
  2. Ensure the GCC Toolchain is installed (sudo apt install build-essential).
  3. Run sudo apt install libsdl2-2.0-0 libsdl2-gfx-1.0-0 libsdl2-image-2.0-0 libsdl2-mixer-2.0-0 libsdl2-net-2.0-0 libsdl2-ttf-2.0-0 to install all SDL 2 libraries.

2. Opening the project with the IDE:

Windows

  1. Run the file open_codeblocks_sdl.bat in the main directory (Make sure you have included the path to the Code::Blocks executable in your PATH environment variable).
  2. Or open the file is-Engine-windows-SDL2.cbp in the location is-Engine-Level-Editor/app/src/main

Linux

  1. Execute this command in the main directory:
codeblocks "./app/src/main/is-Engine-linux-SDL2.cbp"
  1. Or open the file is-Engine-linux-SDL2.cbp in the location is-Engine-Level-Editor/app/src/main.

3. Executable location

  • The compiler files can be found in is-Engine-Level-Editor/app/src/main/bin-codeblocks.

danger Very important

  • If you want to use SDL functions in your source code, use the IS_ENGINE_SDL_2 macro.
  • Note that some SFML functions like: Vertex Array, Render Texture are not yet supported. These additions will be made soon!

icon Change application icon:

Windows

Linux


Description of the project structure:

header

1. main.cpp file

Contains the entry point of the program, inside there are two instructions :

  • game.play(): Launches the engine rendering loop which allows to manage the introduction screen, main menu, level and game over.
  • game.basicSFMLmain() (disabled by default): Launches the display of a classic SFML window. The implementation is in the basicSFMLmain.cpp file. Very useful if you already have a project under development and you want to associate it with the engine. You can also use it to implement your own components to the engine.

2. app_src folder

Contains the source code of the game. Description of these sub-directories:

  • activity : Contains the Activity class which allows the interaction of the different scenes of the game.
  • config : Contains the GameConfig.h file which allows to define the general parameters of the game. It also contains the file ExtraConfig.h which allows to activate / deactivate certain engine functionality (Engine optimization, SDM, Admob, Main Render Loop, ...).
  • gamesystem_ext : Contains GameSystemExtended a class derived from GameSystem which allows to manipulate game data (save, load, ...).
  • language : Contains the GameLanguage.h file which allows to manage everything related to game languages.
  • levels : Contains game levels and the Level.h file which allows to integrate them into the game.
  • objects : Contains the objects that will be used in the different scenes.
  • scenes : Contains the different scenes of the game (Introduction, Main menu, ...).

3. assets folder

Contains game resource files (music, sound sfx, image, ...)


4. isEngine folder

Contains the source code of the game engine


How to update an is::Engine project

  1. First of all the part of is::Engine that changes most often during updates is the isEngine folder. But it also happens that these files can be modified:
  1. To update your old project with a new version of is::Engine: the files (.h and .cpp) you need to move are in objects and scenes. Note that these folders never change whatever the version!

Contribute

  • If you want to participate in the development of the project to help me improve the engine, please note that you are welcome! Together we go further!
  • One of the objectives of this project is to create a large community that can work on the engine to allow many people around the world to easily realize their dream games / applications!

Contacts

About

Level Editor of the is::Engine Demo. This version is made for 35 years of Super Mario Bros!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published