Code Monkey home page Code Monkey logo

thunder's Introduction

Thunder Engine

Thunder Engine is free for all purposes an open-source multi-functional lightweight game engine for creating 2D and 3D games. It provides a basic framework and extensible tools. So developers can focus on the creation, and the Thunder Engine will do the routine.

Status

Build Status Coverity Status Codacy Badge Translation Status

Attention

This engine still in the development and stuff will break. If this happens, the first thing to do is clear your project's cache directory and restart the editor. If this doesnt helped please rize an issue. Remember, by reporting problems or asking questions in public, you are helping other people!

About

The main ideology of project is to create the modular engine. It will give developers an ability to exclude modules which they are not using in their project to keep their projects lightweight. API of Thunder Engine is also allowing to create own modules to use them in your games or in game editor.

Screenshot of Thunder Engine

Discord Gitter chat

Getting the Engine

To download the release version use the Releases page. For other options please follow a build instruction.

Features

  • Cross-platform (Windows, Linux, macOS, Android, iOS, tvOS)
  • Rendering System Based on Physical Principles
  • Scripts supported by AngelScript engine
  • Module based architecture

Please find a complete list of features.

Have a question or an idea?

I'm always open to new ideas and you can always ask a question or you can create a ticket.

Contributing

Would like to help to project? Please read this.

thunder's People

Contributors

alevadkal avatar bot-kerem avatar comradekingu avatar crlambda avatar eprikazchikov avatar gguedesaz avatar lisapple avatar marcotaranta avatar nathanbnm avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thunder's Issues

Render: Instancing

Description

Thunder Engine must support Instancing for PC platforms.

Steps to Reproduce

N/A

Expected behavior:

Instancing can be used to optimize drawing bunch of cloned geometry such us grass leafs and particles.

Actual behavior:

N/A

Reproducibility:

N/A

Versions

N/A

Additional Information

Article https://learnopengl.com/Advanced-OpenGL/Instancing can be used as reference.

Crash while rotation

Steps:

  • Open WorldEditor
  • Create any Actor
  • Try to rotate it

Result:
Application crashed 3 of 5 times

Editor: Camera Component editor

Description

Some of Components such as Camera has complex editor logic i.e. Camera can be Perspective with Field of View parameter or Orthogonal with Width parameter.

Steps to Reproduce

1. Launch World Editor
2. Create Camera Object
3. Refer to Properties window

Expected behavior:

Developer should be able to change camera related parameters.

Actual behavior:

There is no any camera parameters except "Camera Background Color"

Reproducibility:

N/A

Versions

release-2.0

Additional Information

In general: Will need to implement some interface to be able declare own editors with ability to draw custom handles.

Helpers for invisible objects

Some of components doesn't have graphycal representation i.e. Light Sources or Cameras. Designer should has ability to select this objects on scene.

Editor: Code template

Description

Developer should be able to create code sources from Content Browser with base code.

Steps to Reproduce

1. Launch World Editor
2. Do a right click on Content Browser view
3. Select Create Asset Component

Expected behavior:

New Code Asset appeared in Content Browser and Components view

Actual behavior:

N/A

Reproducibility:

N/A

Versions

N/A

Additional Information

N/A

Editor: Invisible Components

Description

Components without any properties is not vissible in Properties View

Steps to Reproduce

1. Launch World Editor
2. Add component from attachement to project
3. Create any valid components i.e. Sprite
4. Add component from attachement to this object

Expected behavior:

Component must be visible in Properties and developer is able to remove it

Actual behavior:

Component invisible and user unable to remove it.

Reproducibility:

Issue is stable

Versions

release-2.0

Additional Information

Please refer to attachement for test component
piece.zip

About Dialog

Need to implement About Dialog in WorldEditor

Editor: Components editing for multiple selection

Steps:

  • Launch WorldEditor
  • Create several objects and select all of them
  • Try to add and remove components.

Expected:
Application shouldn't allow to add or remove components in multiple selection

Project module for Editor

Project module for Editor doesn't compile and loading
Steps:

  • Launch WorldEditor
  • Create any Source File and write some code
  • Save it
  • Check Console output

