-
-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add an in-game asset pack manager. #73
Comments
Are you sure that "Asset packs" is the way to go? Tabletop-simulator's loading assets from the web seems to work very well for it, and seems to make it very easy for end users to distribute assets. |
If you wanted, we could have a further discussion about asset packs in a new issue, but the summary of why I picked the concept of "asset packs" is as follows:
|
Those are good points, I think they could be addressed using a few different mechanisms. So I have a regular weekly gamnig group, it used to be in-person before covid but honestly even with the covid restriction loosening up we're probably still going to use tabletop simulator for a bunch of our board gaming. We started out mostly using one version of Catan, but one of our players semi-regularly has microphone issues, and another player is colour-blind. So we found a customized version of that game board that has buttons that allow you to quickly enter simple phrases like "I can't do that" or "want sheep have wheat have stone" into the chat. We've also customized the default colors so that our red-green colour blind player can have an easier time of it. Those customization didn't involve creating a new asset pack, they involved creating a new save file. What happened is that one of our friends found an online game of Catan with the chat buttons, hit save, and now we base our games on that. Another scenario is we sometimes play Carcassonne. There aren't any versions of Carcassonne that have automatic/scripted score counters (such a thing would be very difficult to implement in tabletop simulator) so we import these "fancy" score counters which include a built-in calculator. I think one of our players found that object in some online game and decided to keep a copy. So I guess my big concern about having concrete "Asset packs" is that it's going to be hard to pick and choose little pieces of other asset packs and import them into my game, without necessarily creating a whole new asset pack that can't get updates. There's also some concern about the community/legality side of things. Right now with tabletop simulator no one is distributing any potentially pirated content, they are at worst just linking to it. Actually putting the content on steam could create some more legal issues. Also tabletop simulator assets can get pretty big if you get them high-quality, and steam has a hard limit on account storage. Being able to store the bulk of the assets off of your steam account's very limited storage capacity is important for stuff like this, I think. Perhaps there's some kind of p2p asset loading strategy that could work? In tabletop simulator assets are sometimes loaded from github.io sites, or from google drives, or even as base64 encoded files on pastebin. I think that the "early internet" model works pretty well, where objects can be saved to your local folder but they tend to be linked web-objects. When you say "asset packs", well my big problem is that they're packs. It implies that you can't share an object between a bunch of different packs without duplicating the object a bunch of times, or that you can't load outside objects in at runtime, or that you need to create a new pack to do things like deal with color blind corrections. Maybe that doesn't line up with the reality of how you plan on doing asset packs, but I think it's important that I can just grab an object from one game and throw it into another. |
This will be a problem for any distribution platform, even Steam. I remember when TS first came out, there were a huge debate online on how much people could get away with when uploading assets to the workshop, and I remember seeing some games on there that definitely "crossed the line", e.g. full-on Monopoly clones.
This is totally possible with the current system - you could modify the asset locally in the same asset pack (maybe just by changing the From what I understand from your comment, each example you give can be roughly divided into two features:
One of the other reasons I decided to go with "asset packs" at the start (as well as the reasons listed above), is because it allows for modularity - if users were to distribute assets on their own, things could potentially clash that way - so to take your "chat buttons" as an example, not everyone would need that functionality when playing the game, but for those that do need it, the host could then download the "chat button" asset pack, and when people join, they should get the same assets (the host giving their assets to the clients is being worked on, see #11). With the two features I mentioned, I feel like both could be implemented on top of the current system due to it's modularity. In any case, you've given me a lot to think about, but I feel that the demand for these isn't quite there yet for me to implement them before the 0.1.0 release. |
Sounds like that's a bit of the p2p functionality I was mentioning, which sounds great.
I think the third thing there is "being able to dynamically load an asset into an existing scene". Not sure if that's covered by point 2, but it's worth mentioning. When we download the carcasonne add-on, well we need to also load in more complicated calculators and the like. We've also been known to increase the size of some pieces if there are issues seeing them, stuff like that. I think there's a case for having objects be, well, objects, things that can exist outside of a particular asset bundle (or maybe just that can be imported in to another bundle?). I want to be able to spawn spooky candles and a pirate ship into my weekly D&D campaign, or spawn my custom painted army into a warhammer game, or the like.
I do think that you need to be careful with this, and people need to communicate things explicitly. Rather than having the color changed for just one player, I think it would be better if the color was changed for every user in the scene, as an example. Showing people different "realities" can cause some pretty big issues, and one of the reasons I've had so much luck using tabletop simulator with computer-illiterate family members is because we all see exactly the same scene. Also being able to reset the camera with the space bar is a life saver.
For sure, it's early days for this project yet, and do let me know if you're not finding this kind of thing helpful. Just sharing my experiences with my regular gaming group, and how we use tabletop simulator.
I mean that's always going to be a risk with any user-created content system, and I hope that you will err on the side of user-freedom for this project obviously. |
You can change the colour of objects in the game (for everyone), but it only changes the "albedo" right now, as in it multiplies the colour values.
This is exactly the type of feedback I'm looking for! I didn't even think about having assets being on the web or on their own outside of asset packs. Even if I don't end up implementing it, I'm incredibly grateful for any kind of feedback about the game.
In general, I want people to be able to do whatever they want with the project. But at the same time, I also want to avoid any potential legal issues as well. So in terms of the distribution of assets, I'm erring on the side of caution and choosing not to host or moderate an asset pack CDN. But I will still do what I can to allow for all kinds of assets to be used in the game. |
I think that tabletop simulator could actually be the future of AR/VR operating systems. It hits a point of still being navigable in 2d while providing genuinely useful 3D abstractions. After seeing how my computer-illiterate family interacts with it I'm convinced that it provides the right set of abstractions to let them feel comfortable playing around in a way they just aren't on normal computers. The multiplayer aspect also really helps as I can guide them through things "in-person". So for me, I can't help but feel that one of the killer features of applications like this (once they start to become comparable to things like tabletop simulator) is some kind of RDP/remote-desktop client. The "browser tablet" built into tabletop simulator becomes unsynchronized and has other issues, or no doubt we'd use it more. Still, this kind of "Tabletop scale VR" seems to me like it could really be the future of VR computing, I'm very hopeful that you do well with it. It might even be the kind of thing you could submit to ycombinator or other startup accelerators. |
I'm sure there is a lot of nuisance around making sure assets are synchronized, collecting updates so on, but unlike scripting interfaces I have much less detail to say about it. Mostly I would just like to say that a lot of similar tools seem to underestimate how much modification people are going to do and seem to tune their interface for some small modification. What exactly making sure it is easy to make large and complex saves in the game looks like, I'm not sure. But there are some ideas like what I have said for scripting, but also a good way to look through the assets in the pack, as well as check out the individual assets. |
Yeah, one of the core values of the game is that it should be as easy to mod as possible - this feature would ideally make it so anyone can either make an asset pack, or modify an existing one, without having to look at the documentation. In terms of save files, currently there are no plans to make a "save editor", mostly because I think it's relatively painless to set up the table in the way you want (using a mixture of room settings, locking objects, and setting transforms in the context menu). |
Is your feature request related to a problem? Please describe.
When creating asset packs, there is plenty of online documentation to refer to, but it is somewhat technical and for someone that is new to the game and creating asset packs, it may take some time before in-game results are shown.
Describe the solution you'd like
Add an asset pack manager in-game, which can show the user what asset packs are installed (with what pieces are included, with previews), as well as the ability to create new asset packs, add new assets, and modify the properties of the assets.
Describe alternatives you've considered
Previously I was just going to have the documentation be the main resource for creating asset packs, and while I will still update the documentation, it will only help to add another way of creating/modifying asset packs.
Additional context
I have decided not to add a milestone to this issue, for two reasons: 1. this issue seems to be quite an undertaking, and 2. I would like other in-game functionality to be in the game before the v0.1.0 release.
The text was updated successfully, but these errors were encountered: