Everyone seems to want to do something a little different with their manifest, but how do you give people the freedom to quickly and easily change that information? It’s a tough problem to solve, but I think the answer lies in another piece of software: Microsoft SharePoint.
Bare with me here. For anyone who hasn’t used SharePoint before (which I’m guessing is a lot of people), one of the core features of the software is lists and the ability to create different views of the content in lists. When working with SharePoint over the last couple of years, it dawned on me that a similar approach to manifests might work. (It’s important to note here that, at this point, this is all theoretical… I haven’t actually tried this approach.) I will say though, if this works the way I envision, the result is going to be a vastly different way of handling manifests so that each game can customize the manifest to be exactly what they want it to be.
Simply put, manifest views work on the theory of a query builder. You select your options and it will dynamically build the database query to pull back the information you want. Aside from the query building piece, the biggest challenge isn’t necessarily code related, but building a user interface that’s intuitive and simple. The last thing I want to do is build something that looks like SharePoint. While SharePoint may be powerful, it’s an ugly way of building list views. There will be a lot of experimentation when it comes to this stuff, but I think it holds a lot of potential as a killer feature to give game masters tons of control over what they want to see.
Obviously there are still a lot of questions around this, especially from a technical perspective. Truthfully, this approach will probably be pretty complicated, so it doesn’t necessarily lend itself well to third-party developers being able to override how manifest are handled, but realistically, if built properly, developers shouldn’t need to override manifests because it should be able to do most of what they need from the manifest view user interface.