Expected:

  • Module compiled successful
  • Module loaded and appeared in Components Window

Actual:

  • Compilation and Reload doesn't happen

Font System

As Designer i would like to render text items with different fonts
Resources:

  • Font

Components:

  • Label

Render: One-pass rendering to a Cubmap

Description

It's possible to use geometry shaders to render a scene to all 6 surfaces of cube map in one pass.

Steps to Reproduce

N/A

Expected behavior:

Engine should support this feature for PC platforms to generate Reflection Probe maps and to generate shadow maps for Point Lights.

Actual behavior:

N/A

Reproducibility:

N/A

Versions

N/A

Additional Information

Article http://cg.siomax.ru/index.php/computer-graphics/10-one-pass-rendering-to-cube-map can be used as reference.

Render: Shaders for light sources as materials

Description

Shaders for light sources must be implemented as Materials with "Light Function" domain.

Steps to Reproduce

N/A

Expected behavior:

Standard Light materials for Direct, Point and Spot light sources must be available in engine by default, but developer should be able to reimplement this materials.

Actual behavior:

N/A

Reproducibility:

N/A

Versions

N/A

Additional Information

N/A

Editor: Icon render

Description

Icon renderer is drawing meshes outside of icon in case of mesh contain a lot of surfaces.

Steps to Reproduce

1. Launch WorldEditor
2. Import mesh with several surfaces with center out of (0.0, 0.0, 0.0)
3. Check the icon

Expected behavior:

Icon should contain all mesh

Actual behavior:

Icon contain only part of mesh or nothing.

Reproducibility:

5 of 5

Versions

release-2.0

Additional Information

N/A

Editor: Project for embedded resources

Description

It will be helpful to have project file for embedded resources to add, edit and remove this resources easily.

Steps to Reproduce

1. Launch World Editor.
2. Open Embedded project.
3. Work with embedded resources.

Expected behavior:

This project should contain all embedded resources (for engine and for editor) cache and generated directories should be ignored by Git.

Actual behavior:

N/A

Reproducibility:

N/A

Versions

N/A

Additional Information

N/A

QBS Debug/Release profiles

Steps:

  • Try to build project with debug profile
  • Try to build project with release profile

Actual:
Error message received

was used when last building for configuration 'debug'. Use the 'resolve' command if you really want to rebuild with a different profile.

Editor: Rotation isn't reflected on UI

Description

Rotation angles isn't updated in Properties in case of rotation did by Rotation Handles

Steps to Reproduce

1. Launch WorldEditor
2. Crate any object
3. Try to rotate it by Rotation Handles

Expected behavior:

Euler Angles should update in Properties window.

Actual behavior:

Euler Angles doesn't update.

Reproducibility:

Happened 5 of 5 times.

Versions

release-2.0-89fea59

Additional Information

N/A

Render: CSM is not working

Cascaded Shadow Maps doesn't work.
Steps:

  • Launch WorldEditor
  • Open any Mesh in Viewer

Actual:

  • No any shadows from mesh

Camera Screen parameters

Camera shouldn't contain screen Width and Height parameters.
Only Aspect ratio applicable to Camera this values should be set in case of any screen resize.

Crash while renaming actor

Steps:

  • Launch WorldEditor
  • Create Camera Actor
  • Remove Camera Component
  • Try to rename object

Result:
Application crashed 3 of 3 times

Sprite is not selectable

Steps:

  • Lauch WorldEditor
  • Create New Sprite
  • Unselect and select again

Actual:
Sprite can't be selected

Euler Angles isn't work properly

Steps:

  • Launch WorldEditor
  • Create any Object on scene
  • Try to set rotation angles to (90, 90, 90)

Actual:

  • Editor showing some random values

Expected:

  • Editor should keep provided angles

Crash while undo/redo

Steps:

  • Launch WorldEditor
  • Create Mesh Object from resource
  • Make Undo
  • Make Redo
  • Make Undo

Actual:
Application crashed

Negative zoom in Texture Edit

Steps:

  • Launch WorldEditor
  • Open any texture resource
  • Try to zoom this texture

Result:
After maximum zoom texture become reverted

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.