l4d15 / quantum-engine Goto Github PK
View Code? Open in Web Editor NEWMulti-platform game engine
License: GNU General Public License v2.0
Multi-platform game engine
License: GNU General Public License v2.0
Proper naming for guard tokens in Header files must be done. A prefix should be added to avoid conflicts with other libraries definitions.
For example:
#ifdef COMPONENT_H
#define COMPONENT_H
Will cause a conflit with Artemis's Component class. To avoid this the definition have been changed to #ifndef QUANTUM_COMPONENT_H
. This should be done in the whole project to avoid further conflicts.
Create a collision system for 2D collisions with box and circle components.
Collision
|---- Box
|---- Circle
To implement the Collision System we will search for Transform and Collision component, not Box and Circle individual components. This way we won't need different systems for each component.
Each Collision component will have the following:
class Collision {
protected:
float xOffset:
float yOffset;
};
The Box will have width
and height
and Circle will have radius
.
Add the following to add the right include path to Sublime Clang.
"settings":
{
"sublimeclang_options":
[
"-I<path_to_project>/include"
]
}
Collision Shape
|---- Box
|---- Circle
An object with a Collision component can have a Box or Circle as a Collision Shape. Both shapes must know how to collide with each other.
Right now, the information about the animated sprite is stored in the AnimatedSprite class, not in the added component. Theese means that two different objects using the same AnimatedSprite will have the same animation.
We have two options:
The first option would be the more reasonable, but we should think about it very carefully.
Create a physics engine using global Gravity and paramter suchs us mass, linear drag and angular drag.
If the object have a Collision component attached, make it collide with other objects and modify its direction like a physic object.
These link could be helpful:
It is no longer requited to copy the .dll files to the output folder since it has been automatized within CMake.
Take a look into Lua scripting. If it can be embedded into the engine for some tasks it would make it very flexible.
We are using lua, which happens to be able to store data in a very similar fashion than JSON, so we should use only one library. Since lua can make the scripting side and the data storage too, we should change the way we store data in the engine to use lua files instead of JSON and get rid of JsonCpp which have some problems compiling in Mac OS X.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.