Giter Site home page Giter Site logo

dogwood's Introduction

Dogwood

A work-in-progress game engine in OpenGL.

Dogwood Editor screenshot

For a fun gallery of screenshots showing the engine's progress over the years, check out this album.

Engine

The engine itself it located under Dogwood/Engine. This project builds static libraries that are included in the Editor and Game projects.

Physics

The engine includes a work-in-progress physics engine, adapted from Game Physics Engine Development by Ian Millington. Currently there is support for sphere colliders and box colliders (and collision detection is implemented for sphere-sphere, sphere-box, and box-box collisions). Collision resolution is currently super buggy, but sort of works in very limited situations. See Dogwood/Engine/Include/Physics.

Scene Files

Scenes are represented as XML files. Here's an example scene.

Model Loading

The engine currently supports OBJ models only.

To create a compatible model in Blender, select exactly these export options:

  • Apply Modifiers
  • Include Normals
  • Include UVs
  • Triangulate Faces
  • Objects as OBJ Objects

To get UVs for the object, open the Object Data section in the right side menu, and add a new UV Map to the UV Maps section.

To get smooth shading, select "Smooth" before export.

Editor

The editor is located under Dogwood/Editor. The editor allows you to load a scene file and manipulate it. The editor currently supports GameObject creation, deletion, renaming, and reparenting. It also allows you to edit the transform (position/rotation/scale) of each GameObject.

Game

A sample game is located under Dogwood/Game. Currently it's just a simple scene with some primitive shapes.

Feature Roadmap

For a super rough feature roadmap, TODO list, bug list, and collection of general thoughts/learnings about the project, see TODO.txt

dogwood's People

Contributors

gnleece avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.