sschmid / Entitas

Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
MIT License
7.16k stars 1.11k forks source link

Entitas on the Unity Asset Store #413

Closed sschmid closed 6 years ago

sschmid commented 7 years ago

Hello everyone!

I'm happy to see that you don't miss anything that's going on regarding Entitas. I see you cannot hide anything from the Entitas-Army :)

Due to the issue #411 and the recent discussions on the Entitas Chat I will try to shed some light.

I always try to be as transparent as possible so everyone can follow the development and progress of Entitas.

I recently submitted the current version of Entitas to the Unity Asset Store. I didn't announce anything and I didn't plan to announce anything during the next few weeks, because I wanted to get some experience with the process first and make sure everything works smoothly. I think it's my responsibility to provide you guys with a great experience and make sure things work as expected when using Entitas as a open source product. Selling a product on the Asset Store will be a even greater responsibility.

Now that my soft launch went public I will already share my plans with you.

Disclaimer:

This is not confirmed. This is one possible idea. Code Generator Plus, Refactoring Tools and other Plus features are planned but not guaranteed. Current State:


UPDATE - Entitas Asset Store Version will drop the price this week (lower price change was submitted today)

Unity accepted the submission and the price has been updated


Entitas (C# only) Entitas Entitas Plus
All Entitas Features
Code Generator
Unity Integration
Visual Debugging
Code Generator Plus*
Refactoring Tools*
Other Plus Features*
Open Source Open Source + Asset Store Asset Store only

*planned but not ready or guaranteed

Summary:

I learned a lot over the past 3 years of developing Entitas and it has been a pleasure to share it with you.

My promise Entitas was, is and will be open source and free!

If you like Entitas and you want to support the future development you can now either

If you want to use more advanced features like the roslyn code generator (and potentially more) you will be able to

soon.

I will keep you up-to-date with further plans as soon as they are ready.

Happy coding! :)

VladislavKostin commented 7 years ago

I like that. Great idea, having a free and a "plus" version, great way to support the development. What kind of pricing can we expect for the Plus? Is it license per seat?

We all benefit from Entitas being as popular as possible and you being able to focus on it.

Take your time with the release, you better have a complete documentation by the time, to avoid bad reviews 😄

FNGgames commented 7 years ago

I for one think this approach is perfectly reasonable. You are not cutting any existing users out of what they have already got (by providing the free version) but you are providing extra value for those who want it and can pay for it. You deserve some compensation for all your hard work, and Entitas is a great product that is more than worthy of an asset store price tag. Looking forward to hearing about price points and these sexy pro features.

sschmid commented 7 years ago

Update: Unity just accepted the submission of Entitas 0.41.2 with the updated price. https://www.assetstore.unity3d.com/#!/content/87638

It's my for asset on the Unity Asset Store and I'd appreciate any kind of feedback. From now on I also update the Asset Store version with every release.

If you encounter any kind of problems please don't hesitate to contact me and I will try to help you resolving any issues. You can

From now on these are the two options to get Entitas:

Happy coding and thanks for your support, I really appreciate it!

TheUtDuong commented 7 years ago

What is the planned price for Entitas Plus? My wallet is ready.

IsaiahKelly commented 7 years ago

I think this is an excellent way to encourage people to financially support the project while also keeping it open and free. However, I have a few suggestions to help make this as successful as possible.

First of all, you need to understand the Asset Store audience. You can get a great sense of this by just looking at the top selling / grossing assets on the store. These include:

You will notice that almost all the top assets on the store are beginner, artist, or non-programmer focused. This is an important thing to remember if you want your asset to also become popular and therefor successful. This is not to say your asset must fit into one of those categories, but it should try to appeal in some way to these non-technical demographics if you want it to have widespread success.

Another excellent strategy is to release a free asset and / or free lite version of an asset just for promotional purposes on the Asset Store. This eliminates any barriers to entry and allows you to generate lots of downloads and reviews for the asset. Which will help push the asset up the list of popular assets and make it more visible to more people in the store. This in turn will drive more users to your own store page and any other paid assets you have. You can also advertise your paid assets as upgrades inside the free ones.

At the moment I'm a little confused as to why the default version of Entitas cost money on the Asset Store if you're already planing to charge for the Plus version? I understand this might just be a way to allow existing users to support you already, but the price tag will also greatly discourage any new users from picking it up.

So in my opinion I think the default version of Entitas should be free on the Asset Store. This is also the only way to get it above page 100+ on the store and will help you promote the plus version when it's released. Now I'm really looking at this from a new user point-of-view, but I think you have to look at it that way if you want to succeed on the Asset Store since this is what the majority of people there will be.

