Godot: The open source game engine

21 readers
1 users here now

A community for discussion and support in development with the Godot game engine.

founded 1 year ago
MODERATORS
101
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Pizza_Doggy on 2024-10-15 17:12:17+00:00.

102
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/AshenWing_Orwen on 2024-10-15 19:54:15+00:00.

103
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/rafal137 on 2024-10-15 19:29:26+00:00.

104
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Pizza_Doggy on 2024-10-15 17:57:42+00:00.

105
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/VerzatileDev on 2024-10-15 17:48:34+00:00.

106
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/HakanBacn on 2024-10-15 16:51:14+00:00.

107
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/OujiAhmed on 2024-10-15 16:27:05+00:00.

108
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/KlauskMato on 2024-10-15 15:54:04+00:00.

109
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/dtelad11 on 2024-10-15 15:06:47+00:00.


I'm about to release the demo for my game Flocking Hell, which will be available in 8 languages. Here's a look at my experience with the translation process.

About the Game

Flocking Hell is a turn-based strategy roguelite with deck-building elements. Your goal is to defend your pasture from demonic legions. You have 80 turns to explore the map, uncover and connect cities, and play cards for special abilities. Once the turns are up, the demons invade, and your defenses are put to the test in an auto-battler sequence. Win by defeating the demons with at least one city standing, or lose if all cities are razed. The game is designed to be quick to learn (~30 seconds) and fast to play (~5 minutes per level). For more details, visit the Steam page.

The demo includes 30 cards (with an average of 15 words each), 15 guides (about 12 words each), similar to relics in Slay the Spire, and 20 unique levels called islands (around 40 words each). In addition, there are menus, dialogs, the Steam page description, and streamer outreach emails. Altogether, I needed about 3,000 words translated.

The guide selection screen

Choice of Languages

I chose Simplified Chinese, English, French, German, Korean, Japanese, Portuguese (Brazil), Russian, and Spanish. This decision was based on recommendations from Chris Zukowski (howtomarketyourgame.com) and insights from the HTMYG Discord channel. While I don’t have concrete data, I suggest looking at popular games in your genre and following their language trends.

What Went Right

Translation partner. Huge shoutout to Riotloc, the company handling the translation for Flocking Hell. They’ve been both affordable and prompt. Special thanks to Andrei, my main point of contact, and the teams working behind the scenes. If you're looking to translate your game, I highly recommend them.

String labels. I’m a newcomer to game design (I come from web development and data science). As I was learning Godot, I reviewed tutorials for localization, which emphasized using unique IDs for all text labels. I followed this practice from the game’s inception, including all menus and game mechanics. This made delivering the translation to Riotloc and incorporating the text back in the game super-easy.

Wiring locale changes. When the player first launches the game, they're greeted with a language selection dialog, and there’s a big “change language” button on the main menu (using iconography). Changing the language fires off a global “locale_changed” signal, which every scene with text connects to. This made it easy to catch and fix issues like text overflow and ensure all languages displayed properly. For development, I connected this signal to the Q key, letting me quickly switch languages in any scene with a single tap. It was also invaluable for generating screenshots for the Steam page, just press Q and print screen for each language. Then tidy them up and upload to Steam.

Creating this animated GIF took about two minutes

Font choice. This was a painful one. As I was developing the game, I experimented with a bunch of fonts. I don’t have any design background and therefore settled on Roboto, which is functional but admittedly rather plain. This choice ended up being a blessing in disguise, as Roboto supports Cyrillic (for Russian) as well as Simplified Chinese, Korean, and Japanese. I didn’t have to worry about finding additional fonts for these languages, which can be a common issue many developers encounter late in development.

What Went Wrong

Text Length. Some languages, like Russian and German, tend to be much longer than English. I’m sure there are native speakers who are reading this post and chuckling. In some cases, the translated text was almost twice as long as the original, causing issues with dialog boxes not having enough space. I had to scramble to either shrink the text size for certain languages or cut down the wording entirely, using Google Translate to figure out which words to trim without losing meaning.

Buttons. Initially, I used Godot’s default Button throughout the game, but I ran into issues when implementing the translated text. First, the button doesn’t support text wrapping, which was surprising. Second, in languages like Russian, the text became so long that I had to reduce the font size. To solve this, I created a custom SmartButton class that supports text wrapping and adjusts font sizes for each language. Reworking this and updating all the menus turned into a bigger task than I anticipated, especially so close to the demo release.

