The Development of the Libre-Engine

The Development of the Libre-Engine

Postby climjark » 22 Mar 2017, 01:52

Hello all, i have been working on a game engine and editor similar to Godot. This has been a hobby project for about 6 months now. I have been hosting it here:
https://github.com/FOSS-society/libre-engine/tree/develop
The Engine API itself uses Lua5.2 and SDL2 (taken from package repositories under liblua5.2-dev and sdl2-dev) as well as SDL2_image, GLEW and cerial (for serialization)
The Editor API uses QT to setup an editor enviornment for when i can start prototyping games from it
The Sandbox folder contains a test file that links directly to the engine (bypassing the editor ) and unit tests specific functions for me.

If anyone is interested in contributing to the engine I have a design document under docs directory. Currently there are 4 branches , master (which hasnt been pushed to because there hasnt been an actual release yet), develop (where i usually work in), features (a branch i just havent deleted yet) and clim (another useless branch). As more people decide to contribute i may change the flow of the repository ( development branch will be forked for features of sorts).

Todo:
Create TileMap Editor


Finished:
GLSL Syntax highlighting



Mid-Week Update:4-5-17
Imageimage hosting above 5 mb
(Click for full image)
The shader editor at the moment has basic implementation for the QTableWidget in the middle. The box above that is the QGraphicsWidget (if im not mistaken) which will show the model that is currently in use (still to be implemented), to the left is the editor, which will load specific shaders to be written and manipulated .
EDIT : GLSL Highlighting implemented! 4/5/2017

Image
(Click for full image)
The script editor is where you can design scripts for the games you create. This has a built-in Lua Syntax Highlighter, it can open multiple files (through the tab system), Save the files, or create a new file. I would like to soon be able to compile scripts with the Compile button, thats a matter of creating a QProcess with luac as an arguement, and piping the output to the list view under the editor.
Last edited by climjark on 05 Apr 2017, 06:09, edited 3 times in total.
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby Duion » 22 Mar 2017, 11:42

Why you want to develop another engine?
Duion
 
Posts: 251
Joined: 16 Mar 2013, 20:33
Location: Germany

Re: The Development of the Libre-Engine

Postby farrer » 22 Mar 2017, 13:08

Duion {l Wrote}:Why you want to develop another engine?


And why not? Any new FOSS game/engine development is welcome and could be something in the future. Keep it up climjark, and don't let those "why doesn't you do what I think is better for you to do" discourage you. Do what *you* believe is worth for you to do.

About the engine itself, I tried to compile it, creating a build directory and doing "cmake .." and when making it with "make", I've got:

{l Code}: {l Select All Code}
/home/farrer/projetos/libre-engine/src/core/scene.cpp:1:34: fatal error: include/core/scene.hpp: Arquivo ou diretório não encontrado
 #include "include/core/scene.hpp"


Probably you aren't correctly defining the include search path with CMake or something like that (I didn't checked, it's just a guess).
User avatar
farrer
 
Posts: 110
Joined: 24 Feb 2014, 21:00

Re: The Development of the Libre-Engine

Postby climjark » 22 Mar 2017, 15:16

farrer {l Wrote}:
About the engine itself, I tried to compile it, creating a build directory and doing "cmake .." and when making it with "make", I've got:

{l Code}: {l Select All Code}
/home/farrer/projetos/libre-engine/src/core/scene.cpp:1:34: fatal error: include/core/scene.hpp: Arquivo ou diretório não encontrado
 #include "include/core/scene.hpp"


Probably you aren't correctly defining the include search path with CMake or something like that (I didn't checked, it's just a guess).



Ahh yes I forgot to go up a couple directories . thank you for pointing that out I will fix that when I get home!

onpon4 {l Wrote}: The one thing I would suggest: you should develop some of your own games with it, if only to prove its capabilities. No one wants to use an unproven engine.


Definitely! Once I add a few more features I wanna start creating clones of things like pong , asteroids , super Mario and more
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby climjark » 23 Mar 2017, 02:06

FaTony {l Wrote}:As a person who is also making their own game engine, I'd say: "Damn it, if I'd known how hard is it to do it I'd never started this thing". But now I have this project and I don't want to give up.


I have had an idea for a game engine since 2011. It started with real shitty concepts. After years of switching between Java, C++, C, C#, back to C++, i finally found the right language i felt comfortable in.

Also farrer: The problem was i forgot to run CMake before building and committing.. im glad that was the only error you saw because once i fixed that 20 more came out ;) no worries though, all of them are fixed on my latest commit
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby c_xong » 23 Mar 2017, 02:43

I think it's better if you keep generated files out of source control, and for a CMake project, that includes project files. I know that some people just want to open a project file, but lots of IDEs support CMake natively - Qt Creator does, the newest Visual Studio does, CLion also. Even if you're command line only it's literally just "cmake <path> && make".
User avatar
c_xong
 
