Giter VIP home page Giter VIP logo

moai-dev's Issues

Optimize USAnimCurve key lookup

Add a bin search and an optional 'hint' parameter to improve look-up speeds into USAnimCurve. This hasn't been a performance bottleneck yet, but as we move to 3D it may become one.

Improve A* pathfinding performance (mempool, binary heap)

Current A* implementation is naive: dynamically allocates and frees ever node on demand and performs a linear search through the (unsorted) node list every step. Clearly this can be improved by adding a mem pool and a binary heap.

Multitouch events being lost on device

Josh Lytle reported that certain touch events appear to get dropped on iOS and Android in spite of the internal event queue. This needs to be investigated and fixed.

DirectX host with DirectInput

Made sure input devices are implemented to handle gamepad input. Add a demo that controls a character via a gamepad.

Investigate adding luasec

We've received a request to include luasec. It is not clear how to link this library in statically as it redefines many of the methods in luasocket. Needs some research and possible help.

Expose basic cross-platform native pop-up and alerts UI

Some platforms support basic, native pop-ups for simple dialogues and alerts. To the extent these ad hocs and alerts can be supported across all platforms, we should expose them. (The intent here is not to provide a full featured native UI wrapper. Just alerts, pop-ups and simple dialogues that can be supported across all platforms.)

Refactor MOAIHttpTask

Current cross-platform implementation is a little clunky. Look into replacing implementation object with derived class from abstract virtual MOAIHttpTask.

Implement 2D rigid body physics proof of concept

This will integrate with the Moai 2D physics framework and the arcade style physics to provide basic support for rigid body physics and constraints. The proof of concept should mainly focus on stability of sets of resting objects.

Add upper limits to A* pathfinding

Implement a way to bound pathfinding based on number of iterations and total nodes used. Current implementation is susceptible to filling entire available grid if no solution exists.

Re-implement optimized special case view culling for 2D

With the move to 3D we now use a view volume for culling, even when rendering 2D or mostly 2D scenes. This obviously is a lot less efficient. We should look into falling back on a simpler culling scheme using 2D rectangles in certain situations. This could be done automatically or as an extra setting on MOAILayer or MOAIPartition.

Compute/set maximum content size in decks

We need a way to compute or set content size in decks for use when drawing grids. When indexing a single deck element and displaying with a prop, it's not a problem: the bounds of that element are used for view culling. But when attempting to render a grid of arbitrarily sized elements, we need to pad the grid region with the dimensions of the largest element in the deck to make sure cells containing that element will be rendered even when just off screen.

Improve performance of frustum culling against MOAIGrid

The current implementation naively intersects all edges of the frustum with the prop's plane then uses the in-plane bounding rectangle. We should consider scan converting a more snugly fitting polygon to produce a more efficient set of tiles to render. We also need a way to enforce a 'horizon' and/or maximum viewable tiles limit: right now, if grid is set to wrap, we wind up with a huge number of tiles to draw as the camera approaches a side-view of the tilemap.

Improved styles system for MOAITextBox

Text style particulars (such as font, point size and color) should no longer be inlined into the text itself or set for the entire text box. It would be better to inline style names then attach a set of styles to the textbox for application when rendering. Styles should be user-named and support additional effects such as animation (offset of text being styled and text color).

Font manager and glyph caching system

Fonts and glyph caching should be handled automatically and behind the scenes. Right now users have to explicitly rip fonts to specific point sizes and character subsets; this should be automatic and dynamic at runtime.

Backward compatibility layer to maintain 2D API

The new 3D API adds extra mandatory parameters to some frequently used functions (moveLoc, moveScl, etc.). To avoid breaking the world, use the new moai class 'extent' functionality to re-implement the original 2D style API. Right now we are refactoring to have just MOAIProp and MOAILayer. These should be extended with Lua APIs into MOAIProp2D and MOAILayer2D.

Collada to Lua file converter

Write a lua script to convert collada to an equivalent, platform-agnostic not-lossy intermediate format suitable for loading and further processing into a Moai scene graph.

Video playback

Add support for video playback on operating systems where video API is available.

Improve MOAITransform internals (include shear; improve 3D)

To support generalized bind/unbind from parent transforms we need to include shear in the MOAITransform internals. We can consider rewriting these to look more like a basis with some extra info. The new representation should be well suited for 3D, able to quickly be animated across all components and readily return information about each component performing as few conversions and calculations as possible.

Look into better A* heuristic for grids with shaped tiles

The current A* implementation uses Euclidian distance as the default heuristic for hex, oblique and diamond shaped grids. We need to implement versions of the other heuristics (where applicable) and also see if there are better heuristics to use for hex grids.

Sound drops out on multiple platforms

Some sounds will stop playing and no longer play until re-loaded. We've noticed this in Wolf Toss with the interactive music sounds. They usually play OK the first few times, then stop playing and don't come back until the sound resources are reloaded.

Move to Lua 5.2

Need to look into how this will break current users and what can be done to ease the transition.

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.