Code Monkey home page Code Monkey logo

brickware-engine's Introduction

brickware_name

brickware_logo

A Simple 3D engine in OpenGL+DirectX and C++ modeled off of Unity3D

This is mostly for my own fulfillment and education but if you want to fork or dig through it feel free.

I will probably not accept pull requests for things other than fixing comments or syntax.


How to Build

###Dependencies

The goal is to have as few dependencies as possible with this project. Right now the list is as such

OpenGL

  • GLEW
  • GLFW3
  • GL core library

DirectX

  • Windows 8 SDK

Assets

I have recently removed the Assets folder from the repo as it was adding quite a large chunk of crap data to the repo's history. I suggest editing the TestGame.cpp file in the BrickwareTest project to load whatever assets you have available. I will keep the shaders available as it would be a pain to write those all out but any models or textures you will have to bring in yourself. If you want to make contributions but don't want to deal with all that I can share my assets with you on Google Drive.

The structure for assets is as such:

TestBuild/
  BrickwareTest.exe
  Shaders/
    Shaders.glsl (or .cso if DX11)
  Textures/
    Textures.bmp (24 and 32bpp bmps only right now)
  Models/
    Models.obj (triangulated objs only)
  Data/
    Data.json
  Logs/
    Brickware.log (generated by the engine)

Building

Windows

  • Install CMake GUI
  • Point to your GLEW and GLFW directories
  • Choose a Build directory that works for you
  • Configure for your platform (VS 2013 and 2015 tested only)
  • Generate build system
  • Build
  • Make sure all assets are copied into their proper directories

NOTES:

  • For VS you will need to set BrickwareTest as your startup project and set your Working Directory to "$(SolutionDir)TestBuild"
  • DX11 Rendering is broken at the moment as I decide whether or not I want to continue to use Direct X at all.

Linux

Linux has been tested but is still kind of shaky due to the infancy of the CMake Project. There are a few extra steps compared to Windows.

This has been Tested on:

Debian Testing with XFCE 4, LightDM, XOrg 1.15 and AMD proprietary drivers on an AMD 7970M. (As of March 2014)

Antergos Linux with LTS kernel 3.14, Gnome Shell, GDM, XOrg 1.17 and the Mesa Radeon drivers on an AMD 7970M (As of November 2015)

Ubuntu 15.10 with Kernel 4.2, Unity, LightDM and the AMD Catalyst driver on an AMD 7970M (Current Linux testbed)

Feel free to add any other setups you have that work or do not work

Anyway here are the steps to build

  • Clone down the repo somewhere
  • Make sure you've installed GLEW, GLFW3, CMake and Mesa or your proprietary driver.
  • In the repo create a Build directory
  • cd into Build and run cmake : cmake ../
  • CMake should generate the project just fine
  • Run make -j 16
  • cd into TestBuild
  • Make sure all assets are copied into their proper directories
  • In TestBuild you should be able to execute the test with .\BrickwareTest
  • The shared libraries should also be in TestBuild

Mac OSX

I do not have a good machine to test any Mac OSX port on. If you have the XCode command line tools installed (g++) you should be able to get away with installing GLEW and GLFW3 with Macports or Brew and follow the steps for Linux. If not then I may need to write some Objective-C shim.

Logos

Artwork on this README is courtesy of Kyle Labriola

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.