Game Features for Player Created Content

I’ve been thinking how cool it would be if there was a feature in the game that let players design a starting quest line for their character. Like an enhaced version of the Starting Scenarios. The way I imagine this working is that there would be some kind of map/terrain editing feature (or seperate application?) that let players design a map or dungeon using mouse and keyboard, as well as allowing them to design some NPCs for allies or adversaries and place them in the world.

What I would like to do with a tool like this is use it to adapt some simple storylines from my favorite works of fiction into the world of C:DDA. For instance, in the Cormac McCarthy novel The Outer Dark the impoverished young Appalachian woman Rinthy Holme sets out on the trail of a wicked tinker who has absconded with her newborn, a product of incest her guilt ridden brother left exposed in the forest to die. There are some pretty creepy NPC villians in there as well. So I could set up a game where I play as Renthy and have to catch up with the Tinker before that trio of semi-supernatural itinerant killers get to him first. Or maybe I would want to do “The Road”, although that one is a little on the nose.

If there was an easy way to make starting quest lines in this manner I bet a lot of players would want to make them. Hopefully some of them would even be good and could be collected into bundles of optional starting scenarios. If some of these scenarios were deemed worthy by the devs and as being lore and tone appropriate maybe they could be rolled into a mod or the base game as some kind of optional random encounters.

What do you guys think? Do you think many players would be interested in creating content like that? What kind of scenario would you set up? To me it seems like it could be a good way to increase contribution from people and also flesh out the post apocalypse with some interesting, poignant drama, hopefully. I’m sure what I have suggested would be a lot of work to implement and is probably just a pie in the sky idea. I love this game so much, it is so amazing what all the devs have accoplished. I just wanted to share what I had been thinking about in case anyone was interested in discussing the idea. Cheers

2 Likes

Sounds like a good idea in general. Again, my experience is mostly with Bethesda games, but mods and content take off like a shot when the GECK or Creation Kit are released for a given title. Don’t limit it to a starting quest, though your idea is awesome, but a toolset or dev tool kit would make contributions for things like quests MUCH easier. Get a large group of people submitting their quests in, and some can get rolled into the experimentals while others can exist as mods. Frees most of the devs to keep smashing away at mechanics and such.

1 Like

I don’t think anyone’s planning on creating such a tool, but we’d definitely welcome it, as it’d be great for creating content for the base game.

As it is now, you can create this in the same with our normal tools for NPCs and mapgen: JSON.

1 Like

Yes, you basically said what was in my mind.

1 Like

I know those tools exist and I think it’s really cool. I love the awesome game you guys have made, I love the way you made it, the way it continues to be made right now. I don’t feel I am able to contribute on that level myself, at this time, for reasons having to do with me having a full time job, trying to start my own bussiness, owning a sailboat, parents getting older, ect, all the normal stuff. I would like to learn more about it later, hopefully. Nonetheless, I think I could make some modest contributions of the kind I outlined if there were some even more streamlined tools for story based game elements. I bet there are a lot of people who are in a similar situation to me as well.

Of course, I’m not here begging anyone to implement any feature for me. Possibly something like this would better be left until later in the development anyway, like when NPC behavior is more advanced perhaps.

I will take this opportunity to say that I would gladly donate to a kickstarter funding the implementation of some type of streamlined quest building feature like I have described. I’ll bet some other folks would as well. Honestly, I would gladly donate to any fundraiser this project wanted to do, as long as @kevin.granade signed off on it, of course. I know there was one back in 2013 but I missed that one.

1 Like

No need for a kickstarter or anything weird and structured like that. Last I checked, the CDDA project supported a bounty system. You could always set up something like that and put your money to it. I remember the inventory overhaul had a $250 bounty put against it.

1 Like

Yes, thank you for mentioning this. I just learned about the bounty system and I am going to give it a shot. Might as well! What I have in mind seems like it is a couple of orders of magnitude more difficult and in depth than what that system is used for though. I think a kickstarter could have advantages.

I don’t see what advantages the kickstarter has at all over the bounty, regardless of scale. People can pitch in ad hoc as interest manifests, regardless of the funding level. The bounty hangs around until someone deems it worth doing, and it doesn’t have any requirement for Kevin to explicitly approve or control funds or the like. A bounty system also doesn’t care about scope.

If anything, I’d consider the kickstarter to be a risk. There’s an expectation of delivery from people who contribute to a kickstarter. Simply generating the funds doesn’t actually mean any of the contributors on the project care enough to do it, regardless of dollar signs. Development on this project is passion driven, and folks are gonna be focusing on implementing the things they want to see in the game, or feel the game needs. I don’t even know if the bounty that was placed on the inventory overhaul was the motivator, or if the implementer finally decided “Yknow what, this can’t wait any longer, we need this” and made it happen.

