cook_pass_babtridge

joined 1 year ago
[–] cook_pass_babtridge@programming.dev 12 points 6 months ago* (last edited 6 months ago)

I think you should try a few different things out before you judge all software engineering jobs. There's a big variety.

As for "making shitty bloated proprietary software" that only really applies to the really big tech companies and banks etc.. Most dev jobs are about using code to solve a problem. I've worked in lots of small companies and we use open source software almost exclusively. If there's anything you write that you think could be useful as an open source project, they'll generally let you spin it out into a standalone library and you can spend some of your working time on that. The company benefits from increased visibility and can be a "thought leader" at conferences etc if it takes off. Definitely worth asking about that in the interview though, since different companies will have different philosophies around it.

[–] cook_pass_babtridge@programming.dev 1 points 1 year ago* (last edited 1 year ago)

Thanks, that's exactly what I was looking for!

[–] cook_pass_babtridge@programming.dev 1 points 1 year ago (1 children)

Higher-level languages compile (pretty much) reproduceably into machine code, so the same C code would always produce the same executable as long as the same compiler version is used.

Current AI chatbots will produce completely different results if given the same prompt twice. In its current form it can't be used in a reliable toolchain for anything.

 

Hi everyone, first time posting here. I was going to go to Discord but thought it's better to ask somewhere that can turn up on search engines for future confused game devs.

I've got a parameterised signal listener like this:

func _on_movement_to_exit_complete(character: Node2D):
	var f = func():
		print("_on_movement_to_exit_complete: "+str(character))
		var dungeon_tilemap: TileMap = dungeon_control.get_current_dungeon_tilemap()
		var party = dungeon_tilemap.get_node("Party")
		var initial_party = dungeon_control.get_parent().get_node("InitialParty")

		party.remove_child(character)
		initial_party.add_child(character)

		if party.get_child_count() == 0:
			for party_member in initial_party.get_children():
				var tilemap_movement: TilemapMovement = party_member.get_node("TilemapMovement")
				print("Disconnecting movement finished listener for "+str(party_member))
				tilemap_movement.disconnect("movement_finished", _on_movement_to_exit_complete(character))

			load_next_level()

	return f

Basically, if all the party members have exited the level (and been removed from the 'party' node) I want to disconnect this movement_finished signal from _on_movement_to_exit_complete. But when I try this I get an error:

E 0:00:07:0777   GameControl.gd:80 @ <anonymous lambda>(): Disconnecting nonexistent signal 'movement_finished', callable: <anonymous lambda>(lambda).
  <C++ Error>    Condition "!s->slot_map.has(*p_callable.get_base_comparator())" is true.
  <C++ Source>   core/object/object.cpp:1331 @ _disconnect()
  <Stack Trace>  GameControl.gd:80 @ <anonymous lambda>()
                 TilemapMovement.gd:23 @ _on_animation_finished()

Why doesn't it think movement_finished exists? Is there something wrong with disconnecting signals from inside their listeners? And is there another way of doing this? (Maybe something like a signal that fires once then disconnects?)

This is in Godot 4 by the way.

Also, is there a way to make the posting box wider in the programming.dev web frontend? It's really hard to work with pasted code here!