Introduction: I’ve been trying to teach myself programming and failing since the early days of Visual Basic 4. I get halfway through the tutorials and realize that I am in over my head and gave up.
There are tons of game engines now (GDevelop seems like the best so far) that make codeless programming a reality. The problem is that they are largely engineered around jumpers, shooters, side-scrollers, and games that I do not wish to make.
I need to be clear on what a strategy game is: For this question, I am not interested in an RTS, a real time City-builder, or an X-com TACTICAL game.
I would love to learn those techniques, but what I really want to do for my first small project is this:
-
The player creates a persona by answering several questions and I translate that into statistics. This character builder will be clever enough that if in question 3 the player says they are male, that in future questions it addresses them by the appropriate pronoun or removes any options for other genders from the pick lists of future questions.
-
The player will manage a “Domain” - this really doesn’t need to be complicated for my first game. Let’s pretend the domain is a Medieval Manor in the middle ages. The player will be provided with a screen with their holdings, and see the resources: Gold, Workers, Arms as well as their projected revenue in the next turn.
The player will be able to select or even queue up future building projects. The game will be smart enough to know that if the object is unique or that the limit has been reached (You can only build 6 villages for example), it will not allow you to select those options.
The player will have another screen with three roles: A Seneschal, A Knights Marshall and a Bishop. The game will randomly select from three NPCs I have created in advance for each category initially. The player will have the opportunity to replace them, or tell them to do certain things in the current turn, such as a drop down menu where they can pick one action for each NPC: “Train Knights” “Scout the Forests”, “Hunt for Bandits” let’s say for examples.
-
It will have a save and load function.
-
When the player clicks “End Turn” the game will process the orders using some elements of random chance, for example: If the Knight’s Marshall was told to Train Knights, I may do a test of their skill and based on whether they passed or failed reward the player with more or less knights than previously allowed.
-
The Random Event Engine- this is the part that I have never been able to figure out. I want a dynamic random event engine that selects an event (even if that event is “no event this turn” based on flags and the current resources of the player. As an example, if the player has a specific NPC the game will allow that event to be one of the ones it chooses. If not, that event will not be considered.
The random event engine should allow weighting, so that certain events can be more likely than others. As an example, I may have a common event “Bandits sighted” while I have another event that is rare “A shooting star”
I may also want to set a flag once the shooting star event fires to make it no longer valid once the event happens - it’s a once in a lifetime event. In addition, I may want to have chained events where let’s say “Bandits Sighted” fires, then 2-3 turns later I have a second “Bandit Attack” event that can possibly trigger, but not until the sighted event occurs.
I would like to present this event to the player in the form of a visitor to the court asking a question, and allowing the player to select 1-4 responses, which are dependent on their resources. If one option is “Give 225 gold” and they do not have that much gold, that option is not available.
The game will then subtract or add those resources, perform tests against the player or NPC stats, and then record the results in a “Flag” I can use to trigger future events.
This sounds like a lot, but I want to make it fairly simple -and once I do- I can begin to work on a more robust game with the same principles.
Can you suggest, even if not GDevelop? I began going through the tutorial series and realized that it is an excellent engine, but not necessarily for what I want to do, so I am willing to try another engine.
I am okay learning Lua or Java if that’s what I need to do, but Unity was so overwhelming that I think I am better off with limited scripting and using code tools.