So the next game that I'm working on is going to be a Famicom Detective-like game, where you have to solve a murder that takes place in a school (so far, that's the plan). The "codename" for the game is "Famidet" for that reason; I'll probably change it soon once I get an idea of the plot. The idea at this point is that you're a teacher at the school, but that definitely doesn't make a lot of sense. Then again, it doesn't really have to, haha. It just has to be fun and engaging.
I'm making this game with Java in the pre-alpha LibGDX-based game engine, BDX. It's going okay so far; I've got a couple of the commands working. You can "Talk" with the person about different topics that they know about, and I built it to be easy to change that depending on the state of the game. This should allow you to learn more about the crime at hand, gradually growing in understanding what the situation is by talking to different people and taking what you learn to others still.
Speaking of flags, the game state (what you've done) is comprised almost entirely of string pairs; one for the flag name, and one for the flag state (i.e. "talkedToGymTeacher", "true"). This should mean that it was trivial to set up saving game data (just save the name of the flag and the value to a text file), and it should be easy to handle the game state as well (no need to transfer save data to the game and back; the save data is the game data, in a sense). This would make it easy to edit the save data to cheat at the game, but this is a game made in a couple of weeks - I've gotta cut myself a little slack, at least, haha.
Much like the Ace Attorney games, I've built the underlying framework in such a way that the character you're talking to can emote heavily depending on what they're saying. Rather than simply setting dialog, each character has a behavior list that they step through when talked to, which means that they should be able to support a lot of different actions (saying something, setting their emotion, spawning an object or flashing the screen, disappearing, slowing down the message speed, etc). This'll make it a lot more interesting to talk to the characters, hopefully.
Above is an example character "idling" and talking in both normal and sad states.
The "Think" command will be used to process what you learn and continue the plot, if you reach a point where you have gathered all available information. At least, that's what I think it'd be used for. You can also use it to be reminded of what, in general, you should do next. I might trim this feature down (or even cut it out) in the future depending on if I want to press on with it or not - limited time, and all that.
This indeed is looking to be quite the challenge; I'll see if I can succeed in just another week or two!
Anyway, thanks for watching and reading!