<< 21-04-2025 >>

00:10:06FromDiscord<DetermiedNim1> In reply to @demotomohiro "Nim manual explains how": how would i do inheritance?
00:10:21FromDiscord<DetermiedNim1> sent a code paste, see https://play.nim-lang.org/#pasty=TWDBSgin
00:23:59FromDiscord<demotomohiro> In reply to @determiedmech1 "how would i do": If you need to override C++ virtual functions: https://nim-lang.org/docs/manual_experimental.html#virtual-pragma
01:01:23FromDiscord<DetermiedNim1> kk
01:01:27FromDiscord<DetermiedNim1> thanks
01:16:37FromDiscord<DetermiedNim1> yeah i just have no idea where i'd start
01:41:18FromDiscord<that_dude.> sent a code paste, see https://play.nim-lang.org/#pasty=EZGlxPNq
01:41:42FromDiscord<that_dude.> (edit) "https://play.nim-lang.org/#pasty=QmGeAvHe" => "https://play.nim-lang.org/#pasty=BBGhFCjC"
01:42:44FromDiscord<DetermiedNim1> ok so
01:43:39FromDiscord<Robyn [She/Her]> In reply to @user2m "how would you guys": could look at ed25519
01:43:39FromDiscord<DetermiedNim1> actually wait
01:44:07FromDiscord<DetermiedNim1> is `object of` similar to inheritance in this case
01:44:13FromDiscord<Robyn [She/Her]> There's a ed25519 lib as well as a libsodium mapping iirc
01:44:20FromDiscord<that_dude.> I didn't really ever use the `this` param, but it was there for the compat
01:44:21FromDiscord<Robyn [She/Her]> In reply to @determiedmech1 "is `object of` similar": It's used for single inheritance yes
01:44:33FromDiscord<Robyn [She/Her]> not sure how it plays with C++ code tho
01:44:49FromDiscord<that_dude.> I compiled with `cpp` and never had any issues.
01:45:26FromDiscord<that_dude.> Though I'm not sure if cpp name mangling could be an issue. Because the lib I worked with wrapped the cpp interface with `extern C` or smth like that
01:46:33FromDiscord<Robyn [She/Her]> name mangling shouldn't be an issue if you're compiling against the C++ source
01:46:40FromDiscord<Robyn [She/Her]> With the cpp backend
01:47:43FromDiscord<that_dude.> Either way, as long as you use the header pragma there should be no issues with telling nime that `TimedRobot` is an object that exists. You may need to change the pragma a little bit in order to get the `frc` namespace to be included, but you should be able to find out whether you need that online
01:47:54FromDiscord<that_dude.> (edit) "nime" => "Nim"
01:48:07FromDiscord<that_dude.> (edit) "object" => "object/class"
01:48:14FromDiscord<DetermiedNim1> Could I just emit `using namespace frc`
01:48:41FromDiscord<Robyn [She/Her]> you can (probably) but please don't
01:48:49FromDiscord<DetermiedNim1> ok
01:48:52FromDiscord<that_dude.> Yeah, I just tried to avoid using emit since it didn't feel `right`
01:48:55FromDiscord<Robyn [She/Her]> isn't using the `using` statement bad practice?
01:49:06FromDiscord<Robyn [She/Her]> Especially when names can clash
01:49:21FromDiscord<that_dude.> (edit) "`right`" => "_right_"
01:49:45FromDiscord<DetermiedNim1> fair
01:51:06FromDiscord<DetermiedNim1> Hmm
01:51:27FromDiscord<DetermiedNim1> should I do smth about TimedRobot inheriting from IterativeRobotBase
01:51:35FromDiscord<DetermiedNim1> or is it fine
01:53:31FromDiscord<DetermiedNim1> wait I can send a zip of the example code
01:53:58FromDiscord<that_dude.> sent a code paste, see https://play.nim-lang.org/#pasty=ZhFWQcSM
01:54:34FromDiscord<that_dude.> But don't forget that the nim compiler just generates C/C++ code and then hands it to the gcc
01:54:37FromDiscord<that_dude.> (edit) removed "the"
01:54:40FromDiscord<DetermiedNim1> ok
01:54:50FromDiscord<that_dude.> Sorry I also have homework lol
01:55:02FromDiscord<that_dude.> I can't share the repo since it's private :/
01:55:12FromDiscord<DetermiedNim1> np
01:55:39FromDiscord<that_dude.> But you shouldn't need to worry about the IterativeRobotBase since you wouldn't need to care about it if you writing the code yourself
01:55:54FromDiscord<DetermiedNim1> that makes sense
01:56:04FromDiscord<that_dude.> You just say "This class/object exists. Also these signatures exist" and then the Nim compiler will trust you
01:56:07FromDiscord<that_dude.> (edit) "You just say "This class/object exists. Also these signatures exist" and then the Nim compiler will trust you ... " added "that they do"
01:57:09FromDiscord<that_dude.> And as long as you have the `header` pragma anywhere in the file (Idk how much ordering mattered), all of the needed symbols should be imported in the generated CPP code
02:15:16FromDiscord<devlop_gaming> Is there a section in the documentation that explains what normalizePath() does and or return?
02:15:59FromDiscord<that_dude.> https://nim-lang.org/docs/theindex.html
02:16:08FromDiscord<that_dude.> ctrl+f
02:20:28FromDiscord<devlop_gaming> Ok so i did have the wrong procedure
02:20:51FromDiscord<devlop_gaming> Do you know how i can convert a path into a string?
02:22:05FromDiscord<that_dude.> I'm presuming https://nim-lang.org/docs/paths.html#%24.t%2CPath
02:22:57FromDiscord<that_dude.> This means the actual data type/shape is string. This means that `string(path_val)` will convert it back to the string https://media.discordapp.net/attachments/371759389889003532/1363701510411780197/image.png?ex=6806fd80&is=6805ac00&hm=04a06cdb9dd61e44f2bcc2dfce3e15a5f6722a29d529900a9f14b7ce2c142c9e&
02:23:18FromDiscord<that_dude.> (edit) "This means the actual ... data" added "underlying"
02:25:21FromDiscord<that_dude.> Distinct just means "This is a string, but don't let it work with any other procs that work on string by default"
02:27:18FromDiscord<devlop_gaming> sent a long message, see https://pasty.ee/ilNxelhx
02:29:58FromDiscord<that_dude.> `cstring` is compatible-string for interop with C/Cpp. It's different from a regular string. I don't see the issue atm, but I would take a look at what string you generate (and what type it is) and also check what types the arguments should be. I bet there's an issue there.
02:30:19FromDiscord<that_dude.> (edit) "would" => "recomend you"
02:35:14FromDiscord<devlop_gaming> This is a bit complicated
02:35:36FromDiscord<that_dude.> What is the signature of TTF_openFont
02:36:04FromDiscord<devlop_gaming> proc TTF_OpenFont(file: cstring, ptsize: float): TTF_Font {.dynlib:"SDL3_ttf", importc:"TTF_OpenFont".}
02:36:13FromDiscord<that_dude.> So it looks like file expects a cstring
02:36:35FromDiscord<that_dude.> but the path you generate is a with the format string is of type `string`
02:36:47FromDiscord<devlop_gaming> Well yea but the problem happens here $(absolutePath())
02:37:05FromDiscord<that_dude.> So you would need to cast/convert it to get it to work
02:37:28FromDiscord<that_dude.> `$()` is like repr where it converts the object to a string
02:37:32FromDiscord<that_dude.> (edit) "string" => "`string`"
02:38:20FromDiscord<that_dude.> I would suggest looking up how to convert string to cstring and I bet it fixes your problem
02:38:51FromDiscord<devlop_gaming> Don't i just use cstring()?
02:39:35FromDiscord<that_dude.> cstring is a type so you can `cstring(original_string)` to cast/convert it
02:40:12FromDiscord<DetermiedNim1> i think
02:40:15FromDiscord<DetermiedNim1> wpilib
02:40:27FromDiscord<DetermiedNim1> is almost like smalltalk or ruby
02:40:36FromDiscord<DetermiedNim1> oop all the way down
02:40:40FromDiscord<devlop_gaming> In reply to @that_dude. "cstring is a type": Still getting a type mismatch error
02:41:07FromDiscord<that_dude.> In reply to @devlop_gaming "Still getting a type": That's all of my knowledge unfortunately
02:41:28FromDiscord<that_dude.> Maybe try splitting things up to see what section specifically is causing it.
02:41:48FromDiscord<that_dude.> Btw if you get a GCC compiler error that's bad and is a bug. All errors should come from the nim compiler.
02:42:35FromDiscord<devlop_gaming> In reply to @that_dude. "Maybe try splitting things": the section i showed you
02:43:30FromDiscord<that_dude.> What if you assigned each step in the string gen to a different variable and then checked which operation causes the issue
02:43:41FromDiscord<that_dude.> Cus there's quite a bit going on in that line
02:44:17FromDiscord<that_dude.> Sorry back to work for me
02:45:36FromDiscord<devlop_gaming> I wasn't expecting such a small task to get so complicated
02:45:56FromDiscord<that_dude.> Were there any examples in the docs?
02:46:24FromDiscord<that_dude.> Btw it could also be the `fmt` part because iirc there is a warning about using `fmt` instead of `&` or whatever it is
02:46:57FromDiscord<devlop_gaming> What was the warning?
02:47:09FromDiscord<that_dude.> idk I need to work on homework
02:47:46FromDiscord<devlop_gaming> Ok
02:48:34FromDiscord<that_dude.> Debug printing is your friend
02:51:24FromDiscord<devlop_gaming> I tried to print the value and got an error
02:52:09FromDiscord<devlop_gaming> This is making less and less sense
02:52:46FromDiscord<that_dude.> I can take a quick look at the full error
02:54:36FromDiscord<devlop_gaming> https://media.discordapp.net/attachments/371759389889003532/1363709476087009400/Screenshot_2025-04-20_215358.png?ex=680704eb&is=6805b36b&hm=fcdc845ff87b5d9f3b0a506f29fae921a23020de198b8949e650d5dae15d3dad&
02:55:03FromDiscord<that_dude.> Is it the same after compiling?
02:55:28FromDiscord<devlop_gaming> I didn't compile yet this is the error i get soon as i save the file
02:55:46FromDiscord<that_dude.> I would take LSP error with a grain of salt, it's something that's still in heavy development
02:55:53FromDiscord<that_dude.> (edit) "error" => "errors"
02:56:21FromDiscord<devlop_gaming> Yes it's the same error
02:56:22FromDiscord<DetermiedNim1> if you need to convert Path to string can't you just do `p.string.cstring`
02:56:30FromDiscord<DetermiedNim1> (edit) "`p.string.cstring`" => "`path.string.cstring`"
02:56:35FromDiscord<that_dude.> Though if I take a look at signature, the first parameter `path` is required and needs to be set
02:57:02FromDiscord<that_dude.> In reply to @determiedmech1 "if you need to": Seems reasonable to me
02:57:13FromDiscord<DetermiedNim1> yeah i just tested it
02:57:29FromDiscord<devlop_gaming> Still a type missmatch this time it starts at fmt
02:58:16FromDiscord<that_dude.> Like I said, I'm pretty sure there's a warning in fmt that it returns something that's technically not a string or smth
02:58:36FromDiscord<that_dude.> They tell you exactly what it returns, you may just need to cast it
03:00:05FromDiscord<devlop_gaming> What does it return?
03:00:13FromDiscord<that_dude.> Idk man, just look it up
03:00:21FromDiscord<that_dude.> I'm working on a quiz rn
03:01:11FromDiscord<devlop_gaming> You always are free to leave..
03:01:17FromDiscord<that_dude.> 👍
03:09:03FromDiscord<Robyn [She/Her]> In reply to @determiedmech1 "if you need to": You should be able to do `$path.cstring`
03:09:12FromDiscord<DetermiedNim1> Well
03:09:13FromDiscord<DetermiedNim1> yeah
03:09:27FromDiscord<DetermiedNim1> cause $x is x.string
03:09:30FromDiscord<Robyn [She/Her]> maybe even `path.cstring` but prolly not
03:10:18FromDiscord<Robyn [She/Her]> In reply to @determiedmech1 "cause $x is x.string": Not really? It's a string representation of any type, it's just that `Path` is a `distinct string` which is why `mypath.string` works
03:10:32FromDiscord<DetermiedNim1> ah ok
03:10:49FromDiscord<Robyn [She/Her]> (edit) "type," => "type (implementing the function)"
03:10:57FromDiscord<DetermiedNim1> In reply to @battery.acid.bubblegum "maybe even `path.cstring` but": yeah no it raises an error
03:11:03FromDiscord<Robyn [She/Her]> sad but oh well
03:11:11FromDiscord<devlop_gaming> The error is coming from fmt proc itself. Why?
03:11:27FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "The error is coming": what's your code?
03:12:08FromDiscord<devlop_gaming> font = TTF_OpenFont(fmt"{absolutePath().string.cstring}/fonts/EustaceRegular-woxrz.ttf", 45.0)
03:12:33FromDiscord<Robyn [She/Her]> you should use backticks to surround code btw
03:12:49FromDiscord<devlop_gaming> (edit) "font" => "`font" | "45.0)" => "45.0)`"
03:13:23FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "`font = TTF_OpenFont(fmt"{absolutePath().string.cst": Also absolutePath requires an argument
03:13:25*beholders_eye quit (Ping timeout: 248 seconds)
03:13:34FromDiscord<devlop_gaming> What argument?
03:13:56FromDiscord<Robyn [She/Her]> As for why it says the fmt proc is causing an error, it's just because of how the compiler tracks errors unfortunately
03:14:13FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "What argument?": https://nim-lang.org/docs/paths.html#absolutePath%2CPath
03:14:37FromDiscord<devlop_gaming> path?
03:14:44FromDiscord<Robyn [She/Her]> you could also just use this and avoid the conversion to string: https://nim-lang.org/docs/ospaths2.html#absolutePath%2Cstring
03:15:04FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "path?": `Path(".")`
03:15:18FromDiscord<Robyn [She/Her]> `Path` is a distinct string for type safety reasons
03:16:07FromDiscord<Robyn [She/Her]> i heavily recommend reading the docs
03:16:31FromDiscord<Robyn [She/Her]> And avoiding what LLMs say about Nim, as a general rule
03:17:29FromDiscord<devlop_gaming> Why?
03:18:47FromDiscord<devlop_gaming> Also i'm still getting errors↵↵`attempting to call undeclared routine: '.'`
03:18:54FromDiscord<Robyn [She/Her]> Nim is a bit niche so there's not as much training data, and bc it's compared to Python so much, it can mix up Python quite often
03:19:35FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "Also i'm still getting": Atp you should just declare a variable to store the result of absolutePath
03:19:51FromDiscord<devlop_gaming> In reply to @battery.acid.bubblegum "Nim is a bit": Errors seem accurate to what the compiler give me and also it saves me time so i won't have to wait a long time for it to compile
03:20:33FromDiscord<devlop_gaming> In reply to @battery.acid.bubblegum "Atp you should just": What would i do with the variable afterwards?
03:20:52FromDiscord<devlop_gaming> It would only be used once and sit in memory until the program ends
03:21:25FromDiscord<Robyn [She/Her]> wait
03:21:34FromDiscord<Robyn [She/Her]> why are you casting to cstring too?
03:21:47FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "It would only be": create a block then, hold on
03:21:47FromDiscord<devlop_gaming> huh?
03:22:23FromDiscord<devlop_gaming> What's a block? Is it like rust block or whatever it's called?
03:23:04FromDiscord<Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=lppOrYVD
03:24:07FromDiscord<Robyn [She/Her]> This works since Nim returns the last expression as the result of a block
03:24:12FromDiscord<devlop_gaming> Just so i can be sure this will give me the absolute path to the project folder right?
03:24:19FromDiscord<Robyn [She/Her]> works for functions, `block`s and if statements
03:24:31*amadaluzia quit (Remote host closed the connection)
03:24:37FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "Just so i can": the current working directory
03:24:51FromDiscord<Robyn [She/Her]> If you want the directory of the binary, you want something different
03:25:16FromDiscord<Robyn [She/Her]> https://nim-lang.org/docs/os.html#getAppDir
03:28:00FromDiscord<devlop_gaming> So it retruns the directory of the application's executable. Does this mean it will return the directory Spark_Engine no matter where the executable is located in the project?
03:28:54FromDiscord<Robyn [She/Her]> if the binary is in spark engine, it'll return spark engine
03:29:11FromDiscord<Robyn [She/Her]> but if the binary is in some random ass dir, it'll return that random ass dir
03:29:29FromDiscord<devlop_gaming> Ohh i think i get it
03:32:21FromDiscord<devlop_gaming> In reply to @battery.acid.bubblegum "if the binary is": It's returning the directory the executabe is in instead of the project directory
03:32:57FromDiscord<Robyn [She/Her]> that is what i said it'd do, yeah
03:33:50FromDiscord<devlop_gaming> I need the parent directory tho
03:46:25FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "I need the parent": please read the docs, i can't spoonfeed you to this degree
03:49:05FromDiscord<devlop_gaming> In reply to @battery.acid.bubblegum "please read the docs,": I did and I'm right back at the same problem
03:49:23FromDiscord<devlop_gaming> I found a proc that does what I want but it returns Path
03:54:46FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "I found a proc": use `.string` to convert a Path into a string
03:54:57FromDiscord<Robyn [She/Her]> Or the `$` op if it exists
03:56:49FromDiscord<devlop_gaming> In reply to @battery.acid.bubblegum "use `.string` to convert": That's what i did and I got attempting to call undeclared routine
04:01:07FromDiscord<Elegantbeef> You certainly did not cause `Path("").string` is valid
04:07:52FromDiscord<devlop_gaming> What?
04:08:14FromDiscord<devlop_gaming> Yes i did
04:08:23FromDiscord<Elegantbeef> Nope
04:08:38FromDiscord<devlop_gaming> Omfg yes I did how you gonna tell me
04:09:04FromDiscord<Elegantbeef> Cause I know the language so I know that calling `string` on a `Path` will produce a `string`
04:09:43FromDiscord<devlop_gaming> font = TTF_OpenFont(cstring(fmt"{parentDir(Path(".")).string}\fonts\EustaceRegular-woxrz.ttf"), 25.0)
04:10:22FromDiscord<Elegantbeef> The error is?
04:10:42FromDiscord<Elegantbeef> You're also pointlessly using string formatting
04:11:05FromDiscord<Elegantbeef> Not to mention `parentDir(".")` does nothing
04:11:10FromDiscord<that_dude.> I feel like this would be way easier if you just bothered to look up each function signature
04:11:13FromDiscord<Elegantbeef> `.` does not have a parent dir
04:12:05FromDiscord<devlop_gaming> In reply to @that_dude. "I feel like this": Bruh i'm literally looking at docs what more do you want
04:12:19FromDiscord<devlop_gaming> In reply to @Elegantbeef "`.` does not have": So what is it then?
04:13:07FromDiscord<Elegantbeef> probably `getCurrentDir`
04:14:18FromDiscord<devlop_gaming> No that get's the directory of where the executable runs
04:14:31FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "Bruh i'm literally looking": to use critical thinking and reasoning skills? :p
04:14:38FromDiscord<Elegantbeef> Heh
04:15:39FromDiscord<Robyn [She/Her]> i am trying to think of what to say without sounding mean
04:15:54FromDiscord<devlop_gaming> What?
04:16:21FromDiscord<Robyn [She/Her]> I'm just tired so i don't wanna sound like I'm being a cunt when saying something blunt, like by overexplaining
04:18:44FromDiscord<Elegantbeef> You either want `getCurrentDir` or you want `getAppDir`
04:18:51FromDiscord<Elegantbeef> Those are the only two options
04:18:58FromDiscord<Elegantbeef> Work your way from there
04:20:06FromDiscord<devlop_gaming> In reply to @Elegantbeef "You either want `getCurrentDir`": Doesn't both does the same thing?
04:20:07FromDiscord<Robyn [She/Her]> I recommend taking a look on how file paths work, via a YT video or something, if you aren't familar with them
04:20:19FromDiscord<that_dude.> sent a code paste, see https://play.nim-lang.org/#pasty=XtztLucp
04:20:24FromDiscord<devlop_gaming> Bruh ik how file paths work
04:20:28FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "Doesn't both does the": i explained it earlier
04:20:32FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "Bruh ik how file": man are you sure
04:20:33FromDiscord<that_dude.> I think that's basically all the puzzle pieces
04:20:55FromDiscord<Robyn [She/Her]> because to me, i am genuinely so confused on what problem you're having
04:21:42FromDiscord<that_dude.> I'm convinced that he just isn't looking things up. I mentioned that fmt string has a gotcha and that he should make sure it isn't an issue, but didn't remember what it was and was expecting me to look it up for him
04:21:56FromDiscord<Robyn [She/Her]> lovely
04:25:45FromDiscord<devlop_gaming> In reply to @that_dude. "I'm convinced that he": Omfg i'm tired of people assuming i don't look shit up. Ya'll make it hard to be nice sometimes.
04:27:12FromDiscord<that_dude.> It could just be one of those unteachable things that we're used to, but idk how else I can help you without just doing your work for you
04:27:58FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "Omfg i'm tired of": do people assume that a lot?
04:28:59FromDiscord<that_dude.> Like afaik, all the pieces are there now in the links I posted, but _you_ need to understand how to put the together because imo this is fundamental stuff you need to be good at.
04:29:33FromDiscord<that_dude.> And I don't see what the disconnect is because I've done this stuff so many times that it's easy to me
04:29:52FromDiscord<threefour> In reply to @devlop_gaming "Omfg i'm tired of": You're the first person I've seen here that requires this much follow-up for trivial tasks. That indicates to me that you're not doing what everyone else is doing to avoid that, which is RTFMing.
04:29:53FromDiscord<that_dude.> Do you think you could articulate what part you don't understand?
04:31:13FromDiscord<devlop_gaming> In reply to @threefour "You're the first person": I literally did everything ya'll told me to
04:32:11FromDiscord<threefour> I don't say that just to be mean either. Projects are quicker when you use docs rather than waiting on responses. The docs are often semi scarce don't get me wrong, but not to this degree.
04:33:34FromDiscord<that_dude.> Most help conversations in this channel are either "How does x work" or "is there a way to do x -> have you looked at y?" and most people can extrapolate from there. Things Nim does isn't that different from all other programming languages.
04:34:42FromDiscord<that_dude.> In that sense, if you know the signature of a function and have read the docs on what it does, it should be easy to chain them together in a programatic way
04:34:50FromDiscord<devlop_gaming> In reply to @threefour "I don't say that": What you think i do all day stare at the ceiling???
04:35:35FromDiscord<devlop_gaming> In reply to @that_dude. "Most help conversations in": Yea maybe bc i rlly don't understand the information i get off the docs sometimes
04:38:17FromDiscord<that_dude.> Every link I gave you https://discord.com/channels/371759389889003530/371759389889003532/1363731049036779701 has the function signature (proc name, arguments + type, return type), a description of what it does, and two of them have MANY examples to reference. And if the examples don't convince you, you can make a `test.nim` file and see what they do there.
04:45:52FromDiscord<kapendev> Giving just links is not really helpful
04:46:18FromDiscord<that_dude.> Why not?
04:46:58FromDiscord<kapendev> Because that was already available to him. Why do you think he is asking here?
04:47:22FromDiscord<that_dude.> Because I'm not convinced that he used what was available. We already tried to help him a bunch
04:48:00FromDiscord<kapendev> This is not school, we don't have homework
04:48:04FromDiscord<that_dude.> If he didn't understand how to read the docs and had a question about it, I could have helped him with that. But he was asking questions that the docs answer imo
04:48:36FromDiscord<that_dude.> Which also means you don't have a tutor or teacher. It's up to you to look up and learn what you need to know on your own.
04:48:50FromDiscord<threefour> In reply to @kapendev "This is not school,": We're not paid per question either
04:49:13FromDiscord<that_dude.> I'm trying to help in good faith. And that means that if he wants help, that should mean he's invested enough to try to learn something
04:49:31FromDiscord<that_dude.> If he's not here to learn a niche language, then why bother with a niche language
04:49:31FromDiscord<kapendev> You could just not answer instead of being nerds and saying that he should read better 😉
04:49:43FromDiscord<that_dude.> What should I have done instead?
04:50:03FromDiscord<that_dude.> I have asked him for specific problems on what I've provided
04:50:08FromDiscord<Robyn [She/Her]> the issue is that basic path manipulation is somehow a challenge↵(@kapendev)
04:50:49FromDiscord<that_dude.> (edit) "I have asked him for specific problems on what ... I've" added "he doesn't understand from what"
04:51:12FromDiscord<Robyn [She/Her]> That's the problem, if they genuinely cannot grasp that, they need to read up on it since as that\_dude has said, it's something so intuitive to us that we can't explain well
04:51:27FromDiscord<Laylie> in a language where resources outside of the official documentation is scarce, it is valid to point to lack of documentation-reading skill as a source of difficulty
04:51:37FromDiscord<devlop_gaming> Look i'm not always gonna understand eveything in the docs. Some things i did understand and some i didn't.
04:52:20FromDiscord<that_dude.> which is fair, but if you didn't mention a single part of the docs that confused you. The most you came in here with was "There is an error <paste>".
04:52:25FromDiscord<devlop_gaming> While searching just now i found something called nimassets which allows you to bundle your assets with your executable
04:53:49FromDiscord<that_dude.> In reply to @Laylie "in a language where": I also used to have issues with that. I didn't know where to look and how to use stuff. But Imo Nim's Strongly typed system makes it pretty easy to use. The hardest part is figuring out if a function already exists for what you want to do, and what it's called
04:58:50FromDiscord<lainlaylie> was the undeclared routine error resolved?
04:58:53FromDiscord<lainlaylie> https://media.discordapp.net/attachments/371759389889003532/1363740755532972142/image.png?ex=6807220d&is=6805d08d&hm=432c269fdd57801e06fdd476198e430b0dbc995e012861e3996ebf42b962e66a&
04:59:12FromDiscord<devlop_gaming> Nope
05:01:19FromDiscord<lainlaylie> the first `"` in `Path(".")` is closing the string, so the compiler tries to call `.`, which doesn't exist
05:01:48FromDiscord<devlop_gaming> Huh?
05:01:58FromDiscord<lainlaylie> strings in nim are delimited by `"`
05:02:12FromDiscord<lainlaylie> a `"` starts a string literal, and a matching `"` ends it
05:02:22FromDiscord<lainlaylie> there is a `"` in `Path(".")`
05:03:24FromDiscord<devlop_gaming> Wait Path takes a string?
05:03:56FromDiscord<lainlaylie> the fact that it's Path is not relevant, you could put any expression that contains `"` in its place and you would get the same error
05:05:30FromDiscord<devlop_gaming> Someone told me to do that so that's what i did 🤷‍♂️
05:05:46FromDiscord<lainlaylie> you need to combine what people tell you to do with your own knowledge
05:06:57FromDiscord<lainlaylie> now that you understand the problem, the solution should be obvious
05:07:36FromDiscord<devlop_gaming> Nothing is ever obvious to me
05:08:01FromDiscord<that_dude.> That's how you learn
05:08:06FromDiscord<that_dude.> It gets easier as you go
05:08:21FromDiscord<devlop_gaming> Yea that's how i got to this point
05:10:38FromDiscord<lainlaylie> your goal is to use the value `Path(".")` inside a `fmt"..."` (which is, of course, a generalized raw string literal). you need to find a way to do so without the `"` closing the string at the wrong place
05:12:57FromDiscord<lainlaylie> some ideas to think about:↵ is it possible to refer to values without typing out their literal representation every time?↵ is it possible to signal to the parser that the `"` is part of the string, not its closing delimiter?
05:18:32FromDiscord<lainlaylie> just noticed someone already sent the solution earlier
05:20:47FromDiscord<devlop_gaming> Ok so i decided to test my project as a single executable and noticed what i'm doing is pointless
05:22:05FromDiscord<devlop_gaming> Either way it still requires the assets to be present so now the question is how can i bundle it with my executable
05:22:56FromDiscord<that_dude.> Now that can be formatted as a nice question
05:22:57FromDiscord<that_dude.> https://github.com/xmonader/nimassets
05:23:23FromDiscord<that_dude.> "Does x exist? -> yes it's called y"
05:25:37FromDiscord<that_dude.> Also https://forum.nim-lang.org/t/3608
05:26:05FromDiscord<that_dude.> https://nim-lang.org/docs/system.html#staticRead%2Cstring
05:26:19FromDiscord<that_dude.> This is probably worth looking into
05:26:32FromDiscord<Laylie> yeah, that + TTF\_OpenFontIO is what i was thinking, but maybe the game people have other ideas
05:26:35FromDiscord<enthus1ast.> In reply to @lainlaylie "": Uahh that gives eye cancer
05:26:41FromDiscord<enthus1ast.> 😉
05:26:50FromDiscord<lainlaylie> lol what about it? the colors?
05:27:21FromDiscord<that_dude.> That's not even that bad lol. I accidentally opened the 1.4.4 Nim docs and found out that that version didn't have dark mode
05:27:28FromDiscord<that_dude.> Blinded me for a sec
05:28:05FromDiscord<enthus1ast.> The lengths, the backslash, the casting...
05:28:25FromDiscord<lainlaylie> oh yeah, the code is verbatim from someone else
05:28:45FromDiscord<enthus1ast.> I do not see colors currently, my mobile is still on bedtime mode 🙂
05:29:33FromDiscord<enthus1ast.> There is "/" proc from ospaths
05:29:39FromDiscord<lainlaylie> indeed
05:29:48FromDiscord<that_dude.> Yep
05:29:56FromDiscord<enthus1ast.> And getAppDir()
05:30:02FromDiscord<lainlaylie> i wanted to help them solve the immediate problem before inundating them with alternatives
05:30:15FromDiscord<enthus1ast.> Yes understood 😃
05:30:46FromDiscord<devlop_gaming> Wish I knew I was doing this for nothing then i could have found nimassets sooner
05:31:29FromDiscord<that_dude.> I don't think you're doing this for nothing, you still need to know how to find stuff on your system.
05:31:29FromDiscord<enthus1ast.> I would not bother too much with cramping all assets inside the exe
05:32:10FromDiscord<devlop_gaming> I want it to be a single executable tho
05:32:12FromDiscord<enthus1ast.> Just put all into a folder and zip it, or create an installer
05:32:48FromDiscord<that_dude.> Tbh I think this is a fine endevour because he should learn a decent amount in trying it
05:33:14FromDiscord<enthus1ast.> Or load the assets from a const directly into memory (if sdl supports this)
05:33:18FromDiscord<devlop_gaming> Plus i have my reasons for doing so
05:33:30FromDiscord<devlop_gaming> In reply to @enthus1ast. "Or load the assets": That's possible?
05:33:48FromDiscord<enthus1ast.> Idk look if sdl can load from am adress
05:34:42FromDiscord<lainlaylie> TTF_OpenFontIO innit
05:35:36FromDiscord<enthus1ast.> If you use nimassets it will unpack/extract the assets in the calling folder, I would hate you (a little bit) if you do this to my folder
05:35:46FromDiscord<enthus1ast.> In the current folder
05:36:12FromDiscord<devlop_gaming> Wait so it doesn't keep it in the executable?
05:36:27FromDiscord<enthus1ast.> Afaik no
05:36:59FromDiscord<enthus1ast.> But have not used it in a long time
05:37:48FromDiscord<enthus1ast.> So you must use the load from memory functions for every asset, you gonna use
05:38:09FromDiscord<enthus1ast.> https://media.discordapp.net/attachments/371759389889003532/1363750634096038018/voice-message.ogg?ex=68072b40&is=6805d9c0&hm=7ea360e4b99bb5b1a8f802775d042bad973d9f975f2774efac01fffe23b4370f&
05:39:30FromDiscord<devlop_gaming> Wait if you just said the assets get unpacked into the calling folder then what's the point in using it?
05:40:58FromDiscord<enthus1ast.> It's for the lazy ones that do not want to do an Installer 😉
05:41:54FromDiscord<devlop_gaming> That means the package is existing just to exist
05:42:44FromDiscord<that_dude.> It sounds like it lets you distribute an exe to your users without them needing to worry about setting up any nearby files the program needs
05:43:31FromDiscord<devlop_gaming> Wym by setting up?
05:43:57FromDiscord<that_dude.> You can have them download an exe to run instead of a zip file with an exe and other files
05:44:09FromDiscord<that_dude.> Slightly nicer first time run presentation
05:47:31FromDiscord<devlop_gaming> That just sound like a job an installer can do
05:48:16FromDiscord<devlop_gaming> I'm still wondering how to bundle assets into a single executable like how godot did
05:50:05FromDiscord<demotomohiro> If you bundle 1 giga bytes of game asset files to single executable somehow, doesn't it always use 1 GB of memory to place all content of the executable file?↵If you don't bundle game asset files, your game only use memory for loaded game assets and don't use much memory unless it loads all game asset files at the same time.
05:53:02FromDiscord<devlop_gaming> Ok so tell me this how does godot package it's content(assets included) into a single executable
05:53:46FromDiscord<that_dude.> Just wondering, why would you expect us to know something like that?
05:54:10FromDiscord<that_dude.> That's a really specific question
05:54:39FromDiscord<Elegantbeef> Hey I know the answer 😄
05:54:42FromDiscord<that_dude.> Aren't you curious enough to try to look it up on your own?
05:54:47FromDiscord<that_dude.> Ey beef you can't do this to me!
05:54:59FromDiscord<that_dude.> You know too much
05:55:11FromDiscord<Elegantbeef> I can too, eh
05:55:11FromDiscord<that_dude.> Like a fucking encyclopedia lol
05:56:22FromDiscord<that_dude.> DevLop, I'm just trying to say that you shouldn't expect us to know these things. Most things you need to be curious enough about on your own to research them
05:56:24FromDiscord<devlop_gaming> In reply to @that_dude. "That's a really specific": Needed something for an example
05:57:21FromDiscord<devlop_gaming> In reply to @that_dude. "DevLop, I'm just trying": You should also know information like this isn't gonna be on the internet
05:58:41FromDiscord<that_dude.> Then how would you expect us to have learned about it?
05:59:03FromDiscord<devlop_gaming> 🤷‍♂️
05:59:30FromDiscord<devlop_gaming> Ik information on its build system exists for sure and i think for its nodes as well
06:00:47FromDiscord<that_dude.> For what demo said, I could say the same thing "Assets must be stored somewhere -> put all in exe (ram) or put all on disk and fetch as needed". But for what you asked, "What mechanism does Godot specifically use to embed things?" Which I think is fair to argue that the Nim community doesn't really care to figure out for this niche
06:00:59FromDiscord<that_dude.> (edit) "For what demo said, I could say the same thing ... "Assets" added "as it's kinda logical"
06:01:55FromDiscord<devlop_gaming> Didn't ask you to
06:02:06FromDiscord<demotomohiro> Can you tell me why you need to bundle libraries and game assets to single executable file?↵Just put them on directories and zip them doesn't work?
06:04:13FromDiscord<devlop_gaming> In reply to @demotomohiro "Can you tell me": Bc I just want a single executable and plus you won't have to worry about accidentally deleting stuff
06:04:16FromDiscord<Elegantbeef> Cause 1 file = gooder
06:04:23FromDiscord<devlop_gaming> ?
06:04:34FromDiscord<devlop_gaming> Gooder isn't even correct English
06:04:44FromDiscord<devlop_gaming> And it's not a word
06:04:54FromDiscord<Elegantbeef> Damn you got me
06:05:01FromDiscord<Elegantbeef> So they say
06:06:07FromDiscord<enthus1ast.> Godot Just zips them and puts them next to the exe
06:06:35FromDiscord<enthus1ast.> And the answer is: static read them into your exe and load them from address
06:07:00FromDiscord<Elegantbeef> Well the real answer is to use portable executables, but yes
06:07:54FromDiscord<demotomohiro> In reply to @devlop_gaming "Bc I just want": There are many softwares that ships with mutiple files.↵If you need to care about accidentally deleting stuff, you can also accidentally delete important files and make many problems.
06:08:26FromDiscord<Elegantbeef> If you think about it a single file means you're more likely to delete everything if you accidentally delete things
06:08:27FromDiscord<devlop_gaming> In reply to @demotomohiro "There are many softwares": That's why games such as osu have a repair tool
06:08:31FromDiscord<that_dude.> In reply to @enthus1ast. "And the answer is:": https://discord.com/channels/371759389889003530/371759389889003532/1363747598741016606 I agree, that's probably the easiest solution to just do.
06:08:47FromDiscord<that_dude.> Is your game supposed to be modable?
06:10:01FromDiscord<devlop_gaming> In reply to @Elegantbeef "If you think about": Well not rlly. For what I'm doing my application relies on a directory located in AppData. Long as that exists people can delete the executable anytime.
06:10:08FromDiscord<devlop_gaming> In reply to @that_dude. "Is your game supposed": Also not making a game
06:11:05FromDiscord<devlop_gaming> Mb i meant located in the user folder
06:16:24FromDiscord<lainlaylie> can confirm, it was easy https://media.discordapp.net/attachments/371759389889003532/1363760260346544259/image.png?ex=68073437&is=6805e2b7&hm=50aab1329ac8faed0aff026602d38a04787a6ef95ae07dde19fe3f64d26deee6&
06:17:50FromDiscord<demotomohiro> In reply to @devlop_gaming "Bc I just want": When you develop game, you probably cannot always keep game asset files in single executable.↵How can drawing/music/3D model softwares can read and write files inside executable file?↵You can manage libraries or asset files using git or other version systems.↵When you ship your game, your game can show errors when asset files are missing and ask user to reinstall.
06:19:11FromDiscord<devlop_gaming> In reply to @demotomohiro "When you develop game,": If I was developing a game i wouldn't have asked💀
07:05:37FromDiscord<nnsee> In reply to @devlop_gaming "Ok so tell me": this was only possible in godot 2. godot 3 ditched this and assets are always separate. turns out bundling assets into the exe isn't generally a good idea
07:05:47FromDiscord<nnsee> what problem exactly are you trying to solve?
07:19:21*delvarus joined #nim
07:20:14*andy-turner joined #nim
07:22:43FromDiscord<devlop_gaming> In reply to @nnsee "this was only possible": I'm using godot 4 and it's just a single executable 🤔
07:23:04FromDiscord<devlop_gaming> Tho I can imagine why
07:23:38FromDiscord<devlop_gaming> That's probably why some games need to download content first
08:08:02FromDiscord<tomo_kimpesa> In reply to @demotomohiro "When you develop game,": Other than concatenating an asset archive, another way I could think of is converting assets to binaries and load them as resources (inline).↵Massive bloat though, I don't see the point of this instead of just having an installer expose an entry point and it hide all the fluff.
08:15:32FromDiscord<nnsee> In reply to @devlop_gaming "I'm using godot 4": it's possible that godot 4 reintroduced that
08:15:36FromDiscord<nnsee> i just know it wasn't possible in 3
09:01:16*amadaluzia joined #nim
09:28:28*delvarus quit (Quit: Leaving)
09:49:46*amadaluzia_ joined #nim
09:53:07*andy-turner quit (Quit: Leaving)
10:29:00*xet7 joined #nim
10:37:01*delvarus joined #nim
10:47:49*andy-turner joined #nim
10:57:14*andy-turner quit (Quit: Leaving)
11:44:21*alexdaguy joined #nim
12:44:31*beholders_eye joined #nim
13:24:45FromDiscord<Robyn [She/Her]> hey beef what do you think about making a game that runs on a WASM VM
13:25:24FromDiscord<Robyn [She/Her]> like you have a runner for your game which is native code, then the game itself is just in WASM
13:44:30FromDiscord<kapendev> In reply to @nnsee "this was only possible": You can do it in Godot 3 too
13:45:04FromDiscord<nnsee> shrug, wasn't possible when i was tinkering with it
13:45:14FromDiscord<nnsee> maybe they've re-added that now
14:02:23*thunder joined #nim
14:07:08FromDiscord<kapendev> In reply to @battery.acid.bubblegum "hey beef what do": It's called WASM4.
14:09:46*amadaluzia_ quit (Quit: Hi, this is Paul Allen. I'm being called away to London for a few days. Meredith, I'll call you when I get back. Hasta la vista, baby.)
14:43:09FromDiscord<Robyn [She/Her]> that's for pixel games↵(@kapendev)
14:43:15FromDiscord<Robyn [She/Her]> I'd want a runtime that allows for patching the game at startup, for modding and such
14:43:22FromDiscord<Robyn [She/Her]> and it's made simple deliberately
14:46:15FromDiscord<Robyn [She/Her]> bridge sent messages out of order
14:46:20FromDiscord<kapendev> I think WASM is more trouble than it's worth for gamedev.
14:46:23FromDiscord<Robyn [She/Her]> In reply to @Robyn "I'd want a runtime": this was the last msg i sent
14:46:32FromDiscord<Robyn [She/Her]> In reply to @kapendev "I think WASM is": why's that?
14:47:01*xtr00 quit (Read error: Connection reset by peer)
14:47:32FromDiscord<kapendev> Because it's more work than doing dll stuff.
14:48:28FromDiscord<leorize> wasm is over hyped tbh
14:49:29FromDiscord<threefour> Does it have access to DOM yet?
14:49:48FromDiscord<leorize> that's probably never in scope
14:50:28FromDiscord<Ras 🫐> i think the attractive part of it is being able to run games in the browser with relatively okay performance↵(@kapendev)
14:55:06FromDiscord<Robyn [She/Her]> i like it tho ;-; platform independent target which can be ran p much anywhere
14:55:22FromDiscord<kapendev> In reply to @Ras 🫐 "i think the attractive": That's ok.
14:56:13FromDiscord<leorize> so is JVM
14:56:28FromDiscord<Robyn [She/Her]> i saw that Leo
14:56:29FromDiscord<Robyn [She/Her]> Can't target the JVM with Rust and such
14:56:35FromDiscord<Robyn [She/Her]> "so is the JVM"
14:57:41FromDiscord<leorize> huh, I thought my server stalled and the messages never got sent
14:57:54FromDiscord<Robyn [She/Her]> Not really imo, you get much easier access to tools that can modify the game's code, which seems easier than modding the binary which could run on various different platforms↵(@kapendev)
14:59:27FromDiscord<leorize> if you want wasm + game engine you gotta make one
14:59:31FromDiscord<Robyn [She/Her]> If the game runs in an interpreter or runtime like the JVM, not really a problem, but look at the MC bedrock edition server software, they were relying on the pdb files released by Mojang for modding it, but then they stopped releasing it and now a lot more info is gonna have to go into it
14:59:38FromDiscord<Robyn [She/Her]> I am aware 😔
14:59:39FromDiscord<leorize> I don't think any of the standard runtimes do graphics
15:00:49FromDiscord<leorize> not really, hyper optimized wasm is about as hard to mod as native code
15:01:12FromDiscord<Robyn [She/Her]> But once the effort is done, it can be applied to multiple platforms
15:01:15FromDiscord<Robyn [She/Her]> Could use wgpu-native to expose rendering to the WASM runtime
15:01:33FromDiscord<Robyn [She/Her]> But your point is right \:p
15:03:16*xtr00 joined #nim
15:03:54FromDiscord<leorize> at that point you have to question whether its easier to have your engine use an established system like lua (used by pretty much everyone), or wren or whatever
15:11:35FromDiscord<devlop_gaming> In reply to @Ras 🫐 "i think the attractive": Browser games are doo doo
15:13:22FromDiscord<leorize> CrossCode is a "browser" game and it's pretty good
15:13:48FromDiscord<leorize> you'd never notice that it's JS in regular play
15:13:51FromDiscord<leorize> runs great on a potato
15:13:53FromDiscord<devlop_gaming> I didn't mean browser games content are doo doo I was talking about performance
15:14:30FromDiscord<devlop_gaming> Idek how you even get bad performance in the browser💀
15:31:34*amadaluzia quit (Ping timeout: 252 seconds)
15:31:53*amadaluzia joined #nim
15:35:35*alexdaguy quit (Ping timeout: 252 seconds)
15:39:45*amadaluzia quit (Remote host closed the connection)
15:47:53FromDiscord<Elegantbeef> I've thought about it↵(@Robyn [She/Her])
15:48:35FromDiscord<nnsee> In reply to @devlop_gaming "I didn't mean browser": i mean that's exactly one of the things wasm aims to solve
15:48:50FromDiscord<nnsee> and the performance isn't necessarily bad
15:49:03FromDiscord<nnsee> quakejs runs really well for example http://www.quakejs.com/
15:50:35FromDiscord<Elegantbeef> A jit'd wasm runtime could be quite fast. Using `wasm` for mods is a thing I've wanted to do for a bit, but I've not got to making a project that'd benefit it
15:50:54FromDiscord<fabric.input_output> embedding a runtime for logic and control isn't uncommon afaik
15:51:53FromDiscord<devlop_gaming> In reply to @nnsee "quakejs runs really well": Some browser games aren't very well performant especially for weaker devices
15:52:16FromDiscord<devlop_gaming> Big examples rhythm plus and zomb royale
15:53:44FromDiscord<nnsee> In reply to @devlop_gaming "Some browser games aren't": you're missing the point
15:54:04FromDiscord<nnsee> they're not slow because they're browser games, they're slow because they're built on technologies not meant for games
16:12:48FromDiscord<devlop_gaming> So isn't python or ruby but you see people made it work
16:14:06*void09 quit (Ping timeout: 252 seconds)
16:16:11FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "A jit'd wasm runtime": same rip, also wasmtime as the runtime would be plenty fast
16:17:13FromDiscord<Robyn [She/Her]> In reply to @devlop_gaming "So isn't python or": it all comes down to optimisation, poorly written code in a language like C/Nim/Zig/etc, can be slower than a half-decent implementation in Python or Ruby or whatever
16:17:50*void09 joined #nim
16:18:15FromDiscord<leorize> in fact not being aware of implementation differences is probably one of the biggest contributors to "nim is slower than python" posts
16:18:47FromDiscord<Elegantbeef> That and `-d:release` 😄
16:55:22FromDiscord<devlop_gaming> What does that do again? I seen that somewhere but I forgot what it does.
17:09:11*amadaluzia joined #nim
17:15:13FromDiscord<Phil (he/him)> -d\:release compiles with optimization flags. Which brings roughly a 10x speed-up
17:42:04*ntat joined #nim
18:01:29*delvarus quit (Ping timeout: 268 seconds)
18:17:39*ntat quit (Quit: leaving)
19:21:37FromDiscord<devlop_gaming> So i wouldn't need to worry if my program is a little slow?
19:36:40FromDiscord<Phil> sent a long message, see https://pasty.ee/ZHYoedNL
20:04:33*amadaluzia quit (Read error: Connection reset by peer)
20:04:56*amadaluzia joined #nim
20:17:28*amadaluzia quit (Ping timeout: 272 seconds)
20:22:33FromDiscord<devlop_gaming> In reply to @isofruit "Define "little slow". In": Would there even be a noticeable performance difference without -d:release between test builds versus final builds?
20:23:31FromDiscord<Phil> In reply to @devlop_gaming "Would there even be": When I write 10x I mean that.↵For me it was when I compiled my webserver.↵Loading times went from python-like speeds around >200ms to like... 2ms
20:23:39FromDiscord<Phil> (edit) "2ms" => "2-30ms"
20:23:51FromDiscord<Phil> And that one you definitely notice
20:26:23FromDiscord<devlop_gaming> So my engine could potentially be faster than godot and unity?
20:27:26FromDiscord<Phil> Maybe?I don't know what your engine does, but if you're not compiling with -d:release your kneecapping yourself (in your case -d:danger may also be a valid choice, I'll let gamedevs decide on that one, that one is not my field)
20:27:45FromDiscord<kapendev> In reply to @devlop_gaming "So my engine could": Easily. Godot is poopoo slow.
20:28:24FromDiscord<devlop_gaming> In reply to @kapendev "Easily. Godot is poopoo": I forgot what i did but there is a setting i messed with that made my project faster when i was messing with godot
20:28:50FromDiscord<devlop_gaming> Tho the engine itself is still a bit laggy
20:28:52FromDiscord<Phil> The kinds of tasks where I'd consider compiling without -d:release valid is when you're just playing around or processing tiny pieces of work where you really do not care
20:29:19FromDiscord<Phil> by tiny pieces of work I mean stuff like reading in/writing/editing like a txt file with less than 1000 lines of text
20:29:50FromDiscord<devlop_gaming> I was thinking about skipping that part with reason
20:30:31FromDiscord<Phil> Once you're past that, always compile with at least -d:release when you're building a binary for final use.↵-d:lto (link time optimization) is also basically free performance, but that one only improves things by a couple percent or so but double the build-time
20:30:56FromDiscord<Phil> (edit) "double" => "doubles" | "build-time" => "time it takes to compile"
20:31:31FromDiscord<devlop_gaming> I see
20:51:05*beholders_eye quit (Ping timeout: 265 seconds)
20:59:57*nyeaa49284230101 joined #nim
21:01:29*skippy8 joined #nim
21:05:47FromDiscord<nnsee> In reply to @devlop_gaming "So my engine could": both godot and unity are both far more bloated but also far more micro-optimized than your engine will be. so it all depends
21:06:11FromDiscord<nnsee> but since your engine will be purpose built for specific games, then... maybe?
21:14:54FromDiscord<DetermiedNim1> are there ways to interface with rust other than nbindgen
21:15:31FromDiscord<DetermiedNim1> oh well
21:15:32FromDiscord<leorize> just do it yourself?
21:15:45FromDiscord<leorize> write rust -\> C ffi
21:15:45FromDiscord<leorize> then write C -\> nim ffi
21:16:04FromDiscord<DetermiedNim1> yeah I just looked up rust's ffi
21:24:24FromDiscord<dawidek.2137> LSP dying on me all the time is the is a problem
21:24:37FromDiscord<dawidek.2137> is this still like this for other people?
21:39:39FromDiscord<threefour> I don't have an issue with it dying, but it's painfully slow in Emacs (but VS Code 🤷‍♂️) to the point where I stopped using LSP for Nim altogether, and now just rawdog it. Not that bad with docs open.
21:39:49FromDiscord<threefour> (edit) "I don't have an issue with it dying, but it's painfully slow in Emacs (but ... VS" added "not"
21:57:09*xet7 quit (Quit: Leaving)
21:57:51*thunder quit (Quit: Leaving)
22:15:15*amadaluzia joined #nim
22:15:33*skippy8 quit (Quit: WeeChat 4.4.2)
22:15:59*skippy8 joined #nim
22:35:19FromDiscord<tauruuuuuus> In reply to @dawidek.2137 "is this still like": like I said multiple times on the forum, I got fed up and switched to clion nim's plugin, it's been pretty nice
22:38:34FromDiscord<tauruuuuuus> code navigation is there (needs just a `nimble setup`), code suggestions are there too, and step-by-step debugging is integrated too
22:40:47FromDiscord<tauruuuuuus> sent a code paste, see https://play.nim-lang.org/#pasty=NnQdkvqe
22:44:04*skippy8 quit (Quit: WeeChat 4.4.2)
23:01:27FromDiscord<devlop_gaming> In reply to @nnsee "both godot and unity": "Micro optimized" yet unity can't even run on weak devices while godot can sorta run smoothly on weak devices
23:03:25FromDiscord<nnsee> In reply to @devlop_gaming ""Micro optimized" yet unity": er what?
23:03:48FromDiscord<nnsee> there are many, many games built on unity that run perfectly fine on "weak" devices
23:03:53FromDiscord<devlop_gaming> See the goal here is to get my engine as optimized as possible. Kinda have to because one of my computers can run nothing with the application nearly crashing.
23:04:04FromDiscord<devlop_gaming> In reply to @nnsee "there are many, many": I'm talking about the engine itself
23:04:38FromDiscord<devlop_gaming> Ik unity games run fine. Adofai is one of them that runs with no signs of lag somehow.
23:04:56FromDiscord<nnsee> so i don't understand your point?
23:06:17FromDiscord<devlop_gaming> Some engines doesn't run well on weak devices
23:06:41FromDiscord<devlop_gaming> One time I tried to use unity and was faced with crashes and constant lag
23:07:45FromDiscord<nnsee> In reply to @devlop_gaming ""Micro optimized" yet unity": "can't run on weak devices" yet games made using unity are praised as _the_ pinnacle on low-end devices, cuphead and hollow knight immediate coming to mind
23:07:56FromDiscord<nnsee> (edit) "immediate" => "immediately"
23:09:22FromDiscord<devlop_gaming> In reply to @nnsee ""can't run on weak": Never played cuphead or hollow knight
23:09:41FromDiscord<nnsee> er okay
23:09:48FromDiscord<nnsee> doesn't really change the facts
23:10:30FromDiscord<devlop_gaming> Again I weren't referring to the games made with the engines
23:11:04FromDiscord<nnsee> not really sure what else you could be referring to
23:11:37FromDiscord<devlop_gaming> The engines themselves