F.core is not a game engine. F.core is a set of conceptual and functional components that can be used to build an engine. so it is not a hard decision like Windows vs Mac when choose to use F.core. you find the parts you are interested, pull it out and use it in your game.
F.core employs requirejs dependency management, and you should too, if you care to build games that has more than 1000 lines of code. requirejs can be clumsy to set up than <script src="">
, but when a project grows it will pay off.
F.core components can be categorized into:
[sprite](#sprite) and [animator](#animator) [controller](#controller), [combodec](#combodec) (combo detector) with [control_recorder](#controller-recorder) and [control_player](#controller-recorder). some [collision](#collision) detection and [math](#math) functions and javascript [util](#util)world for 3d to 2d projection
[states](#states) oriented programming in hierarchical state machines [effect_pool](#effect_pool) for managing effects and [graph](#effect_pool) for hashing objects [css](#css) for loading and optimizing css files and [support](#support) to check for browser supportresourcemap to map resource name to resource url
- display and control sprites on page using
<div>
and<img>
tag - multiple images for one sprite
- not using canvas for sprite animations
- support style left/top and CSS transform, depending on browser support
- animate sprites
- support multiple animation sequence on the same image
- controllers for multiple players on the same keyboard
- maintains a table of key states
- generate key events for child controllers
- buffered mode: buffer inputs and fetch only once a loop
- never drops keys
- listen key events and detect combo from a controller
- maintains a clean sequence of pressed keys and fire events when combo is detected
- LF2, KOF style combos
- eliminating auto-repeated keys
- record and playback activity of a controller
- useful in game demo and testing
- nested state transition system, a Hierarchical State Machine ( HSM )
- intuitive state machine definition syntax
- simple (not UML compatible) yet powerful enough for interactive gaming
- reduces logical bugs if used as a programming paradigm
- manages a pool of effect instances using a circular array
- particularly useful in creating game effects, like explosions, flame or sound effects
- mapping(hashing) objects in finite 2d space into a 2d array
- some useful vector operations
- performing rectangle-rectangle, triangle-triangle, circle-circle, line-line intersect tests and point in rectangle test
- use requirejs for dependency management
- compile-time optimization
- combo.html
- collision.html
- controller.html
- effects-pool.html
- graph.html
- support.html
- states.html
- sprite.html
- world.html
Generally have complete freedom except commercial use. For exact terms see license.