Why hxbolts?

  1. Why hxbolts?
  2. Trying promhx
  3. Trying thx.promise
  4. Trying task
  5. Trying continuation
  6. Trying async
  7. Trying hext-flow
  8. Finally, hxbolts

Seriously, there are numerous promise / async libraries for haxe, why we need another one? In series of posts I will try to do the same task using different libraries.

Important note: I’m open to discussions on twitter or in comments here.

At first let’s find these libraries

Library must be cross platform – at least swf, js, cpp and neko. I go to the lib.haxe.org and enter “promise” into the search box:

Continue reading

Recap for the last two months: hxbolts

At work and for my own projects I tried to use different promise libraries, for javascript, for java (mostly on android) and of course for haxe. And I absolutely love Bolts library from corporationname (ooops, actually I can’t write it because of BSD license). Anyway, it is good strongly typed (using generics) promise library for java.

Introducing hxbolts! A pure-haxe and cross-platform port of “tasks” component from Bolts.

Imagine you have to delete all comments from blog while player playing in your game, mwahahaha 😈 . But server API has only 4 methods:

Continue reading

Particle emitter updated again

Screen Shot 2015-03-18 at 12.53.43

More features added to zame-haxe-particles:

  • Support for embedded textures (both zipped or not)
  • Sprites renderer added, which allows to use some color-effects for flash target
  • Fallback to drawTiles renderer when WebGL is not available for html5 target
  • Fix problem, when buttons under particle renderer was not clickable (for html5 target)

And two minor things:

FastIteratingStringMap: part 2

benchmark-v2-small

Some time ago I wrote a post about an idea, how StringMap could be implemented (for js target) to have ability to iterate fast. I continued to work in this direction, and finally idea evolved into nearly final implementation.

  1. Tests were added;
  2. Special iterators implementation for case when there is no data in the map;
  3. Benchmark code instantiate a specific class now (instead of using creator function), to give Haxe ability to optimize map usage and inline functions;
  4. Haxe 3.2 (from development branch) was used to compile benchmark;
  5. Another idea was tested (CachingKeysStringMap);
  6. Constant time complexity.

Continue reading

Zamedev love opensource

g2osPrehistory: before we come to the Haxe world, we make games for android and even release two our own on google play.

We (at zamedev) really appreciate opensource. Haxe is opensource. OpenFl and luxeengine is opensource. But even our old games (written in java) would not appear in the world without opensource.

Today we want to give something back to community, and we opensourced Gloomy Dungeons 2.

Continue reading

FAST iterators for StringMap

benchmark-small

StringMap is probably most used class in Haxe (I think only Array is used more often). Probably you never use it directly, rather you use Map<String, SomeType>, which use haxe.ds.StringMap under the hood.

Since it is used very often, it must be very fast. At least it should be… So let’s go a little deeper and look how haxe.ds.StringMap is implemented for javascript target.

Continue reading