GithubHelp home page GithubHelp logo

pjohalloran / gameframework Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 3.0 119.21 MB

C++ Game Engine and 9-Ball Pool

Shell 5.11% Lua 1.57% C 62.74% C++ 28.77% Objective-C 0.84% Awk 0.01% Python 0.69% CSS 0.05% XSLT 0.04% Smalltalk 0.03% Assembly 0.03% Perl 0.11%

gameframework's Introduction

 		**** gameframework ****

Introduction:

This is my personal educational toolbox for learning how to make 2D and 3D games
primarily using C++ and OpenGL (3.3 only right now).

I created a 3D game called Pool3D using this framework on the Windows and Mac OSX platform.
See: http://www.youtube.com/watch?v=3gPpkircnBg

Features:

 - C++ game engine.
 - OpenGL 3.3 support (3.2 on Mac OSX).
 - A SceneGraph API with an Ambient/Diffuse/Specular shader framework with multiple point, directional and spotlights support.
 - Delayed GLSL uniform framework to minimize GL state changes. 
 - Bullet physics integration.
 - LuaPlus support for scripting game logic.
 - Simple 2D GUI library.
 - Wavefront .obj 3D model loading support.
 - Texture atlas generation.
 - Very useful and simple 3D math library of my own creation.
 - WIN32 and MacOSX support.
 - OpenAL support.
 
 TODO:
 
 - Get rid of dead and experimental code.
 - iOS platform support.
 - More 2D/3D game examples.
 - Custom memory management and allocation.
 - Removal of exceptions.
 - Replace STL with custom data structures and algorithms.
 - Implement shadows in the Pool3D.

Dependencies:
You may need to install some dependancies depending on your platform.

- All:
 * premake4
	http://industriousone.com/premake/download

- Windows:
* boost v1.51
	http://www.boostpro.com/download/

* OpenAL SDK v1.1
	https://bitbucket.org/pjohalloran/openalwin/downloads/OpenAL11CoreSDK.zipOpenAL11CoreSDK.zip

- Mac OSX:
	(dependancies are included in project)

Building:

To build the project we first must generate the project files.
Currently Visual Studio for Windows and Xcode for Mac OSX 
are supported via the premake project generation command line tool.

Get the latest source from GitHub:
git clone https://github.com/pjohalloran/gameframework.git

 - MacOSX:
Generate an xcode project by:
 * cd $PROJECT_ROOT\projects
 * premake4 xcode3

Then open the Pool3D project inside in projects/tmp and build and run.

 - Windows:
Generate a Visual Studio project (e.g. 2010) by:
 * cd $PROJECT_ROOT/project
 * premake4 vs2010

Then open the gameframework solution file in projects/ and build and run.

- Pool3D

To run the Windows version of Pool3D, you will need to generate the games resources manually.
Open explorer and navigate to src/Pool3d/data. Select all the directories inside and right click.
Select "Send to" and then "compressed file".  Rename this zip to be "Pool3D.zip" and copy it
into $PROJECT_ROOT/data/Pool3D/

Credits:

This library contains code from the following projects and books:

- Bullet
- zlib
- libpng
- libogg, libvorbis
- OpenAL
- boost
- glew
- glfw
- ftgl
- lua and LuaPlus

- Game Coding Complete (3rd Edition) http://www.mcshaffry.com/GameCode/
- OpenGL Superbible (5th Edition) http://www.starstonesoftware.com/OpenGL/

- It also uses premake to generate and mantain the project files.

License:

This library is free to use for anyone that wants it under the MIT license.
Please see the 3rd party libraries themselves for their individual licences.

gameframework's People

Contributors

pjohalloran avatar

Stargazers

 avatar  avatar  avatar

Watchers

 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.