Giter Site home page Giter Site logo

luxeengine / alpha Goto Github PK

View Code? Open in Web Editor NEW
566.0 70.0 74.0 118.1 MB

alpha - deprecated 2015~2016. unrelated to the new engine! view the new engine here - https://luxeengine.com/

License: MIT License

Haxe 98.97% GLSL 0.90% Shell 0.09% HTML 0.04%
game-engine game-development game-dev gamedev

alpha's Introduction

alpha (deprecated)

This repo is an archive of the old alpha.

This repo is the old alpha codebase!

  • It is no longer maintained
  • It is not related to the new code base at all
  • It is not representative of the new engine at all
  • It was deprecated many years back (2015~2016)
  • The new luxe code + engine are not available yet

please see https://luxeengine.com for the new engine!

view alpha documentation

Documentation is now archived in this repo. It can be viewed as md files for some, and downloaded and viewed offline as html files.

license

MIT (LICENSE.md)

alpha's People

Contributors

andreirudenko avatar andrewaprice avatar anissen avatar bfod avatar bmfs avatar chman avatar dazkind avatar djpale avatar eduardolopes avatar ekliot avatar gama11 avatar ivcoar avatar jeremyfa avatar joeld42 avatar joeldavis avatar jonathanhirz avatar josuigoa avatar kevinresol avatar keymaster- avatar le-doux avatar mbalestrini avatar mcapdegelle avatar nicom1 avatar rickms avatar roger avatar ruby0x1 avatar sneurlax avatar st3vev avatar theacodes avatar zollenz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alpha's Issues

Entity: Destroying entities

Entities don't have a destroy()-method visible in the docs, but there is a _destroy()-method available in the entity code. Calling this will however cause the engine to throw errors (tested in HTML5).

It would be great if it was possible to properly destroy entities through a class method.

Camera; rotation origin not respected yet

Camera matrix is generated with the correct rotation but it needs to be translated to -origin before that is applied so that it can rotate "in place" and not around 0,0

Animation; add an importer api

Importing sprite animations from json is possible but requires custom json to best support luxe features.

But, there should be format interchange from existing formats, like TexturePacker.

What other animation software exports a data file that can be supported?

TiledMap; Tiled importer

Implemented :

  • object groups
  • layers
  • properties
  • tilesets
  • tiles

Still to add :

Encodings?

json

  • json

xml

  • xml
  • base64 xml
  • zip xml
  • csv xml

gzip xml

Other data :
background color

  • json
  • xml

version

  • json
  • xml

Cameras; size, rotation, scaling as well as clean up.

Test, and verify these.

While testing the render texture example of mobile I found that the camera code has no setters or getters for size and is doing redundant work like regenerating the projection every frame instead of only when it actually changes.

Component: Init not being called

Sometimes when adding components to an entity, the init() method is never called. It does not happen randomly, yet it's hard to reproduce. Has only ever happened to component classes which inherit multiple user-defined class levels, so it could be related to inheritance.

Moving the init() overload down to the lowest level class (which only extends Component) yields the same result, the init method is never called.

Animation; animation events

Events exist but are not tied to anything, they are empty.

It should work based on values from the JSON, and have an api to add/remove/clear/call etc.

Tilemaps; Create, Display, Edit, Translate

The api is supposed to handle all the translations for you from world -> tiles and tiles -> world and scaling between them. There are some questions regarding the offsets when drawing isometric, but I think I know how to solve that (using options.offset_x and options.offset_y as center/left/right/top/bottom like with the tile coord conversions).

Create

  • create ortho
  • create iso
  • margin (image margin)
  • spacing (tile padding)
  • opacity flags
  • visible / flags

Display

  • display ortho
  • display iso

Edit

  • set tile id
  • remove layers
  • remove tilesets

Translate

  • ortho world to tile
  • iso world to tile
  • ortho tile to world
  • iso tile to world

Considering

Hexagonal maps are a tiny step away from being supported as well, may be worth the effort quick.

Other notes

Right now all tiles are created as distinct geometries which is perfectly fine (batching is always applied anyway) but at a later stage adding options like the complex geometry version in the old test would be good.

 

Color: get/set sprite->geometry color propagation

Setting sprite.color propagates to sprite.geometry.color, but getting sprite.color does not return sprite.geometry color. Thus they sometimes act as the same value, and sometimes they don't.