Posts: 234
Joined: 06 Sep 2013, 04:33

Re: The Development of the Libre-Engine

Postby climjark » 23 Mar 2017, 02:48

c_xong {l Wrote}:I think it's better if you keep generated files out of source control, and for a CMake project, that includes project files. I know that some people just want to open a project file, but lots of IDEs support CMake natively - Qt Creator does, the newest Visual Studio does, CLion also. Even if you're command line only it's literally just "cmake <path> && make".


So should i just delete the bin folder and just build out of folder? I am using QTCreator at the moment
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby Akien » 23 Mar 2017, 07:45

climjark {l Wrote}:
c_xong {l Wrote}:I think it's better if you keep generated files out of source control, and for a CMake project, that includes project files. I know that some people just want to open a project file, but lots of IDEs support CMake natively - Qt Creator does, the newest Visual Studio does, CLion also. Even if you're command line only it's literally just "cmake <path> && make".


So should i just delete the bin folder and just build out of folder? I am using QTCreator at the moment

Delete the bin folder from git and add it to your `.gitignore`. You can keep that bin folder locally, but it won't be tracked by git and committed each time you change those generated files.
Godot Engine project manager and maintainer.
Occasional FOSS gamedev: Lugaru, OpenDungeons, Jetpaca, Minilens.
User avatar
Akien
 
Posts: 737
Joined: 22 Feb 2014, 13:14

Re: The Development of the Libre-Engine

Postby charlie » 23 Mar 2017, 10:59

I have split the hijacking debate into a new thread:
https://forum.freegamedev.net/viewtopic.php?f=3&t=7393

It isn't a clean split because of climjark's above post that quotes FaTony but also responds to farrer. I've opted to leave that here as it is relevant enough in context.
Free Gamer - it's the dogz
Vexi - web UI platform
User avatar
charlie
Global Moderator
 
Posts: 2131
Joined: 02 Dec 2009, 11:56
Location: Manchester, UK

Re: The Development of the Libre-Engine

Postby climjark » 23 Mar 2017, 12:06

Akien {l Wrote}:
climjark {l Wrote}:
c_xong {l Wrote}:I think it's better if you keep generated files out of source control, and for a CMake project, that includes project files. I know that some people just want to open a project file, but lots of IDEs support CMake natively - Qt Creator does, the newest Visual Studio does, CLion also. Even if you're command line only it's literally just "cmake <path> && make".


So should i just delete the bin folder and just build out of folder? I am using QTCreator at the moment

Delete the bin folder from git and add it to your `.gitignore`. You can keep that bin folder locally, but it won't be tracked by git and committed each time you change those generated files.



Fixed :D remoed the bin folder as well as the build-Libre-Editor-Qt_5_3_2_qt5-Debug folder :P
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby rogerdv » 23 Mar 2017, 16:37

What are the current features? And planned features? PBR? Deferred shading? Vulkan/Dx12 support? Platforms? Nice editor and one-click-deploy?
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: The Development of the Libre-Engine

Postby Lyberta » 23 Mar 2017, 22:20

Deleted.
Last edited by Lyberta on 01 Oct 2021, 09:33, edited 1 time in total.
Lyberta
 
Posts: 765
Joined: 19 Jun 2013, 10:45

Re: The Development of the Libre-Engine

Postby climjark » 23 Mar 2017, 23:03

rogerdv {l Wrote}:What are the current features? And planned features? PBR? Deferred shading? Vulkan/Dx12 support? Platforms? Nice editor and one-click-deploy?


I mean the current features are pretty basic right now, input handling based on SDL_events, Rendering at the moment is based on an enumeration , 2D uses SDL2's SDL_Renderer, and 3D uses SDL_GLContext. I have recently created a Mesh class to represent models, Shaders are their own object with an enum based on their type (vertex, geometry, tessalation control, tessalation evaluation, compute and fragment). If you dont support geometry, tessalation, or compute, thats fine, those are optional, they get compiled into ShaderProgram. For more info on everything thats been/is being worked on, the LibreEngine Design Doc is in the github, it shows everything that has been implemented/in the making


Right now I just have a wrapper around a lua_interpretter for the script engine. I also have a Entity Component System architecture and Scene system ive been implementing to setup a game enviornment. The Editor is already kinda in the works, ive setup a Editor with QT (seperate from the engine API), but the features are not finished.

Im hoping that the limitations of platforms would only be by SDL2 (i mean that has wrappers to so many native platforms).



Future Features:
Dynamic Lighting
Deferred Shading seems like a solid idea ;)
Vulkan Support definately on my list.
Multiple Scripting Languages (depending on what you want to use), Ruby and python possibly


