Giter Club home page Giter Club logo

gitter-badger / wickedengine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from turanszkij/wickedengine

0.0 0.0 0.0 202.31 MB

Graphics engine written in C++, with Bullet physics, Lua scripting, input and sound. Featuring Forward, Deferred, Tiled Forward and Tiled Deferred render paths, voxel GI and more.

Home Page: https://turanszkij.wordpress.com/

License: MIT License

C++ 77.52% C 11.99% Objective-C 0.67% HLSL 9.27% Lua 0.03% Python 0.52%

wickedengine's Introduction

Build status Logo Promo

Wicked Engine

Created by Turánszki János

Overview:

Wicked Engine is an open-source game engine written in C++. For list of features, see features.txt. Demos are available at: https://github.com/turanszkij/WickedEngineDemos From now on you can easily set up a game project by using the component templates. (see the demos for examples) Run in Release mode for best performance. Debug mode has full debugging support but poor performance.

Documentation
Scripting API Documentation
Video
Video of the Editor
Devblog

Platforms:

  • Windows PC Desktop (validated version 0.11.73)
  • Universal Windows (validated version 0.11.73)

Requirements:

  • Windows 10
  • DirectX 11 compatible GPU
  • Visual Studio 2017
  • Windows 10 SDK

Usage:

Set the following dependencies to this library in Visual Studio this way in the implementing project:

  1. Open Project Properties -> Configuration Properties
  2. C/C++ -> General -> Additional Include Directories:
    • ./WickedEngine
  3. Linker -> General -> Additional Library Directories:
    • Directory of your built .lib file (Debug or Release directory in the solution by default)

When your project settings are set up, time to #include "WickedEngine.h" in your source. I recommend to include this in the precompiled header file. This will enable the use of all the engine features and link the necessary binaries. This will not load all the features for you however. For that, use the helper wiInitializer::InitializeComponents() which will load all features of the engine. If you want to use just a subset of features, specify in the parameters of the function with a WICKEDENGINE_INITIALIZER enum value, or multiple values joined by the | operator. For further details, please check the demo project at: https://github.com/turanszkij/WickedEngineDemos.

Windows Store support: define WINSTORE_SUPPORT preprocessor for the whole project

Contents:

  • ./WickedEngine.sln - Visual Studio Solution;
  • ./WickedEngine/WickedEngine.vcxproj - Visual Studio Project;
  • ./WickedEngine/BULLET/ - Bullet 2.82 Source files;
  • ./WickedEngine/LUA/ - Lua 5.3.3 Source files;
  • ./WickedEngine/shaders/ - Binary shaders output;
  • ./WickedEngine/models - Sample model files
  • ./WickedEngine/ - C++ and shader source files;
  • ./WickedEngine/Utility - C++ source files for utility helpers;
  • ./io_export_wicked_wi_bin.py - Blender 2.72+ script to export scene;

Scripting API:

You can use a great number of engine features through the Lua scripting api, which can even be used real time while the program is running. For further details, please check the scripting API documentation: Wicked Engine Scripting API

Editor:

The editor is now available but also work in progress. Just build the editor project and run it, then you will be presented with a blank scene. You can import files exported from Blender (.wio) with the scipt described below. You can also save models into the .wimf format from the Editor and open them. Test model and scene files are now available in the WickedEngine/models directory.

Model import/export:

You can export models from Blender with the provided python script: io_export_wicked_wi_bin.py Common model formats like FBX are not supported currently, only the custom model format which is exportable from Blender.

Notes on exporting:

  • Names should not contain spaces inside Blender The problem is the c++ side code which parses the text files such as it breaks parsing on spaces. Mesh files are already exported as binary, so those are okay Suggested fix: write binary export for everything
  • Separate files generated I've written the exporter to write different categories of the scene to different files for easier debugging from a text editor. If the exporter is rewritten to write binary for everything, such debugging will not be possible so might as well merge the files (except mesh files and error message file)
  • Only animation supported is skeletal animation
  • Animation Action names should contain their armature's name so that the exporter matches them correctly Suggested fix: find a better way of matching armatures and actions
  • Animation only with linear curves (so no curves) Suggested fix: implement curves support into the engine and the exporter
  • Only one uv map support Light maps and other effects requiring multiple uv maps are not possible yet.

wickedengine's People

Contributors

turanszkij avatar

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.