All Projects → nfrechette → Acl

nfrechette / Acl

Licence: mit
Animation Compression Library

Programming Languages

cpp
1120 projects

Projects that are alternatives of or similar to Acl

Tetra
🎮 A simple 2D game framework written in Rust
Stars: ✭ 492 (-31.28%)
Mutual labels:  game-development, game-engine
Anything about game
A wonderful list of Game Development resources.
Stars: ✭ 541 (-24.44%)
Mutual labels:  game-development, game-engine
Lollipopgo
稳定分支2.9.X 版本已更新,由【Golang语言游戏服务器】维护,全球服游戏服务器及区域服框架,目前协议支持websocket、http、KCP、TCP及RPC,采用状态同步(帧同步内测),愿景:打造MMO多人竞技游戏框架! 功能持续更新中... ...
Stars: ✭ 500 (-30.17%)
Mutual labels:  game-development, game-engine
Fheroes2
Free implementation of Heroes of Might and Magic II game engine
Stars: ✭ 471 (-34.22%)
Mutual labels:  game-development, game-engine
Quadplay
The quadplay✜ fantasy console
Stars: ✭ 563 (-21.37%)
Mutual labels:  game-development, game-engine
Etlegacy Deprecated
Archived repository. For current repo, see: https://github.com/etlegacy/etlegacy
Stars: ✭ 470 (-34.36%)
Mutual labels:  game-development, game-engine
Handmade Math
A simple math library for games and computer graphics. Compatible with both C and C++.
Stars: ✭ 517 (-27.79%)
Mutual labels:  game-development, game-engine
Gideros
Gideros Release version
Stars: ✭ 442 (-38.27%)
Mutual labels:  game-development, game-engine
Entt
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Stars: ✭ 6,017 (+740.36%)
Mutual labels:  game-development, game-engine
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+653.21%)
Mutual labels:  game-development, game-engine
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (-8.52%)
Mutual labels:  game-development, game-engine
Ouzel
C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android, and web browsers
Stars: ✭ 607 (-15.22%)
Mutual labels:  game-development, game-engine
Iogrid
Multiplayer game engine/framework built using SocketCluster and Phaser
Stars: ✭ 455 (-36.45%)
Mutual labels:  game-development, game-engine
Engine Native
Native engine for Cocos Creator
Stars: ✭ 488 (-31.84%)
Mutual labels:  game-development, game-engine
Et
Unity3D Client And C# Server Framework
Stars: ✭ 5,138 (+617.6%)
Mutual labels:  game-development, game-engine
Roygbiv
A 3D engine for the Web
Stars: ✭ 499 (-30.31%)
Mutual labels:  game-development, game-engine
Vortice.windows
.NET standard bindings for DirectX, WIC, Direct2D1, XInput, XAudio and X3DAudio
Stars: ✭ 427 (-40.36%)
Mutual labels:  game-development, game-engine
Ebiten
A dead simple 2D game library for Go
Stars: ✭ 5,563 (+676.96%)
Mutual labels:  game-development, game-engine
Luxe Alpha
luxe alpha - deprecated, unrelated to the new engine! see the readme or website for details - https://luxeengine.com/
Stars: ✭ 559 (-21.93%)
Mutual labels:  game-development, game-engine
Player
RPG Maker 2000/2003 and EasyRPG games interpreter
Stars: ✭ 585 (-18.3%)
Mutual labels:  game-development, game-engine

CLA assistant All Contributors Build status Build status Sonar Status GitHub release GitHub license Discord

Animation Compression Library

Animation compression is a fundamental aspect of modern video game engines. Not only is it important to keep the memory footprint down but it is also critical to keep the animation clip sampling performance fast.

The more memory an animation clip consumes, the slower it will be to sample it and extract a character pose at runtime. For these reasons, any game that attempts to push the boundaries of what the hardware can achieve will at some point need to implement some form of animation compression.

While some degree of compression can easily be achieved with simple tricks, achieving high compression ratios, fast decompression, while simultaneously not compromising the accuracy of the resulting compressed animation requires a great deal of care.

Goals

This library has four primary goals:

  • Implement state of the art and production ready animation compression algorithms
  • Be easy to integrate into modern video game engines
  • Serve as a benchmark to compare various techniques against one another
  • Document what works and doesn't work

Algorithms are optimized with a focus on (in this particular order):

  • Minimizing the compression artifacts in order to reach high cinematographic quality
  • Fast decompression on all our supported hardware
  • A small memory footprint to lower memory pressure at runtime as well as reducing disk and network usage

Decompression speed will not be sacrificed for a smaller memory footprint nor will accuracy be compromised under any circumstances.

Philosophy

Much thought was put into designing the library for it to be as flexible and powerful as possible. To this end, the following decisions were made:

Supported platforms

  • Windows VS2015 x86 and x64
  • Windows (VS2017, VS2019) x86, x64, and ARM64
  • Windows VS2019 with clang9 x86 and x64
  • Linux (gcc 5 to 10) x86 and x64
  • Linux (clang 4 to 11) x86 and x64
  • OS X (Xcode 10.3) x86 and x64
  • OS X (Xcode 11.2) x64
  • Android (NDK 21) ARMv7-A and ARM64
  • iOS (Xcode 10.3, 11.2) ARM64
  • Emscripten (1.39.11) WASM

The above supported platform list is only what is tested every release but if it compiles, it should run just fine.

Note: VS2017 and VS2019 compile with ARM64 on AppVeyor but I have no device to test them with.

The Unreal Engine is supported through a plugin found here.

Getting started

This library is 100% headers as such you just need to include them in your own project to start using it. However, if you wish to run the unit tests, regression tests, to contribute to ACL or use it for research, head on over to the getting started section in order to setup your environment and make sure to check out the contributing guidelines.

If you would like to integrate ACL into your own game engine, follow the integration instructions here.

Performance metrics

External dependencies

You don't need anything else to get started: everything is self contained. See here for details.

License, copyright, and code of conduct

This project uses the MIT license.

Copyright (c) 2017 Nicholas Frechette & Animation Compression Library contributors

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


CodyDWJones

💻 🔣 🚧 🔧 🚇 🤔

Meradrin

💻

Martin Turcotte

💻 🔧 🤔

vjeffh

💻

Romain-Piquois

🐛

Michał Janiszewski

💻 🔧 🚧 🚇

Raymond Barbiero

🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].