Can some tell me what exactly is so bad about this code
Anonymous 01/22/25(Wed)17:18:41 | 75 comments | 3 images
preferably with a food analogy
Anonymous 01/22/25(Wed)17:19:35 No.103999526
HE WORKED AT BLIZZARD™ FOR SEVEN YEARS
Anonymous 01/22/25(Wed)17:21:03 No.103999548
That's a strange way to initialize an array.
Anonymous 01/22/25(Wed)17:24:45 No.103999607
>>103999514
Seems bad that you need a swath of comments to understand the purpose of x/y/z thing, I would just whack it into a hash map with a k:v pair and just have whatever is storing x into y call it but I know very little about game dev so I dunno, could be standard for game dev.
Seems bad that you need a swath of comments to understand the purpose of x/y/z thing, I would just whack it into a hash map with a k:v pair and just have whatever is storing x into y call it but I know very little about game dev so I dunno, could be standard for game dev.
Anonymous 01/22/25(Wed)17:26:29 No.103999637
Why not do something like
VOID_TOLD_THE_TRUTH = 0
VOID_TOLD_THE_TRUTH = 0
Anonymous 01/22/25(Wed)17:27:19 No.103999644
>>103999514
>preferably with a food analogy
probably the only way
https://www.youtube.com/watch?v=zGuEzUPY0nI
because he's ordering with numbers you have no way of knowing what he's actually ordering as a glance
now imagine having to check a million times, that's why this way to code is retarded
>preferably with a food analogy
probably the only way
https://www.youtube.com/watch?v=zGu
because he's ordering with numbers you have no way of knowing what he's actually ordering as a glance
now imagine having to check a million times, that's why this way to code is retarded
Anonymous 01/22/25(Wed)17:34:41 No.103999735
>>103999514
if it's retarded but is actually working and shipped, then it's more than most people can say
just shows his point about "just make games" is true though, cause if you look at this code and go "what the fuck? I can do that so much better", then you have no excuse not to release your game anon
if it's retarded but is actually working and shipped, then it's more than most people can say
just shows his point about "just make games" is true though, cause if you look at this code and go "what the fuck? I can do that so much better", then you have no excuse not to release your game anon
Anonymous 01/22/25(Wed)17:35:47 No.103999753
>>103999514
If this is generated code then I'd allow it
If this is generated code then I'd allow it
Anonymous 01/22/25(Wed)17:37:03 No.103999770
>>103999514
do game devs just not use any kind of relational DB and just store everything in fucking arrays?
do game devs just not use any kind of relational DB and just store everything in fucking arrays?
Anonymous 01/22/25(Wed)17:39:18 No.103999795
>>103999514
It would be like if you worked at a restaurant with 800 menu items and several items have variations but the staff only refers to the items and the variations by their item number. For example, the waiter calls into the kitchen to tell you "I need a 149 with 3, a 345, a 234, and a 72 with 1" instead of "A hamburger no pickles, small fries, medium wings, and a coke without ice" What's worse is that the sub-numbered variations mean different things based on the context; a 72 with 1 is a coke without ice, but a 73 with 1 is an orange fanta with extra ice. Basically you'll have to look at a cheat sheet every time an order comes in, and you'll waste a lot of time you could have spent cooking food.
It would be like if you worked at a restaurant with 800 menu items and several items have variations but the staff only refers to the items and the variations by their item number. For example, the waiter calls into the kitchen to tell you "I need a 149 with 3, a 345, a 234, and a 72 with 1" instead of "A hamburger no pickles, small fries, medium wings, and a coke without ice" What's worse is that the sub-numbered variations mean different things based on the context; a 72 with 1 is a coke without ice, but a 73 with 1 is an orange fanta with extra ice. Basically you'll have to look at a cheat sheet every time an order comes in, and you'll waste a lot of time you could have spent cooking food.
Anonymous 01/22/25(Wed)17:39:21 No.103999796
>>103999735
his game has been 8 years in the making and still has not released, and his game is essentially le quirky rpg ripoff.
bad code slows progress down and sometimes kills development
anyone with 2 braincells should not follow advice from someone that acts like this really
>>103999770
the proper way to do this is either by using a hashmap/dict and naming your events instead of mapping everything to a fucking number, and even better is to use json files to enforce data/code separation and make your life easier
relational DB is way too slow and not adapted for something like a game either
his game has been 8 years in the making and still has not released, and his game is essentially le quirky rpg ripoff.
bad code slows progress down and sometimes kills development
anyone with 2 braincells should not follow advice from someone that acts like this really
>>103999770
the proper way to do this is either by using a hashmap/dict and naming your events instead of mapping everything to a fucking number, and even better is to use json files to enforce data/code separation and make your life easier
relational DB is way too slow and not adapted for something like a game either
Anonymous 01/22/25(Wed)17:39:26 No.103999800
>>103999735
this is like saying you're not going to bother learning how to dice an onion correctly because your method of spending 30 minutes dicing a single onion gives you a diced onion in the end and to the people complaining, they haven't/aren't dicing an onion at this point in time so their criticism is invalid
also my dad worked at the onion dicing factory and so did I so, yeaaaaaah get permabanned from my kitchen *fake stretch* dogshit
this is like saying you're not going to bother learning how to dice an onion correctly because your method of spending 30 minutes dicing a single onion gives you a diced onion in the end and to the people complaining, they haven't/aren't dicing an onion at this point in time so their criticism is invalid
also my dad worked at the onion dicing factory and so did I so, yeaaaaaah get permabanned from my kitchen *fake stretch* dogshit
Anonymous 01/22/25(Wed)17:47:10 No.103999888
>>103999796
I figured the reason he wasn't using a hashmap is because of the potential for typos and having a schema that's constantly changing is a huge pain in the ass. Isn't his game an undertale knockoff? can't you just query during dialog or walking in a room from a sqlite db?
I figured the reason he wasn't using a hashmap is because of the potential for typos and having a schema that's constantly changing is a huge pain in the ass. Isn't his game an undertale knockoff? can't you just query during dialog or walking in a room from a sqlite db?
Anonymous 01/22/25(Wed)17:50:47 No.103999923
>>103999888
>having a schema that's constantly changing is a huge pain in the ass
it isn't if you keep it small, a relational db is completely overkill here and requires installing a db in the first place instead of just shipping files
nothing forbids you from having json files for dialogue, for flags, for rooms, etc... KISS and all that
also when it comes to PS, he has no rationale for doing this, he's just a bad programmer, which is ok, but should probably stop posing as the representative of the gamedev community
>having a schema that's constantly changing is a huge pain in the ass
it isn't if you keep it small, a relational db is completely overkill here and requires installing a db in the first place instead of just shipping files
nothing forbids you from having json files for dialogue, for flags, for rooms, etc... KISS and all that
also when it comes to PS, he has no rationale for doing this, he's just a bad programmer, which is ok, but should probably stop posing as the representative of the gamedev community
Anonymous 01/22/25(Wed)17:52:06 No.103999935
>>103999888
An RDB is overkill for this, even an embedded one. A simple key-value store would be perfectly fine.
An RDB is overkill for this, even an embedded one. A simple key-value store would be perfectly fine.
Anonymous 01/22/25(Wed)17:52:10 No.103999936
>>103999514
Jesus fucking christ.
I'm not talking about the code I'm talking about your obsession with e-celebs OP. Fucking kill yourself.
Jesus fucking christ.
I'm not talking about the code I'm talking about your obsession with e-celebs OP. Fucking kill yourself.
Anonymous 01/22/25(Wed)17:55:42 No.103999974
>>103999796
>his game has been 8 years in the making and still has not released, and his game is essentially le quirky rpg ripoff.
It is a paid product on steam with over 50k+ units sold.
You can say it's wrong all you want, and you are correct, but that doesn't change the fact that it is a real product out in the wild.
>his game has been 8 years in the making and still has not released, and his game is essentially le quirky rpg ripoff.
It is a paid product on steam with over 50k+ units sold.
You can say it's wrong all you want, and you are correct, but that doesn't change the fact that it is a real product out in the wild.
Anonymous 01/22/25(Wed)17:58:53 No.104000012
>>103999974
>It is a paid product on steam with over 50k+ units sold.
doesn't change the fact it's an unfinished product, and that people mostly paid as early access in hopes of getting a full game one day
we can debate all day long about undertale and similar games having bad code, but those games are finished products are the very least. this isn't one of them.
>It is a paid product on steam with over 50k+ units sold.
doesn't change the fact it's an unfinished product, and that people mostly paid as early access in hopes of getting a full game one day
we can debate all day long about undertale and similar games having bad code, but those games are finished products are the very least. this isn't one of them.
Anonymous 01/22/25(Wed)18:00:57 No.104000043
>>103999974
thalidomide was a real product out in the wild, what's your point guy
thalidomide was a real product out in the wild, what's your point guy
Anonymous 01/22/25(Wed)18:01:11 No.104000052
>>103999514
Imagine you're at the drive-thru and instead of the items with a description you just see "#1, #2, #3, etc" and to see what they mean you have to drive back around to the front of the restaurant where there's a detailed menu. You'd find that quite a pain in the fucking ass wouldn't you.
Imagine you're at the drive-thru and instead of the items with a description you just see "#1, #2, #3, etc" and to see what they mean you have to drive back around to the front of the restaurant where there's a detailed menu. You'd find that quite a pain in the fucking ass wouldn't you.
Anonymous 01/22/25(Wed)18:01:56 No.104000058
>>103999514
the biggest redpill in proramming is that doing this is good for performance actually and all 60+ years of retarded academic intellectual LARPing lead to veritably worse results
the biggest redpill in proramming is that doing this is good for performance actually and all 60+ years of retarded academic intellectual LARPing lead to veritably worse results
Anonymous 01/22/25(Wed)18:02:05 No.104000062
>>103999514
The only reason for this value to be an array is if he needs to somehow load and store this array very quickly. But this could be done with a fucking union. All of these values should have a proper variable name, such as PoolCoffeeTemperature, instead of referencing them within the code by a fucking index like 216.
The only reason for this value to be an array is if he needs to somehow load and store this array very quickly. But this could be done with a fucking union. All of these values should have a proper variable name, such as PoolCoffeeTemperature, instead of referencing them within the code by a fucking index like 216.
Anonymous 01/22/25(Wed)18:03:58 No.104000086
>>104000058
Performance is not a constraint in this case.
Performance is not a constraint in this case.
Anonymous 01/22/25(Wed)18:04:12 No.104000088
>>104000058
you live in 2025 motherfucker, you aren't programming on a fucking NES
taking the time to load a json and accessing hashmap values is similar cost and keeps you from losing your mind remembering what shitfuck[7290] means
you live in 2025 motherfucker, you aren't programming on a fucking NES
taking the time to load a json and accessing hashmap values is similar cost and keeps you from losing your mind remembering what shitfuck[7290] means
Anonymous 01/22/25(Wed)18:05:04 No.104000101
>>103999514
why not just make an enum? Why does "he" need to do all that to initial the array? Anyone got the git or stream?
why not just make an enum? Why does "he" need to do all that to initial the array? Anyone got the git or stream?
Anonymous 01/22/25(Wed)18:12:14 No.104000186
>>103999514
it is unreadable. the dev is setting up an array of values line by line i guess these values will be used later in the game, it looks like these are text outputs at for different characters. anyway, this is what loops are for. firstly these values ahould be stored in a database, then the dev should load the data into an associative array (or have it be lazy loaded) defined during initialisation. then use a getter to get the value they want for that given moment in the game. this is
a) decoupled
b) much more expandable
c) much more maintainable
d) more memory efficient
it is unreadable. the dev is setting up an array of values line by line i guess these values will be used later in the game, it looks like these are text outputs at for different characters. anyway, this is what loops are for. firstly these values ahould be stored in a database, then the dev should load the data into an associative array (or have it be lazy loaded) defined during initialisation. then use a getter to get the value they want for that given moment in the game. this is
a) decoupled
b) much more expandable
c) much more maintainable
d) more memory efficient
Anonymous 01/22/25(Wed)18:12:39 No.104000191
>>104000058
There is a way to get the performance you want without referencing all of the global variables by a fucking index number. Consider this shortened example:
There is a way to get the performance you want without referencing all of the global variables by a fucking index number. Consider this shortened example:
union {
struct {
int pool_coffee_temperature;
int pool_ppp_is_gone;
// Other features here
};
int as_array[2];
} global_state;
Anonymous 01/22/25(Wed)18:14:18 No.104000211
>>104000043
my point, if you read, is that retards can release and make money off of code like the one in OP
my point, if you read, is that retards can release and make money off of code like the one in OP
Anonymous 01/22/25(Wed)18:21:25 No.104000292
>>103999514
>preferably with a food analogy
The optimal way to do this would have been to use bitwise operators. Using 8-byte (64-bit) integers gives you 64 possible yes/no values per integer. The changes can quickly and easily be set/unset using the appropriate bitwise operator.
To use a food analogy, the way he is doing it is placing one food time per plate, so you'd have an unnecessary stack of plates on your table, cluttering things up. Bitwise operators let you use one play for up to 64 items per plate.
>preferably with a food analogy
The optimal way to do this would have been to use bitwise operators. Using 8-byte (64-bit) integers gives you 64 possible yes/no values per integer. The changes can quickly and easily be set/unset using the appropriate bitwise operator.
To use a food analogy, the way he is doing it is placing one food time per plate, so you'd have an unnecessary stack of plates on your table, cluttering things up. Bitwise operators let you use one play for up to 64 items per plate.
Anonymous 01/22/25(Wed)18:24:18 No.104000329
>>103999514
Is this yandere simulator source code?
Is this yandere simulator source code?
Anonymous 01/22/25(Wed)18:25:27 No.104000345
Anonymous 01/22/25(Wed)18:26:38 No.104000363
He did it that way for readability, its just game flags for different events, don't need to be initialized like that.
Anonymous 01/22/25(Wed)18:38:45 No.104000513
>>104000363
By making it an array, he has worsened readability.
By making it an array, he has worsened readability.
Anonymous 01/22/25(Wed)18:40:48 No.104000538
>>104000513
That's what the comments are there for dumbass, you can use whatever you want to document your shit, even notepad would suffice, when compiled it doesn't matter anymore.
That's what the comments are there for dumbass, you can use whatever you want to document your shit, even notepad would suffice, when compiled it doesn't matter anymore.
Anonymous 01/22/25(Wed)18:46:22 No.104000602
>>104000538
you're arguing in favor of an objectively worse way to do something
you're arguing in favor of an objectively worse way to do something
Anonymous 01/22/25(Wed)18:50:06 No.104000660
>>104000602
>objectively
I don't think that mean whatever you think it mean.
You can code and organize your shit in whatever way you want, go be an autist somewhere else.
>objectively
I don't think that mean whatever you think it mean.
You can code and organize your shit in whatever way you want, go be an autist somewhere else.
Anonymous 01/22/25(Wed)18:52:24 No.104000698
>>104000538
it's an objectively worse way to do this rather than doing this with a hashmap
hashmap keys are self-documenting, you don't need comments, and you don't need to check from code to global array every 5 minutes. it's objectively better
it's an objectively worse way to do this rather than doing this with a hashmap
hashmap keys are self-documenting, you don't need comments, and you don't need to check from code to global array every 5 minutes. it's objectively better
Anonymous 01/22/25(Wed)18:53:35 No.104000717
>>103999514
post this video please
post this video please
Anonymous 01/22/25(Wed)18:55:12 No.104000747
>>104000698
yeah, for you, not for he, what you gonna do, sue him for "objectively" coding worse? lmao
yeah, for you, not for he, what you gonna do, sue him for "objectively" coding worse? lmao
Anonymous 01/22/25(Wed)18:55:15 No.104000749
>>104000538
The point of comments is not to serve as a remedy for fundamentally idiotic design choices.
The point of comments is not to serve as a remedy for fundamentally idiotic design choices.
Anonymous 01/22/25(Wed)18:57:14 No.104000780
>>103999514
Nothing? Pseuds are seething
Nothing? Pseuds are seething
Anonymous 01/22/25(Wed)18:57:22 No.104000783
>>104000747
unless you are a literal retard there is literally no reason to do it the other way. Give me one reason. One. "Because I felt like it" is not one.
unless you are a literal retard there is literally no reason to do it the other way. Give me one reason. One. "Because I felt like it" is not one.
Anonymous 01/22/25(Wed)18:58:05 No.104000795
>>104000660
>I keep my scattered playing cards in random location because I know where I can go to collect them, and I will go 52 different places to put them together
>this just works for me why are people calling me retarded
>NO I WILL NOT put my cards together I REFUSE!!!
>I keep my scattered playing cards in random location because I know where I can go to collect them, and I will go 52 different places to put them together
>this just works for me why are people calling me retarded
>NO I WILL NOT put my cards together I REFUSE!!!
Anonymous 01/22/25(Wed)19:07:03 No.104000896
>>104000292
these aren't all yes/no values.
these aren't all yes/no values.
Anonymous 01/22/25(Wed)19:10:31 No.104000939
Anonymous 01/22/25(Wed)19:11:52 No.104000963
>>103999735
I bet every commercial product has "this shit is disgusting but we shipped it" somewhere in it.
Good god I don't want to see what fucked up spaghetti shit ToadyOne has done in Dwarf Fortress.
I bet every commercial product has "this shit is disgusting but we shipped it" somewhere in it.
Good god I don't want to see what fucked up spaghetti shit ToadyOne has done in Dwarf Fortress.
Anonymous 01/22/25(Wed)19:13:11 No.104000984
>>104000698
some people don't like hashmaps. to them, your solution is *objectively* worse.
some people don't like hashmaps. to them, your solution is *objectively* worse.
Anonymous 01/22/25(Wed)19:14:47 No.104001006
>>104000984
>some people like eating absolute garbage. to them, your solution of eating good food is *objectively* worse
not my problem
>some people like eating absolute garbage. to them, your solution of eating good food is *objectively* worse
not my problem
Anonymous 01/22/25(Wed)19:20:40 No.104001063
>>104001006
enjoy your onions, faggot
enjoy your onions, faggot
Anonymous 01/22/25(Wed)19:22:31 No.104001089
This guy won an award for best "Software and Game dev Streamer"
Anonymous 01/22/25(Wed)19:25:18 No.104001119
>>103999514
>food analogy
He's pouring out a tablespoon of Worcestershire sauce by counting how many 5 mL drops come out of the bottle.
>food analogy
He's pouring out a tablespoon of Worcestershire sauce by counting how many 5 mL drops come out of the bottle.
Anonymous 01/22/25(Wed)19:25:33 No.104001123
dang even I knew better to just off load all that crap to a crappy text file with dialogue/events/flags that I would parse back when I was a noob
my first programming project was like what he did though, but I never went over 30
my first programming project was like what he did though, but I never went over 30
Anonymous 01/22/25(Wed)19:28:33 No.104001155
>>104000717
he's scrubbing it all as we speak dude, maybe check the farms
he's scrubbing it all as we speak dude, maybe check the farms
Anonymous 01/22/25(Wed)19:29:10 No.104001160
this guy is the ultimate example of faking it til you make it. doesnt know shit about anything at all yet people still watch him. its utterly mind blowing
Anonymous 01/22/25(Wed)19:42:24 No.104001280
>>104001160
how the fuck did he get into my youtube shorts?
I have literally never played wow, don't watch vidya or anything this guy claims to be an authority on
literally all my youtube is, is cooking, films and funny cat videos THAT'S IT and this guy is like the majority of my recommended youtube shorts WTF HOW does that happen, seriously did he crack the code or something
how the fuck did he get into my youtube shorts?
I have literally never played wow, don't watch vidya or anything this guy claims to be an authority on
literally all my youtube is, is cooking, films and funny cat videos THAT'S IT and this guy is like the majority of my recommended youtube shorts WTF HOW does that happen, seriously did he crack the code or something
Anonymous 01/22/25(Wed)19:48:04 No.104001338
>>103999770
yes. this is dumbly implemented but you don't want to waste cycles or memory on a hash map. your magic O(1) is amortized.
yes. this is dumbly implemented but you don't want to waste cycles or memory on a hash map. your magic O(1) is amortized.
Anonymous 01/22/25(Wed)19:49:06 No.104001350
>>103999936
/thread
/thread
Anonymous 01/22/25(Wed)19:50:46 No.104001374
>>104001338
you have no clue what a hashmap is if you think you're wasting cycles or memory
you have no clue what a hashmap is if you think you're wasting cycles or memory
Anonymous 01/22/25(Wed)19:52:44 No.104001386
>>104001350
holy faggotretard
holy faggotretard
Anonymous 01/22/25(Wed)19:53:42 No.104001396
>>103999514
It's got a tranny in the corner
It's got a tranny in the corner
Anonymous 01/22/25(Wed)19:57:13 No.104001433
>>104000963
I wouldn't be surprised if DF was the only "beautifully" coded game out there desu
I wouldn't be surprised if DF was the only "beautifully" coded game out there desu
Anonymous 01/22/25(Wed)20:02:29 No.104001500
Anonymous 01/22/25(Wed)20:07:45 No.104001555
>>103999796
>relational db is way too slow
Wait until this dude learns about ECS
also its a fucking game that could easily run on a computer 20 years old, all you're doing is querying it and if you need fast access you can just slam it into memory
>relational db is way too slow
Wait until this dude learns about ECS
also its a fucking game that could easily run on a computer 20 years old, all you're doing is querying it and if you need fast access you can just slam it into memory
Anonymous 01/22/25(Wed)20:10:03 No.104001578
Game code is typically retarded and that's really not such a big deal. If you really care about it then you probably haven't written a game.
Anonymous 01/22/25(Wed)20:11:20 No.104001591
>>104000052
Nigger its going to be like 500 individual flags youre going to have to check anyways
Nigger its going to be like 500 individual flags youre going to have to check anyways
Anonymous 01/22/25(Wed)20:11:29 No.104001593
>>103999514
>Add new state
>Have to refactor the entire code base
If you don't see it, you either don't program for a living or I hate you. There's no intermediate option.
>Add new state
>Have to refactor the entire code base
If you don't see it, you either don't program for a living or I hate you. There's no intermediate option.
Anonymous 01/22/25(Wed)20:11:45 No.104001595
the code is absolutely fine, its very readable which is important for small teams
Anonymous 01/22/25(Wed)20:12:19 No.104001602
>>104001593
It's okay you just note that 324 "matches to" 256 which "matches to" 22.
It's okay you just note that 324 "matches to" 256 which "matches to" 22.
Anonymous 01/22/25(Wed)20:12:21 No.104001604
>>104001374
Cache misses
Cache misses
Anonymous 01/22/25(Wed)20:14:54 No.104001636
>>104001602
Simple as.
Simple as.
Anonymous 01/22/25(Wed)20:16:15 No.104001648
>>103999514
Every time there's an "industry professional" that shows his work it's one of two people
>The guy that sat on his phone all day skipping through other's work and calling it a review
>The guy that did the work meant for six people while five of them sat on their phone
Every time there's an "industry professional" that shows his work it's one of two people
>The guy that sat on his phone all day skipping through other's work and calling it a review
>The guy that did the work meant for six people while five of them sat on their phone
Anonymous 01/22/25(Wed)20:25:58 No.104001754
>>103999936
>I'm not talking about the code I'm talking about your obsession with e-celebs OP. Fucking kill yourself.
not op but shitting on people you hate is entertaining
>I'm not talking about the code I'm talking about your obsession with e-celebs OP. Fucking kill yourself.
not op but shitting on people you hate is entertaining
Anonymous 01/22/25(Wed)20:28:12 No.104001779
>>104001374
go back to your boot camp and ask for a refund of your tuition
go back to your boot camp and ask for a refund of your tuition
Anonymous 01/22/25(Wed)20:29:03 No.104001791
>>103999514
>Can some tell me what exactly is so bad about this code
>preferably with a food analogy
it's like eating peas one by one instead of using a fork or a spoon
>Can some tell me what exactly is so bad about this code
>preferably with a food analogy
it's like eating peas one by one instead of using a fork or a spoon
Anonymous 01/22/25(Wed)20:33:51 No.104001841
>>104001754
No, it's pathetic and it makes you look like a woman.
No, it's pathetic and it makes you look like a woman.
Anonymous 01/22/25(Wed)20:34:09 No.104001846
>>104001779
i'm not the one that believes that a slight overhead and what is essentially a hack built on top of arrays is catastrophic enough to gimp your own data structures for it in this day and age where memory issues are more rare and if they do exist, it's certainly not because you decided to use a hashmap, it's probably due to all the fucking pipeline required to make the game work in the firstplace.
if it's that much of an issue, just don't load the entire hashmap at once in a global context
i'm not the one that believes that a slight overhead and what is essentially a hack built on top of arrays is catastrophic enough to gimp your own data structures for it in this day and age where memory issues are more rare and if they do exist, it's certainly not because you decided to use a hashmap, it's probably due to all the fucking pipeline required to make the game work in the firstplace.
if it's that much of an issue, just don't load the entire hashmap at once in a global context