This means that only sprite.geometry.color will change if sprite.geometry.color is written, but both colors will be changed if sprite.color is written. Doesn't really make sense.

Debug; Profiler view generates geometry without removing it

It's accumulating (visible by pressing console -> 1 -> 2 (stats with debug geometry counts) -> 1 (enable profiler view) -> 1 (log) -> 1 (stats, note total geometry count is increased, continues to increase with each view of the profiler)

Input; Make a key event type

that passes keys in a code in a code complete friendly way, and forwards the raw event from the platform in .raw as well.

Input: static (pressed, released, down) methods

Allow the user to check if buttons or inputs are pressed, held or released through static input methods. Would make it possible to place input dependant code in components only, rather than having to propagate them from the main class.

Sprite; Different geometry

It should be possible to hot swap sprite geometry but right now that fails to rebind the colors (and possibly more) to the new geometry.

Maybe :

  • Geometry switch by setting .geometry has a setter that does the reworking, including dropping the existing geometry?
  • geometry passed into constructor is respected.

There is a note here :
Sprite is the controlling party - basically anything set on the geometry prior to the sprite, will be overridden by the sprite on assignment or handing in the constructor. This goes for color, depth, texture, shaders, etc.

That means :

var geom = ... 
geom.depth = 0;

var sprite = new Sprite( {geometry:geom, depth:1 } );

//geom.depth is now 1, not 0 because it's owner takes precedence

Also note that the geometry you pass in is not added to a batcher by the sprite, it assumes you have or will add it (draw does this for you) but if you manually make geometry you are always expected to add it to a batcher anyway, so the sprite will not attempt to re add it.

  • draw automatically adds to the default (or specified) batcher
  • Sprite, unless given a custom geometry, or asked not to, will add to the default (or specified) batcher
  • Manually created geometry handed to sprite is always expected to manage it's own lifetime anyway.

1.x.x roadmap - feature ideas/suggestions

1.x feature update ideas, no specific order

  • more font support
  • better particles

Ideas

audio improvements

  • filters? these will be native only.

more font support

  • drawing as vectors
  • ttf

 

1.0 roadmap

This is not a complete list

Things that need to be done, each must have

  • test
  • guide (and guide code)
  • docs/api

The list

  • Input/touch/gamepads
  • drawing api
  • color
  • tweening
  • events / signals
  • sprites
  • sprite animation
  • assets
  • state machines
  • audio
  • textures / render textures
  • shaders
  • depth / groups / blend modes
  • cameras
  • fonts
  • collision
  • tilemaps
  • physics

Progress

Input/gamepads

  • test
  • guide
  • docs

drawing api

  • test
  • guide
  • docs

color

  • test
  • guide
  • docs

tweening

  • test
  • guide
  • docs

events / signals

  • test
  • guide
  • docs

sprites

  • test
  • guide
  • docs

sprite animation

  • test
  • guide
  • docs

assets

  • test
  • guide
  • docs

state machines

  • test
  • guide
  • docs

audio

  • test
  • guide
  • docs

textures / render textures

  • test
  • guide
  • docs

shaders

  • test
  • guide
  • docs

depth / groups / blend modes

  • test
  • guide
  • docs

cameras

  • test
  • guide
  • docs

fonts

  • test
  • guide
  • docs

collision

  • test
  • guide
  • docs

tilemaps

  • test
  • guide
  • docs

tbd

physics

  • test
  • guide
  • docs

 

Geometry; Only first set of UV's sent

Currently :

8 sets are stored (uv0 - uv7).
Only uv0 is sent to the GPU when batching currently in the VBO's.

This is more relevant in 3D, hence the 1.x

Draw; ellipse, polygon

Drawing ellipses is useful.

It should include the start/end angle

  • draw ellipse ring
  • draw ellipse solid
  • draw ngon solid
  • draw ngon outline

Usability; create Typedef types for generic constructors

For example, Geometry has a lot of parameters, and Sprite are all created by json like syntax. If this was a typedef it's possible to get code hinting ( i think ) so typing them would be great (and @optional can be used where needed, giving compile time errors for exact required values)

Particles; Broken since migrating to new Entity types?

It seems the particles are freaking out (tests/test_particles) and are spinning wildly with the incorrect origin, and worse when opening the debug console onto the stats page there is a peculiar crash SO.

Particles need to be reorganized slightly with fixes and additions I made to openfl-simple-particles and then made sure to be stable again since migrating to the new Entity code.

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.