Patreon-Sponsored Advancements

I have developed a completely custom jmonkey Asset Store and have outlined an idea that I believe will help advance the engine for the future. My progress relies on support from Patreon to provide small amounts of funding from the community, and in return be provided with a growing asset store containing quality content available to everybody.

Written below are excerpts from the Patreon page that ouline the goals for the future.

Patreon-Sponsored Advancements
My goal is to make jMonkeyEngine a prominent force in the gaming industry! With your support jmonkey will have an asset store and thousands of free assets for everybody to use!

Your support will fund server costs, advertising, and more free assets - all of which are geared directly toward increasing the popularity and quality of jMonkey!

Create An Asset Store!
GOAL REACHED: https://jMonkeyStore.com/
When I reach $30 a month I will host and maintain a Jmonkey Asset Store website that will showcase user-created content available to all users for free. Both the server and client side is completely custom written specifically for this project by myself.

Anybody can create an account and publish their free asset on the website. All publications will undergo a staff approval phase to ensure the content is not spam or inappropriate.

The website will contain:

  • A primary showcase page of various “latest” plugins (newest/most viewed/etc).
  • User account creation and asset publishing to the website.
  • A showcase page for each published asset.
  • Markdown text-formatting support for plugin descriptions.
  • Self-hosted asset showcase images
  • Support for YouTube videos
  • Registered users can provide reviews and star-ratings
  • Ability for publishers to edit and amend their asset.
  • Staff moderation: all assets are screened before publication and amendment.
  • Search abilities

The website will be updated as fast as my schedule allows, with bug-fixes being the utmost priority. Additional features will become available as popularity rises.

Watch this video for a vision of how this website will look and function.

Asset Store Payment System!
When I reach $350 a month I will begin to implement payment functions to the asset store so developers can sell their assets! Users will be given the option of either giving their product away for free or at a price they deem appropriate. This is a major goal for both this project and the jmonkey community. Talented developers now have the opportunity to put their hard work out there and earn some real cash - and give the engine some serious assets to make this engine a true competitor in the industry!

The funds will go into purchasing an upgraded server (required because paid assets will require storage and additional bandwidth), legal advice and the initial start-up costs of business-based transactions.

15 Likes

The first goal has reached half-way in 12 hours! An actual asset store is almost there!

There is something I’d like to note now while things are progressing in this early stage.

  • The asset store probably won’t be production ready for the general public by the end of this month, but I will purchase a server and the website will be live on that server, and the supporting Patroneers will be given accounts to log-in, browse, give feedback on what they like, don’t like and possible additions they feel would improve it. General members of the public will be given limited access until such time the website is ready. I am hoping the website will be available to everybody the following month - but during that time the sponsors will get to see what they have supported and have an active voice in its progress!
9 Likes

Since the initial goals of paying developers to develop software didn’t really go down as well as I thought, the goals have been re-structured. I appreciate that being able to sell your own software can circumvent paying developers - because they could sell it themselves on the store. So with that in mind I’ve removed those goals and instead have only two goals now.

  • Asset Store @ $30/mo
  • Paid Asset Store @$350/mo

Below are the details of the (new) second goal.


Asset Store Payment System!
When I reach $350 a month I will begin to implement payment functions to the asset store so developers can sell their assets! Users will be given the option of either giving their product away for free or at a price they deem appropriate. This is a major goal for both this project and the jmonkey community. Talented developers now have the opportunity to put their hard work out there and earn some real cash - and give the engine some serious assets to make this engine a true competitor in the industry!

The funds will go into purchasing an upgraded server (required because paid assets will require storage and additional bandwidth), legal advice and the initial start-up costs of business-based transactions.


There is a considerable amount of work to undergo in both stages. Creating the store itself incurs over a hundred (and the rest) hours of professional code to develop, security detailing, legal documentation and maintenance. Payment systems require somewhere near the same amount of work involving legal documentation, discussions with accountants, lawyers, endless hours of additional security work for both the transactions side and paid software (who can download it, who can’t, etc), development, etc… as well as continued maintenance and bug-fixing.

I believe both goals are realistic in terms of funding. I’m certainly going to have to make every decision regarding funding extremely and meticulously seriously if the community decides to back the project, but now we have a very strict path of development and in doing so tightened the funding belt.

We have an opportunity to have an asset store and create something that I believe will drive jmonkey forward. I hope we manage to achieve these goals and in the process allow this engine and community to move forward with it.

– jayfella.

6 Likes

@jayfella I am a huge fan of this. Something I would like to see as a contributor to this, is a monthly cost breakdown. It can be as simple as a post here that outlines each month’s expenses (itemized list), how much was donated that month, and how much is left in reserve (not spent). That way those of us donating can see how the money is being used.

