• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics with the tag "game engines". Back to normal view
    1. Any beginners advice or resources on developing a 2D RPG/Puzzle video game?

      Hey guys, I hope this is the right place to post. So my adhd hyperfixation has recently shifted towards an idea for a game and I want to indulge my ADHD by learning all I can about game...

      Hey guys, I hope this is the right place to post.

      So my adhd hyperfixation has recently shifted towards an idea for a game and I want to indulge my ADHD by learning all I can about game development to see if I can achieve this idea to the point that maybe I can put it in "Early Access" to fund even more resources on it.

      But I'm not sure where to start. I'm looking into Godot because it's free and open source and has a lot of community resources, but also wanted to see if anyone had any ideas here.

      I have some coding experience, a lot of technical experience and pick things up extremely quickly.

      The basic idea is that it's a 2D Sidescrolling RPG, but with Match-3 "Candy Crush"-esque mechanics for battles and fighting.

      Extra details If you've played "You Must Build A Boat" or "10000000", it's a LOT kind of like that, in fact those games kind of inspired me, but more refined with a lot more in depth RPG elements and it's a bit more forgiving focusing on keeping a "flow" going, since one of my biggest pet peeves is YMBAB's RNG being very unforgiving and you'll randomly just sit there staring at the board with no moves until you die.

      So the systems/mechanics I'd need to combine to work together are the following:

      • A Match-3 type board where you match tiles, make special tiles by combining 4 or more tiles, all the features of a typical match-3 type game, just tied to outcomes outside of the board-interface.
      • An RPG element, with character attributes, leveling, items, spells, weapons, gear, potions, etc. These elements effect what tiles are on the board during gameplay, effect the chances of certain tiles, and effect health, speed, mana, or grants special in-game abilities like "Precognition"(gives a hint for a move), or "Scroll of Revival"(You can continue without starting over), etc. Attributes also effect things like tile chances, so a higher strength will get you more combat/physical tiles, or a high intelligence will get you more magic tiles.
      • Visual Elements include an auto-running sidescrolling viewport while Dungeon Running. Character auto-runs until encountering enemies, running is not controlled by player. Match-3 board will be beneath that. Time between enemy encounters can be used to clean up the board and match unneccesary tiles, make special moves to line up for next battle, or to replenish health.
        • During Battles, it'd be an over-the-shoulder battle view, similar to Pokemon style battles. Character will have health, enemy will attack character at regular intervals, player will have to balance matching combat/weapon tiles to attack enemy, and matching health/mana potion tiles to replenish health or mana(if they have potions equipped). Enemy can cause environmental effects like poison(some tiles will be poisoned so you lose health if matching them), or being frozen with ice(You need to break tiles next to the ice tiles to break them), or confusion(switches the colors of tiles). Will be block/parry mechanics, occassionally for a few seconds before the enemy strikes, you're required to match a designated tile to either block or parry that attack.
        • In a saferoom it'd be like an isometric kind of "inside a building" format like in Pokemon, just more detailed. I'd like to have saferoom customization and the ability to upgrade your character or gear too.

      Anyways, I'd love any advice or resources. Or if you'd like to help out or discuss the game idea more I'm up for that too.

      16 votes
    2. Godot beginners: Here's how to fade in a 3D mesh

      I'm still a beginner at Godot. I've been playing with Godot and 3D scenes. It's great finally feeling comfortable enough to navigate the UI from watching the tutorials from Zenva/Humble Bundle....

      I'm still a beginner at Godot. I've been playing with Godot and 3D scenes. It's great finally feeling comfortable enough to navigate the UI from watching the tutorials from Zenva/Humble Bundle.

      Recently something that sounds straightforward took a long time for me to figure out: Fading in a 3D mesh. The solution is simple:

      @onready var mesh: MeshInstance3D = find_child("body-mesh")
      
      func _ready() -> void:
      	_set_material_alpha(0)
      	SomeSingleton.some_signal.connect(_fade_in)
      
      func _set_material_alpha(alpha: float) -> void:
      	var material: Material = mesh.get_active_material(0)
      	if material is StandardMaterial3D:
      		material.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS
      		material.depth_draw_mode = BaseMaterial3D.DEPTH_DRAW_ALWAYS
      		material.albedo_color.a = alpha
      
      func _fade_in() -> void:
      	var tween = create_tween()
      	tween.set_ease(Tween.EASE_IN)
      	tween.tween_method(_set_material_alpha, 0.0, 1.0, fade_in_duration_seconds)
      

      The key being setting the material properties and using its albedo color to update transparency. The depth draw mode is needed, otherwise the result is ugly with jagged pixels during the tween.

      Getting to the solution was the hard part. Searching forum posts I was led down some rabbit holes like using shaders—overkill for this situation. (There is a cool site though, for when I do end up needing custom shaders: https://godotshaders.com/.) Asking an LLM also didn't help much, probably because my prompt was wrong. I tried again just now and it gave me something closer to a correct solution, but missing some parts like the depth draw mode, which (by trial-and-error and reading the docs) I found is necessary for a good quality render, when using transparency.

      Another small pitfall I found was that trying to change the material.transparency caused stutter. I was trying to disable transparency when the mesh was at 100% alpha, since I figured opaque rendering is cheaper. However I speculate the engine recompiles the shader when I turn off transparency, which causes the stutter. So I don't modify the material.transparency beyond that initial setting.

      Also thought I'd mention, I'm using free placeholder art assets from https://kenney.nl/ - an amazing resource.

      Aside: Shaders

      During this I learned that adding shaders to an imported 3D model in Godot is somewhat convoluted:

      1. Import the .glb model
      2. Clone the auto-created scene to an inherited scene, because I'm not allowed to directly edit that auto-created scene
      3. Extract the material (UV colormap image) from the .glb by double-clicking it in the FileSystem tab
      4. Apply the extracted material to the mesh under Surface Material Override
      5. Add a "Next Pass" material, a ShaderMaterial, to that surface material override
      6. Create the shader script
      7. Pass in parameter values from the GDScript to the shader script using code like: shader_material.set_shader_parameter("color", Color(1.0, 1.0, 1.0, alpha))

      This didn't work so well for me though, because the shader I was using was changing the ALBEDO and turning things white. If I knew anything about 3D programming I'd probably find a way to update the existing color value at each pixel, instead of setting albedo white everywhere. The end result of the shader I was using was that the models were turning too white. So that was a dead end.

      Anyway mainly leaving this here as reference for posterity. Feel free to share a story or constructive feedback if there's anything.

      21 votes
    3. GUI dev using Godot

      Most of my professional work involves the plumbing side of things (e.g. APIs, integration etc.) So I've come to front end quite late, and dabbled in HTML/CSS/JS frameworks, and tried to create a...

      Most of my professional work involves the plumbing side of things (e.g. APIs, integration etc.) So I've come to front end quite late, and dabbled in HTML/CSS/JS frameworks, and tried to create a thing or two using Python GUI frameworks too.

      After spending a bit of time learning about game development in Godot, I decided it might be fun to try and build a simple desktop app in the engine, and it surprised me how easy it was, it took me a day or two to build a basic git front end.

      Of course, if you ever need to build something outside of GDscript, it'll require building an extension, probably in C++, but it makes me wonder if those sorts of tools exist outside of games engines? It feels like game devs get a wonderful tool that they use as a garnish on top of the real work (the game).

      I'd be keen to know what people who regularly build front end tools tend to prefer to use.

      ETA: I just realized the title is a poor summary of what I'm actually asking about, sorry!

      22 votes
    4. [SOLVED] Bug: Text labels disappear in settings menu

      I'm touching up a game with a dev who is getting their code ready for a FOSS build of their game. One of the more persistent bugs is something weird in the settings menu, where an option is...

      I'm touching up a game with a dev who is getting their code ready for a FOSS build of their game. One of the more persistent bugs is something weird in the settings menu, where an option is focused and checked off, the text label disappears. Color override doesn't seem to affect the behavior, but if I go into the game editor and uncheck Clip Content and Follow Focus, the behavior flips and now it's focused and UNchecked text labels that disappear. I'm putting feelers out for advice on the usual haunts, and I thought I would ask here too.

      Godot version is 3.6, the only modification is that it uses Godotsteam.

      5 votes
    5. Have you made a video game? Can I play it?

      I've had some ideas for a game simmering for a while now and I've finally committed to learning Godot to see what I can put together. I'm still in need of some inspiration, though, and I know...

      I've had some ideas for a game simmering for a while now and I've finally committed to learning Godot to see what I can put together. I'm still in need of some inspiration, though, and I know there's a few folks around here who have made games. Complete, polished, sketchy, half-baked - doesn't matter! - I'd love to see what people here have come up with!

      49 votes
    6. Godot Engine

      So, by now everyone knows about the big outcry over Unity's big runtime fee. Even if they backtrack, I foresee MANY developers leaving Unity because the trust has been damaged. So there are two...

      So, by now everyone knows about the big outcry over Unity's big runtime fee. Even if they backtrack, I foresee MANY developers leaving Unity because the trust has been damaged. So there are two options to look at now: Unreal and Godot. I have no experience with Godot personally, but I know there are people on here who do.

      So, to those with experience with it, here's the chance to share your expertise and knowledge! What do you want new users to know about it? What do you consider its strengths and weaknesses? What resources would you recommend for new users? Any particular tips and tricks? And also, what are some games you know made with it you'd recommend, either to give people ideas of its capabilities or just because they're good games?

      98 votes
    7. Any Bevy (the Rust game engine) users here?

      Bevy just released their version 0.11, so I figured it would be a nice opportunity to ask the Tildes gamedevs if they were using it :) Bevy is a rust game engine - more like a set of libraries...

      Bevy just released their version 0.11, so I figured it would be a nice opportunity to ask the Tildes gamedevs if they were using it :)

      Bevy is a rust game engine - more like a set of libraries actually - that's been gaining popularity the last few years. It has become the de facto toolset if you want to make a game in rust. It is very opinionated towards Entity-Component-System (ECS), and uses the pattern to facilitate parallelism and multi-threading.

      Personally, I'm using the bevy-ecs lib (not the whole engine) to write a roguelike and hone my skills in rust. I enjoy it but it's not really beginner-friendly. The official docs are lacking, and you'll have to dig in the auto-generated api docs to make the most out of it. However, I appreciate that each release not only brings new features, but also refines existing ones. The engine is getting better - not only bigger - release after release.

      16 votes
    8. Deciding between Godot and Unity

      Hey, all. I'm back four weeks to the day after you guys gave me a lot of great advice about potentially making a 2D RPG out of my tabletop RPG. I decided to try both Godot and Unity given what...

      Hey, all. I'm back four weeks to the day after you guys gave me a lot of great advice about potentially making a 2D RPG out of my tabletop RPG. I decided to try both Godot and Unity given what people told me and I completed two tutorials for each over the last few weeks. After completing these two tutorials, I have some questions that I hope maybe some of you can answer to help me choose between the two.

      TL;DR at the bottom. This is a long post.

      For context, here's the tutorials I did:

      Godot - https://www.davidepesce.com/godot-tutorials/
      Unity - https://learn.unity.com/project/ruby-s-2d-rpg

      To be frank, the Unity tutorial wasn't really an RPG. There were no stats, no quests, XP. It was much more of an adventure game. That's fine, it still gave me a lot of time inside the engine to learn a lot of basics.

      So, working with each one had it's own up and downs.

      Unity's use of an external scripting program seemed to hurt me quite a bit, from simple things such as forgetting to save before going back to Unity (I did this way too much) to having to declare public variables in the script and then filling them in the Unity GUI rather than just doing it all by script. The editor itself also seems to be kind of heavy, I was get the spiral beach ball for a second or two every time I went between the script editor and Unity and I have a machine that can edit 8K video without proxies. These general load times and stuff like that seemed to come up regularly. Tilemapping in the tutorial didn't include autotiling, I assume Unity has this somewhere built in? Or do you need to purchase an asset to get this functionality?

      On the plus side, Unity overall seemed easier to use for a non-programmer. A lot of things are done through the GUI. Animations seem easier to handle for sure. The Unity tutorial was also more written for someone that hasn't coded much as it explained what specifically the code was doing (so I assume more resources for Unity will be helpful in that way that perhaps Godot will not).

      For Godot, GScript was easier to use than C#, but I do feel like it was easier to get my head around prefabs in Unity than the Node system in Godot. The Godot tutorial took almost twice as long as the Unity one, but I don't know if that's because Godot is more difficult or the combination of the Godot tutorial being more thorough (I feel like I mad an actual, if very uncomplicated game, plus I did Godot first, which probably helped me just learn more about scripting and thinking like a programmer that I took into Unity). The node/scene system seemed more difficult to get my head around than game objects and prefabs. That said, my Godot program felt very tight. There weren't things happening that I was having a tough time explaining or figuring out why they weren't working quite right, at least at the graphical level (this might have more to do with the Godot tutorial using 8-bit graphics and Unity using a more modern sprite look). Having the scripts in the editor meant I never ran into a case like in Unity where I couldn't attach code to a game object because it was failing to compile, but it was failing to compile because it wasn't attached to a game object (that headache took at least a half an hour to sort out).

      Overall, I was able to finish both tutorials mostly understanding what the code I was given was doing and was able to edit it to get some different affects and kind of just play around. So, on that level, I'd say they're about equal.

      One big thing I want for sure out of the engine we use is to be able to handle a lot of conversations and variables there from. We're hoping to make a "choices matter" (TM) game, and very story/dialog heavy. Ink seems like a good plug-in to do this in Unity, but implementation doesn't seem easy (though I did find a pretty good looking tutorial that may help de-mystify). Godot seems to have some assets available for handling dialog trees, but i haven't had a chance to really dig in to them yet. So, that could definitely be a decider for me: which engine has assets that make a dialog/choice heavy game easier to make.

      While I had originally thought about making a tactics RPG for this project, looking around at both the Godot and Unity scenes, it seems like few people are making these types of projects that are giving out free advice on how to make them work in those engines. After talking with my team (I have a team!, see my post from a while back), it seemed like a good idea both to keep the game within the scope of a novice, but still tell the story we wanted, to do a skill role system instead. Since this came from a tabletop session anyway, seemed to make the most sense to do skill rolls rather than develop a whole combat system.

      TL;DR - Looking for advice on which engine, between Godot and Unity, would be handle a 2D RPG that relies on a lot of dialog and choices along with skill rolls for the gameplay. Thanks in advance!

      12 votes
    9. Turning my tabletop game into a real video game

      So, I am a filmmaker by trade. I understand scripting, pacing, etc. I also have been doing a lot of tabletop design, running a campaign for years with continuity, recurring characters that I...

      So, I am a filmmaker by trade. I understand scripting, pacing, etc. I also have been doing a lot of tabletop design, running a campaign for years with continuity, recurring characters that I design from the ground-up (excluding the rule system, so just all the dungeons, NPCs, plot devices, etc).

      With covid, film production has really slowed down and I have some time on my hands, so I thought about trying my hand at video game making, something I have honestly toyed with for decades, but never did too much of. I did have a brief window in the 00s when I had RPG Maker and I made some demos that my friends enjoyed, but that's about it.

      So, given that my programing knowledge is super limited (I took a few Java classes over a decade ago and used to do HTML in the 90s), my graphics making abilities are near non-existent (I'm good at motion graphics, but not pixel design or 3D graphics), but I have what I think is a good plot, characters and game design, what should be my first steps in trying to make this a reality? What engine should I use? I have no problem buying, for a couple bucks here and there, other people's art and what not. Ideally, probably make a 16-bit esque RPG, like FFIV, Earthbound, etc. but perhaps with more of a BioWare, "choices matter" type dialog/questing system.

      I don't expect to set the world on fire, but I do want to make what would be considered a decent looking first effort from a one man novice that, if nothing else, would be a fun experience for me to make and something fun to give my players as a gift (as we are reaching the end of the story of our campaign). And maybe, why not, something I could release for the broader public if the core is good and it's worth me hiring a few more people to help me polish it. Maybe it won't. As a filmmaker, I know how bad first films are, and a lot of times they are just learning experiences that you keep on a hard drive locked away somewhere. So, trying to be realistic while excited.

      Appreciate advice.

      14 votes