melikeycode / qtgameengine Goto Github PK
View Code? Open in Web Editor NEWA game engine for the Qt framework.
A game engine for the Qt framework.
We need a markdown page (something like projectStructure.md) that documents every file/folder starting from the QtGameEngine folder.
Note: Some of this has already been documented in the diagrams, move it to the markdown page.
Use can use emscripten to run portable C++ code in a web browser. Basically, you feed emscripten your C/C++ and it will spit out javascript.
We should create a few example Qt projects that use QGE. Each of these projects should have all files they need except the qge
folder (client needs to copy/paste the qge
folder inside each of these projects to successfully run them - this is to prevent distributing multiple copies of the qge
folder).
Benefits of having example projects:
Here is a brief description of some example projects we can create:
This would help with debugging abilities that depend on entities entering the field of view of other entities.
Linear page structure.
First there should be a title:
Abdullah Aghazadah's
Qt Game Engine
Then the logo.
Then, an About section which states about (written in C++ ontop of the Qt framework, fun, easy, well written/documented, easy to extend)
Then a "Demo" section with link and pic to demo video.
Then a how to use in project section
-this section will state the two steps to using and will link to a more detailed page where they can learn about more flexable ways of using the game engine
Basic example (just a blank map)
Where to go from here
We should create an example project (example5) that places a body thrusting enemy for the player.
We need to add a small ("teaser") footage of the game engine to the very beginning of the clip. This should fade into the video of me talking.
When you an entity moves from one map to another, and there is a size difference between the adjacent sides of the two maps, where should the entity move to in the new map?
Consider the adjacent edges of two adjacent maps. One map is way bigger than the other. Here is how we should decide where the entity lands in the new map. If the entity is 50% along current map's edge, it should be 50% along new map's edge. If the entity is 25% along current map's edge, it should be 25% along new map's edge, etc. This makes sense.
We need to keep track of people/organizations that we "borrow" ;) resources from. We should create a documentation page dedicated to this, called credits.
People to give credit to so far:
-Derek & Brandon Fiechter for bg music of test game
-open game art for art/sound
implementation steps
done :)
Summary
error: 'auto' return without trailing return type; deduced return types are a C++ 14 extension.
The error comes from STLWrappers.h where 'auto' type specifier is used.
OS / Softwares / Compilers
Steps to Reproduce
Clone the repository and try to build example1
Suggestion
Add minimum requirements to README.md file.
Or
Use C++14 in qge/qge.pri config file
from example 5 and and so on in the others...
I tried game->diplomacyManager().setRelationship(0,1, qge::Relationship::ENEMY);
but spider doesn't move.
regards
Every single entity can specify what classes can and can't damage them through run time type identification. This is weird.
This way, whenever one entity wants to damage another (irregardless of how - via weapon, ability, etc) it does it through this API. If it is an ability/weapon/etc that deals friendly damage, they can use the friendlyDamage() function, otherwise the nonFriendlyDamage(). This is an excellent idea! I'm a genius!
libpng warning: iCCP: known incorrect sRGB profile
QObject::connect(QObject, qge::InventoryViewer): invalid nullptr parameter
e
e
e
e
e
DirectShowPlayerService::doRender: Unknown error 0x8004022a.
DirectShowPlayerService::doRender: Unknown error 0x8004022a.
QObject::disconnect: Unexpected nullptr parameter
QObject::disconnect: Unexpected nullptr parameter
QObject::disconnect: Unexpected nullptr parameter
I tried to built in 5.12 QT version to make it work in ubports , the build library works but not working. i noticed that it used QtWidgets which is problematic on ubports device . is it possible to create QML counterpart of this ? thank you
Often, frames in sprites are much bigger than the actual content (i.e. there is lots of transparent edge/border pixels.). We currently use the entire image as the bbox, which makes collisions seem weird. We should have functionality to extract more accurate bboxes from frames.
It is 58 mb, too damn big! The vast majority of the size is most likely due to image/sound files.
If the image/sound files are indeed the culprit, we should remove the images/sounds we don't use in the examples. Alternatively, we can remove almost all of the images/sounds, and then put them individually in each example.
We need a logo for QGE.
The logo should represent the fact that QGE is very "component" based, i.e. you plug various components together to create a new component with interesting behaviors (e.g. plugging EntityControllers into Entities).
Some ideas for a logo:
Do something like this:
Entity::setOrigin(const QPointF& newOrigin){
origin_ = newOrigin;
sprite()->underlyingItem_->setPos(pos() - newOrigin)
}
We need to create a series of videos in which we walk through building a basic game using QGE.
We can build the same basic game described in the "example projects " (see issue #2)
Basically, create a game with a moving player, some body thrusting enemies who drop items, and an entity to buy items from.
Hey,
The spider entity will not move even when the player is in the field of view. The issue is PathingMap is not registering just by using qRegisterMetaType<PathingMap>(); //(Line 45 in Game.cpp)
qRegisterMetaType(); requires that you first declare the struct using Q_DECLARE_METATYPE()
Using this instead of the above solves my issue.
int qRegisterMetaType(const char * typeName)
i.e. qRegisterMetaType<PathingMap>("PathingMap"); //I was able to find this using the Debug messages.
Love your work,
Thank you,
Abhishek
Do a search and replace in the entire project. Search for ECCheckFOV and replace to ECFieldOfViewEmitter
First of all, if the license is missing, then the default "All rights reserved" does apply.
However, even if this repo adds like the LGPL 2.1 license file, then the produced games would be too easy to reverse engineer.
I mean, allow users to static-link to the engine, and dynamic-linking to Qt is more than enough.
Summary
Running Example8 everything renders correctly, but getting output in QT Console:
creates an DirectShowPlayerService::doRender: Unresolved error code 0x8004022a ()'
spam
And when trying to hit a monster, the following is being outputed to the QT console:
QObject::disconnect: Unexpected null parameter
OS / Softwares / Compilers
Steps to Reproduce
Run example8
Entities have a settable origin
property. We should make this by default be the center of its sprite. Add an additional optional argument in Entity::setSprite() that will set the origin to be the center of the sprite.
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.