home.social

#lambgamedev — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #lambgamedev, aggregated by home.social.

  1. Here is a WIP of the Zelda 64-style camera targeting system. It needs improvement, but I'm really unsure as to how to go about fixing it 😅

    The project is called
    Slayer64 and is being developed by WINDBREKER
    :)

    I'm pretty proud of what I've made so far! I've come a long way since first starting to learn Godot ^^

    None of this could have been made without
    @keyschain's help! She is inseparably important!

    #zelda #ocarinaoftime #oot #legendofzelda #godot #godotdev #indiedev #lambgamedev

  2. made a very simple 2D Zelda-style camera. might work on it more as practice

    #godot #zelda #gamedev #lambgamedev

  3. Urge to make every game going forward for the Ayn Thor and Anbernic RG DS...rising.... Must r-r-resist...

    #lambgamedev

  4. I think I've reached a point where it's good enough and I can move on. I can't figure out how to get the "danger zone" flash animation working, but oh well, maybe in another 10 months I'll take another crack at it.

    #lambgamedev #indiedev #gamedev #godot #zelda

  5. The game I helped work on is out!


    TEMPEST
    BECOME ARMAGEDDON
    It's a retro-style FPS where you play as a samurai with a gun and you shoot alien invaders in feudal Japan!!
    You can play it in your browser
    here!

    Unfortunately, none of my work made it into the release, but we all did put a lot of effort into it! Please give it a try and if you have an Itch account feel free to
    rate Tempest on the 32-Bit Winter Jam!

    You can read about my unfinished work on
    Tempest on my website!

    #gamedev #indiedev #godot #32bitjam #32bitwinterjam #lambgamedev

    RE: https://transfem.social/notes/agvm2w81s7lj190q

  6. I'm not restarting the 3D Zelda project, but the broken health bar always bugged me, so I got to thinking about it more today and with a little perseverance I did it! It also works if you change the HP by amounts other than 1.

    It's little moments like these that make me think that maybe game dev isn't impossible for me, just that it requires a
    lot of thinking, breaking concepts down into smaller tasks, and time away from problems.

    class_name HudHealth
    extends Node
    
    
    const NAME_HEART: String = "HudHeart" ## The name of each heart node. Used to identify heart nodes from other nodes.
    const HRT_SECTIONS: int = 4 ## Don't change this from 4, everything breaks otherwise.
    
    
    export var hrt: PackedScene ## The heart scene
    export var hp: int = 0 setget _hp_set
    func _hp_set(value: int = hp) -> void:
    	hp = clamp(value, 0, hp_max)
    export var hp_max: int = 3 * HRT_SECTIONS ## Determines the maxmimum amount of health the player has. Every 4 hp adds a new heart to the health bar.
    export var grid_collumns: int = 10 ## Determines how many hearts can be in a row before a new row is started.
    
    onready var grid = $"../Grid"
    onready var btn_add = $"../ButtonAdd"
    onready var btn_subtract = $"../ButtonSubtract"
    onready var lbl_debug = $"../LblDebug"
    
    
    var target_heart: int ## Determines which heart in the grid should be segmented.
    
    
    
    func _ready() -> void:
    	grid.columns = grid_collumns
    
    # Empty any heart nodes that might already be children of the grid node
    	for i in grid.get_child_count():
    		if grid.get_child(i).name.begins_with(NAME_HEART):
    			grid.get_child(i).name = "_REMOVE" # Necessary for some reason or else future HudHeart node names will continue counting as if the previous ones were still there despite those already being deleted. Very strange.
    			grid.get_child(i).queue_free()
    		else:
    			printerr("There were stray nodes in the HudHealth grid node at child " + str(i) + ", name " + grid.get_child(i).name + ". Deleted.")
    			grid.get_child(i).queue_free()
    # Add hearts to grid
    	for i in ceil(hp_max / HRT_SECTIONS):
    		var h: Control = hrt.instance()
    		grid.add_child(h, true)
    		get_node("../Grid/HudHeart" + str(i) + "/Heart").value = 0 # Make all hearts' values 0
    # Ensures grid h-separation and v-separation are appropriate
    	for i in grid.get_child_count():
    		if grid.get_child(i).name.begins_with(NAME_HEART):
    			var h: TextureProgress = grid.get_child(i).get_child(0)
    			grid.add_constant_override("hseparation", h.rect_size.x)
    			grid.add_constant_override("vseparation", h.rect_size.y)
    			break # Only needs to happen once.
    
    	update_hud_health()
    
    
    func update_hud_health() -> void:
    	target_heart = ceil(float(hp) / HRT_SECTIONS) - 1 # find the target heart based on player's HP
    
    	for i in grid.get_child_count():
    		if grid.get_child(i).name.begins_with(NAME_HEART):
    			var h: TextureProgress = get_node("../Grid/HudHeart" + str(i) + "/Heart")
    # Handle all hearts before the target heart
    			if i < target_heart:
    				h.value = HRT_SECTIONS
    # Handle the target heart
    			if i == target_heart:
    				h.value = hp % HRT_SECTIONS
    				if hp % HRT_SECTIONS == 0:
    					 h.value = HRT_SECTIONS
    # Handle all hearts after the target heart
    			if i > target_heart:
    				h.value = 0
    
    	lbl_debug.text = "HP: " + str(hp) + "\nTarget Heart: " + str(target_heart) + "\nModulo: " + str(hp % HRT_SECTIONS)
    
    
    func _on_ButtonAdd_button_up():
    	hp += 1
    	_hp_set()
    	update_hud_health()
    
    
    func _on_ButtonSubtract_button_up():
    	hp -= 1
    	_hp_set()
    	update_hud_health()

    I'd like to improve it to the point where the bar fills and depletes smoothly like it does in
    Breath of the Wild, but that seems like adding complications to a currently working and serviceable solution.

    #zelda #gamedev #indiedev #indiegames #godot #lambgamedev

    RE: https://transfem.social/notes/a80qv4k7f6po6olz

  7. I'm learning programming :3

    Here's a thing I made. It sorts high scores for a local leaderboard. It must follow a
    [[HISCORE, DATETIME, NAME], [...], [...]] format (or at least the first two items must be high score and date-time).

    class LeaderboardSort:
    	## Sorts duplicate scores prioritizing the earlier datetime.
    	static func sort_duplicate_scores(a, b) -> bool:
    		if a[1] < b[1]:
    			return true
    		return false
    
    	## Sorts scores.
    	static func sort_scores(a, b) -> bool:
    		if a[0] > b[0]:
    			return true
    		return false
    
    
    ## Sorts the leaderboard array from highest to lowest score and handleds duplicate scores.
    ## Leaderboard array must be arranged like so: [HISCORE, int(Time.get_datetime_string_from_system(true)), "PLAYER_NAME"]
    func sort_leaderboard(lb: Array) -> void:
    	lb.sort_custom(LeaderboardSort, "sort_duplicate_scores") # This one must be done before sort_scores()
    	lb.sort_custom(LeaderboardSort, "sort_scores")

    It worked out for me! Let me know if there are any errors.

    Looking up "godot leaderboard" online yielded a whole lot of nothing. There was SilentWolf and SimpleBoards, but a whole plugin to just do high score sorting seemed over the top to me. So, I decided to try to make a high score sorter myself. Thankfully, Godot has
    sort_custom() that makes it a lot simpler.

    No idea what "static" functions do or what separates them from regular functions, but the Editor was telling me they gotta be static. I looked it up and the explanations aren't that helpful.

    #godot #gdscript #gamedev #indiedev #lambgamedev

  8. Oh to be in an 8-person game studio making chill games about life, fun, and growing old...

    #lambgamedev #indiegamedev #indiedev #gamedev

  9. I think I may have kinda killed it at programming this one thing in the game, I'm so happy

    No idea if it's gonna continue to work later on, but it works now!!!!

    #lambgamedev

  10. I made a little breakthrough in game programming yippee yippee

    #lambgamedev

  11. 2+ years of game dev experience
    0 video games finished
    They call her.....Lamb.....


    #lambgamedev

  12. A very cool idea: developing an arcade game in Godot for a Raspberry Pi (or alternative), sticking that bad boy in an arcade cabinet.

    Bonus points if it uses a CRT TV monitor.

    #godot #gamedev #indiedev #lambgamedev #arcadegames #retrodev

  13. Godot 4.5 just came out and oh my goodness the features, the features...

    I've been using 3.5.3 for so long that once I dip my toes into 4.5 or 4.6 or 4.7 whenever those come out it's going to feel like I'm 10 years old again

    #lambgamedev

  14. I have whipped up a quick and dirty PlayStation 2 ghosting/motion blur/frame blending effect!

    ## Creates a PlayStation 2-like frame blending effect.
    ##
    ## Add to _process(). The frame blending effect is applied to the area 
    ## within the boundaries of the texture_rect node.
    ## It is recommended to only set the alpha to less than 1.
    func frame_blend(texture_rect: TextureRect, alpha: float = 0.5, use_frame_post_draw: bool = true, viewport: Viewport = get_viewport()) -> void:
    	alpha = clamp(alpha, 0.0, 1.0) # Alpha values are 0 through 1
    
    	var image: Image = Image.new()
    	var texture: ImageTexture = ImageTexture.new()
    
    	image = viewport.get_texture().get_data() # FORMAT_RGBAH
    	image.flip_y() # Images start out upside-down. This turns it rightside-up.
    	if use_frame_post_draw:
    		yield(VisualServer, "frame_post_draw") # Changes the vibe.
    	texture.create_from_image(image) # Turn Image to ImageTexture
    	texture_rect.modulate.a = alpha # Changes the opacity of the frame blending
    	texture_rect.texture = texture # Applies the image of the last frame to the texture_rect

    I've been very preoccupied lately. I apologize about the lack of game dev updates, but I've got a lot on my plate right now and those important things takes priority.

    #gamedev #godot #lambgamedev #playstation2 #playstation1 #ps2 #ps1 #psx #indiedev

  15. I have whipped up a quick and dirty PlayStation 2 ghosting/motion blur/frame blending effect!

    ## Creates a PlayStation 2-like frame blending effect.
    ##
    ## Add to _process(). The frame blending effect is applied to the area 
    ## within the boundaries of the texture_rect node.
    ## It is recommended to only set the alpha to less than 1.
    func frame_blend(texture_rect: TextureRect, alpha: float = 0.5, use_frame_post_draw: bool = true, viewport: Viewport = get_viewport()) -> void:
    	alpha = clamp(alpha, 0.0, 1.0) # Alpha values are 0 through 1
    
    	var image: Image = Image.new()
    	var texture: ImageTexture = ImageTexture.new()
    
    	image = viewport.get_texture().get_data() # FORMAT_RGBAH
    	image.flip_y() # Images start out upside-down. This turns it rightside-up.
    	if use_frame_post_draw:
    		yield(VisualServer, "frame_post_draw") # Changes the vibe.
    	texture.create_from_image(image) # Turn Image to ImageTexture
    	texture_rect.modulate.a = alpha # Changes the opacity of the frame blending
    	texture_rect.texture = texture # Applies the image of the last frame to the texture_rect

    I've been very preoccupied lately. I apologize about the lack of game dev updates, but I've got a lot on my plate right now and those important things takes priority.

    #gamedev #godot #lambgamedev #playstation2 #playstation1 #ps2 #ps1 #psx #indiedev

  16. I'm so out of my league as a game dev, I have no idea what I'm doing and I don't know how to improve. I think if I had a teacher, I'd at least have someone I could go to for help, but I think it would be better if I were an artist/musician/writer instead of a programmer. But you can't make a game without programming it.

    #lambgamedev

  17. I'm so out of my league as a game dev, I have no idea what I'm doing and I don't know how to improve. I think if I had a teacher, I'd at least have someone I could go to for help, but I think it would be better if I were an artist/musician/writer instead of a programmer. But you can't make a game without programming it.

    #lambgamedev

  18. So I'm thinking about developing the Zelda 64-like for the RG34XXSP specifically and maybe even the RG35XXSP, despite its lack of even one analog stick, and more realistically the RG40XXV, which has one stick. I'm doing what I can to make the game playable with one analog stick instead of two, like how it was with the N64 controller.

    The main issue is the RG40XXV's 1 GB of RAM, which I'm surprisingly slightly unsure if it will be enough. To my understanding, ~700 MB / 1,000 MB will be open to me for game stuff, which seemed like more than enough at first, but the test room I've made takes up 40+ MB of static RAM (and ~7 MB of dynamic RAM), and I'm thinking that this could easily balloon out of control as development continues. (Also I don't have the best grasp on what the difference is between static and dynamic RAM is.) I'm already using ~6% of my RAM with barely anything happening.

    This may be the first time in my game dev journey where I will actually have to
    care about what I load and what I unload into memory. ​:axolotl_shock:​

    The RG34XXSP has 2 GB of RAM, so I'm totally unconcerned about that. If 2 GB isn't enough, I'm doing something wrong.

    #lambgamedev #gamedev #indiedev #godot #zelda #ocarinaoftime #majorasmask

    RE:
    https://transfem.social/notes/a863453c4mxg77uo

  19. So I'm thinking about developing the Zelda 64-like for the RG34XXSP specifically and maybe even the RG35XXSP, despite its lack of even one analog stick, and more realistically the RG40XXV, which has one stick. I'm doing what I can to make the game playable with one analog stick instead of two, like how it was with the N64 controller.

    The main issue is the RG40XXV's 1 GB of RAM, which I'm surprisingly slightly unsure if it will be enough. To my understanding, ~700 MB / 1,000 MB will be open to me for game stuff, which seemed like more than enough at first, but the test room I've made takes up 40+ MB of static RAM (and ~7 MB of dynamic RAM), and I'm thinking that this could easily balloon out of control as development continues. (Also I don't have the best grasp on what the difference is between static and dynamic RAM is.) I'm already using ~6% of my RAM with barely anything happening.

    This may be the first time in my game dev journey where I will actually have to
    care about what I load and what I unload into memory. ​:axolotl_shock:​

    The RG34XXSP has 2 GB of RAM, so I'm totally unconcerned about that. If 2 GB isn't enough, I'm doing something wrong.

    #lambgamedev #gamedev #indiedev #godot #zelda #ocarinaoftime #majorasmask

    RE:
    https://transfem.social/notes/a863453c4mxg77uo

  20. I would love to get CRT Emudriver on my computer, but it looks kinda complicated to work with. I'd love to use it to work on pixel art!

    If I could ever get my hands on a PVM/BVM, hooo boy, I'd never turn it off

    #lambgamedev #pixelart #crt #crttv

  21. I would love to get CRT Emudriver on my computer, but it looks kinda complicated to work with. I'd love to use it to work on pixel art!

    If I could ever get my hands on a PVM/BVM, hooo boy, I'd never turn it off

    #lambgamedev #pixelart #crt #crttv

  22. I made a post on bsky mostly jokingly asking if anyone wants to join a Zelda 64-like game dev team and I got a non-zero amount of impressive, talented people being like "ye sure"

    Not sure what to do! I think I'm too inexperienced to lead such a project and I have not even TOUCHED 3D in Godot.

    HOWEVER. A Zelda 64-like would be very cool...

    #lambgamedev #gamedev #indiedev #godot

  23. I made a post on bsky mostly jokingly asking if anyone wants to join a Zelda 64-like game dev team and I got a non-zero amount of impressive, talented people being like "ye sure"

    Not sure what to do! I think I'm too inexperienced to lead such a project and I have not even TOUCHED 3D in Godot.

    HOWEVER. A Zelda 64-like would be very cool...

    #lambgamedev #gamedev #indiedev #godot

  24. My dream of making video games for cheap handhelds may someday become reality! I would love to be able to port my games to Ambernic handhelds :3
    https://www.reddit.com/r/godot/s/yGht7E4OSh

    #lambgamedev #gamedev #indiedev #godot

  25. My dream of making video games for cheap handhelds may someday become reality! I would love to be able to port my games to Ambernic handhelds :3
    https://www.reddit.com/r/godot/s/yGht7E4OSh

    #lambgamedev #gamedev #indiedev #godot

  26. I'm weeks into this project and I've just been informed that GDScript Timer nodes are not accurate enough to perform with music-related purposes. If I can't find a workaround, I guess I'll just release what I've got and go back to working on finishing Witch Brew Dive.

    I'm so tired.

    #lambgamedev #gamedev #godot

    RE:
    https://transfem.social/notes/a6ftsidy5g5j2xja

  27. I'm weeks into this project and I've just been informed that GDScript Timer nodes are not accurate enough to perform with music-related purposes. If I can't find a workaround, I guess I'll just release what I've got and go back to working on finishing Witch Brew Dive.

    I'm so tired.

    #lambgamedev #gamedev #godot

    RE:
    https://transfem.social/notes/a6ftsidy5g5j2xja

  28. I don't remember how I came across this website, but it looks so cute!!! It's a webring of queer visual novels called Yuri Evn Webring. I hope that after I finish Witch Brew Dive, I can submit my visual novel-esque game to this webring :3

    #lambgamedev

  29. The fact that "code does exactly what you tell it to" is problematic because i want it to work and not not work!!!! ​:skype_angry:​

    #lambgamedev #gamedev #indiedev

  30. I had a dream last night that I was working on this project. Completely mundane, just sitting at my laptop and problem solving.

    #lambgamedev

    RE:
    https://transfem.social/notes/a6ftsidy5g5j2xja

  31. I had a dream last night that I was working on this project. Completely mundane, just sitting at my laptop and problem solving.

    #lambgamedev

    RE:
    https://transfem.social/notes/a6ftsidy5g5j2xja

  32. I'm attempting a side project called Godot MML that lets you use audio sample-based MML in Godot! I'm struggling a good deal with it—it is my first time doing something like this—but I believe I'm making a fair amount of progress for the beginning.

    #lambgamedev #gamedev #indiedev #mml #chiptune #musicmacrolanguage

  33. I'm attempting a side project called Godot MML that lets you use audio sample-based MML in Godot! I'm struggling a good deal with it—it is my first time doing something like this—but I believe I'm making a fair amount of progress for the beginning.

    #lambgamedev #gamedev #indiedev #mml #chiptune #musicmacrolanguage

  34. I'm attempting a side project called Godot MML that lets you use audio sample-based MML in Godot! I'm struggling a good deal with it—it is my first time doing something like this—but I believe I'm making a fair amount of progress for the beginning.

    #lambgamedev #gamedev #indiedev #mml #chiptune #musicmacrolanguage

  35. I'm attempting a side project called Godot MML that lets you use audio sample-based MML in Godot! I'm struggling a good deal with it—it is my first time doing something like this—but I believe I'm making a fair amount of progress for the beginning.

    #lambgamedev #gamedev #indiedev #mml #chiptune #musicmacrolanguage

  36. I’m just super proud of this shot right here. (It’s even better animated!)

    From my WIP game “Witch Brew Dive”!
    #godot #indiegame #gamedev #indiedev #gameboy #lambgamedev

  37. I am still working on Witch Brew Dive! It's going slow but surely. I restarted programming from scratch because I feel like I can do better this time around!

    #lambgamedev #gamedev #indiedev #gameboy #godot

  38. I am still working on Witch Brew Dive! It's going slow but surely. I restarted programming from scratch because I feel like I can do better this time around!

    #lambgamedev #gamedev #indiedev #gameboy #godot

  39. Well fuck I guess I'm dropping GitHub.

    It is shocking every time seeing a corpo or college invest in Israel or donate to ICE or donate to the police or donate to piece of shit politicians or all of the above. It shouldn't be a surprise to me anymore, fucking EVERY major company does this. But what business does GITHUB or MICROSOFT have with ICE???? How does deporting illegal immigrants relate your free digital file sharing service??

    Guess this means I have to actually learn how to use Git
    ​:akko_write:​ If I ever release any source code, it will be through another service like https://git.gay or through Itch.

    #lambgamedev #github #git

  40. Solo game dev sucks because you’ve gotta do EVERYTHING yourself, even things that you're not good at. Though I worry that if I had multiple people working on a single project how disregarded my input would be. In the past, my input and the way I worked was often scoffed at. Maybe it’s just because the people I worked with were bullies, maybe it’s because I am just bad at coming up with ideas and realizing those ideas.

    With
    Witch Brew Dive, the game is very simple and does not have deep game mechanics, but I wanted it to be simple. Something that a little girl could pick up and enjoy. I worry that if I was part of a team when I thought of the game that it would have been scrapped for being a “bad idea”. I guess it’s just something that I’ve got to try someday and figure out what teammates would be good, balancing judgment and acceptance.

    #lambgamedev #indiedev

  41. CW: talking distressing politics, escaping the US, sanctuary states

    I know people don't care THAT much if at all, but I want to say that I'm putting game dev on the back burner for a while.

    Reason being the need to focus on my relationships and on political asylum/emigration strategy/moving plans due to American anti-trans, anti-gay, anti-neurodivergence policies. Like we gotta get a lawyer just to get a passport, the load is heavy and I feel like I'm way in over my head.

    If anyone has any advice, feel free to share.

    #lambgamedev #sanctuarystate #sanctuarycity #antitranspolitics