2 Likes

Sounds more like a creation kit with all the parts we already have available. But with adding stories and programming a tree of events with various triggers.

I think that is how the game already works but…just not meant for noobs like me.

1 Like

Yes, I see what you mean. I will do like you say. However, before I offer any bounty I am going to keep talking to more people about if they think such a thing is even possible as well as useful and what they would like it to look like.

From what some people who replied to a reddit post I made on this subject said, it sounds like what I want is a GUI which could be used to assemble JSON for maps and NPCs and also quest lines. Does that sound right? Is such a thing possible? What kind of features would people like such a tool to have? How much work would it be to make one? I’d like to learn more about these questions before I go and offer any specific bounty.

Heh, yeah, buts it’s not just us noobs who would benefit from more tools!

I’ve collected a bounty (nested contained) and i cannot recommend it. I am not pleased with the fact that it took me 2 months to claim the bounty, in addition to the fee for cashing it out.

1 Like

Okay. I am not suprised that there would be friction like that. If the system is just people pledging to pay money for certain things I imagine that would be generally hard to collect upon. If more than one person pledges towards a goal that means they all must be satisfied before you can collect? It does not seem like a good way at all to manage thousands of dollars, and I’m sure the amount of work what i am discribing would cost many thousands of dollars to pay someone to do.

In spite of these objections I probably will do as Barbatus suggests and submit some kind of bounty eventualy and offer like $100 or something, once I have talked to some more people more knowledgable than I am further on the subject. I don’t think such a small amount of money is likely to be a very effective encentive for a programmer to do a bunch of hard work but the bounty itself could be a talking point on the subject. I dont expect I would ever have to pay it out but if enough other people added to it maybe it would show that a kickstarter campaign to raise $5,000 or $10,000 could be successful.

Thanks for your input. Do you have any comment on the feasibility of a quest building GUI like I have described? Is that even something that would be at all practical in your opinion? What are the other GUI programs being developed for assembling JSON that you mentioned on Reddit?

lol you are WAY over-estimating the money dude. $10k to make a tool to do what you described above? If you bounty 10k, I will go code your tool AND marry your ugly sister as well.

I’ve poked around lately, talked to the other devs, and found a GUI Creator called Dear ImGUI. It’s a MIT licensed tool written in C++ that can rely on graphic and UI libraries and renderers like SDL, DirectX, openGL, etc. It provides a variety or pre-programmed elements and modules of constructing ad hoc but still powerful GUIs, mainly for the purpose of development support.

It has “examples” which are ready to go code chunks that use desired target graphical renderers to run itself. Construct GUI in it and you’re ready to go.

Furthermore there are derivative works using ImGUI, like a neat tool I found that creates nodes in a GUI - ImNodes. It’s a GUI in which you can build node tree structures and schematics with links between them. Perfect for conversation trees for NPCs, if adopted properly. MIT license. Ready to go examples.

ImGUI and ImNodes can and by principle should be integrated with existing code to pull the game data, reuse the methods and usefully manipulate it within the GUI for the given purpose, like NPC editor for example.

What I mean by that is that a decently skilled developer(s) could:
1/ setup ImGUI and ImNodes in a Tools folder,
2/ write compiler solution(s) that would compile the game with the tool loosely integrated, so it can see the game’s existing code to do it’s job
3/ write a target GUI code , ie. (for ex. ) create node types that would represent NPC characteristics and node types that would represent dialogue tree branches/leaves with conditions that CDDA recognizes
4/ combine that with ability to serialize and deserialize the data to JSON aka save/load NPCs to/from game files and you get a graphical NPC Creator

Potentially part one and two could be done first, slapped on GitHub for others to play with the GUI itself and it’s options as a community effort.

Map editor would work the same, GUI could give a spreadsheet of empty tiles the size of a typical game map chunk, could load all possible terrains furnitures and what not, and since it’s a GraphicalUI it could most possibly allow you to see them from a chosen tileset. Then pull the puzzles to the grid and you’ve got a map in no time. Add a save load and you’ve got a tool.

What’s beautiful is that, as far as I understand, ImGui is loaded with modular tools that support such GUI elements, so it wouldn’t be building from scratch. And the ability to reuse the game code would prove invaluable in implementing.

What is not beautiful is that this is still one or two tiers above my level of programming knowledge to set it by myself, but if it would ever be adopted as CDDA GUI toolset of choice I’d definitely open a champagne and both help in developing GUI if able and use it to make some content.