A bit of a vent: I found Godot's Button to be a bit too simple overall. For future games, I plan to implement a more generic button that is structured around PanelContainer. So you can dump whatever you want inside rather than being limited to text + icon.

Line Breaks for Simplified Chinese, Japanese, and Korean. These scripts don’t have spaces between words, so I wasn’t sure where to insert line breaks when the text got too long. This resulted in non-colloquial text with awkward line breaks. I later learned that providing the translator with a character limit for each line can fix this, but I discovered it too late in development. I’m embarrassed to admit that the demo still has these issues, but I plan to correct them for the full release.

Summary

On a personal note, I want as many people as possible to enjoy Flocking Hell. I’m a big believer in accessibility, so translating the game felt like a natural choice to me.

On the practical side, translating the game and Steam page is already paying off. Flocking Hell was featured on keylol, a Chinese aggregation site, and streamers and YouTubers have reached out because the game is available in their native languages. While the process was costly (several thousand dollars), it took only about 3 days out of a four-month dev cycle to complete. With the full game expected to include around 10,000 words, a significant portion of the budget is reserved for translation. With that said, while localization requires a large financial investment, I feel that it’s a key step in reaching a wider audience.

Thank you for reading! If you have a moment, I’d really appreciate it if you check out the Flocking Hell page on Steam and wishlist if it’s the game for you.

110
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Rise_Dev on 2024-10-15 12:32:39+00:00.

111
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Chopping_Slime on 2024-10-15 06:43:30+00:00.

112
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Asset_Quest on 2024-10-14 09:55:29+00:00.

113
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/pixel-boy on 2024-10-15 11:00:50+00:00.

114
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/SteinMakesGames on 2024-10-15 10:19:22+00:00.

115
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/DoubleVGames on 2024-10-15 07:52:56+00:00.

116
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/OnTheRadio3 on 2024-10-15 07:22:06+00:00.

117
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/PLYoung on 2024-10-15 07:01:31+00:00.


I've been working in Godot for the past 12 months. Many of those were to try out various prototypes while I get used to working in the engine. I've finally finished a game Godot and decided I will be doing the next project in Unity (which I have 15 years experience in). The game I created in Godot is a 3D game and I could achieve the look I wanted and I believe Godot can totally handle the kind of games I make but there are still some issues that eats into my productivity or just annoy me.

Something that was really annoying is when I had to restructure the project folders. I started with Godot 4.0, which would crash if you dare move or rename folders/files. This has gotten much better though. I've kept up with updates and using 4.3 now. Still, when I had to move some folders that include models and exported materials the other week all the models lost their "connection" to these exported materials and I had to redo it all.

The export system is not much fun to work with in the way you tell Godot what to include in the packages for export. There is also not a way to define compiler directives right in the editor when you use C# so I can not as easily create different builds to include/exclude code that targets specific store like steam or itchio. I do not want the Steam API related code in my itchio builds for example. I could probably build some tooling to handle this though but did not go that far as the current game is Steam only.

The editor UI is too static. I need to be able to customize it to my liking. Need floating panels that you can dock however you like, like in Unity. There were also other UI related issues but they are small things that count up to make the overall experience a bit worse than it should be.

While I have not used it actively I am not confident with how the humanoid animation and retargeting works. I've watched a few vids and looks like you could easily break it and then have to redo everything. Everything around animation feels like I can at any moment break something. Which reminds me of one annoyance, duplicating nodes. If I have an animated button prefab in a scene I can not just make a duplicate of it and always have to drag in a new instance of the prefab to be sure that the new button works/animates correctly. I guess duplicate shares some library/state.. I dunno. Duplicated objects just felt very fragile overall.

We need that Godot asset store. This is a big one for solo devs or smaller teams. I'm a programmer so I depend on 3rd party art and sound assets a lot. Well, art and sound in general is still fine since I can easily export what I own from Unity/Unreal's asset stores but then there are the particle effects or occasional shader. Since I am not that good at art design I'd rather use particle effects build by someone who is good at it but it can take a while to rebuild such effects in Godot while if I was working in Unity it would just be an import and I'd have a bunch of good looking effects to use as is or tweak.

I still enjoyed working in Godot and hope I can use it again for a project after a few more updates. Looking forward to it growing to be a top competitor.

