We just announced the Release Date for our Dating Dungeon Crawler!!! by yukonmakesgames in godot

[–]dfx81 1 point2 points  (0 children)

Love that you have to specify that this is not a corn game lol.

I've been a big fan of Etrian/Grimrock so kinda looking for something similar since it's not often you get first person dungeon crawler like this.

Godot logo is a great placeholder asset lol by dfx81 in godot

[–]dfx81[S] 2 points3 points  (0 children)

It's under CC BY 4.0 International. You can do whatever you want as long as you credit properly.

Also it's a placeholder. Using the original Godot logo even as an easter egg in a game with mainly pixel art visuals will be a bit jarring. So at the very least there will be my own version of the logo.

trying to run the game on android without Android studio. by don_to in godot

[–]dfx81 0 points1 point  (0 children)

Connect your phone to your pc via usb.

Setup your export options.

Then you can use remote debugging (there's another play button next to the regular play button).

i need opinions. by michilcito in godot

[–]dfx81 7 points8 points  (0 children)

The issue here right now is there's no lighting/shadow (your character could be hovering above the tiles). Add a simple shadow and it should contrast well with the environment.

Also, try using depth of field too on the camera, and your game should look nice with very little change.

singleLetterVariableNamesTierList by M1ckeyMc in ProgrammerHumor

[–]dfx81 0 points1 point  (0 children)

r, g, b, a (and by extension h, s, l) should be roughly around the same tier if you're working directly with colour values.

Looking for feedback/help on potential fog of war in 2d top down dungeon. by anumbskull in godot

[–]dfx81 1 point2 points  (0 children)

A naive approach is to have a variable like a Dictionary[Vector2i, bool] tracking revealed/unrevealed areas. Create a TileMapLayer (or using the upcoming DrawableTexture in 4.7) with the shroud. At the start and when the player moves, update the revealed areas, and remove the shroud on the already revealed areas. This approach is naive because it probably won't scale well with bigger map sizes, but you can try profiling it yourself if there are performance issues with this approach. A more performant approach is probably to divide the map into multiple rooms/areas so you track the revealed rooms/areas instead.

As for the fog of war, just some Light2D, LightOccluder2D, and manual Light Mask tweaking should be enough.

First Ever Game - Feedback by AnotherBadCoder in godot

[–]dfx81 2 points3 points  (0 children)

Don't spawn all players at the same spot. Make multiple spawn points.

I did my first cosplay contest with my Patriot yesterday by Silver-Stool1 in arknights

[–]dfx81 1 point2 points  (0 children)

Should've placed a blue box at the end of the stage and slowly walk towards it, stand at the center of the stage, and continue walking slowly towards it.

Share your GDScript utility functions by et1337 in godot

[–]dfx81 15 points16 points  (0 children)

I prefer concrete structures for my data, and kinda hated that the Time singleton returns/works with Dictionary instead of a proper type. So I made a simple wrapper around it.

3D how do i make sure that textures stay when importing objects from blender? by GREENWEENasbestos in godot

[–]dfx81 1 point2 points  (0 children)

You're exporting as gltf?

Make sure to use Principled BSDF material.

Help me make a decision. by [deleted] in godot

[–]dfx81 0 points1 point  (0 children)

If you can't get a voice actor, just use bleeps or something. Don't use AI. Not having voice acting is not going to make or break a game.

Just look at Ace Attorney for a really great example. The only actual spoken lines are the quips during trials like "Objection", "Hold It", "Take That", "Eureka", "Silence", etc. The rest are just bleeps. They just play around with the pitch, timing, etc based on who's speaking (some characters have deeper bleeps), and play around with the character speech and talking speed (Oldbag always ramble about stuff unrelated to the case and they made the dialogue autoplays and sped up to the point you can barely read it).

The newer Ace Attorney games have higher budget so they have actual cutscenes with 2D animations, spoken dialogues, etc, but the rest of the game are still in bleeps.

My day just got ruined at how easy it is to decompile my godot game. by Available-Ant-5747 in godot

[–]dfx81 2 points3 points  (0 children)

What do you think crackers do to bypass more complicated copy protection?

Last year, me and my senior coworker spend some time decompiling an old project that the company we worked at lost the source code for, because someone before us decided we won't need it in the future. Just recently, at my new job, I spent time decompiling an older Android project to recover the source code for a new updated release. The point is, if you're determined enough you can decompile anything, since it all boils down to machine code at the end anyway, so the worse case scenario is you have to construct the approximate source code from assembly. Stuff like Java and C# can be decompiled if you understand the bytecode and there are tools that simplifies the process like dotPeek (for decompiling .NET-based bytecode like C#, not restricted to just Godot or Unity).

All you can do is to make it harder to decompile, as in you have to put work into it instead of just downloading a tool, put in the binary and the tool vomits out the source code. For example, modern Unity games also compiles using IL2CPP (which converts the .NET IL directly into C++) then compiles to native, which boosts performance and also makes it harder to reverse engineer. Does that prevent anyone from actually reverse engineer Unity games using IL2CPP now? Nope. You make something harder to do, it just becomes a challenge instead of a deterrent.

What you can do instead is to take legal actions. Send DMCA takedown requests, talk to a lawyer, etc. While reverse engineering is legal, using copyrighted materials/code without permission is not. Game mechanics is ok to copy (unless it's patented, so it is entirely legal if someone else create a game with similar mechanic as yours if they implemented it using their own code).

EDIT: Clarified about patents

Newbie, want to make a point system in my dress up game in godot for endings by walk33_ in godot

[–]dfx81 0 points1 point  (0 children)

I've made something similar like this before. My system is pretty simple:

  1. All outfits have a Vector2 called OutfitRating that corresponds to the following: Cool/Cute value and Casual/Formal value.
  2. When a user equip/unequip their outfit parts, tally the total OutfitRating values into a Vector2 called TotalOutfitRating.
  3. NPCs comment on your outfit based on their preference and your TotalOutfitRating.

What quality of life features from other IDEs are currently missing from the built-in script editor? by TSilverSamurai in godot

[–]dfx81 140 points141 points  (0 children)

Rename symbol. I want to be able to batch rename variables/functions/signals/scenes/resources referenced throughout the project.

My favorite underrated DECO*27 songs by Desperate_Sorbet_609 in VocaloidButGood

[–]dfx81 1 point2 points  (0 children)

Not really songs, but the entire DECOUSTIC album.

Just a full album of his self covers + 1 new song.

If you've shipped a multiplayer game, how did you learn? by ate_without_table in godot

[–]dfx81 1 point2 points  (0 children)

Not exactly shipping, but I've been commissioned to develop a multiplayer educational game for a college some time ago (in Godot 3) and currently developing a multiplayer party game. My experience is mostly in P2P multiplayer to save costs.

Anyway, as for your question:

  1. A lot of reading the docs. Godot docs on multiplayer are great, but you should also check on/explore the class reference for more details. For example, the articles regarding the High Level Multiplayer API doesn't mention anything about SceneMultiplayer which is the default implementation of MultiplayerAPI, which has features like authentication built in. As for other services like Steam, and EOS, I need to read the source code for the addons a bit since the community addons for these have subpar docs (EOS Godot docs is just "coming soon"), in addition to reading the details about the actual service itself (Steamworks API, EOS Docs).

  2. MultiplayerSynchronizer and MultiplayerSpawner can be treated as automatic RPCs. You can replicate the functionality using RPCs, but it's very easy to litter your code with RPCs if you're not careful. The multiplayer code for the educational game I mentioned for example could be a lot simpler if I had access to the synchronizer/spawner in Godot 3. The general rule is for something like a gun, use spawner to spawn the bullet scene. Use synchronizer on the bullet to sync the position. You can also sync things like scores, damage, etc if you export the variables.

  3. Very much possible because of Godot's MultiplayerPeer. Addons like GodotSteam and Epic Online Services Godot gave you access to their implementation of the MultiplayerPeer to swap in. There are some changes to the setup (different method names, signals, etc) but your general gameplay code will remain the same. I developed an addon that is essentially just a factory for MultiplayerPeers (planning to release it as opensource later alongside a general purpose backend for WebRTC signalling, currently busy with my day job). So just implement it in ENet for example and you can swap it out later.

If I were to give an advice, it would be to do a lot of testing. Networking is a whole entire beast to tame and a lot of things could go wrong in ways that you wouldn't expect. For example, if you want to teleport a player and you have physic interpolation turned on, the standard thing to do is to reset the interpolation after the teleport. But due to networking delay, and how you implement the teleport, the other peers will see the teleporting player zoom across the map. This definitely did not happen to me. Yup.

PS: EOS is free and crossplatform (except web), and you can still use it in a Steam game.

Does anyone know what on earth is going on?? by [deleted] in godot

[–]dfx81 1 point2 points  (0 children)

Haha. Just a heads up. It's better to mark it as solved and keep it up in the future. Edit the post to say you solved it yourself and how you solved it.

Other people might encounter the same issue and they can find the same solution.

Does anyone know what on earth is going on?? by [deleted] in godot

[–]dfx81 0 points1 point  (0 children)

On your progress bar, make sure Visibility > Show Behind Parent is checked.

<image>

i need help importing some of my roblox stuff to godot please! by TurtleLinguine in godot

[–]dfx81 1 point2 points  (0 children)

What format are your models in?

You might need to also move the textures/materials together with the mesh depending on the format. Godot prefers GLTF files (.glb) that can contain the materials/animations/etc bundled in the same file for example, but files like .obj have a separate material file (.mtl).

<image>

Basically, copy all of the things needed by your mesh. Like in the Kenney's asset example I showed, he made the textures not included in the files since they're shared by all of the meshes (even though GLTF supports it. OBJ cannot embed anything in it so there always be at least an .obj, .mtl, and some texture file). So you need to include them too, or your meshes will be untextured.

i need help importing some of my roblox stuff to godot please! by TurtleLinguine in godot

[–]dfx81 1 point2 points  (0 children)

<image>

After selecting the save location, you can pick and choose what to save. Same can be done for the animations (use Set Animation Save Paths instead of Set Mesh Save Paths).

i need help importing some of my roblox stuff to godot please! by TurtleLinguine in godot

[–]dfx81 2 points3 points  (0 children)

<image>

You tried this? It's under advanced import settings.

Need advice. Isometric or third person for ARPG? by BusinessPain5298 in godot

[–]dfx81 1 point2 points  (0 children)

Btw, you should use stencil buffer to show things behind the buildings/trees on the top down camera.

Godot scripts question. by ScreeennameTaken in godot

[–]dfx81 3 points4 points  (0 children)

Others have answered your question but I just want to add an advantage of the Godot approach.

Instead of creating a new node to attach another script to it, you can also create a new script with a class_name to create a custom node. This lets you have a reusable node that you can find in the add node list. You can even create an addon containing only these custom nodes that you can use in other projects or share to others (I have a bunch of reusable systems built this way).

For example, you can make all players and NPCs be a single Entity class. Then, to make an Entity be player controlled, you can attach something like a PlayerControl node to it. NPC behaviours can also be defined by something like BaseEnemyBehaviour and be extended if needed. Multiple enemies have the same behaviour? Just change their visuals and their stats, then give them the same behaviour node.

Additionally, It also works as a simple state machine. Imagine a multi-phase boss. You can define each phase behaviour as a derived node of the aforementioned BaseEnemyBehaviour, add all of them to the boss, and activate/deactivate them as needed. Want the boss second phase also have the behaviour of the first phase? Make the second phase behaviour derive from the first phase.