Giter Club home page Giter Club logo

zoranengine's Introduction

ZoranEngine

ZoranEngine Is a game engine designed with Multiplatform capabilities It contains a main class ZoranEngine that Is what everything else funnels through

Each *Engine class is an abstraction from implementation. So RenderEngine is an abstraction from rendering specifics Every *Engine class should be created from ZoranEngine itself and not by the user of the engine

The Only class's that can be created directly by the user are scene object but they should never be destroyed by the user instead they call destroy() on the class and the engine will take care of it.

Coding Standards

When creating class, All Variables and Functions are Camel Case. All Variables start with lower case letters and all Functions start with Uper case letters Each section (public vs private vs protected) should be preceeded by a space (except the first) and function and variables should not be mixed

ex.

class SomeClass : public SceneObject
{
private:
	bool somePrivateBool;
	int  somePrivateInt;

protected:
	int someProtectedInt;

public:
	int somePublicInt;

private:
	void SomePrivateFunc();

protected:
	void SomeProtectedFunc();

public:
	SomeClass();
	~SomeClass();

	void SomPublicFunc();
}

zoranengine's People

Contributors

blakdragan7 avatar

Stargazers

yeti avatar

Watchers

James Cloos avatar  avatar  avatar Stephen Copeland avatar

zoranengine's Issues

Fix Circle Collision

Circle collision currently has a bug where it adds energy to the system on collisions.

3D Camera

Create perspective camera for 3D Rendering

Move rendering outside of scene objects

This came about because of #31 - #34 . In order to move everything to components, we must first make scene objects more specialized and have the components do the rendering. Similar to unreal / unity.

Optimize OpenGL

depends on #21
Currently the second biggest cpu sink is OpenGL rendering and we are only rendering squares... need to implement a more efficient method then what is currently being used. Such as instancing.

Create Custom STL library Replacements

For each STL library (vector, maps, linked list etc ..) create a custom version that focuses on speed and memory footprint, speed being more imortant

GUI Events

depends on #8
Create event system for GUI's to "talk" to eachother and register for rendering.

Create Versioning System

Create system that keeps track of versions of the engine. such as an include file that only contains the version that DragEngine returns in some getter function

Design Reflection System

Reflection in this case means converting between class types and strings, so "SceneObject" should be able to translate to the actual SceneObject class.

Implement Player Controller

Implement Abstract Controller that allows for User to receive input events and control an object with said event.

Sprite Snap Collision

Make a way to auto detect alpha from texture and snap the bounding box to that position Similar to unreal's (tight collision box) for sprites

Make collision more efficient

Instead of Updating Collision Bounds Every time collision is checked only update bounds when the scene object is changed

Finish SAT Collision

finish making sat collision work. The only thing left is correctly getting the collision points / separation.

Sprite Wrap Collision

Make a Auto parse feature of textures to make the collision match the alpha of the collision within reason. So Polygon will be generated to match a primitive shape fit to sprite with alpha.

3D Collision Reponse

Create 3D Collision object similar to 2D Collision. Create Collision response for 3D through that object.

Create GUIs

Create foundation classes for using and creating custom GUIs

Input Events

Depends on #6
This should allow user to register themselves to input actions including keyboard events, Mouse events and controller events.

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.