" @kirakira@furry.engineer
@kasdeya this isnt gonna make it thaaaat much better but you could do
Object.values(someObject).some(value => !isPrimitive(value))
(especially since i think the python version of values is a lazy iterator that stops on first match and the javascript one isnāt)
also a minor gripe, type hinting is Really Fuckinā Annoying when i have to import all my other scripts in order to hint with them. why ??
const Player = preload("res://src/player.gd") # okay but what the fuck is this
func damage_player(player: Player):
player.apply_damage(5)
as far as i can tell, the one node, one script thing encourages some kinda shitty habits that i didnāt have a problem with in Unity or any ECS architecture. for example, code reuse comes from one of three things: a child node, a global/autoload, or inheritance. splitting every shared functionality into a shared node feels like overkill sometimes, especially when it comes to trying to make those nodes communicate. i donāt want to have to connect a bunch of signals for what could have been a simple function call
globals/autoloads are Okay but not always the most ergonomic. (iām also lumping a class with static methods into this approach). like, it just feels kinda dirty to do it this way.
# node_ext.gd
class_name NodeExt extends Object
static func find_child_type(node: Node, variant: Variant) -> Node:
# blah blah find node
# other_node.gd
func some_fn():
var found_node = NodeExt.find_child_type(a_node, CustomVariant)
like yeah this gets it done but i just kinda hate doing it this way. c# at least has extension methods
// nodeext.cs
public static class NodeExt {
public static Node FindChildType<T>(this Node node) {
// blah blah find node
}
}
// othernode.cs
public void SomeFn() {
var foundNode = aNode.FindChildType<CustomVariant>();
}
and inheritance just kinda sucks, so i feel like iām only left with one option for code reuse in godot lmao
so in godotās fairness, i really love how quickly the game launches compared to unity. no compilation time, no waiting on domain reloads. it just opens. love that
iām still having a hard time adjusting to the one script, one node design but i think i can eventually get used to that. i canāt say i enjoy the cognitive load (or performance burden) of a deeply nested scene graph though.
iām currently in the process of rewriting my prototype as gdscript and this language is somehow both too pedantic and too loose at the same time. type āhintsā are actually runtime errors if it receives something it doesnāt expect, but this can be fixed by just Removing The Type Hint ??? why
worse yet are the array type hints. if i have the following
var nums: Array = [1, 2, 3]
this is somehow different from
var nums: Array[int] = [1, 2, 3]
and if i want to coerce one to the other?
var nums: Array = [1, 2, 3]
var nums_int = nums as Array[int] # runtime error
@kasdeya iām certainly no expert on western storytelling, and mostly likely itās not all westerns obviously but iām pretty sure a central theme of a lot of western stories is wilderness versus civilization. living in the harsh realities of the wild west with its lack of a centralized legal system, dearth of necessities, and very simple lifestyle vs the encroachment of modern civilization and promises of abundance at the cost of a more complicated life. plus the societal differences of the tightly knit frontier town community and the disconnected, efficient city person. it feels to me like these are kind of adjacent to a lot of the same plot points i want to hit.
āoh, yeah, my story is a cyberpunk 5 minutes into the future western story which centers around the atomization of society and the unrelenting march of technology pushing capitalist ācivilizationā forward at the expense of those who canāt adapt, leaving them destitute and alone until their inevitable imprisonment or deathā
ā⦠rowan i asked about your video gameā

@foxysen @kasdeya itās not good, but you can look into POSIX shell rather than bash as a stop gap until you find something you like. itās available where ever bash is available and doesnāt have most of the most ridiculous parts
that or just pick up an interpreted language which is widely available (like python) and write in that
iām realizing that my main game ideaās story is very similar in theme to a lot of westerns and itās got me wondering if i should go rewatch a bunch of western movies or something
@kasdeya things which are not āreally simpleā or āintuitiveā under any circumstances
it needs years of experience or study as a baseline requirement for anything related to those things to be intuitive. even then, itās possible to spend those years only learning a specific facet of computer science which doesnāt overlap with another thing youāre trying to learn
if anyone tells you that a FOSS technology is āreally simpleā, āintuitiveā, or āeasy to learnā that is 100% cope. so far Iāve heard this about:
and the opposite has been true every time. I really wish FOSS people would be more honest with themselves and others about how arcane most FOSS is
@kasdeya by the way, this error is because i dared to type hint an array (hence the TypedArray reference in the error). iām trying to detect and accumulate certain types of objects when they enter a certain area. basically, āif an object is in in this area, add it to an array.ā itās literally two lines of code
@kasdeya i wish everyone hated it because then maybe it would encourage some significant changes to the language. as far as i can tell, the godot community thinks of the language as near-perfect with only a little room for improvement. whenever i see discussions about the shortcomings of gdscript and difficulty picking it up, itās often framed as āunity developers making games after 2020 cant code. all they know is static typing, asset store, and lieā