About Game Plugin and actions

edited 2014 Jan 23 in Developers
Hi folks, long time ago, I was asked about how to create new "actions" for doom, the purpose for me is to create new weapons, custom attacks and stuff like that, someone (Sorry I forget who) said, "you have to edit the game plugin", my question really is: How can I edit the game plugin?, What tools do I need to edit?, the game plugin is jDoom.dll?. For example I want to star with something simple, a new armor that when you pick it up, give 50 points of armor. I hope you can help me, or give me some instructions :)

Comments

  • it used to be jdoom.dll but i do not know now what it is. i think it's all in the engine dll's now.
  • engine.dll, but you're talking about the latest version? (1.13 I think) I am currently using version 1.10.3, and that has a doom.dll
  • if it still has that then that would be your best bet but as to coding dani or skyjake would be the best to answer that
  • If you wish to add completely new action functions, currently the only way is indeed to create a modified game plugin. This is because the action functions are implemented as native code in the game plugin. (At some point in the future, we plan to make it possible to use Doomsday Script functions as actions, however we are not there yet.)

    First you would need to set up the build environment for compiling from source. The wiki has information about this: http://dengine.net/dew/index.php?title=Getting_started

    At the moment, the tricky thing about making custom game plugins is that because we are transitioning Doomsday to the 2.0 architecture, the interface between the engine and the plugins will keep changing for the foreseeable future, and it doesn't make much sense to retain backwards compatibility for old versions of the API in many cases. Therefore, if one creates a custom game plugin, it has to be updated whenever the engine/plugin APIs change.

    There are two approaches you can take with the game plugin itself:
    • You could apply your changes to the Doom plugin directly. This would mean that it is relatively straightforward to pull changes from upstream, from the Doom plugin in the GitHub repository, and keep your custom plugin up to date that way. However, distributing your custom plugin to others will be difficult because it would replace the "official" Doom plugin (even if the file is renamed).
    • Alternatively, you could make a copy of the Doom plugin and apply the changes there. However, now you'd have to manually merge changes done to the original Doom plugin to keep it up to date. Distributing the plugin to others would be straightforward, though, as it's completely parallel to the original plugin.
  • well i found all the actions in p_enemy.c, now is time to learn how to make the plugin
  • i found all the actions in p_enemy.c, now is time to learn how to make the plugin
    Yeah that's where most of the enemy logic is.

    All action functions have to be added to acfnlink.c, which is then used for getting the addresses of the functions when definitions using those actions are loaded.
  • many thanks!, i'm going to start with something more easy, a red fireball for baron of hell, it's literally a copy-paste from bruisershot. one more question, the new release 1.13 still have performance problems like version 1.12??
  • Why don't you download it and see.

    I don't mean that to sound rude; it seems to be an issue exclusive to your computer or video card, so nobody else can judge except yourself?

    Have a look at see what was added since the version yourself is using, 1.9.8 if you haven't changed since your old thread, and you may find out what your computer or video card is struggling with in newer versions.

    For instance 1.9.9 added the camera vignette effect and 1.11 was Dday's first use of shaders, though only in the UI in that release. It might be one of those that is the cause, for instance.

    The camera vignette effect can be disabled with the "Rend-vignette" taskbar/console command.

    Also, post your Dday out file somewhere; you didn't post it back in that old thread, though certainly, that thread went completely of topic very quickly.
  • it was only a question, I'm currently using version 1.10.3, I test all versions but whatever, i'm going to test 1.13 this night
Sign In or Register to comment.