You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+41-46Lines changed: 41 additions & 46 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,44 +1,47 @@
1
1
# BoxEngine
2
2
3
-
BoxEngine is an engine to build 2D and 3D general applications, like games, using the scripting language lua.
3
+
BoxEngine is an engine designed to build both 2D and 3D general applications, such as games, using the Lua scripting language. This engine is ideal for creating applications quickly, thanks to its abstract layers implemented with OpenGL, which facilitate fast prototyping.
4
4
5
-
This engine is ideal to build applications using the abstract layers implemented with OpenGL for fast prototypes
6
-
It uses the GameObject architecture to build the scene with script attached to give it behaviour.
7
-
8
-
The engine runs in c++ but the scripting language is in LUA (with JIT compiler), a Brazilian language.
9
-
10
-
Projects can be run in production mode (pass folder via argument) or editor mode
5
+
## Key Features:
6
+
-**GameObject Architecture**: Construct your scene using a GameObject architecture, where scripts are attached to objects to define their behavior.
7
+
-**C++ Core**: The engine is built in C++ for performance, with Lua as the scripting language, featuring a Just-In-Time (JIT) compiler.
8
+
-**Dual Mode Operation**: Projects can be run in two modes:
9
+
-**Production Mode**: Execute the project by passing the folder as an argument.
10
+
-**Editor Mode**: Utilize a built-in editor for project development.
11
11
12
12
# Features
13
13
14
14
## Scripting features
15
15
16
-
* input module (keyboard and mouse)
17
-
* audio module (2d and 3d audios)
18
-
* font module (with support for any .ttf)
19
-
* camera module (support for 2d and 3d camera manipulations)
20
-
* debug/logging module (logging support also in scripting)
21
-
* texture module (allows to manipulate texture with the GPU)
22
-
* shader module (allows to create and use shader with the GPU)
23
-
* vertex module (allows to allocate mesh with the GPU)
24
-
* framebuffer module (manipulate framebuffer via GPU)
25
-
* primitives module (allows to draw basic shapes in 2d and 3d, including to draw textures)
26
-
* scene module (allows to instantiate GO and scripts and manipulate the game scene)
27
-
* import module (allows to import 3d object files, currently have a basic version)
28
-
* renderer module (allows to draw 3d models, currently have a basic version)
29
-
* GUI module (to do)
30
-
* physics module (to do)
16
+
Read the scripting api documentation [here](https://github.com/RodrigoPAml/BoxEngine/blob/main/docs/api.md)
17
+
18
+
* Input module (keyboard and mouse)
19
+
* Audio module (2d and 3d audios)
20
+
* Font module (with support for any .ttf)
21
+
* Camera module (support for 2d and 3d camera manipulations)
22
+
* Debug/logging module (logging support also in scripting)
23
+
* Texture module (allows to manipulate texture with the GPU)
24
+
* Shader module (allows to create and use shader with the GPU)
25
+
* Vertex module (allows to allocate mesh with the GPU)
26
+
* Framebuffer module (manipulate framebuffer via GPU)
27
+
* Primitives module (allows to draw basic shapes in 2d and 3d, including to draw textures)
28
+
* Scene module (allows to instantiate GO and scripts and manipulate the game scene)
29
+
* Import module (allows to import 3d object files, currently have a basic version)
30
+
* Renderer module (allows to draw 3d models, currently have a basic version)
31
+
* GUI module (to do, basically por ImGui inside framebuffer)
32
+
* Physics module (to do)
31
33
32
34
## Editor features
33
35
34
-
* Open an Create projects
35
-
* Play and Editor mode wich can be detected via script/go to manipulate the scene
36
-
* Manipulate game scene via Game Tree (create go, duplicate, delete)
36
+
* Open and create projects
37
+
* Play and Editor mode which can be detected via script/GO to manipulate the scene
38
+
* Manipulate game scene via Game Tree (create GO, duplicate, delete)
37
39
* Logs tab to help debug the editor and the application
38
40
* Files tab to help manipulate project files (game assets)
39
41
* Info tab to see engine internal information (instance of mesh, textures, fps, frametime)
40
-
* Inspector to allow manipulate a gameobject, add scripts and modify project settings
41
-
* Integration with vs code for scripting (recommend use lua server extension)
42
+
* Inspector to allow manipulate a game object, add scripts and modify project settings
43
+
* Integration with VS Code for scripting (recommend using Lua server extension)
44
+
* Script debugging and much more
42
45
43
46
## Script example
44
47
@@ -49,7 +52,7 @@ function teste.start()
49
52
localthis=engine.current()
50
53
51
54
engine.log('starting')
52
-
engine.log('My go id is' ..engine.go.current())
55
+
engine.log('My GO id is' ..engine.go.current())
53
56
engine.log('My script name is' ..engine.script.current())
0 commit comments