• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics in ~comp with the tag "game". Back to normal view / Search all groups
    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. Ideas for a side project I'm working on -- an RPG to help me curb my alcohol consumption

      Preface: I am familiar with Habitica. This idea would probably scratch a similar itch, but I'm also using this as an opportunity to sharpen my Rust skills. My idea came about when I was trying to...

      Preface: I am familiar with Habitica. This idea would probably scratch a similar itch, but I'm also using this as an opportunity to sharpen my Rust skills.

      My idea came about when I was trying to find out some new tactics to curb my alcohol consumption, which isn't quite out of control yet, but I don't want to tempt fate.

      I've also really liked the progression aspect of RPGs. What if I could gamify my quest to not drink alcohol and make it sort of a fun, unique RPG experience at the same time?

      In the broadest sense, it would go something like this:

      • You open the game up, ideally each day. You are instantly prompted: "Did you drink yesterday?" (and perhaps it will go back a few more days if you skipped).
      • For each day you answer "no", you are rewarded with some sort of tokens, credits, etc. -- currency to play the game. If you answer "yes", maybe you get penalized somehow.
      • Then, you pick up your journey, which is sort of a standard RPG experience -- fighting battles, buying gear, learning spells, leveling up, advancing through the world, you name it.
      • The game should get progressively more difficult, but should not have an ending, as "quitting alcohol" does not have an ending either. At the same time, it should scratch the RPG progression itch.

      The initial game concept I came up with is just one that I see as the quickest way to get this off the ground, which would be something CLI-based, where you are presented with a menu ("visit shop, enter arena, view equipment" etc.). You spend battle tokens to enter into arena battles, which reward experience points, money, and gear. You level up, work towards a build (there needs to be a way to respec because restarting isn't really an option), and progress through the arena.

      In total, you would probably spend less than 5 minutes every day playing the game, which is by design. It should be an every day habit. But, there should be enough entertainment value that, if I'm not getting those sweet battle tokens by not drinking, I'm missing out on experiencing the game (or, I could lie, which defeats the purpose of the app).

      So that's where I'm at right now. I'm really interested to hear your thoughts, ideas, critiques, etc. before I spend a free weekend building out a concept.

      Some questions in particular:

      • I was leaning toward just building this in CLI because it will be extremely simple. It could just be a matter of STDINs. However, I'm open to other Rust-based options. Is there a good Rust UI toolkit or web framework that is worth looking into that would make this a little more modern?
      • What about game features? What could make this a really fun experience, while also balancing the whole concept of being built around your life and your habits?

      In the end, this is a deeply personal project that would be built, first and foremost, for my specific needs. But that's not to say I couldn't build it with some scalability in mind. Rather than asking about alcohol, perhaps the "habits" can be customized, and so forth.

      Anyway, have a great weekend!

      23 votes
    4. Game development career advice

      Hi, I'm curious if anyone in this group has achieved success in game development, whether that's carving out a career or earning any amount of income from it. I'm currently working as a software...

      Hi,

      I'm curious if anyone in this group has achieved success in game development, whether that's carving out a career or earning any amount of income from it.

      I'm currently working as a software developer, but my passion lies in game development. I'm all too aware that achieving any measure of success in this field is next to impossible. Hence, I'm reaching out here, hoping to gather insights and advice from those who have walked this path in the past, or those who are currently walking alongside/behind me.

      One of my specific questions is about the types of games I should focus on creating. Specifically, I've heard differing opinions on whether it's more advantageous to develop a series of small games with advertisements for mobile platforms or to invest in larger, premium games for platforms like Steam. Can anyone share their insights or experiences regarding this dilemma? Is there a clear advantage to one approach over the other?

      Currently I am using godot to make a larger scale game, but I am considering switching to defold and making smaller scale games with ads.

      I saw some folks here discuss making games for the playdate. How much should one consider targeting niche platforms like this? Some of the users I saw discuss this seem to have had good success.

      Some general questions: How did you break into game dev? What were you doing before? Do you see game dev as a viable career, only as a source of side income, or is it just a hobby?

      Any guidance or experiences you can share would be greatly appreciated.

      17 votes
    5. Show Tildes - Gametje

      Gametje Hi all been working on this project for a while in my spare time. I wanted to share it with this community to see what you all thought. What is it? It is a set of online games (currently...

      Gametje

      Hi all been working on this project for a while in my spare time. I wanted to share it with this community to see what you all thought.

      What is it?

      It is a set of online games (currently only 2) which can be played in person with a central screen (like a TV) or remotely via video chat with screen sharing. Essentially there is a host screen and then each player has their own player screen (laptop or phone etc). It is playable in 8 languages at the moment (feel free to request any others!) It also has an integrated ChatGPT player which can be turned on/off in game settings if you prefer to play without it. There are some game mechanics to identify a ChatGPT answer which can yield some funny reactions if you choose a human's answer! It has Chromecast support and works well on Amazon Fire sticks. Visually, it is still a little rough around the edges as frontend design isn't my forte but the core concept is there. I have been play testing it with friends but have not shared it publicly yet.

      Why is it called Gametje?

      I have been living in the Netherlands for some years and my original motivation for starting this project was to create a game that supported languages other than English. I wanted to incorporate something Dutch into the name. tje is one of the diminutive endings in Dutch. It is usually meant to soften a word or make it "smaller". So Gametje -> a little game.

      Where can I try it?

      https://gametje.com/

      You can either create an account (user/pass with email confirm) or try it out as a guest (navigate to either game, then choose continue as guest). Currently it is free to host a game. Happy to hear any feedback (both good and bad). Hopefully the host provider I am using to run the game will hold up.

      Thanks!

      17 votes
    6. Programming Challenge: Make a game in 1 hour!

      Background There's been some talk on ~ before, and it seems like there are quite a few people who are either interested in, learning, or working in game development, so I thought this could be a...

      Background

      There's been some talk on ~ before, and it seems like there are quite a few people who are either interested in, learning, or working in game development, so I thought this could be a fun programming challenge.

      This one is fairly open-ended: make a game in 1 hour. Any game, any engine, don't worry about art or sound or anything.

      Doing is the best way to learn. Most people's first project is something overly ambitious, and when they find that it's more difficult than they thought, they can get discouraged, or even give up entirely. This is why the 1 hour limit is important: it forces you to finish something, even if it's small. When you're done, you can come out of it saying you made a game, and you learned from it.

      Chances are the game might not be fun, look bad, be buggy, etc. But don't worry about that, everyone's game will have problems, and if you do create something really fun or innovative, congratulations, you have a prototype that you can expand on later!

      "Rules"

      Like I said before, these "rules" are pretty simple: make a game in (approximately) 1 hour. You can use any tools you want. If you use external assets (art, sound), it's probably best you use something you have the rights to (see resources). If you're completely new to game development/programming, your goal could even be to finish a tutorial.

      If you're the kind of person who tends to get carried away with these things, you might want to post a comment saying you're starting, then another one once you've finished your game.

      Please share your finished game, I'm sure everyone would love to try them! If your game is web-based, it can be hosted for free on Github Pages or Itch.io. If downloadable, it can be hosted for free on Google Drive, Mega, Dropbox, Itch.io, etc.

      Resources

      Engines

      If you're a beginner, a good engine to start with is LĂ–VE. It's very simple, and uses Lua, which is very easy to learn.

      If you're familiar with another language, you could use a library to make it in that language. Some examples:

      C++: SFML, SDL, Allegro

      Javascript: kontra, Phaser, pixi.js

      Python: pygame

      Rust: Piston, ggez, Amethyst

      If you want something more complex, consider Godot, Unity, or Unreal.

      You can also try something visual like Construct, Clickteam Fusion, or GDevelop

      Art

      For such a short time constraint, I'd suggest you use your own "programmer art": just use some basic shapes. Your primary focus should be gameplay.

      If you think you have time to find something, try looking on OpenGameArt.

      Sound

      You can make simple sound effects very quickly with sfxr (or in this case, a web port of sfxr called jsfxr).

      27 votes