Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Frequently Asked Questions (FAQ) Sticky Locked

A topic by TwistedTwigleg created Dec 13, 2020 Views: 817
This topic is locked
Viewing posts 1 to 1
Developer (11 edits)

The questions below are broken down into some broad categories for easier navigation.

General

Question: Why C# instead of GDScript or GDNative?

Answer: There are a few reasons for this, starting with why I choose C# over GDScript.
Twisted IK 1 was written entirely in GDScript and it worked well all things considered. However, the dynamic nature of GDScript made certain tasks difficult due to how object-inheritance works in GDScript. It would have been harder to structure the system like it is currently with the Twisted IK 2 plugin. Additionally, C# provides better performance when compared to GDScript, which is important because often Inverse Kinematics are used on many different skeletons in a scene, so every bit of performance counts.
The reason for choosing C# over GDNative is accessibility. I wanted to make this plugin as accessible and usable by as many Godot developers as possible. For GDNative, this meant two main options: either distribute precompiled binaries or give source code access and tell developers to compile it themselves, or both. I decided that both options are not ideal, and the extra performance gained via C++ wasn't worth the hassle it would bring to Godot developers. (It would also slow development time down! Using C# means I can develop, test, and deploy much faster than if I used GDNative)


Question: What version of Godot is supported by this plugin?

Answer: Godot 3.2+ with Mono support should be fully supported. The plugin relies on no external C# libraries or anything, so it should run anywhere Godot has C# support!

Edit: Godot 4.0 support has been added: https://twistedtwigleg.itch.io/twistedik2/devlog/504867/version-270-godot-4-supp...


Question: Why is this plugin's implementation so different than the Google Summer of Code (GSoC) version?

Answer: Ultimately, it comes down to two things. The first is that the initial proposal that I made to the Godot team for the GSoC had to be adjusted to fit a new design. This required me to make an entirely new system in a short time frame. While it works, the GSoC implementation has some quirks and ultimately turned out to be different than what I initially intended. In comparison, the Twisted IK 2 plugin adheres much more closely to the original GSoC proposal and vision I outlined.

The second reason is that I learned a lot during the GSoC and wanted to make some low-level improvements to how I structured the system! Going through GSoC taught me more about Godot's inner workings and I found that my initial idea of how to structure IK would benefit from some adjustments. I also knew from early on that I wanted to make it a Godot plugin, so everyone using Godot right now can use the new IK features and functionality in their Godot projects without needing an engine recompile or anything complicated. Using a Godot C# plugin instead of directly working with the C++ source code in Godot naturally brought some rather fundamental changes to how the entire system works.

All of that said, the IK system I wrote for Godot as part of the GSoC still works just fine and I am certainly not saying its inferior! Its just a different system due to different constraints and considerations. Both systems give Godot powerful IK, just in different ways. Twisted IK 2 for Godot 3.2 and onward, while the GSoC is only for Godot 4.0 and is maintained by the Godot community.

Edit: The GSoC version was removed from Godot 4.0 stable release...


Question: Godot 4.0 support?

Answer: Once Godot 4.0 stable is released, I will look at updating the plugin to work with Godot 4.0. Depending on how much the C# API changes, this may take some time.

Edit: Godot 4.0 support is added: https://twistedtwigleg.itch.io/twistedik2/devlog/504867/version-270-godot-4-supp...


Question: Twisted IK 2? Where is Twisted IK 1?

Answer: Twisted IK 1 is a GDScript plugin system that I wrote and tweeted about on my Twitter before being accepted into GSoC. It was never released, but its design helped build the foundation of both the GSoC implementation and the Twisted IK 2 plugin.


Question: Why is this plugin not FOSS like Godot?

Answer: The time, energy, and effort it has taken to get the experience over the past 2-3 years to create the plugin, writing the plugin itself, continuing to develop the plugin, and providing support to users all takes resources! To help replenish those resources, I am charging for commercial use of the plugin. IK is not a simple pursuit and it takes a lot of time to write (hence why there are very few free IK offerings for any game engine)

Also, the money made from this plugin goes back into the Godot community! I am solely funding the Godot Community Forums and the profits off this plugin will go to help fund those efforts, as well as supporting the continued development of this plugin! Its a win-win for everyone involved!


Question: Why is this plugin not on GitHub?

Answer: Leaving it on Itch.IO allows me to have better control over source code, in-development features, and also allows me to have a platform to offer both a free and paid version. While there are some benefits to having development on GitHub open, keeping it closed is how its going to be for now.

That said, if you have any feedback, find issues or bugs, or have any other problem, please do not hesitate to report it here on Itch.IO! I will look at it and get back to you as soon as possible.

Legal

Question: What is the license for this plugin? How can I use it?

Answer: Twisted IK 2 comes with an EULA/License that has certain restrictions and requirements that must be met. The EULA is fairly standard and you can download the free version to read the EULA to get an idea of what you are looking at. Both the paid and free EULAs are very similar, with the key difference being that the paid version allows for commercial use while the free version does not.

Here are some of the most important requirements of the EULA:

  • You are NOT allowed to reproduce, copy, distribute, or resell this plugin for any purpose, commercial or otherwise.
    • The Twisted IK 2 plugin cannot be shared on publicly available code/project repositories, like Git or otherwise. You will need to make sure the plugin is excluded from the repository or that the repository is private.
    • You can share the plugin internally on the project(s) you are developing within your team, organization, or company. It still cannot be shared publically, it has to be in a private repository or similar, even if used in a business setting.
    • This applied to both the free and paid EULAs.
  • You cannot claim that Twisted IK 2 is your own or otherwise claim ownership of the plugin beyond being able to use it for your plugins.
  • The free version of the plugin CANNOT be used commercially, it can only be used in a solely non-profit manner.
  • The paid version of the plugin can be used commercially, but it  this CANNOT be given to third parties or otherwise granted to other individuals. The paid plugin EULA is for you and your project ONLY, it is not transferable.
    • You can share the plugin internally on the project(s) you are developing within your team, organization, or company. This only is valid if you, the individual who bought the license, is active in the project. If you have left the project, the team, organization, or company must buy their own license(s) or fully remove the plugin.
  • You cannot use the plugin in any way which breaks applicable local, national, or international law.
    • This includes, but is not limited to: pirating, scamming, reselling, redistributing, or otherwise breaking the terms of the EULA.
  • You must put "Twisted IK 2" in the credits if you use the plugin in your project, regardless of whether its a commercial product or not. No additional form of attribution is required, and the credit can be placed anywhere other game credits are placed (I'm not picky, it just needs to be somewhere)

The EULA is designed to give flexibility and allow developers to use the plugin, while also helping cover the costs of ongoing development and support.

Have a question not covered yet by the FAQ? Please do not hesitate to make a new post to ask your question and I'll try to get back to you as quickly as possible! Thanks!