Game Engine Question for New "Developer"

Caeli Astraeus

Formerly Bad at Writing
Game Developer
Jun 24, 2017
45
32
Greetings and thank you for your time with reading this thread.

I put out a very short lived project that I wanted to turn into a big thing but found myself losing the will to continue it, the project was completely terrible and was based off ren'py which was not something that I wanted to do to begin with but ended up doing for some reason. I am going to be completely redoing my project and putting it in any new format possible in order to finish my vision for the game. That being said, here is my question:

What would be the easiest and most simple engine/way to make a game that is similar in playing style to the following:
Lilith's Throne, Trials in Tainted Space, Champions of Corruption 1/2, Dryad Quest, etc.
Turn-Based Combat, Text Based, Sandbox, etc.

I have been trying for a while to go around to various games that fit these tags and attempt to figure out how they even work coding wise, but no dice. Im not saying that I do not want to put in effort, im saying that I want to find the easiest way for someone that has almost 0 coding knowledge to step into the area of doing these types of games, im a writer, not so much a programmer. Thank you again if you finished reading this, I would appreciate any useful tips.
 

AnimeKing314

Giant Perv
Game Developer
Jun 28, 2018
395
605
As far as easiest to learn for that style, I believe is your best bet. Out of the examples you gave it looks like Corruption of Champions was written in twine. I haven't actually used it myself but it does look pretty straightforward to get started with and they have a discord community that would be able to give you any guidance that you need.
 

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,611
2,258
I can't offer much help here. My answer is almost always "RenPy"... and it sounds like you've already tried that with Dark By Dawn.

Since you said "Text Based", I'd probably go with . But I haven't used Twine and I couldn't say whether it's good or bad for "Turn Based Combat".

RenPy is great for telling a story. But not so much for "Turn Based Combat". Even "Sandbox" requires a degree of knowledge beyond simple RenPy techniques. "Text Based" is an easy one... just don't use pictures (RenPy has something called - which is almost pure text link to example NVL view game).

Don't get me wrong... RenPy can do all those things - but the level of "programming" needed is considerably higher than just telling a simple (or even branching) story. The solutions for both Turn Based Combat and Open World in RenPy is the same... an indepth knowledge of how to create custom screens in RenPy and a grasp on how to store data in variables to reflect the current state of everything going on within the game that can be controlled by the player.

But then I suspect the same would be true for Twine... (with perhaps less reliance on custom screens?)

So yeah... maybe Twine.

For anyone curious about the games he's quoted...
 
  • Like
Reactions: Caeli Astraeus

Caeli Astraeus

Formerly Bad at Writing
Game Developer
Jun 24, 2017
45
32
Since you said "Text Based", I'd probably go with . But I haven't used Twine and I couldn't say whether it's good or bad for "Turn Based Combat".
As far as easiest to learn for that style, I believe is your best bet. Out of the examples you gave it looks like Corruption of Champions was written in twine. I haven't actually used it myself but it does look pretty straightforward to get started with and they have a discord community that would be able to give you any guidance that you need.
Alright, thanks both of you, i'll look a bit into twine but I have not seen any of these types of games done in html except one that was abandoned after a 'hiatus'.
 

hardwire666

Newbie
Apr 12, 2018
89
54
Just to toss in a few cents because I've recently done some experimenting for something more akin to BB (yeah, yeah I know I know). A close friend passed away and I just needed the distraction and practice. Anyway I'm not there for sympathies and sob stories so on with it! I started with Gdevelop, then went to Godot, and I have ended on UE4. I think for what you're doing Gdevelop would be a perfect fit, however here's what I've found with each.

TL;DR check out Gedevelop Works really well and was pretty damn easy to use. would do what you want very easily.

Gdevelop
You don't need to be a coder, though a basic understanding is very helpful (if you can use Renpy you'll be fine), it also supports publishing to an HTML format for publishing on a website if that's something you were looking for. Also it has Yarn Spinner built in with a plug in. With Gdevelop I got as far as building the full navigation UI along with a map. I actually enjoyed using it. The only reason I had to move on was because I needed to be able to publish content through patches and it doesn't really support that yet.

Godot 3.3.2
I used Visual Scripting and it was kind of the same thing, only I got much further. I had the full navigation UI, along with a 12hr Clock that the user could increment by 30 min with a UI button. As well the clock would differentiate between AM/PM, change the day of the week at midnight, and cycle through the days of the week every 24hours. I also had a blast working with it and plan on going back to the project to finish it off and release it for anyone to use. Same problem though, Godot doesn't really have support for content patches/DLC kind of stuff yet. Also !!BIG CAVEATE!! There is a steep learning curve with Godot Visual Scripting and having a decent grasp on basic programing concepts is huge. There's not a lot of info out there for the visual scripting so it's a lot of of guess work, and reading. I probably spent more time reading than making, but it was still fun.

UE4
It can do whatever you want. Total over kill for my project and yours, but it will let me release content in patches. Hence why it's where I landed. Nothing is built-in, and everything has to be built from scratch. I do not recommend it. Only reason I'm doing it is because I can, and no one really has so far as I know... for good reason too, I'm sure lol.

Anyway that's been my experience so far. Hope it's helpful to someone, and good luck!
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,979
16,236
Since you said "Text Based", I'd probably go with . But I haven't used Twine and I couldn't say whether it's good or bad for "Turn Based Combat".
Twine is far to be a good option for turn based combat. It's not impossible, but in regard of what other engines can do, it's probably the worse option. It don't have the power of an engine like GameMaker or Unity, and not the helpful features of a RPG Maker or Ren'py. Therefore, you would have to code as much as you would do for the first twos, without even reaching the result you can have with the second twos.


