hammerfest
haxe
hammerfest | haxe | |
---|---|---|
1 | 82 | |
41 | 5,974 | |
- | 0.6% | |
0.0 | 9.7 | |
8 months ago | 3 days ago | |
Mathematica | Haxe | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hammerfest
-
Ask HN: Does anyone here use Haxe?
I'm using Haxe actively today to preserve the very reason why Haxe exists.
Haxe was created by Nicolas Cannasse, also known as warp. He was a software developer at french game studio Motion-Twin in the 2000's. At the time they were producing web games using PHP and Flash. This required some shared logic both in the client and server; which caused some duplication. As any engineer in his situation, he decided to solve this with his own compiler. :D
One of the earliest languages he created was Motion Script, a an AS inspired language compiling to the AVM1 bytecode (SWF). You can see some examples in their 2006 game Hammerfest [0]. Haxe is a successor language with the promise of being compatible with many platforms. It's pretty remarkable in this way as one of the first languages offering expansive target of multiple _platforms_. Not just CPU architectures or OSes, or languages with a dedicated VM. Haxe was pretty successful, and and all Motion-Twin games since around 2008 used this language. It's used even today with their latest releases such as Dead Cells. Warp left Motion-Twin to create his own studio Shiro Games and is also obviously still using his language: Evoland, Northguard, Dune spice wars all use it.
From my side, I'm working on Eternaltwin [1], a project to preserve Motion-Twin's web games. Games that were more reliant on the server side were migrated to regular JS; but client heavy games such as Hammerfest, AlphaBounce, their Kadokado games, Fever, etc. use Haxe.
We use Haxe as a way to migrate off Flash. In particular, we had many user-made content using Flash. In the last five years, we migrated almost all of it to Haxe while still compiling to Flash 8; and we are now preparing to target HTML5 - but it requires removing all the Flash specific-bits. Doing it in two steps allows to perform the migration incrementally. It also requires use to move to more recent versions of Haxe. Due to the specifics of our project, we're stuck using Haxe 3.1 (to target Flash 8), we even sent a few bugfixes to this old version to ensure it keeps compiling today...
Regarding Haxe itself, I'd say that it's a very impressive language and probably a very solid choice if you are creating a video game and need to target multiple targets. It's good for final applications. However, I feel that it falls short as a language for libraries. It felt very well suited for me to implement schema validation and client libraries. Write them once in Haxe and export for Node, the JVM, Python, PHP, etc. in one go. To support all those targets, it needs to bring its own compat layer that makes it less ergonomic to use Haxe libs from target-native code. It also requires a lot of macros; which tend to be less well supported by editors. Regarding tooling, their package manager improved a lot I feel and now supports project-local dependencies with lock files and they have a nice builtin doc generator.
Regarding integration, there are still some slight oddities; like _requiring_ an env variable to find the standard lib.
To sum it up; it's a pretty nice language, but I feel like it's also showing its age (it still feels very attached to older OOP styles found in Java or AS3).
[0]: https://github.com/motion-twin/hammerfest/blob/master/class/...
haxe
-
Wax compiler – a tiny language designed to transpile to other languages
This remineds me of Haxe[1]. I like Wax better because of the Common-Lisp-like syntax.
[1]: https://haxe.org
-
Marimo: Interactive Fluffy Ball
I thought this was a three.js demo but it's actually built with a language called haxe [1]. I've never heard of this language before and looks really cool. Makes me want to play with it!
[1] https://haxe.org/
- Haxe 4.3.4
- Ask HN: Does anyone here use Haxe?
-
Ask HN: What are some unpopular technologies you wish people knew more about?
The Haxe programming language (https://haxe.org/). It's insane how unpopular this is compared to its value.
"Haxe can build cross-platform applications targeting JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash, and allows access to each platform's native capabilities. Haxe has its own VMs (HashLink and NekoVM) but can also run in interpreted mode."
It's mostly popular in game dev circles, and is used by: Nortgard, Dead Cells, Papers Please, ... .
-
One Game, by One Man, on Six Platforms: The Good, the Bad and the Ugly
For those interested in cross platform game development, don't forget https://haxe.org/! The usefulness / popularity ratio is very high on this one :).
- Flash Museum – explore more than 130k flash games and animations
-
Is this idea worth pursuing? (a common grammar interface for various interpreted languages written in C)
Sounds like haxe: https://haxe.org/
-
TC39 Proposal: Types as Comments
I really enjoyed programming in AS3, and https://haxe.org/ was really helpful at the time to make development easier.
-
TIL: "private_constant"
Been tinkering in the Haxe programming language recently. I definitely suggest checking it out, but one thing I liked was private constants. I know other languages have this, but its where I've encountered it most recently.
What are some alternatives?
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
eso-light-attack-weave - This is a macro for the game Elder Scrolls Online
Phaser - Phaser is a fun, free and fast 2D game framework for making HTML5 games for desktop and mobile web browsers, supporting Canvas and WebGL rendering. [Moved to: https://github.com/phaserjs/phaser]
fut - Fusion programming language. Transpiling to C, C++, C#, D, Java, JavaScript, Python, Swift, TypeScript and OpenCL C.
Fable: F# |> BABEL - F# to JavaScript, TypeScript, Python, Rust and Dart Compiler
love - LÖVE is an awesome 2D game framework for Lua.
dhall - Maintainable configuration files
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
Laravel - The Laravel Framework.
awesome-haxe-gamedev - Resources for game development on haxe
melange - A mixture of tooling combined to produce JavaScript from OCaml & Reason
swagger-ui - Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.