To everyone else, if we can get this off the ground it will benefit all of us! $5 is the cost of a coffee at Starbucks, and if that gets us more people contributing to JME, then it is worth a lot more than that.

2 Likes

Sure.

Well initially the $30 is straight up server costs, nothing more. The $20 server is what I need (from the list below). This takes into account the 12% patreon takes, payoneer, currency conversion into GBP, etc. There will probably be a dollar or three left over if at all at this stage.

Sure I could probably find cheaper with a smaller company, but my experience in the server industry tells me that solid companies provide solid infrastructure. I’ve had cheap-as-chips servers all the way up to rackspace servers. You cannot under-estimate how important it is to have solid customer support and a team capable of providing a professional service (ddos, etc). It’s just not worth saving a few dollars.

When we exceed that and grow toward the second phase the money will accumulate and be used to ensure it is acting legally via consultation of solicitors and accountants. This is quite a hefty part of the costs, but there’s no getting away from it. Typical fees in England are £250/h for a solicitor (terms of service, legal requirements, contractual obligations on both sides, etc) and around £100/m for an accountant (this isn’t Dave the local builder sending in his yearly taxes, it’s a global company making world-wide transactions), plus around £80 for a 2 hour initial appointment discussing what is required from my part (world-wide taxes, requirements, etc). I have sold software before globally, but never been a man-in-the-middle (they pay me, I pay you), so this is new ground for me. I’d need their advice, both for me to know what I’m doing and for the website to act legally.

When we are at the $350 stage the server will need to be upgraded to the $80 server to account for paid asset storage and bandwidth, hosted images/bandwidth, etc. £100/m (~$125 in todays exchange rate) will be paid to an accountant. Depending on the payment systems that will be offered, some require monthly fees upfront. Before the money hits my account 12% is taken from Patron, some from Payoneer (which handles the payment to the bank account). Which probably leaves me with the princely sum of $50 wiggle room per month if I’m lucky. One-off payments to a graphic designer for logos and various artwork will likely take that at the beginning.

Going from there, if there is anything left over, bearing in mind it’s only small denominations at this point, it will either go to additional help (ideally from someone on this site - we’re all developers) or left to accumulate for contingency (maybe we need an extra terabyte of bandwidth this month, etc). In my history of business, I’ve pretty much lived on the method 10% contingency of your outgoings as a minimum.

Any actual profit will incur taxes. There are times where I’ll need to travel (solicitors, accountant), which aren’t even taken into account and most likely come from my own pocket.

It’s a tight budget. I did say it was. It’s literally a shoe-string to work with and not a lot more.

It’s 10pm here in the UK at the moment, so I can’t give you a more comprehensive answer right now, but I hope that at least gives you a good impression of why that figure was chosen, and I’m more than happy to answer any question put forward - and provide a monthly ledger to patreons.

4 Likes

There you go. You’re past 30 now.

6 Likes

@BigBob Hah, awesome! I was about to do that.

I’m not a fan of Patreon, but I’ll make an exception for this. So I’ll sign on, but I have a few questions too:

  • A topic I hate but we have to deal with… how will you handle asset “licensing”?

Content meant for use by others needs to have clear licensing rules. You may even want to suggest a good permissive/open license, or mandate one. If there’s any question or confusion left open on licensing or usage, it’ll be a blocker for use beyond initial prototyping. You could add a specific field to specify a license, or a site-wide license requirement.

  • Would you consider a stretch goal to add support for “optional 3rd party development libraries”?

Sometimes things get lost without a single database/list. I feel like one central place to find JME related add-on libraries would help make JME look more organized and “mature”. Obviously, they’d link to a GitHub repo(s), so I imagine something like Steam Workshop does for mods, ex. “developer workshop”. I’d envision pages that link to repos like jme-jfx, Minie, Lemur, jme-ttf, example projects and so on. I’m sure there’s other 3rd party stuff that I don’t know about or have forgotten, since we don’t have a central list of these things. jme-contributions isn’t a complete list, and doesn’t include example/tutorial type stuff. Sorry, didn’t expect this “question” to become a chapter. :zipper_mouth_face:


I like the idea of a periodic report like tlf30 suggested (IMO quarterly should be frequent enough).
We do need a monkey-renaissance. If this can help drive that like people think, it’s worth trying.

2 Likes

I’m not certain what you mean by this. Could you provide an example situation?

Ah licenses. We meet again.

Firstly I’ll say that I am not a license expert. This is an area that is going to take some considerable discussion, but I can outline my goals - what I would like to see - which will hopefully be somewhere near what is achieved.