I’d put down money to see such a toolset happen. I’d probably never use it myself, but the idea of a graphical map editor should seriously lower any barrier to entry in making buildings and areas for the game, and seeing the hopeful deluge of content from that alone would be worthwhile to me.

Yes, to be honest, that is more or less exactly how I feel as well. Do you think there would be a lot of other people who would be willing to put in a little money as well? I think there could be a lot of people who would, maybe. I feel strongly enough I would be willing to put a couple hundred $ my self, but even if most people only donated $10 or $20 that might add up to a lot.

Thank you very much mr_sep. That sounds very promising. Unfortunately I am very ignorant in these matters as you will probably have realized if you have read any of my posts. All I have is enthusiasm. Do you think trying to crowd fund some money from other plebians like me to pay a profesional programmer to implimment what you describe would work? After more discussion with devs and contributors about what specific features they want and how to implement them, of course. Do you have any kind of idea how much work that would be and how many American dollars it might be expected to cost? To me it seems like it would be a lot of work, but what do I know?

Okay, I’ll keep that in mind. What do you think a more reasonable figure would be? Are you actually in a position to do it though?

No idea, I’m not familiar with crowdfunding.

Settings up the environment, so the IMGUI/IMNODES would popup a “Hello world” window for example from within CDDA main menu and/or debug menu, thus preparing the field for creating the target GUI(s), should be relatively on the easier side (easy-moderate). This should include making the build solutions for compiling.

Second part - building the GUI itself would be in the moderate complexity tier. I assume that at this point one would need to utilize two existing fields - game code (code structures and methods that govern for ex. NPCs and dialogue including JSON-ising, with some improvements for GUI purposes) and IMGUI/IMNODES code (code structures and methods that govern how the GUI windows look like, what they contain, and how manipulating the GUI affects for you do - ie. what happens if you press a button etc.).

Whole idea behind IMGUI is that it provides pre-designed standardized elements of the GIU that you need to build together (graphical front end, ie. what you see when you use it) so you mostly deal with linking that to the game code (back end, what the GUI actually does, how it produces the resulted outcome for the game).

This part becomes more complicated depending on the scale of the tool. For example a simple dialogue tree:

{ "type": "talk_topic", "id": "TALK_BONE_SEER_INSULT", "dynamic_line": "Your skepticism does not surprise me. Perhaps one day, you too will hear the inevitability of the song, feel its power. But until then, you will remain an Acolyte, path to the Kindred closed.", "responses": [ { "text": "Yeah, alright.", "topic": "TALK_BONE_SEER" } ] },

is potentially much easier (1 simple node for the topic, 1 simple node for response, one link between, link from the second node to the initial node) then this one:

{ "id": "TALK_SUGGEST_FOLLOW_SEER", "type": "talk_topic", "dynamic_line": { "u_has_trait": "seer_mark", "no": "Only those who bear my mark will prove themselves worthy of my skills.", "yes": "You bear my mark, meaning I believe you have potential to learn to truly listen to the Song. Yes, I will lend my skills to you, for now." }, "responses": [ { "text": "I see. Very well then.", "topic": "TALK_NONE", "condition": { "not": { "u_has_trait": "seer_mark" } } }, { "text": "I am glad to hear it. Let's go then.", "effect": "follow", "condition": { "u_has_trait": "seer_mark" }, "topic": "TALK_DONE" }, { "text": "That's good, but I need to go at it alone right now. Maybe later.", "condition": { "u_has_trait": "seer_mark" }, "topic": "TALK_NONE" } ] },

, because you need to include every extra condition and effect existing in the game code, so it is available for the user in GUI.

And the GUI should then be able to [1] read above and translate it to nodes, [2] write above in JSON. Since the game itself can already read the NPC JSON’s quite well, the problem with [1] is putting that code to work on the GUI level, so it knows how to convert every talk_topic to a node with respect to conditions and link it to other nodes, aka how to decode a NPC to a tree of nodes. As for [2] it would require the opposite - how from a tree of nodes would the game recognize an NPC and save it to JSON, and this would need improving the game code for this purpose (as before there was no need to do this). In other words [1] would need more work on setting up the GUI using the IMGUI tools, and [2] would require more work on the game code side.

IMHO this possibly could be done as a community effort in parts, just like the rest of the development is progressing in parts. Expecting only one developer to deliver a final product, even for a prize would be at most risky. So if you’re realy dedicated in crowdfunding / financial support / pateron in this field, and you think it’s worthwhile, I’d suggest splitting the goal into milestones. That would require some knowledge and/or research of what you actually want on your part, to minimize the risk of setting wrong, unsatisfying, an/or unrealistic goals.

In any case here are links to IMGUI and IMNODES respectively.