Is godot the best engine for my use case?

I’m not too experienced in game engines and my background in coding is just lua scripting for various projects (apps I used that supported it, simple scripts for tedious and repetitive tasks, etc) though I would say I’m pretty proficient at understanding lua.

What I want to make is a cross platform simulator for a certain card game, with online multiplaying functionality. I knew of the love2d game engine but I couldn’t get any of the networking libraries to work, and even if I did the game is basically a zip file of game source code attached to an exe which I could see being a big liability later on, what with the online part. but that’s neither here nor there.

When I went to research other game engines that crosses both boxes, I found out about Godot. Now, I know Godot doesn’t use lua so I’m finally ready to leave my comfort zone in that respect. I also see that it I can more or less build the app that I’d deploy to a server for multiplayer to keep everything in-house, in terms of coding knowledge.

Am I being naive in thinking it’s a good idea to use only godot to build my application for most of, if not all of, windows/mac/android/ios/linux, and the server too? I understand results may vary for functions on different platforms because of their architecture and will require more effort than just clicking a different export button each time.

Like, can it all be done with godot only? I’m sure it is or else those platforms wouldn’t be supported. But is it possible that the best solution for me is to learn multiple engines, like using godot for the desktop platforms, something else for mobile platforms, and another thing for the server?

I would prefer to only need max 1 for the clients to not complicate how much I need to learn on this big project (and to limit how much I need to rewrite code) and can live with not using godot for the server, but if there are engines that are more efficient on certain platforms I’m willing to at least give it a look and try. Or I could look at a game engine if you think it’s more efficient on all desktop/mobile platforms for playing a card game.

I’m not really planning on the game doing anything resource intensive here, after all; some pngs layered over one another for “cards”, moving the composite pngs around, generating card data aside from images, sending and receiving data over the internet, that’s at least 80% of the action right there. I wouldn’t want to drain the batteries of laptops/phones if I can help it since games could take upwards of 40 minutes, though I don’t know much in that department and it could be a non-issue for any engine.

I just want to know as much as possible before I, well, screw up as much as possible…coding! Anyway, any advice on this is greatly appreciated.

2 Likes

I’m a shoddy programmer, but I can give you some pointers. (Also, thank you for adding another General topic to the forum)

So Godot is very lightweight. VERY lightweight. A feather is heavier.

Meaning, developing for mobile with Godot will be a lot easier than Unity and especially Unreal. (I’ve used Unreal 4/5 for a little while, and it is a TANK)

Second, the native programming language, GDscript, is very nice. It’s easier to learn than other programming languages, the syntax is very readable; and if GDscript doesn’t tickle your fancy, you can use C# natively, other programming languages with GDExtention, or multiple languages at once.

You’re not locked into one option. Heck, you can even make a GDExtention for Lua (If that doesn’t already exist). It might take a while, but that’s a golden opportunity right there.

(Side note, the only reason I know Lua exists is because it’s what the games “Don’t Starve” and “Don’t Starve Together” use as a programming languages. I love those games)

I could say more, but that all I can recall at the top of my head.

Also, why would a card game take 40 minutes per match? This isn’t a critique, I’m seriously asking. Any phone running for 40 minutes straight will take a hit on it’s charge, no matter your optimization techniques. And god forbid they’re playing with data and not Wi-Fi.

Also also, typically phone games only last for a few minutes at most. That’s because of the nature of phones: You play a quick game on the bus, on break, before bed, on the toilet, etc, before getting off and continuing with your life.

Like, I play Brawl Stars sometimes, and matches only last 3 minutes at most. And overtime is pretty rare and short lived.

Anyways, I’m glad you asked all these questions. They’re pretty important considerations. The Godot Forum is the perfect place to ask as well.

I’m gonna @ some forum regulars and see if they can answer your questions with more detail.

@gertkeno @pennyloafers @wchc @dragonforge-dev @pauldrewett

I’ll wish you luck!

6 Likes

So, I can’t remember why I thought it was a good idea to keep the game anonymous and, in retrospect, is a bad idea for this place with many more individuals than not trying to make their own thing.

Anyway, the game is the yugioh tcg. There is a severe lack of manual simulators (i.e. tabletop-style) which is the best way to play historic/retro formats since the rules have changed so much over time and retro communities vastly prefer to keep the game rules as they stood. The main simulator is duelingbook, a website that is notoriously unfit for mobile platforms, and I have some gripes with the duelingbook platform as it stands especially when it comes to this kind of support, so I wanted to take it upon myself to make my own simulator for the game.

So yeah it’s a full tcg with duels that, even online, nearly always take over half an hour to complete. I wasn’t expecting it to be like “okay match done? 5% down” but like…at least you could play a few games before going to bed or something. tbh, the mobile version is secondary in my mind but I don’t want to leave it off the table. Edit: What I meant about the “draining batteries” was less about due to runtime the app is open, and more to do with the engine. I was unsure if an engine that’s “too powerful” like the unity or unreal you mentioned would use more power than necessary, but you mentioning that it was very lightweight put that to rest in my mind.

2 Likes

Interestingly, Lua was created in South America, just like Godot. Lua in Rio de Janeiro, Brazil; Godot in Buenos Aires, Argentina. Lua entered the game programming arena in 1997 when Grim Fandango was released by Lucasarts. It was also used in the oringinal Baldur’s Gate by Bioware.

In November of 2004, Blizzard released World of Warcraft. WoW allowed players to customize the UI using Lua (and XML) from the very beginning. This was significant because of two things.

