Skip to content

Start `VybeC`, improve overtone support + many other improvements

Latest
Compare
Choose a tag to compare
@pfeodrippe pfeodrippe released this 03 Jan 05:55
· 1 commit to main since this release

v0.7.469

  • Make non-pointers constant by default
    • Support ^:mut
  • vf/del now can delete the entity itself as well
  • Use safe eval for model loading
  • Use dynamic fns by defaults in vybe.c
    • ::vc/standalone flag was added so you can have the dynamic fns
      inlined again
    • Watch global fn pointers vars (if any) so we can have hot reloading
  • Create vybe.game.system for default systems
  • Create vybe.math for common math functions
  • Allow [:vg.anim/loop :vg.gltf.anim/some-animation] tag, usable from blender
  • Add vg/with-drawing-fx so it's easier to use effects
    • Add vg/fx-painting for a painting-like effect
  • Add vf/entity-debug and vf/systems-debug
  • Add vj/ContactManifold
  • Improve error for VybeC compilation
  • Add mixer.fs

v0.7.444

  • Support multiple GLTF scenes
  • Use pfeodrippe/sonic-pi fork where we add the ATK plugin
  • Add vy.u/app-resource for getting resource correctly
  • Using the ATK plugin, we add a directional scsynthdef file to the project ( you can
    refer to it in synths.scs file) (the synthdef file can be extracted in run time with
    vy.u/app-resource)
  • Support immediate mode (same as no readonly mode) for systems with :vf/immediate
  • Support typed pointers, e.g. [:* [:* [:* :float]]] corresponds to float***
  • Add ability to inherit from a component (struct) with comp-merge,
    also add comp-name and comp-fields
  • Create vybe.c to transpile from CLJ to C
    • Tested (using Github Actions) in OSX, Windows and Linux
  • Use clang also for static analysis
  • Can call generated C function
  • Add vp/p*
  • Add vp/fnc and vp/defnc
    • A VybeComponent that has function pointers fields described with [:fn ...]
      can receive a VybeCFn and a normal clojure function!
  • Seamless integration, using Vybe wrappers, with jextract generated code
    • The macro/function acting as a wrapper has to contain :vybe/fn-meta with
      at least :fn-desc (function description) and :fn-address (address of the
      C function)
  • Add vp/update-aliases! so we can create aliases for components for a better
    integration with jextract layouts
  • Support tap> from C, you can use it as you would normally use from CLJ
    • Even by integrating with tools like Portal!
  • Add ability to reset the globals in a cfn (useful for hot reloading, for example)

v0.6.338

  • Add target and slot support
  • Move transform system to C
  • Add IDerefable Ref
  • Add zig_src for being able to write systems in zig instead of c
  • Move vybe_transform from C to zig

v0.4.302

  • Add multiplayer
    • Add vybe.network
    • Support hole punchings (see server.py)
      • There is a digital ocean server that you can use to initiate the process
    • You can use :vg/sync for an entity that should be networked sync
    • You can use :vg/networked to say which components should be networked sync
  • Add RayGui
  • Support unions in components

v0.4.165

  • Besides OSX, the sample (in the vybe-games repo) is now known to work on a Windows