Editor Features (unimplemented, but graphically designed):
TileMap Editor
Shader Editor
Script Editor
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby Lyberta » 24 Mar 2017, 16:57

Deleted.
Last edited by Lyberta on 01 Oct 2021, 09:34, edited 1 time in total.
Lyberta
 
Posts: 765
Joined: 19 Jun 2013, 10:45

Re: The Development of the Libre-Engine

Postby climjark » 24 Mar 2017, 19:14

FaTony {l Wrote}:Please, please don't make an editor a separate program. It will slow development a lot. A lot of engines have editor embedded into the main executable so you can test your map/script with a push of a button.

Compare Red Eclipse where you hit F2 in editor and you now run around the map and Xonotic where there is a separate editor and it takes literally hours to compile a map and then you need to load the client and test the map.


The main reason i didnt want it in the engine is because of its QT dependency. Its quite hefty and I wanted to make the engine as small as possible. Ill have to check those 2 engines out though!
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby rogerdv » 24 Mar 2017, 19:24

climjark {l Wrote}:
rogerdv {l Wrote}:What are the current features? And planned features? PBR? Deferred shading? Vulkan/Dx12 support? Platforms? Nice editor and one-click-deploy?


Multiple Scripting Languages (depending on what you want to use), Ruby and python possibly



i would recommend staying away from python. AngelScript seems a better choice (Urho3d uses it), or even C#.
User avatar
rogerdv
 
Posts: 289
Joined: 10 Dec 2009, 18:26

Re: The Development of the Libre-Engine

Postby climjark » 24 Mar 2017, 20:44

rogerdv {l Wrote}:
climjark {l Wrote}:
rogerdv {l Wrote}:What are the current features? And planned features? PBR? Deferred shading? Vulkan/Dx12 support? Platforms? Nice editor and one-click-deploy?


Multiple Scripting Languages (depending on what you want to use), Ruby and python possibly



i would recommend staying away from python. AngelScript seems a better choice (Urho3d uses it), or even C#.


I will definitely keep that in mind!
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby onpon4 » 25 Mar 2017, 04:07

Python is perfectly fine if what you want is something comprehensive, or to use it as the main language. But if you just want something for basic scripting that's very specific to the engine, Lua is probably better.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: The Development of the Libre-Engine

Postby climjark » 30 Mar 2017, 01:20

Im probably gonna start updating the first Post weekly to show the progress
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby Julius » 30 Mar 2017, 07:00

Dark blue letters on dark grey background is not a good choice at all ;)

Looks like a nice start. For the shader editor there will also be a node based system?
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Re: The Development of the Libre-Engine

Postby climjark » 30 Mar 2017, 11:56

Julius {l Wrote}:Dark blue letters on dark grey background is not a good choice at all ;)

Looks like a nice start. For the shader editor there will also be a node based system?



Hahahahah yea, this was just to get it up and running, im gonna probably end up allowing the user to customize his syntax highlighter. Also probably change some of the current values to lighter colors.

And yea, once i setup a few default shaders i would like to add a node-based system to the editor. Its funny i got into a little quarrel about that with one of my friends. He told me that the Node-based system is the only way to go, and i was like "But how am i gonna set that up if i have no default shaders to put in there (Other then the basic vertex and fragment shaders i have)? im gonna need to understand reflection for this (which i do for the most part , but applying it is alot different then in theory ;) )
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby Imerion » 31 Mar 2017, 18:17

Cool! I'm always interested in new engines in case they fit my needs even more than the ones I'm using now. Thanks for keeping us updated!
Try my games! : My Games - Read my FOSS Games Blog! : Free Game News
Imerion
 
Posts: 100
Joined: 09 Apr 2011, 19:37

Re: The Development of the Libre-Engine

Postby climjark » 05 Apr 2017, 06:12

Mid Week Update Launched!
4/5/2017 Updates:
GLSL Syntax Highlighting
Created components such as TransformComponent, CameraComponent, and SpriteComponent
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Re: The Development of the Libre-Engine

Postby DGMurdockIII » 11 May 2017, 21:18

do you think you could add renderdoc - https://renderdoc.org/ to the engine
DGMurdockIII
 
Posts: 50
Joined: 03 Feb 2010, 17:47

Re: The Development of the Libre-Engine

Postby climjark » 08 Jun 2017, 03:11

DGMurdockIII {l Wrote}:do you think you could add renderdoc - https://renderdoc.org/ to the engine


Im sorry it has taken me this long to reply, that can be doable, it uses an MIT License which is GPL Compatible License, and it seems to look like a really useful tool.
climjark
 
Posts: 13
Joined: 22 Mar 2017, 01:40

Who is online

Users browsing this forum: Google [Bot] and 1 guest