Before WoW was released, any time an MMO was released it stole players from other MMOs. There were only a few hundred thousand players to go around, and they would migrate between MMOs. WoW changed this by creating a newer, much larger player base. WoW had 200,000 registered players on launch day. Over the first few months, it literally created millions of players. Who then were also interested in playing other MMOs.

This was significant because a lot of players got into Lua scripting and it was an approachable way to start learning programming. Because WoW literally increased the number of people playing video games, Lua became known outside programmer circles.

You are not naive to think that. You really can click a few buttons and export to every supported OS. The problems come if you want your applications to be signed. The process for signing Windows, Apple and Google releases are all different. There are many hoops to jump through.

In addition, it’ll cost you about $300 to get your game live on the iStore, Google Play, and Steam. Apple and Google charge $75-$100/year for a developer account. Steam charges $100 per published game.

As for the multiplayer aspect, I’d recommend using peer-to-peer networking rather than running a server. Because a server is going to cost you money every day. But Godot can do that.

5 Likes

Man, that sounds complex. I know literally nothing about those kinds of… “manual card game simulators?” What even is that?

So I just looked it up, it’s called “Yu-Gi-Oh! Dueling Book”.

This is a MASSIVE rabbit hole! Oh my god!!!

(To @dragonforge-dev and whoever’s reading this, You need to look this up pronto. This is crazy!)

No wonder it takes up to 40 minutes per match, you’re doing literally everything manually from what I can tell.

This kinda thing seems like it’d need a strong community and it seems so complex to develop. Are you sure you’re up for the task? Not to sound condescending, but this blew my expectations out of the water.

And this website seems so old too. It’s got an old internet vibe. I can understand why you might want to create a similar thing with new hardware, but still.

1 Like

So…yes, but no, but yes, lol. Games take that long even irl without being constrained to a software binding. dueling book is based on a similarly named dueling network that debuted in 2010 I wanna say, hence the “old”. it’s also super barebones in how the cards have a single button on a hover to send it where you need it to go. I mean when simplified that way it’s basically just a menu based card game with a more authentic look, no? I’m definitely not saying “oh yeah this is simple” but I do understand that even wanting to say “I wanna port dueling book” is ambitious for someone that hasn’t touched godot and even with love2d I basically just use it as a lua compiler nowadays, sometimes using the graphics functions…and as I already implied I want more than that, what with not being fully satisfied with dueling book as is.

Oh, and I have the capability to scrape yugipedia (the fan made yugioh mediawiki/encyclopedia) for all the card data and convert it to something usable, if that was ever a concern. That’s not to mention some sites like ygoprodeck have an open API that could be accessed. The point is, even for a double decade old card game the community is definitely still there.

My plan was to start small: make a calculator (low key, I feel this is the best way to try a new game engine, since it’s just math at the end of the day). After that, go through the cards, and have the data in a digestible fashion ouside the application, and in the game make a small search filter for cards on simple stuff like its name or card type. Then I’ll begin the ui to make it a proper looking deck builder and have it generate “cards”. that’ll occupy me for a WHILE before I can even think about the game board and menus and such, but I’ve had this idea a while too.

1 Like

The Yu-Gi-Oh community seems really cool. I haven’t personally been that connected to a community since Plants vs Zombies: Garden Warfare 1, 2, and Battle for Neighborville. (And the Godot Forum of course)

I’m glad the resources are right there for use. I’m more worried about the community and player acquisition aspect of your journey.

This seems like a more personal game you set up on Discord with friends and/or a small community you forged. It’s just like a regular card game (I see the appeal now!).

Maybe I’ll give DuelingBook a shot in my spare time. Any pointers?

Edit:

Actually, I’ve always done better in smaller communities. Not in a “popularity” sense. But a more “connecting with others” sense.

I can actually hold conversations with a singular person more often, which is my prefered social environment.

I can function in a group. But the bigger the group, the more overwhelmed I become.

I’m aware of Yu-Gi-Oh. It’s a TCG like MtG or Pokemon. They’re all stupid complex. Blizzard made their own TCG that’s online-only, Hearthstone. I started playing MtG 30 years ago, I still enjoy it from time-to-time. I’ve played them all over the years. Yu-Gi-Oh fans are very loyal. MtG is the first, and it is also the original loot box/microtransaction game even though it is a card game.

This is a labor of love. @impoyster will have to learn a lot, but as long as the passion for the game doesn’t wane, they’ll make it.

As far as not driving the phone power down, you can do this as a 2D or 3D game. 3D will look cooler, but 2D will save battery power.

2 Likes

I didn’t understand what those achenemes meant at first, but I looked them up.

TCG = Trading Card Game

MtG = Magic the Gathering

I’m REALLY bad at strategy games. I can really only process one thing at a time. My focus budget is very limited, and I can’t think of all the possibilities and play without thinking. But then, the enemy has the exact counter to my play and I get demotivated.

Also, I played PvZ Heroes (The Plants vs Zombies strategy game), and it made me close the app in embarrassment SO MANY TIMES!

I remember I didn’t play a card called “Espresso Fiesta” that would’ve made me instantly win, because it got glossed over in my brain.

Also also, I HATE Chess! Oh. My. God. I hate chess! My brain can’t compute any of that.

This is why I prefer “in-the-moment” games like multiplayer shooters.

1 Like

Speaking of the Pokemon TCG. Apparently McDonalds had to pull a Pokemon promo because customers in Japan were dumping happy meals in the streets.

2 Likes

image

WOW!!! That’s all I can say to this.

2 Likes