ps. this sub needs more flairs if you going to force us to use flairs to make a post. Nothing available really fits with the post I made.

118
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/SeaStove on 2024-10-15 02:48:13+00:00.


Hey all! I went through Brackey's tutorials, but I'm a little confused when it comes to making a second level. Are you intended to make a "MainScene" that has your hud, game manager, player, inventory, etc - and then load your levels as a child of that scene?

For instance I'm trying to make a simple golf game, but am unsure what parts of my level should be packaged as a scene together

Would it be that flag and terrain get packaged into "Level1" and then get loaded as a child of my top level Node2D? Did my level even need to be in a Node2D - or could it have just been Node?

Thank you in advance! I feel pretty close to wrapping my head around the basics of this engine, this is a big question I still have though :)

119
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/birdukis on 2024-10-15 01:34:41+00:00.

120
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/InTheBoxDev on 2024-10-14 23:12:23+00:00.

121
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/ArchangelSoftworks on 2024-10-14 21:02:50+00:00.


It would be bad practice to change it directly, much better to signal up to the ceiling

122
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/OujiAhmed on 2024-10-14 19:49:31+00:00.

123
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/dead_pigeon_games on 2024-10-14 18:06:19+00:00.

124
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/_michaeljared on 2024-10-14 17:44:23+00:00.


New version of the Blender-Godot Pipeline has dropped! Now you can export a scene full of objects in Blender, and have them import as individual packed scenes in Godot.

Just as a reminder to the Godot community that the importer (the GD script files) are, of course, open source and available here.

I would encourage technical folks to play around with this and even develop your own pipelines. The GLTFDocumentExtension class even offers a better way of pipelining that I haven't had time to dig into. My solution has been to parse the GLTF files (and the generated GLTF from the .blend file) directly to acquire the information I need.

For those of you embarking on large game projects, these types of workflows can definitely save you a lot of time (and money).

See how I did things, improve on it, etc.

For non-technical folks, the Blender addon will help you set a lot of the technical parameters inside Blender. This allows you to iterate on your models quickly. Make some changes, see how things look in Godot, tweak your models again in Blender, and repeat.

125
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Digot on 2024-10-14 17:02:21+00:00.


Hi! I briefly wanted to share our experience working on a commercial 3D game with Godot:

When we started, we had three to four years of professional Unreal Engine experience, so we had a solid foundation. Godot was always on our radar, and we decided to try it for about a week to see how we liked it and how much progress we would make. I have to admit the decision was a bit rushed, but after that week, since we really enjoyed it, my friend and I agreed to use Godot for our first commercial game.

The first weeks were great. The developer experience was awesome; things were well-documented, and the engine was lightweight yet powerful. We made a lot of progress, and I'm confident Godot played a huge role in that. But as the project grew, things started to slowly fall apart.

Every week, a new issue appeared. Save games would break without any error or crash, and commits completely unrelated to saves (we triple-checked the right ones) caused this. We also encountered random "type not found" errors on 4 out of 5 game starts which really slowed down iteration and had several other issues. But what was a huge issue was that we really struggled to achieve our desired visual look without sacrificing too much performance. Even after some weeks of trying & playing around also with features like VoxelGI or SSGI, it just never looked how we wanted. I was really confident to sort these issues out somehow and spent hours of researching, looking through issues, the engine source code but it really took away so much time from developing the game itself.

Frustration built up as Godot seemed to prevent us from making the game we envisioned. So, we made the tough decision to abandon Godot for now and rebuild everything using Unreal Engine. While I'm not a huge fan of Blueprints and don't think we need C++ for such a game, you have to admit: Unreal just works, and you can really rely on it.

Fast forward a few months and we have now have just released our demo that properly envisions our idea for the game. I would really love to have an engine with Godot's live variable changes, hot reload and small size, combined with Unreal's visuals and stability. And even if Godot wasn’t the right fit for that project, I am really confident we’ll use it for future games, and I really look forward to that.

Would love to hear your your opinion on working with 3D in Godot!

EDIT:

I uploaded a better comparison below the top comment & because someone asked, the game is called Deepest Dungeon and a Demo is available on Steam

Also for clarification, everything in our levels is procedurally generated so we couldn't use static lighting which eliminated some promising options.

Godot (left) vs Unreal (right) - I know, not the same situation but it gives you an idea of the difference.

view more: ‹ prev next ›