Page 2 of 2 FirstFirst 12
Results 11 to 18 of 18

Thread: pyroENGINE SDK v1.0

  1. #11

    pyroENGINE SDK v1.0

    PESDK support dynamic updating of your view port and you can even write to multiple view ports during a pass through the render loop. If you need more power, then PESDK supports Swap Chains as well. A good example of using swap chains is when making some type of game editor. I first added swap chains support a few years ago when I started working on a tile editor (I need to finish this). I think I had like 3-4 swap chains active on what I had working of the tile editor. So, swap chain support is in and it is very handy for making tools and other special effects where you need to render to multiple windows.

    As a result of adding swap chains I created a class called TPEList to keep track of the chain list. You you can think of it has an extension of Delphi's TList object. TPEList allows you to either add a new pointer or dynamically allocate memory and keep track of it. You reference the pointers in index order like TList. What is nice is that if call TPEList.AddItem(MyPointer, @MyIndexRefVar) you pass a pointer to an integer variable it will write the index to this variable and if the list changes, the index reference to the pointer will automatically be updated. So, if for example you delete a pointer from the list, all the pointers that has reference, the reference variable will be automatically updated to reflect the new value.

    I recently added support for 2D positional audio (it will be available in the next build). You can start a sample playing and using PE_Audio_2DPanning/Volume/Frequency routines you are able to dynamically update these values in real-time. PE_Audio_2DFrequency allows you to specify a Doppler shift value. PE_Audio_2DVolume/Frequency both supports a maximum distance to operate over.

    PESDK also has plugin support via standard DLLs. Make a dll project and include the pePlugIn unit. You plugins are extended from the the TPEPlugIn class. You simply have add this block of code to the bottom of your plugin dll unit to auto register the PlugInProc when the dll is loaded
    Code:
    // DLL PlugInProc
    procedure PlugInProc(aOperation: TPlugInOperation; var aPlugIn; const aFileName: PChar);
    begin
      case aOperation of
        pioCreate : TPEPlugIn(aPlugIn) := TPlugIn.Create(PlugInProc, aFileName);
        pioDestroy: PE_FreeNilClass(aPlugIn);
      end;
    end;
    
    initialization
      // Register DLL PlugInProc
      PE_SetPlugInProc(PlugInProc);
    Next create an instance of TPEPlugInManager and after you call TPEPlugInManager.Load('your dll path'), a list of loaded plugins will be in the plugins property. Updates, add-on and other dynamic features are possible with PESDK.

    If you just want to dynamically bind to a routine in a dll, you can do this with the TPEDLL class. just call TPEDLL.Bind(MyProc, 'myproc', 'MyDll.dll'). After this call you can call MyProc(). It will keep track of loaded DLLs. You can load/unload them by name.
    Jarrod Davis
    Technical Director @ Piradyne Games

  2. #12

    pyroENGINE SDK v1.0

    Version 1.0.2:
    * Updated all demos to used updated TPEGame unit. It will display a startup dialog of which you can click the [more] button to set program options.
    * Merged TPEDemo/TPEGame into just TPEGame and added support for plugins.
    * Added screenshot support in all the demos.
    * Renamed the all the TPEXXXList properities to end with an 's' in TPEGame/Demo. For example TextureList is now Textures and so on.
    * Added DynamicSample demo to showcase 2D positional audio support.
    * Added routines: PE_Audio_2DPanning, PE_Audio_2DVolume and PE_Audio_2DFrequency to 2D position audio.

    DOWNLOAD
    pyroENGINE SDK
    Jarrod Davis
    Technical Director @ Piradyne Games

  3. #13

  4. #14

    pyroENGINE SDK v1.0

    wagenheimer
    DirectX 9, summer 2003 runtime.

    In the latest build:
    * I reworked the plugin interface. Now it is even easier to use them, just call PE_Plugin_Register (in your DLL's initialization section) and pass in your plugin type.

    * The TPEDemo/TPEGame class has now been merged and streamlined (now it called just TPEGame). I basically rewrote it from scratch and now it's much more efficient and easier to work with. I added support for plugins. It will now load any plugins that maybe available on the path specified from the PluginPath variable. This is a TPEConfigFile variable so it will automatically be saved/loaded from the application's config file. You can simply change this path to specify where you want your plugins to be loaded from. By default it will look in a path in the current folder called plugins
    Jarrod Davis
    Technical Director @ Piradyne Games

  5. #15

    pyroENGINE SDK v1.0

    I've added database support in PESDK. It can use DBase3 compatible files/indexes.
    Code:
    program dbftest;
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils,
      peApi,
      peDatabase;
    
    var
      db: TPEDbFile;
    
    begin
      try
        db := TPEDBFile.Create;
        try
          // define fields in table
          db.ClearFieldDefs;
          db.AddFieldDef('Name', ftString, 20);
          db.AddFieldDef('Score', ftInteger);
          db.AddFieldDef('Skill', ftString, 10);
    
          // define index for table
          db.ClearIndexDefs;
          db.AddIndexDef('NameIndex', 'Name', ixDescending);
          db.AddIndexDef('ScoreIndex', 'Score', ixDescending);
    
          db.Open('HighScores');
    
          db.Empty;
          db.ActiveIndex := 'NameIndex';
    
          db.Append;
          db.FieldValues['Name'] := 'Mike Jones';
          db.FieldValues['Score'] := 527455;
          db.FieldValues['Skill'] := 'Normal';
          db.Post;
    
          db.Append;
          db.FieldValues['Name'] := 'Jimmy Smits';
          db.FieldValues['Score'] := 7776453;
          db.FieldValues['Skill'] := 'Easy';
          db.Post;
    
          db.Append;
          db.FieldValues['Name'] := 'Tommy Two Toes';
          db.FieldValues['Score'] := 999993;
          db.FieldValues['Skill'] := 'Hard';
          db.Post;
    
    
          if db.Locate('Name', 'Mike Jones') then
          begin
            db.Insert;
            //db.Edit;
            db.FieldValues['Name'] := 'Pyrogine';
            db.FieldValues['Score'] := 45863;
            db.FieldValues['Skill'] := 'Hard';
            db.Post;
          end;
    
    
          db.Close;
        finally
          db.Free;
        end;
      except
        on E:Exception do
          Writeln(E.Classname, ': ', E.Message);
      end;
    end.
    This should (hopefully) be in the next build.
    Jarrod Davis
    Technical Director @ Piradyne Games

  6. #16

    pyroENGINE SDK v1.0

    I liked a lot the framework =)
    porting from asphyre to it now
    From brazil (:

    Pascal pownz!

  7. #17

    pyroENGINE SDK v1.0

    arthurprs

    Good to hear that using PESDK is working out for you. Keep me posted on your progress. If you have questions/comments and/or need help, let me know.

    Thanks
    Jarrod Davis
    Technical Director @ Piradyne Games

  8. #18

    pyroENGINE SDK v1.0

    Version v1.0.3.266:
    * pyroENGINE Registered Developer license is now available for purchase from our website at www.pyrogine.com.
    * Added new Scroll demo that shows and example of doing virtual 4 way parallax scrolling using the TPETexture.RenderTitled method.
    * Added TPEGame.BeforeLoadPlugins method so that you can change the plugin path before the plugins try to load and/or if this function returns false it will not attempt to load any plugins.
    * Added a new C++ Builder TestBed demo to test pyroENGINE usage with C++ Builder.
    * Added C++ Builder header/library and project to build this library. To use PESDK with C++ Builder, just add #include "pyroENGINE.h" in your project.
    * Enhanced PE_RunGame routine and TPEGame.Run method with better error handling.
    * Renamed TPEGame.Scene property to TPEGame.Scenes.
    * Optimized automatic freeing of undisposed resources.
    * Added TPEPrototype/TPEGraphicsProtype classes for quick idea prototyping.
    * Added basic DBase3 compatible file/index support.
    Jarrod Davis
    Technical Director @ Piradyne Games

Page 2 of 2 FirstFirst 12

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •