<< 22-09-2021 >>

00:00:50FromDiscord<Elegantbeef> Well you know you can make it easier/more extensible by making a `newAnimationTrack` proc that takes `frames`?
00:01:34nrds<Prestige99> you mean something other than my proc at line 54?
00:01:43FromDiscord<treeform> In reply to @iffy (Matt Haggard) "I'm going to give": Its cool that you want to highlight pixie, thanks!
00:01:48FromDiscord<Elegantbeef> Well the body
00:02:56nrds<Prestige99> I'm not sure what you mean
00:02:58FromDiscord<Elegantbeef> Something like https://play.nim-lang.org/#ix=3zBe
00:03:30nrds<Prestige99> oh I see
00:03:34FromDiscord<Elegantbeef> Guess it's a `seq[KeyFrame[int]]` instead
00:03:43nrds<Prestige99> yeah but I don't think that addresses the issue I have
00:04:01FromDiscord<Elegantbeef> Well it solves one issue of ugly code \:P
00:04:05nrds<Prestige99> like if I decide to add new states to TrackKind but forget to update TrackFieldType, or vice versa
00:09:30FromDiscord<Elegantbeef> `static: assert (TrackKind.high.ord - TrackKind.low.ord) == arity(TrackFieldType)` here you go
00:09:31FromDiscord<Elegantbeef> `import std/typetraits`
00:15:45nrds<Prestige99> oh that's interesting, thanks - makes it a bit safer
00:16:14FromDiscord<Elegantbeef> Otherwise you could generate the enum from the typedesc
00:16:37nrds<Prestige99> from TrackFieldType? That would be great, tried and failed earlier :P
00:16:48nrds<Prestige99> Couldn't figure out how to pull info from TrackFieldType
00:16:55FromDiscord<Elegantbeef> Ah
00:17:04FromDiscord<Elegantbeef> I'll make a macro and all the dots will connect 😛
00:17:09nrds<Prestige99> :D
00:17:28nrds<Prestige99> Gotta eat but I'll be back in a bit. Thanks for your help
00:35:27FromDiscord<Elegantbeef> Well bren i cannot compile Nim from source on my phone so yay! \:(
00:35:29FromDiscord<Elegantbeef> Here you go prestige https://play.nim-lang.org/#ix=3zBi
00:35:45FromDiscord<Elegantbeef> `cleanIdent` probably needs cleaned ironically but i'm a lazy man
00:36:16nrds<Prestige99> Thanks, I'll check it out soon
00:40:44FromDiscord<tsoj> Hi, is there an easy way to do the C `a |= 0b101101` in Nim, like `a or= 0b101101`?
00:40:47FromDiscord<Bren> What is the problem you are having
00:42:09FromDiscord<Elegantbeef> Glob issue
00:42:16FromDiscord<Elegantbeef> https://github.com/android/ndk/issues/718
00:42:30FromDiscord<Elegantbeef> You can define your own `|=` as there doesnt seem to be one in the stdlib↵(@tsoj)
00:43:18FromDiscord<Elegantbeef> Or you could make an `or` that takes a var T as the first parameter
00:44:31*Pyautogui joined #nim
00:44:39FromDiscord<Elegantbeef> Eh i guess no since it still thinks it's the operator sadly
00:44:47FromDiscord<Bren> sent a code paste, see https://paste.rs/qef
00:46:44FromDiscord<Elegantbeef> Yea i was just trying to build nim from inside termux without alpine
00:47:34FromDiscord<Elegantbeef> apline does nothing but seg fault
00:47:42FromDiscord<Elegantbeef> So i guess i say sorry i cannot help
00:53:42FromDiscord<Bren> Odd
01:03:26*arkurious quit (Quit: Leaving)
01:25:45*neurocyte0136 joined #nim
01:25:45*neurocyte0136 quit (Changing host)
01:25:45*neurocyte0136 joined #nim
01:27:13*greyrat joined #nim
01:27:40*neurocyte013 quit (Ping timeout: 252 seconds)
01:27:40*neurocyte0136 is now known as neurocyte013
01:28:01*lucerne joined #nim
01:30:51*Pyautogui quit (Ping timeout: 265 seconds)
02:43:03FromDiscord<gnu+linux user> the compiler dosent warn me of using a bool = true
02:43:59FromDiscord<Elegantbeef> Wh would it?
02:46:39FromDiscord<gnu+linux user> it seems to work now 🥴
02:51:43*kayabaNerve joined #nim
02:54:28FromDiscord<Rika> ??
03:15:53nrds<Prestige99> Hm beef so the system seems to complain about the seq[KeyFrame[prec()]] situation, can't use proc() {.closure.} for some reason. Didn't think that distinction would matter. Thoughts?
03:18:13FromDiscord<Elegantbeef> what "system"
03:18:23nrds<Prestige99> Well I guess the macro just doesn't handle it, nvm
03:18:26FromDiscord<Elegantbeef> My lazyily made macro or the actual logic
03:18:46FromDiscord<Elegantbeef> Yea you probably need to some smarter logic for the proc string representation
03:18:49FromDiscord<Elegantbeef> Or use an alias
03:18:58FromDiscord<Elegantbeef> Since it doesnt recurse
03:24:03nrds<Prestige99> 'sons' is not accessible using discriminant 'kind' of type 'TNode' [FieldDefect] 🤔 well that's a new one
03:24:45FromDiscord<Elegantbeef> You borked the compiler nice 😛
03:25:25*justsomeguy joined #nim
03:27:21nrds<Prestige99> Doing this craziness with procs, I'm not surprised lol
03:28:21nrds<Prestige99> https://play.nim-lang.org/#ix=3zBF this is what broke it. The `lerpProc` I have to provide is redundant for procs, I just want them invoked at certain points in time...
03:28:41nrds<Prestige99> Maybe I could just make a special case for them instead of trying to include it with KeyFrames
03:29:51nrds<Prestige99> atm proc(startValue, endValue: T, completionRatio: float): T is required as the last param
03:32:48*justsomeguy left #nim (WeeChat 3.2)
03:47:33*cyraxjoe quit (Remote host closed the connection)
03:48:45*cyraxjoe joined #nim
04:06:01*supakeen quit (Quit: WeeChat 3.3)
04:06:32*supakeen joined #nim
04:20:12*rockcavera quit (Remote host closed the connection)
04:41:10nrds<Prestige99> If you're around @Elegantbeef I got around the compiler issue, but now I'm having an issue where seq[KeyFrame[newAnimationTrack.T]] and seq[KeyFrame[animation.ClosureProc]] aren't compatible. ClosureProc is just a type alias for proc() {.closure.} that I used with your makeEnum macro. Maybe this is a weird bug with generics?
04:41:40nrds<Prestige99> newAnimationTrack.T is of type TrackKind, which makeEnum generated
04:47:13nrds<Prestige99> If you want to look: https://play.nim-lang.org/#ix=3zBQ for the error, https://git.einheit.tech/EinheitTechnologies/shade/src/commit/d84cb8918d6f99e78d9c93ff8f9f4a10a32fcd8d/src/shadepkg/game/animation.nim for the code
04:49:08FromDiscord<Elegantbeef> Where is it called though?
04:50:20nrds<Prestige99> https://git.einheit.tech/EinheitTechnologies/shade/src/commit/d84cb8918d6f99e78d9c93ff8f9f4a10a32fcd8d/tests/shade/animation_test.nim#L75 was working on tests for it
04:56:28FromDiscord<Elegantbeef> I mean you're passing a proc for the field, this doesnt make much sensee
04:56:42FromDiscord<Elegantbeef> It should be a `var someProc: proc()`
04:56:53nrds<Prestige99> I agree, just trying to find a way to use procs with this system
04:57:02nrds<Prestige99> or else I'll just have to handle procs separately
04:58:08nrds<Prestige99> yeah that makes more sense
04:58:49nrds<Prestige99> oh, well that got past that issue but I ran into the same compiler problem 🤦
04:59:59nrds<Prestige99> Maybe this is a bust
05:49:41FromDiscord<Gumber> watching everyone create these like sdl2 / glfw game engine projects is a trip
05:49:50FromDiscord<Gumber> because this was me like five / six years ago
05:50:03FromDiscord<Gumber> I guess I was using BGFX instead of OpenGL but still
05:50:14FromDiscord<Gumber> it was like aglet, and a few others and now I'm seeing more and more
05:50:27*beshr joined #nim
05:50:37FromDiscord<Gumber> I think the only project which has stayed relevant for an extended period of duration for Nim game dev is Nico
05:51:43FromDiscord<Gumber> so bravo @impbox [ftsf]
05:51:43FromDiscord<impbox [ftsf]> i think the issue is people making game engines instead of games
05:51:53FromDiscord<Gumber> well yeah
05:51:54FromDiscord<impbox [ftsf]> nico only exists and is maintained because it's used to make games
05:51:59FromDiscord<Gumber> it took me like five years to relize that was my issue
05:52:03FromDiscord<Gumber> (edit) "relize" => "realize"
05:52:09FromDiscord<Gumber> but I mean to be fair the five years wasn't without purpose
05:52:11FromDiscord<Elegantbeef> Who the hell would use Nico to make games it's so limited
05:52:34FromDiscord<Gumber> like now I can construct a 3d game engine with solid engineering principles and things like plugin architectures and fiber based job systems and a vulkan renderer etc
05:52:38FromDiscord<Elegantbeef> the above joke brought to you by visible sarcasm
05:52:38FromDiscord<Gumber> unless I had tried and failed like eight times
05:52:42FromDiscord<Gumber> and then done a bunch of R&D work
05:52:45FromDiscord<Gumber> I never would have gotten to that point
05:53:05FromDiscord<Gumber> and I can use that knowledge to build a game instead of a game engine - because at the end of the day my goal isn't to make something that others can use
05:53:13FromDiscord<Gumber> it's to make something I can use to make games and make money on steam
05:53:28FromDiscord<Gumber> and I'm NEVER going to fall back into the mode of building libs / stuff for others
05:53:37FromDiscord<Gumber> like sure you can have my source code (except for my gameplay code / assets)
05:53:46FromDiscord<Gumber> but I'm not going to help you build it or extend it or maintain it
05:54:11FromDiscord<Gumber> sorry - but there's not enough time in life for that and to achieve my goals
05:54:51FromDiscord<Gumber> but yeah - Nico is rad and if I was good at 2d art I'd probably have just kept working on FRAG / zengine and called it a day
05:55:10FromDiscord<Gumber> or if I was really good at coming up with concepts for games / game jams like you
05:55:28FromDiscord<Gumber> instead I have like one big idea for a multiplayer networked RTS game and I'm going to build it, everyone else be damned
05:55:48FromDiscord<Gumber> mostly because I like strategy games and Araq has been clamoring for a Nim RTS since I joined the community
05:56:46FromDiscord<Gumber> In reply to @impbox "i think the issue": but I agree - this is the issue
05:57:09FromDiscord<Gumber> if I could find like one or two other Nim devs who were passionate enough to join me on a networked 3d game project with an advanced renderer - we'd already have a killer game engine
05:57:33FromDiscord<Gumber> it's just like, for me as a person, trying to write all that code (which is going to be heavily reliant on bindings to other libraries since I'm doing 3d, skeletal animation, physics, networking, etc...)
05:57:49FromDiscord<Gumber> is already enough of a task and teaching someone else to compile it or whatever is even more work
05:58:23FromDiscord<Gumber> so until more people want to build a complex advanced game engine and come to the table with something besides a want
05:58:28*Vladar joined #nim
05:58:45FromDiscord<Gumber> Nim's going to have these little like 2d engines that add a bit of functionality on top of SDL / GLFW / whatever
05:59:02FromDiscord<Gumber> and then you'll have some other 3d projects that are geared /tailored to a specific project
05:59:21FromDiscord<Gumber> but aren't really built with the intention of community adoption
05:59:32FromDiscord<Gumber> at least that's how I've seen things lately (like over the past two or so years)
05:59:43nrds<Prestige99> coming up with game ideas has always been the hard part on my end
05:59:54FromDiscord<Gumber> see the thing is
06:00:05FromDiscord<Gumber> if you have a environment enough you're comfortable in
06:00:07nrds<Prestige99> I like nico but I dislike the whole color palette part of it, I just want to draw graphics
06:00:11FromDiscord<Gumber> like I imagine @impbox [ftsf] is with Nico
06:00:18FromDiscord<Gumber> since they built it
06:00:32FromDiscord<Gumber> it's much easier to iterate and ideate and develop a game from ideation to finish
06:00:39FromDiscord<Gumber> because you know everything about your tech stack from end to end
06:00:45FromDiscord<Gumber> you know the art worklflow, the ins and outs etc
06:00:49FromDiscord<Gumber> this is the power in building your own tech
06:01:03FromDiscord<Gumber> but any time you use someone else's engine or tech you're going to run into exactly what you just described
06:01:10FromDiscord<Gumber> you want it to work in a certain way that the original author didn't intend
06:01:44FromDiscord<Gumber> not to mention you'll probably never be as efficient as @impbox [ftsf] at leveraging the tech, because they wrote it and know its strengths and weaknesses
06:02:07FromDiscord<Gumber> soooo - don't try to approach the task with the mentality of I need to write a game engine or I need to have the perfect idea for a game
06:02:12FromDiscord<Gumber> the objective is to limit scope creep
06:02:28FromDiscord<Gumber> pick a genre - pick a style of game you like and start building the technology you need to make that happen
06:02:41FromDiscord<Gumber> like for me, with a 3d networked RTS I knew I needed binding to steamworks
06:03:22FromDiscord<Gumber> because I'm going to leverage steamworks for matchmaking, p2p communicaton, leaderboards, achievements, etc
06:03:35FromDiscord<Gumber> I knew I needed vulkan bindings plus something to make working with vulkan not such a pain - so vk-bootstrap
06:03:51FromDiscord<Gumber> I'm also not a graphics programmer by profession - so I don't know how to implement an abstraction like a frame or render graph, so that' sanother need
06:03:55FromDiscord<Elegantbeef> Given that you're making a 2D tooling prestige just remake retro arcadee games
06:04:13FromDiscord<Gumber> I want a performant engine - so I need some sort of work stealing / fliber based / whatever job system to parallelize work across CPU cores
06:04:28FromDiscord<Gumber> like these are requirements based on the type of game I want to make - so if I figure out how to do these things I can make that game happen
06:04:39FromDiscord<Gumber> if your goal is to make 2d games you don't need a godot or a engine or whatever
06:04:46FromDiscord<Gumber> like you can do it with SDL and probably < 10k LOC
06:05:06FromDiscord<Gumber> but everyone wants to make their own 2d engines, that at the end of the day do the exact same thing just in a slightly different
06:05:07FromDiscord<Gumber> way
06:05:11nrds<Prestige99> @Elegantbeef that's what I've mostly done in the past, like with https://astroships.einheit.tech/
06:05:12FromDiscord<impbox [ftsf]> step 1, build a fun 2D single player RTS with rectangles/circles with basic bug AI, once it's fun proceed to step 2, step 2. get it working networked, step 3. make it shiny and look how you want
06:05:31FromDiscord<Gumber> nico is an exception - I mean it's an attempt at PICO not just some random 2d game engine that can draw tilemaps and handle animated sprites, etc...
06:05:34FromDiscord<Gumber> I disagree
06:05:45FromDiscord<Gumber> 2d rts != 3d rts
06:05:50FromDiscord<Gumber> gameplay concepts don't translate
06:06:05FromDiscord<Elegantbeef> Quick someone make a AoE joke
06:06:05FromDiscord<Gumber> not to mention - you're completely limited by the art style you just described
06:06:20FromDiscord<Gumber> RTS's with squares and vanilla mechanics aren't fun or interesting or even worth maki ng
06:06:23FromDiscord<Gumber> (edit) "maki ng" => "making"
06:06:35FromDiscord<Gumber> and I already know how to do all of that so why do I make that my starting point? seems silly to me
06:06:43FromDiscord<impbox [ftsf]> limit scope
06:06:47FromDiscord<impbox [ftsf]> get it done
06:06:48FromDiscord<Gumber> my goal isn't to make some 2d rts no one is going to play
06:06:52FromDiscord<Gumber> it's to make a 3d rts I can sell on steam
06:07:06FromDiscord<impbox [ftsf]> that's step 3. make it shiny, add 3d graphics
06:07:08FromDiscord<Gumber> if I didn't know what I was doing I might agree with you
06:07:09FromDiscord<Gumber> no
06:07:17FromDiscord<Gumber> you don't just go from 2d to 3d like that
06:07:24FromDiscord<Gumber> and if you think you do - you're wrong
06:07:28FromDiscord<impbox [ftsf]> for the most part RTS gameplay is 2D+height
06:07:32FromDiscord<Gumber> 3d is way more involved and requires upfront planning
06:07:36FromDiscord<Gumber> so does network play
06:07:37FromDiscord<impbox [ftsf]> aye, a prototype
06:07:46FromDiscord<Gumber> I can prototype in 3d
06:07:48FromDiscord<Gumber> I want 3d anyway
06:07:54FromDiscord<Gumber> why should I implement everything in 2d first?
06:07:57FromDiscord<impbox [ftsf]> ok, get it done
06:07:59FromDiscord<Gumber> it makes zero sense it' sjust extra work for me
06:08:01FromDiscord<Gumber> I am haha
06:08:06FromDiscord<impbox [ftsf]> because it's faster to get done
06:08:18FromDiscord<Gumber> faster to get a 2d vanilla rts done that I'mg oing to throw away
06:08:27FromDiscord<Gumber> not going to help me with a 3d map editor
06:08:36FromDiscord<Gumber> or figuring out how to render terrain using tessellation
06:08:46FromDiscord<impbox [ftsf]> ehh, anyway #offtopic
06:08:48FromDiscord<Gumber> yeah
06:09:06FromDiscord<Gumber> but https://github.com/zacharycarter/FRAG/tree/master/src/fragpkg it's happening albeit slowly
06:09:14FromDiscord<Gumber> and it's spread throughout like 18 repositories named FRAG something
06:09:19FromDiscord<Gumber> but it's happening
06:09:43FromDiscord<Gumber> this is the work on the vulkan renderer and atm the render graph impl is being wrapped
06:10:01FromDiscord<Gumber> but after that's done I can do stuff like - https://github.com/martty/vuk/tree/master/examples
06:10:08FromDiscord<Gumber> with vulkan and Nim
06:10:29FromDiscord<Elegantbeef> I've looked into it and there is no proc named `makeMyShit` so i really dont think you know what you're doing
06:10:34FromDiscord<Gumber> so I'm almost there - and I've already written renderers / terrain editors, etc.. using OpenGL
06:10:44FromDiscord<Gumber> xD
06:10:48FromDiscord<Gumber> write it for me beef!
06:11:19FromDiscord<Elegantbeef> `proc makeMyShit = {.error: "Todo: implement logic".}`
06:11:20FromDiscord<Gumber> also
06:11:29FromDiscord<Gumber> until the ripe age of 32 I didn't have any clue I had ADHD
06:11:44FromDiscord<Gumber> I'm 36 now and just started really treating it within the past six or so months
06:12:09FromDiscord<Gumber> so - taking a project from start to finish for me is extremely difficult - you should have seen my life prior to me getting on my meds
06:12:12FromDiscord<Gumber> or med I should say
06:12:27nrds<Prestige99> how did you realize you have it?
06:12:30FromDiscord<Gumber> now it's not nearly as bad and I can focus, and plan and strategize and function like a normal adult
06:12:46FromDiscord<Gumber> I struggled with substance abuse and mental health misdiagnoseses for two plus decades
06:13:05FromDiscord<Gumber> eventually a therapist I had seen before was like - describe your day to day life for me and posited that maybe I had some kind of attention disorder
06:13:25FromDiscord<Gumber> went to a shrink and got diagnosed and put on adderall - it helped but after like 20 years of taking meds and them not working and being told the problem is you
06:13:55FromDiscord<Gumber> it was pretty easy to stop taking them because A) I was always told I was an addict and another prescription narcotic didn't sound to appealing to me (not that I was addicted to pills - I abused alcohol and weed and stuff like that to deal with life)
06:14:08FromDiscord<Gumber> this is way off topic btw
06:15:48FromDiscord<Gumber> sent a long message, see http://ix.io/3zC1
06:16:55nrds<Prestige99> Yeah if you want to continue there I'd like to hear. Never really understood what it is
06:17:08FromDiscord<Gumber> sure
06:44:21*PMunch joined #nim