Load animations into custom engine
Blender's fcurve contains a collection of keyframed values, to calculate the value used on a frame in between two given keyframed values a bezier curve is used, each keyed point contains a left and right handle position that defines how the curve is calculated between keys. If you are only exporting the points listed in the fcurves data then you are missing the data for the frames in between.

You can have blender calculate the value for each keyframe instead of caclulating the curve yourself.

for f in range(100):
    val = fcurve.evaluate(f)