There are two parts: first the EULA, removing any indemnification of the store etc, refunds, and then the license itself of the product. Those would have to be compatible with one-another as much as possible.

But without having yet sought advice, it appears to me that the first fork in the road will be free/paid assets.

For free assets: The wide majority of user source code available for JME is BSD-3 and I would personally like to honor that on the asset store. It must be made clear that the engine itself is a declaration of those freedoms and I certainly wouldn’t want to try to shift that in any other direction. It may be that for open source licenses the publisher may choose which type they want from a limited list, with BSD-3 as a recommended and default choice. In the event of EULA conflicts with said open-source licenses, I’d like that the open source license prevails - meaning that I cannot (and really don’t want to) change the current status-quo of open-source-ness within JME. Again - I would really need to speak to the relevant parties to clarify this.

In regard to paid assets - I would have thought it would be inevitable that a single restrictive license be imposed. These restrictions would be generally what one would expect; removing indemnification from the publisher - so you don’t get sued if someones project doesn’t work as expected because of your asset, etc. not allowing re-distribution and all the other details that are standard practice in this area. These kind of licenses are extensive and I’d be surprised if it didn’t end up being very similar to unity and/or UE4.

Currently there is only open source asset support, and it is required that the project be hosted on a git repository (github/bit bucket). There is a direct link to the repo itself, a pre-generated jitpack dependency for github-hosted repos and if the user has posted to jcenter it will display that, too.

The user can submit a “publisher” URL if they wish and a button will appear so the user can visit that site. A documentation button, too, if docs are available. If not, it will display that it has no docs.

Now that we’ve reached the first goal a lot of this will become more clear when it’s available live. Since only patrons will be able to log in for a short period they can voice their opinions on its inner workings.

And Thank you ladies/gents for putting your trust and support in this venture. #excite!

3 Likes

I agree with your decisions here - Digital Ocean, BSD-3 where applicable, goals, etc. I suspect you may be advised to adopt more than just BSD-3, for assets, if only because it’s targeted mostly at source/software. If it’s usable for assets also (as I hope), that’s perfect.

For the stretch goal, maybe it’s not a great idea (it will need a bit of O&M for updates), and a simple version could probably be handled on the JME wiki, or a sticky forum topic… but this would look more “professional”. I tried to put some examples above, but the idea is to gradually build a list of all JME 3rd party “stuff” other than graphics assets, organized in one place. Kind of like a mod site like Nexus or Steam Workshop, but without hosting the actual source. It’s also a way to seed the site with a little more content initially (secondary to assets).

This would show potential new developers all the different open source contributions we have access to, which otherwise are invisible. For example, a few years ago @Tryder developed this awesome TTF font lib called jme-ttf. It’s not exactly easy to discover unless you happen across the thread or site by chance. A listing for that could link to the website, repo(s), forum thread announcement, and feature some impressive graphics & summary description. I envision these listings as something anyone can create, if the author isn’t around or doesn’t feel like creating a listing, anyone could do it for them. (Maybe let authors “claim” the page the way a service like Yelp allows, if they want to control it themselves.)

Here’s an attempt at a more concise “stretch goal” text:

At XYZ funding, work begins on a “Developer Workshop” section, where users (or site administrators) can create listings for 3rd party tools, examples, libraries, or projects which have been offered to the community. The intent will be to provide a catalog of all known 3rd party offerings compatible with JME3 in a central, organized location.

I could help with the design and refining requirements on this further if there’s any interest.

1 Like

In my opinion if something that already exists wants to be on the asset store but the developer is inactive, it’s up to someone else to fork it and publish it from their own repository. You will not be allowed to publish someone else’s work from someone else’s repository. I can write a function to transfer an asset from one user to another if the original developer wants to come back from the dead and take it over.

It does bring up an interesting subject, though. Forked content. Should it be explicitly known that a project is forked and not the original? What if the original developer posts his own?

Take ToneGodUI for example. Someone forks it and posts it. They are allowed. Then tonegod comes back from the dead and wants to post it. The name is already taken so he/she can’t.

The forked name would have to be appended somehow as to make it “unique” (all titles must be unique) but not take the original name - and at the same time allow multiple forks. I’m not 100% on how that will be done right now. Hrm…

It might be that I allow duplicate names, but they must be a fork. You must specify that a project is a fork if it is, so when you search for something you get the original (if posted) + all forks.

2 Likes

Hi there,

Newbie’s questions, please. Is this “Patreon-Sponsored Advancements” the only way to show support JMonkey in the near future? What about now? How do you show support to JMonkey currently?

Thank you.

1 Like

Usually people show their support by finding, reporting and fixing bugs or creating new features and giving them to the community. Or you can just say thank you - it’s always appreciated to know people appreciate all the work :slight_smile:

