GithubHelp home page GithubHelp logo

fakhirsh / fengine Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 22.79 MB

Highly cross-platform Game Engine. Simple yet powerful Component based, data driven architecture.

License: BSD 2-Clause "Simplified" License

C 45.97% CMake 0.12% C++ 29.52% Lua 0.01% C# 0.51% Objective-C 0.59% Objective-C++ 0.23% HTML 6.86% Shell 6.89% Assembly 1.00% Groff 1.91% Awk 0.29% Makefile 3.72% TeX 0.98% CSS 0.05% Perl 0.24% SAS 0.01% CLIPS 0.04% Ada 0.60% Pascal 0.47%

fengine's Introduction

  • ๐Ÿ‘‹ Hi, Iโ€™m @fakhirsh
  • ๐Ÿ‘€ Iโ€™m interested in ...
  • ๐ŸŒฑ Iโ€™m currently learning ...
  • ๐Ÿ’ž๏ธ Iโ€™m looking to collaborate on ...
  • ๐Ÿ“ซ How to reach me ...

fengine's People

Contributors

fakhirsh avatar

Stargazers

 avatar  avatar

Watchers

 avatar

fengine's Issues

ProcessScheduler is crashing

The Update() method in the ProcessScheduler needs to be rewritten. The processes that are active need to be checked Separately from the processes that are already terminated.

Currently everything is being processed in one big switch statement. If any process attaches a child and deletes itself, the iterator updates to incorrect value resulting in a Crash.

iOS: libPng failed to compile on actual device

the libPng filed to compile on the actual device (arm7 architecture).

Error:

Undefined symbols for architecture armv7:
"_png_init_filter_functions_neon", referenced from:
_png_init_filter_functions in libFEngine.a(pngrutil.o)

Ugly hack for ContentScaleFactor in SpriteNode's PreRender function

The entire scene graph and matrix stack has to be revised. Very ugly hack implemented in SpriteNode's PreRender function. This is to ensure that ONLY the leaf nodes like sprite get multiplied by CSF.

Side effect of this is that if I need to scale leaf node, i need to put it "inside" an empty container.

Implement Component Factory (View component)

For now, Implement component factory that returns a fully initialised view component --> It should be able to accept xml file and return a VIEW component based on that description.

When this is implemented, extend the component factory and then start working on the Actor factory.

Android: Implement State saving

The activity is destroyed and then re-created as it goes into background and then to foreground, or if the orientation changes. Need to implement state saving in Android which should save the current state of the game.

GameEngine: implement state saving mechanisms

Please implement efficient mechanisms for saving and loading current game state. This should be very detailed, e.g: even the position/color/angle of individual particles should be recreated upon restore.

Fix Memory leaks

There are memory leaks and unwanted allocations all over the place. Please fix these.

Weak_ptr to Actor in all Components

Instead of storing a strong pointer to actor, just store a weak pointer to the actor in ALL of the components so that it doesn't result in a memory leak as it is happening right now :S

Implement Physics Controller

Well, this is not going to be a realistic physics at all. Just some candies falling with constant speed. Also need to implement collision detection specially keeping in view the "tunnelling" since candies will be moving fast.

Implement Font system

Implement Bitmap atlas, Font cache, multi language support etc. Try to be as simple as possible, but no simpler.

Make ActorComponents loosely coupled

Currently the ActorComponents are very very tightly coupled. Decouple them by using event manager. Also a huge army of header files is included on top of almost every source. Try to improve that as well.

Add facility to create new Objects without XML files.

Right now the factory methods are hiding all the details, they read in XML file and create a corresponding object {view or actor etc}. But reading XML is SLOW. The Engine must provide EASY facilities to create new objects from the code.

The Engine also should provide mechanisms to clone existing objects from memory {for efficient creation}.

Improve Factories

Currently factories may be a bit of mess. Clean then whenever possible.

CRASH: EventDispatcher (removing listener from within a listener)

Whenever an even occurs it calls appropriate listener function. Now IF a listener (specially of the same event) is removed from WITHIN the SAME initially called listener, EventDispatcher will crash (because it never got to update the listenerMap within the same loop)

Example:

void MainMenu::TouchDownListener (EventPtr e)
{
...........
EventDispatcher::Get()->RemoveListener( eventID, TouchDownListener);
............
}

Possible solutions:

  1. Never delete a listener from within another listener SPECIALLY having the same EventID. Mark the listener as "ready for deletion" and then erase it from somewhere else such as ProcessSchedular or something

Please Find a better and Elegant solution !!!!

Update() bug in SceneNode2D Abstract class

Even though the Scene Graph 2D is properly calling "Render()" for all children but it is ONLY calling "Update()" for the FIRST child. Remaining children do not get updated.

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.