Khel : Game Engine
A downloadable Game Engine
NOTE:- The Game Engine is in a closed release. Only a handful of download keys have been released. You can request a download key by sending an email to beingneophyte@gmail.com or sending me a DM in Discord.
Discord:- https://discord.com/invite/RKcq89S7uA
Khel is an early prototype game engine based on the Irrlicht engine and is planned to be very similar to the CopperCube game engine. It is in the test phase or is in its very initial state. Being in its initial state there are so many bugs and glitches in the editor right now and most of them are known to me.
Here are some of the features that are currently in a working state.
- A working Graphical user interface.
- Abasic Scenegraph Explorer, you can select nodes and change their visibility with the eye icon. There is a drag-and-drop functionality as well, you can drag and drop scene nodes over each other to the parent/unparent them, but doing so might break the explorer a bit.
- A working gizmo, when you select a scene node a gizmo will appear on that node in the 3D viewport, which you can use to translate, rotate, or scale the selected node. You can change the gizmo type by clicking the UI buttons just like in CopperCube.
- Basic Properties window, when you select a scene node you can see some of its general attributes in the attributes section of the properties window, some of them are editable.
- Materials, you can also use the materials tab in the properties window. To view and change the texture, material, and lighting of selected scene nodes. Some of the material types might break the UI and viewport for now.
- Behaviors, there is also a working behaviors tab that you can use to apply or remove any existing behavior from the selected scene. There are only a handful of inbuilt behaviors provided that you can use, for now, there are no editable properties for the behaviors. To test functionality try applying the fly in circle behavior or rotation.
- A working textures panel window lists all the textures in a predefined directory for now, it uses the media folder as the directory to list the textures. You can select the texture from the texture window and apply it to any scene node. The texture window for now doesn't show any loaded textures in the scene.
- Scenenode selection in the viewport, you can select scenenode by clicking the node directly in the viewport, it gets messed up sometimes though maybe due to bugs or glitches.
- Import and export of prefabs, just like CopperCube, you can export the current scene as a prefab file in a '.vaz' extension and can then use the import prefab option to import the prefabs in the scene. You can find them in the File menu.
- Clone and Delete nodes, there is basic cloning and deleting of scene nodes functionality, you can select a node and then can use the "Edit Menu" to delete or clone a scene node. There is also a keyboard shortcut to delete a node, simply press the delete button on the keyboard to delete the node.
- Insert, you can use the navigation bar in the "Create" tab at the top of the viewport to insert some nodes into the scene, like cube, sphere, skybox, etc. while most of them are just placeholders you can insert. Beware of inserting a new camera, for now, it will break the editor camera if you add a new camera.
- You can use the "View" menu it allows you to make the windows draggable and also allows you to show or hide some of the windows.
- A working irrlich/irredit properties window, just like in Coppercube has most of the same functionality, but some extra options like "Point Cloud", and "Fog Enable" also work, unlike CC.
- import of static meshes, Support so many formats internally, but only a few of them are exposed for now. Try importing the ".gltf" format, there is a "scene.gltf" file in the media directory that you can load for testing.
- Import of animated meshes, for now, it supports only 3 formats ".x, .ms3d, .b3d" You can find some sample files in the media folder.
- There is also an internal Javascript interpreter embedded but it is not used for now. It is there and will be used in the future for creating a script engine.
Known bugs:-
Childing and Parenting a node breaks a lot of other things. Like the selection of a child node in the viewport, or a visibility icon in the scenegraph explorer.
Changing the material to 2 layered materials can break the UI and everything when a node is deselected or Gizmo is not visible.
Scaling an object to negative doesn't work for now.
Suggestion:-
I am open to all kinds of suggestions. please throw them in.
Tasks in todo list for now:-
Dockable Windows
:- Right now the editor windows are not dockable and don't look good, so make them dockable. (Done:- we can now dock and undock app windows)
Scripting engine
:- the interpreter is done, need to write a script engine like CC.
App Player for games
:- Right now we have the editor part only, we don't want all the behaviors and everything to work in the editor, so create a game player that can handle everything and the editor will use placeholders only.
Lightmapper
:- We have to add a light mapper, if possible add a multi-threaded light mapper. Content Browser
:- we support a basic texture viewer for now, instead make it a more sophisticated content browser to have prefabs and textures at the same place, or maybe custom materials, behaviors, and extensions as well.
SceneManager
:- Right now there is no scene manager, so we can't switch between multiple scenes, add scene manager so that we can switch between different scenes, and also allows us to send data in between scenes for example variables.
Editor camera
:- We are right now relying on a basic camera that can be moved with a mouse only, create a custom camera with keyboard supports and other shortcuts.
Hopefully, I will continue developing it, do let me know how is it going for now.
Install instructions:- Simply unzip the archive to a new folder with all the contents in it. Try running "Khel Game Engine.exe", if nothing goes wrong the engine will start right away. But if it throws an Error like missing "VCRUNTIME140_1.dll" or similar, then install latest Microsoft Visual C++ Redistributable from the link below.
https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=ms...
Status | Prototype |
Category | Tool |
Author | Glitched Velocity |
Tags | coppercube, Game engine, gameengine, glitch, khel, vazahat |
Download
Click download now to get access to the following files:
Development log
- Test version 0.0.2Dec 08, 2023