As for the paid version(s) I would focus on learning examples for newcomers. Perhaps you could create a complete game example / tutorial that covers all possible use cases and sell that? Converting the official Unity Tanks!!! Reference Project for this purpose.

Also, if the roslyn code generator is an essential tool for helping new comers then I would greatly discourage putting it behind a paywall. Since I'd be afraid this could greatly hinder new users from embracing Entitas if they run into any issues. It's a tricky balancing act, but I would only charge money for non essential extras. You just need to make sure these extras are still very enticing so people still want to buy them. I think the free and paid Game Framework Assets are a good example of how to do this right.

sschmid commented 7 years ago

@IsaiahKelly Thanks a lot for your input, I'm still trying to figure out a good strategy. There are so many options... :) I will definitely keep your points in mind

VladislavKostin commented 7 years ago

I would actually strongly suggest not to publish the free version before it is as user-friendly as possible. At least until it has a complete and easy documentation, and preferably the Roslyn compiler. Otherwise, the potential customers might be put off and not come back when it's ready. Ratings might also get affected negatively by that.

(Documentation has to have good navigation for each element of Entitas, so if you want to see how Component should look like or to learn everything about component you would click on "Components" in the table of contents. It is better to duplicate information than fragment it.)

As we said in the chat ideally compiler would be the free feature and multithreading would be paid. Maybe also blueprints paid.

IsaiahKelly commented 7 years ago

@VladislavKostin Excellent point. This also relates somewhat to my own point about the Asset Store being focused on non-technical users. Expectations on the Asset Store are also quite different from something like GitHub, even if the asset itself is free. So in many ways publishing to the Asset Store might require a lot of extra work and I'm not sure if Entitas is ready for that yet. Without proper preparation this whole thing could end up being more trouble than it's worth.

I would at least clearly state on the store page that the core Entitas framework is free on GitHub and that you should only buy it if you want to support it's development. Anyone who buys it without knowing that might feel cheated or deceived and leave you a bad review on the store. Of course the chances of some clueless random user finding it on the Asset Store are low right now, but that's always a possibility.

Basically be as transparent on the Asset Store as you are here! Clearly state in the Asset Store description that Entitas is free and buying it is only optional. Maybe even rename the asset to something like "Entitas: Supporter Edition" to clarify it's purpose even further. Then rename it to "Entitas Plus" once you add extra features. You could even encourage people to buy the current release on the Asset Store by promising a free upgrade / discount to the Plus version if you buy it now, etc.

Then once documentation and other vital features are in place you can release the core free version on the Asset Store.

TheUtDuong commented 7 years ago

I agree with the top few posts. When first learning Entitas, I encountered that catch 22 case where my systems broke because I needed to regenerate components but couldn't because of compiler errors. That was a pretty big annoyance. Entitas in it's current form is very programmer oriented. It may defeat the purpose of entitas but how about the idea of having entitas generate attachable monobehaviour scripts whose sole purpose is to populate the attached GameObject with the entitas components. I found this approach very friendly with the unity workflow. An example would be a waypointcomponent. I would create a monobehaviour that I can attach to any GameObject that will create an entity and add a waypointcomponent.

IsaiahKelly commented 7 years ago

@TheUtDuong I might be completely wrong, but I believe the EntityLink addon is designed for your exact use case. It's a MonoBehaviour script that allows you to link entities to predefined Unity GameObjects in the scene. At least that's what I think it does. No documentation on it.

TheUtDuong commented 7 years ago

Yeah, you are correct about EntityLink. I am currently using that. My suggestion was more to make entitas more accessible for people not familiar with Entitas but are familiar with the unity workflow.

Let's say you have a playercomponent and movementcomponent as icomponents. The typical workflow is to create the entity with the playercomponent and movementcomponent in a system. My suggestion is have entitas also generates playerMonoBehaviour and movementMonobehavior. A user can then attach those scripts to a player game​Object. The scripts would then search for an EntityLink or create one if the object is not linked.

With this approach it may help ease in people familiar with the unity workflow. I am not sure if this is the right approach but it is what I have used in the past and it helped me wrap my head around Entitas coming from a pure unity workflow.

Sorry for the formatting, I am currently on my phone.

Jonathan-Turner commented 7 years ago

I'm happy to support the project, but would likely rather buy the Plus version. Is there an upgrade path between buying the asset now to support your further development and then going to plus?

My apologies if I missed that somewhere.