Don't get me wrong... RenPy can do all those things - but the level of "programming" needed is considerably higher than just telling a simple (or even branching) story.
What would anyway be the same for other engines except RPG Maker. But with the help of screens, Ren'py can do it more easily. Something like this would already offer a turn based combat system :
Code:
screen combatMap( opponents, team,  background ):

    add background

    grid len( opponents ) 1:
        for oppID, imgID in opponents:
            imagebutton:
                auto ( "opponent/{}_%s".format( imgID ) )
                action Function( selectedAction, oppID, selectedTeammate )

    grid len( team ) 1:
        for teamID, imgID in opponents:
            if teamID == selectedTeammate:
                add ( "team/{}_{}_selected".format( imgID, getState( teamID ) )
            else:
                add ( "team/{}_{}".format( imgID, getState( teamID ) )

    grid len( teamAction( selectedTeammate ) ) 1:
        for actID, imgID in teamAction( selectedTeammate ):
            imagebutton:
                auto ( "combat/action_{}_%s".format( imgID ) )
                action SetVariable( "selectedAction", actID )

init python:
    def getState( id ):
        percent = ( team[id].health / team[id].baseHealth ) * 100
        if percent > 75:
           return "full"
        elif percent > 50:
           return "hurt"
        elif percent > 25:
           return "wounded"
        elif percent <= 0:
           return "dead"
        else:
           return "dying"

    def teamAction( id ):
        if team[id].class == "mage":
            return [ ( "fireball", fireballAttack ), ( "lightning", lightningAttack ) ]
        elif team[id].class == "rogue":
            return [ ( "pierce", piercingAttack ), ( "sneak", sneakAttack ) ]
        [...]

    def fireballAttack( opp, user ):
        power = 1.0
        if opp[opp].resistMagic:
            power /= 2
        elif opp[opp].weakMagic:
            power *= 2
        if opp[opp].resistFire:
            power /= 2
        elif opp[opp].weakFire:
            power *= 2
        opp[opp].dammage( 20 * power )
        team[user].mana -= 3
       selectNext()

    def selectNext():
        # Here change /selectedTeammate/ for it to be the next team member
It's not working due to some logic flaws ; mostly because I wrote it on the fly without really planing it. But doing a turn based combat system with Ren'py isn't really more difficult than this.

It can be improved by using objects in place of the various ID, and calling the methods embedded to this object, in place of the functions. This would make the code more smooth. But with few corrections the canvas above would already do it.
It's advanced coding, but in regard of what would be needed with another game engine (except RPG Maker), it stay on the basis. Those other engines would need you to also do all the part handled by the screen, and it's the most difficult part.
 
  • Like
Reactions: Caeli Astraeus

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,611
2,258
I though it might help if I clarified my thoughts...

Your problem as I see it is that whilst you are a writer with limited programming knowledge... your design goals are very programmer oriented.

If you can focus on the story rather than the mechanics... then RenPy remains a good choice. Twine might fit the role, as I say... I can't speak to that. But while your goal remains heavily influenced by the mechanics, your choice of engine is probably not going to matter as much as you hope it will.
 
  • Like
Reactions: Caeli Astraeus

AmusingOddity

Member
Game Developer
May 11, 2021
352
900
I use twine for my games and the idea of building a combat system seems doable, but very difficult. That would be by far the hardest part of the game to get right.

With that being the case have you considered RPGMaker? It can handle the combat for you and let you focus on the other aspects of the game. I know a lot of people don't like RPGMaker games. I think a lot of that is because of how combat heavy they can be. If that's the kind of game you're thinking of making that crowd might be your perfect audience.

It also has a pretty roubust system for editing the game with minimal coding knowledge required. Sounds like it might be kinda perfect for what you need.
 

Caeli Astraeus

Formerly Bad at Writing
Game Developer
Jun 24, 2017
45
32
I use twine for my games and the idea of building a combat system seems doable, but very difficult. That would be by far the hardest part of the game to get right.

With that being the case have you considered RPGMaker? It can handle the combat for you and let you focus on the other aspects of the game. I know a lot of people don't like RPGMaker games. I think a lot of that is because of how combat heavy they can be. If that's the kind of game you're thinking of making that crowd might be your perfect audience.

It also has a pretty roubust system for editing the game with minimal coding knowledge required. Sounds like it might be kinda perfect for what you need.
Yeah good idea but I can not stand rpgmaker games, I just do not like them at all and have tried them countless times but no dice. Ive been taking a look at twine and have a really simple system down for how I want it to work. There's also a ton of stuff that people have posted in 'kits' or something like that, lets me download their system and implement it quite easily.
 

AmusingOddity

Member
Game Developer
May 11, 2021
352
900
Yeah good idea but I can not stand rpgmaker games, I just do not like them at all and have tried them countless times but no dice. Ive been taking a look at twine and have a really simple system down for how I want it to work. There's also a ton of stuff that people have posted in 'kits' or something like that, lets me download their system and implement it quite easily.
Yeah I'm with you on the RPGMaker games. The don't do it for me either. If you can find a ready made battle system that you're happy with, that makes it much easier to recommend Twine.

I'd suggest playing around with the battle system a bunch before you get really started. If you want to make changes to it in future your going to need to understand how it works pretty well.

Good luck.
 
  • Like
Reactions: Caeli Astraeus