2 Likes

Well remember, it’s not “publishing someone else’s work”, that’s for GitLab/GitHub/etc. The concept is essentially a catalog of links with descriptions, as a public service to help things get noticed. The difference between assets here is the actual source or binaries are not hosted.

Another analogy would be something like Yelp - businesses have listings on there even if they’ve never been to the site, and they can claim those listings if they care to. (I’m not suggesting a comments section or ratings like Yelp has so that’s where the analogy ends.)

Yet another analogy (a less “professional” looking option) would be a stickied forum post where a description and links to all 3rd party stuff is added. I see these all over the Internet for game mods, so it’s a common practice. So really, it’s no different than one of us going to such a thread and posting a link to XYZ library’s GitHub, with a description tacked on.

If you require the originator to submit a page for their content, I don’t see it being used much, and it’d never be a “complete” catalog. Too many are inactive or semi-active, and it’s an extra burden on contributors to mandate that they do it themselves (and I would never want to make anyone feel compelled to do so). And yes, an “original author only” mandate would also need to be policed, which opens up questions of forked content. Opening it up so that it’s “just a webpage listing” with no owner (unless the original decides they want to claim it so they can edit manually) seems to mitigate some maintenance.

A middle ground would be to have the site admin(s) create listings (I just figure, why not let others help write initial listings?) which can optionally be claimed and edited directly by the original dev.

On forks you have a good point, so I think they do need to be identified. This is usually normal practice anyway on GitHub, so I see no problem with mandating that.

We’d need to brainstorm requirements on this more, but I think such a catalog would be really useful, and encouraging for potential new devs to try out the engine.

First things first though, let’s get the assets part set up… I’m in.

1 Like

I’d personally prefer people didn’t post other people’s work that they weren’t invested in. I mean sure it sounds great for content, but it’s stale content with no intention of doing anything with it.

On a side note, though, there are 3 types of asset you can create:

  • Open Source
  • Paid
  • Sponsored

The first two speak for themselves, but the last one is basically Open Source with an option to “pay anything you want - if you want” one-time payment. A kind of “buy me a beer” or whatever system. You don’t need to pay anything, but if you like it or want to say thank you or whatever, the option is there.

So in the case of “Sponsored”, a person can post someone else’s work, but they must have made at least some sort of change to it. Maybe they wrote the docs or fixed some bugs or continually improve it or whatever. You can’t just post someone else’s work and profit, but you can improve someone else’s work and profit. So it will give some people the motivation to actively develop projects that are no longer maintained by the original author(s).

3 Likes

What does it mean for an asset to be “Open Source”? I think I know what it means for software libraries and applications: it means that the human-readable text files needed to re-create the software are licensed/available for copying and redistribution.

But I’m curious about animated 3-D models. For a model created in Blender, does open-source mean that the .blend file is available? Or is it sufficient to provide only a .j3o file? Neither of these is text, nor would I consider either of them to be human-readable.

I think of 3-D models as artwork, and artwork has different expectations around copying and redistribution because (in most cases) artwork cannot be recreated from human-readable text files.

4 Likes

For paid assets there will be strict rules. a .blend file and a j3o because you paid for it. You shouldn’t have to jump through hoops. Free assets less-so, but there should be some kind of “minimum requirement”, though I’ve yet to pan those details out. It needs to be importable, compatible, etc.

I guess I’m throwing around the term “open source” quite liberally, disregarding models, sounds and textures with that wording, but they are subject to the same terms so far as I know in that the “work” is under the license and not the “open source” code as I keep slurring.

As an example, this page better describes the status of it.

https://creativecommons.org/publicdomain/zero/1.0/

1 Like

Just leave an open text area and let the uploader write the license.

I was thinking more along these lines, where it actually gives you the tldr of the licenses. To me at least, it gives you a better idea of what in God’s name that legal talk is on about. Half the time it means the opposite. Must means may. Summons means invitation. Notice means offer. Devils talk. It’s turned the English language on it’s head.

https://tldrlegal.com/license/bsd-3-clause-license-(revised)

1 Like

One work might contain parts under different licenses, there should be an area that lets the uploader clarify it imo.

If someone uses that to submit work under sketchy licenses, just don’t use it.

Also usually paid assets are licensed in a way that let you use them in commercial works, but you are not allowed to redistribute or resell them in a standalone way or as an assetpack or things like that.
I don’t think you will find a standard license that covers that.

1 Like

The Soundcloud license chooser thing is pretty straight forward also.

It has toggles and then those show up as the little icons next to the creative commons link and on your song. Hovering over them provides the descriptive text.

3 Likes