Switch to DuckDuckGo Search
   March 26, 2019  
< | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | >

Toggle Join/Part | bottom
[00:00:00] <CarlaoBazuca> but I get some jittering during the scroll of large screens
[00:00:09] <CarlaoBazuca> since sleep is not super precise :)
[00:00:29] <CarlaoBazuca> so this is my 'green' game loop class
[00:00:40] <CarlaoBazuca> I am implementing others that are more CPU hungry but they use delta time and never sleep
[00:01:00] <CarlaoBazuca> still the logic is the same. step your state by a time chunk, then render whenever you want
[00:02:43] <pulse> yeah i've been doing that
[00:02:52] <pulse> but after some consideration i think i'm going with fixed timestep
[00:02:53] <pulse> + interpolation
[00:03:08] <pulse> basically every article about game loops points you to https://gafferongames.com/post/fix_your_timestep/
[00:03:19] <pulse> read 10 game loop articles 4 of them will link this
[00:03:25] <pulse> so i actually read it and it makes sense
[00:03:29] <pulse> it's a hard as balls problem
[00:03:30] <pulse> basically
[00:03:42] <LastTalon> pulse, if you're worried about jittering you're going to want to fix your timestep.
[00:03:58] <pulse> LastTalon, can you go into more detail :p
[00:04:07] <LastTalon> Well you literally render as fast as you can loop.
[00:04:30] <LastTalon> Do it like... ever 60th of a second.
[00:05:06] <pulse> problem is you can't really be precise
[00:05:07] <mijowh> glen fielders articles are quite good
[00:05:08] <LastTalon> And for further smoothness you can use double/triple buffering techniques and such.
[00:05:11] <pulse> and you're always battling this https://isaacsukin.com/news/2015/01/detailed-explanation-javascript-game-loops-and-timing#interpolate-drawing
[00:05:12] <mijowh> which is why they get linked often
[00:05:15] <LastTalon> pulse, you don't have to be precise.
[00:05:20] <LastTalon> You just need to slow it down.
[00:05:49] <pulse> you can't rely on delay() either
[00:05:52] <LastTalon> Making it more precise will fix a problem that comes up with game framerate, but not probably the one you're having.
[00:06:10] <pulse> well what i want to avoid mostly is jitter
[00:06:22] <pulse> interpolation seems to work pretty well
[00:06:33] <pulse> since you're always lagging behind real time by a small amount
[00:06:38] <LastTalon> Right, so don't render as quickly as you can loop, because the loop speed will jitter.
[00:06:42] <pulse> you render the expected point in time
[00:06:43] <pulse> not the actual
[00:07:51] <LastTalon> I mean you don't have to listen to me, but it would fix your problem.
[00:08:41] <pulse> LastTalon, what exactly do you mean by slow it down?
[00:08:48] <pulse> lower framerate?
[00:08:58] <LastTalon> You haven't capped your framerate at all.
[00:09:20] <LastTalon> You're just rendering as fast as the processor will loop.
[00:09:29] <pulse> but you're suggesting delay() ?
[00:09:38] <LastTalon> No?
[00:09:42] <LastTalon> I never said that.
[00:10:11] <pulse> how do you achieve it without delay()
[00:10:15] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Quit: My tummy says it's time to sleep Mr. Bubbles.)
[00:10:23] <LastTalon> Those nice variables you've made to keep track of your framerate at the beginning of your loop...
[00:10:45] <LastTalon> You can use those to keep track of when your loop has passed another frame tick and only render on those iterations.
[00:11:17] <pulse> ah
[00:11:20] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:11:26] <pulse> so skip repaints
[00:11:29] <pulse> is what you're saying
[00:11:35] <LastTalon> Right.
[00:11:39] <pulse> hmm
[00:12:04] <LastTalon> Because sometimes you'll get a lot of iterations very quickly and other times it will slow down, and you may not have a lot of control over that.
[00:12:05] <pulse> what if i just repaint after an update has been done?
[00:12:11] <LastTalon> So you have to set your loop up to limit itself.
[00:12:15] <pulse> if (hasUpdated) { /* repaint */ }
[00:12:23] <pulse> ah
[00:12:27] <pulse> so it has to be tied with the framerate?
[00:12:38] <LastTalon> I mean you can use whatever method you want.
[00:12:54] <LastTalon> But I'm fairly certain if you limit the rendering you'll get a smoother experience.
[00:12:56] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:13:00] <pulse> k i'll try
[00:13:03] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:13:04] <pulse> tnx for input
[00:13:14] <LastTalon> Ideally you have to measure both ways.
[00:13:39] <LastTalon> Sometimes your loop will be too fast, sometimes too slow.
[00:14:46] <pulse> game loops are crazy complex
[00:14:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:14:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:14:57] <pulse> things no one tells you about gamedev
[00:15:00] <LastTalon> If your loop is going slow you might need to do game/physics updates multiple times in the loop to keep it running at a normal speed, or if its running fast you might not need to do any physics or render updates at all.
[00:16:32] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:16:32] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:16:45] <pulse> yeah i've mostly been satisfied with simple game loops
[00:16:46] *** katie__ <katie__!~katie_@c-va-bc1c2fc474-50822-1.tingfiber.com> has quit IRC (Ping timeout: 250 seconds)
[00:17:02] <pulse> but i want to get it right for a project i'mdoing
[00:17:26] *** katie_ <katie_!~katie_@c-va-bc1c2fc474-50822-1.tingfiber.com> has joined #gamedev
[00:18:01] <myke> accumulate time for a fixed step, do as many loops as you need to use up that time
[00:18:11] <mijowh> make it more complicated and offload physics to another thread
[00:18:18] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:18:19] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:18:23] <myke> that's how you synchronize an arbitrary real world timed loop with fixed time
[00:18:35] <LastTalon> mijowh, better use rust. I hear it has a borrow checker that can help you out with that.
[00:20:04] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:20:04] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:21:48] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:21:48] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:22:58] *** rindolf <rindolf!~rindolf@77.126.109.232> has quit IRC (Ping timeout: 250 seconds)
[00:23:33] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:23:33] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:25:18] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:25:18] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:27:05] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:27:05] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:28:48] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:28:48] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:30:32] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:30:33] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:32:16] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:32:16] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:34:00] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:34:00] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:35:45] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:35:45] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:38:49] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:39:15] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:40:59] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:40:59] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:42:44] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:42:44] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:43:04] *** freestyledork is now known as freefork_afk
[00:44:17] *** freefork_afk is now known as freestyledork
[00:44:24] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:44:30] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:46:16] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:46:16] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:48:00] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:48:00] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:49:28] <pulse> imagine not having std::string
[00:49:40] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:49:46] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:51:29] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:51:29] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:53:10] *** ZeZu <ZeZu!null@140-211-168-73-openstack.osuosl.org> has quit IRC (Ping timeout: 250 seconds)
[00:53:11] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:53:14] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[00:55:00] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[00:55:00] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:57:03] *** ZeZu <ZeZu!null@140-211-168-73-openstack.osuosl.org> has joined #gamedev
[00:57:03] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[00:58:28] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:01:52] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:03:42] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:05:27] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:05:27] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:05:57] <sebbu> pulse, that's easy, just do C
[01:06:16] <sebbu> or don't use libstdc++ / libcxx but another, smaller stdlib
[01:07:02] *** notchris <notchris!~notchris@c-73-16-120-84.hsd1.ct.comcast.net> has joined #gamedev
[01:07:06] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:07:13] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:08:29] <notchris> supppp
[01:08:54] *** toxictype <toxictype!~Akira@balticom-189-98.balticom.lv> has joined #gamedev
[01:08:54] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:08:56] <toxictype> Guys I have a question, what if I deliberately create a game designed to level up the death counter if you know what I mean?
[01:08:58] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:08:58] <sebbu> ie, C++ without exception, rtti, streams, locales, metaprogramming
[01:09:32] <sebbu> toxictype, goal of the game is to die the most ?
[01:09:44] <toxictype> No it's to win but it's hard because you die all the time.
[01:09:51] <toxictype> I don't mean randomly though.
[01:09:55] <sebbu> or the less, but knowing you need to (for exemple because you gain resistance when dying)
[01:09:58] <toxictype> But it looks like a very simple game you get me?
[01:10:37] <sebbu> depends which mechanics you use/invent
[01:10:38] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:10:42] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:10:51] <sebbu> dying can be part of evolving
[01:11:00] <toxictype> Actually I had an idea. Each mob you kill could give the player like 0.00001% HP
[01:11:02] <toxictype> Would that work?
[01:11:34] <toxictype> And then players could measure their health bars to see who killed the most mobs but its like one half transparent pixel.
[01:11:56] <sebbu> it could work if you're a human killing insects/ants in a forest
[01:11:57] <sebbu> :D
[01:12:03] *** togo <togo!~togo@2a01:5c0:1a:c171:3ee7:9c4a:6828:3ea8> has quit IRC (Quit: Leaving)
[01:12:20] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:12:27] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:14:12] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:14:12] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:15:57] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:15:57] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:17:41] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:17:42] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:18:51] <R2robot> a game like this? https://www.youtube.com/watch?v=wvti-SKu2pk
[01:19:26] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:19:27] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:19:56] <toxictype> Yes except my game is a twin stick shooter.
[01:20:22] *** solidfox <solidfox!~solidpizz@unaffiliated/snake/x-2550465> has joined #gamedev
[01:21:12] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:21:12] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:22:56] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:22:56] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:24:30] <LastTalon> Oh man. Twin stick shooter.
[01:24:33] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:24:40] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:25:21] <o][o> R2robot: does that game actually exist?
[01:25:50] <R2robot> http://trapadventure2.org/play-trap-adventure-2-online
[01:26:25] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:26:26] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:27:25] <o][o> https://www.youtube.com/watch?v=wVTGjQshhqY
[01:27:42] <sebbu> reminds me of super mario frustration
[01:27:47] <sebbu> (which also exists)
[01:28:10] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:28:14] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:29:38] <R2robot> i mean, it's funny as hell, but I wouldn't play it very long. lol
[01:29:51] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:29:55] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:31:39] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:31:39] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:32:41] <R2robot> o][o: that's insane. lol
[01:33:23] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:33:23] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:34:53] <LastTalon> Reminds me of bloody trap land.
[01:35:09] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:35:10] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:36:54] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:36:54] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:38:39] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:38:40] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:40:23] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:40:23] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:41:15] <LastTalon> How does one write good task descriptions?
[01:42:08] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:42:08] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:43:46] <R2robot> short and specific
[01:43:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:43:54] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:44:19] <pulse> explicit
[01:45:10] <LastTalon> Do you think brainzap is having an issue?
[01:45:34] <pulse> he's stuck in infinite recursion
[01:45:35] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:45:38] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:45:59] <LastTalon> Hmm...
[01:46:00] <R2robot> CNTRL-C
[01:46:10] <LastTalon> I always have trouble with what is appropriate in a task description.
[01:46:27] <R2robot> only you have to read it so it's not tHAT important
[01:46:35] <LastTalon> Tell what to do not how to do it, yes?
[01:46:55] <R2robot> yes
[01:47:22] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:47:22] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:47:30] <R2robot> mine are - fix stats not updating on new game - fix missing external storage permissions
[01:47:38] <R2robot> stuff like that
[01:48:11] <LastTalon> Some of my tasks are a fair bit larger than those and are broken into smaller sub-tasks.
[01:48:49] <o][o> brainzap: fix your connection
[01:49:04] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:49:07] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:49:20] <o][o> LastTalon: headline, then long description with steps
[01:49:32] <R2robot> LastTalon: you know what they are, it doesn't have to be completely defined
[01:49:56] <R2robot> also, you can add dependencies.. either with the app, or with a note
[01:50:09] <R2robot> i have this.. more administrative: https://snag.gy/bMcvp5.jpg
[01:50:26] <LastTalon> I don't think thats sufficient, R2robot.
[01:50:31] <R2robot> lol
[01:50:33] <LastTalon> I already have forgotten tasks I need to do.
[01:50:37] <LastTalon> Lol
[01:50:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:50:51] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:50:57] <R2robot> that's why you just keep adding them as they come up
[01:51:00] <R2robot> don't over think them.
[01:51:06] <R2robot> jot it down as a task
[01:51:15] <LastTalon> Yeah, but I need to write them well enough that I know what I intend to do when I come back to them months later.
[01:51:37] <o][o> omg
[01:51:38] <R2robot> hints
[01:51:41] <R2robot> but no
[01:51:50] <o][o> seriously. working with you must be a nightmare
[01:51:54] <R2robot> if you're going to take the time to solve the problem now, then just do it. lol
[01:52:06] <LastTalon> I'm not solving the problem.
[01:52:13] <LastTalon> I'm describing the problem.
[01:52:15] <R2robot> lol
[01:52:17] <LastTalon> There is a difference.
[01:52:26] <R2robot> i'm done
[01:52:31] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:52:37] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:52:39] <R2robot> you'll talk any simple thing to death. lol
[01:52:51] <o][o> yup! horrible co-worker
[01:52:55] <LastTalon> Lol
[01:53:00] <o][o> makes a fuss about the most trivial things
[01:53:21] <R2robot> wants to write a white paper for each task.
[01:53:26] <R2robot> dear gawd
[01:53:39] <LastTalon> There is a middle ground between writing half a sentence and writing a white paper
[01:54:03] <R2robot> see?
[01:54:05] <R2robot> lol
[01:54:05] <o][o> yeah! I had to shut down a co-worker that was asking from me a design document about every new feature I was implementing
[01:54:18] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:54:19] <R2robot> lol
[01:54:40] <o][o> the manager had to intervene. I was really mad at him
[01:54:45] <toxictype> Could somebody please normalize this for me because I somehow failed.
[01:54:45] <toxictype> https://pastebin.com/V0tmdPvy
[01:55:01] <o][o> lol
[01:55:07] <o][o> what are we supposed todo with that?
[01:55:26] <toxictype> Make the player not go hedgehog diagonally.
[01:55:42] <LastTalon> I feel like you guys just don't want to actually accept that people actually are concerned with the organization of their projects.
[01:56:02] <R2robot> lol
[01:56:06] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:56:11] <LastTalon> I'm not saying you have to be, but I am.
[01:56:20] <o][o> toxictype: I lost my crystal ball. I no longer can know what are the values of your variables
[01:56:34] <toxictype> Which values do you need here?
[01:56:38] <toxictype> I thought this was it.
[01:56:45] <LastTalon> R2robot, like what exactly is wrong with that?
[01:57:11] <toxictype> They're either zero or not zero.
[01:57:13] <toxictype> Sometimes negative.
[01:57:30] <R2robot> LastTalon: this convo already ended.. no need to come back with a strawman argument to revive it :)
[01:57:32] <toxictype> If they're both not zero the player goes fast. How do I stop this?
[01:57:40] <LastTalon> R2robot, its not a straw man.
[01:57:44] <R2robot> very much so
[01:57:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:57:48] <LastTalon> And I'm still looking for an actual answer to my question.
[01:57:51] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[01:58:03] <o][o> toxictype: make the values smaller :)
[01:58:11] <LastTalon> All you did was decide that what I'm doing is stupid. I still want an answer to my question.
[01:58:19] <toxictype> Yes but how?
[01:58:24] <o][o> the code is yours
[01:58:28] <R2robot> and you went full strawman implying we're not concerned. lol
[01:58:34] <toxictype> Tell me please
[01:58:38] <toxictype> I'll do anything
[01:58:48] <o][o> I would say "assign smaller values to your own variables", but I don't want to insult you
[01:59:06] <R2robot> LastTalon: we gave you tips, you didn't like them.. so there is nothing more to discuss. :)
[01:59:22] <LastTalon> R2robot, clearly that's not what I took issue with.
[01:59:25] <o][o> LastTalon: experiment and calibrate
[01:59:27] <LastTalon> But w/e.
[01:59:30] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[01:59:35] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[01:59:38] <o][o> same to toxictype: experiment and calibrate
[02:01:14] <toxictype> https://pastebin.com/Y33q2a8W
[02:01:14] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:01:21] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:01:22] <toxictype> This does not work the player moves faster diagonally.
[02:01:27] <toxictype> Very faster in fact.
[02:02:01] <o][o> keep trying
[02:02:11] <toxictype> Tell me something else.
[02:02:17] <o][o> you are handsome
[02:02:22] <toxictype> No something related.
[02:02:22] <notchris> dawww
[02:02:24] <R2robot> awwww
[02:02:37] <o][o> do a binary search to find the ideal values
[02:02:38] <R2robot> #FeelsGoodMan
[02:03:24] <toxictype> Can someone tell me wht I'm doing wrong?
[02:03:24] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:04:42] <LastTalon> R2robot, the thing I took issue with is that the minute I tell you I have a different organizational style you're incapable of understanding why someone else might do something differently and complain that I want to solve a problem you don't care about. So please, next time don't try to shut down the conversation because you don't like it. Generally I value what you have to say, but that's not helpful. If I were someone new to the
[02:04:42] <LastTalon> channel I probably wouldn't come back.
[02:04:50] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:04:53] <LastTalon> But you know, I'm glad people can be cordial about discussing their ideas... :/
[02:05:09] <LastTalon> Anyway, I'm going to go figure this out myself since I guess I'm not allowed to discuss it here.
[02:05:19] <R2robot> lol
[02:05:20] <notchris> Ill give my opinion / ideas
[02:05:29] <notchris> I’m sort of average though
[02:06:01] <LastTalon> R2robot, you have serious issues when people have different opinions from yours. Calling people toxic isn't helpful either, while I'm giving critique.
[02:06:21] <R2robot> they know they're toxic :)
[02:06:26] <R2robot> they don't even hide it. lol
[02:06:34] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:06:35] <LastTalon> That's not the point.
[02:06:36] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:06:43] <R2robot> you're just ranting
[02:06:53] <LastTalon> I don't deny this.
[02:07:02] <LastTalon> It doesn't mean what I'm saying isn't true.
[02:07:16] <toxictype> Could either one of you help me normalilze these values?
[02:07:50] <LastTalon> Sorry, not right now.
[02:07:51] <R2robot> LastTalon: you asked, we answered, you didn't like it, I felt your way was super overkill and you got upset. :)
[02:08:05] <LastTalon> R2robot, yeah, because that's not helpful.
[02:08:05] <notchris> Aww guys
[02:08:14] <LastTalon> R2robot, you aren't the arbiter of conversations.
[02:08:18] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:08:19] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:08:20] <R2robot> lol, ok
[02:08:48] <LastTalon> I'm not upset at your opinion.
[02:09:04] <notchris> I think communication is just very impetuous
[02:09:06] <LastTalon> I'm upset at how you chose to act on your opinion.
[02:09:34] <R2robot> I didn't feel like having an endless discussion on the topic.. yet here we are.. still going :P
[02:09:49] <LastTalon> We're discussing an entirely different topic... :/
[02:09:52] <R2robot> sorry, m8. :)
[02:09:58] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:10:05] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:10:10] <notchris> If it makes any difference, I think both of you are talented
[02:10:37] <R2robot> (。◕‿‿◕。)
[02:10:42] <LastTalon> notchris, like I've tried to tell him, that's not what's in question here. I'm upset at his attitude.
[02:11:20] <notchris> I see, I know we all have our days
[02:11:50] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:11:51] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:12:20] *** R2robot <R2robot!~R2robot@unaffiliated/r2ro> has quit IRC (Quit: Pull the lever, Kronk. Wrong leverrrrrrr!)
[02:12:31] <pulse> here is a list of possible topics: OOP > ECS, C++ is best language, tabs > spaces, windows > linux
[02:13:09] <LastTalon> No, I'd much rather work on solving my problem...
[02:13:34] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:13:35] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:13:40] <pulse> problems can always be bruteforced, as evidenced by this video https://www.youtube.com/watch?v=FOFswyHcvzs
[02:13:42] <notchris> LastTalon: I can help if its js or math related
[02:13:48] <toxictype> pulse can you help me normalize?
[02:14:07] <pulse> toxictype, of course
[02:14:16] <toxictype> https://pastebin.com/Y33q2a8W
[02:14:17] <pulse> toxictype, first we need to relax and breathe deeply
[02:14:32] <toxictype> somehow that triggered asmr
[02:14:36] <pulse> toxictype, what am i looking at
[02:14:53] <toxictype> I'm trying to make the plyer not go fast diagonally but then I applied this and he goes faster.
[02:15:19] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:15:20] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:15:26] <pulse> i see
[02:16:28] <pulse> hmm
[02:17:04] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:17:04] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:17:23] <pulse> velocityx / d <-- is this correct?
[02:17:36] <pulse> what's the logic behind dividing by d
[02:17:44] <toxictype> I saw it on an internet site.
[02:17:48] <toxictype> That's how you normalize right?
[02:18:08] <pulse> shouldn't you just move by d
[02:18:20] <pulse> that will always be positive though hmm
[02:18:22] <pulse> umm
[02:18:31] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has joined #gamedev
[02:18:42] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:18:49] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:19:17] *** testman <testman!~testman@cpe-92-37-1-56.dynamic.amis.net> has quit IRC (Ping timeout: 252 seconds)
[02:19:54] <pulse> how about
[02:20:04] <pulse> alpha = cos(45);
[02:20:09] <pulse> x += vel_x * alpha
[02:20:12] <pulse> y += vel_y * alpha
[02:20:28] <pulse> you'd have to find the sign of cos i think
[02:20:29] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: No route to host)
[02:20:32] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:20:36] <pulse> i have no idea actually
[02:20:40] <toxictype> bruh
[02:20:46] <toxictype> This is like gamedev 101
[02:20:58] <toxictype> Smells like chicken.
[02:22:18] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:22:18] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:22:26] <pulse> typically you just have a velocity vector and that's enough for all directions
[02:22:37] <toxictype> "vector"
[02:22:55] <pulse> if i understand you right you want to move across the diagonal of one tile at the same speed as moving along x or y axes?
[02:23:03] <toxictype> Yes.
[02:23:18] <pulse> is your movement constrained by tiles or can you be between tiles?
[02:23:36] <toxictype> The coords are doubles.
[02:23:38] <toxictype> It's fine.
[02:24:03] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:24:04] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:24:34] *** R2robot <R2robot!~R2robot@unaffiliated/r2ro> has joined #gamedev
[02:25:48] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:25:49] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:26:30] *** testman <testman!~testman@cpe-92-37-1-56.dynamic.amis.net> has joined #gamedev
[02:29:22] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:30:34] <pulse> toxictype, pretty sure you just multiply by some constant to slow it down
[02:30:44] <toxictype> no thats a magic number
[02:30:50] <toxictype> how about you calculate tht constant
[02:31:04] <toxictype> wait
[02:31:08] <toxictype> wayment
[02:31:27] <pulse> sin(45) maybe
[02:31:41] <toxictype> No it didn't work.
[02:31:51] <toxictype> Yeah but then there's more if statements.
[02:32:03] <toxictype> How did you get sin(45)?
[02:32:47] <pulse> i'm reading some forums
[02:32:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:33:19] <pulse> but intuitively speaking you could multiply by any factor < 1
[02:33:40] <pulse> 0.85 seems about right tho
[02:33:43] <toxictype> suppose you could calculate it
[02:33:57] <pulse> can you move in non-45 degree angles?
[02:34:00] <toxictype> no
[02:34:02] <pulse> ah ok
[02:34:05] <toxictype> but that's not the point
[02:34:24] <pulse> i mean technically you should go faster diagonally
[02:34:26] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:34:43] <pulse> depends how you want the game to feel i guess
[02:34:54] <toxictype> No game has that
[02:35:19] <pulse> if you move diagonally at 45 degree angle, you *are* moving the same speed as horizontally or vertically
[02:35:24] <pulse> it makes sense
[02:35:42] <toxictype> so wait when you walk left as opposed to...
[02:35:45] <pulse> where it doesn't make sense is where you have a system where you're locked into the grid
[02:35:54] <toxictype> no wait
[02:35:58] <toxictype> thts wrong
[02:35:59] <pulse> so you always land on a grid
[02:36:06] <toxictype> youre not supposed to move faster diagonally
[02:36:16] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:36:17] <pulse> basically in most 2d games the grid is hidden away so it will look odd if you'll move slower diagonally
[02:36:34] <toxictype> I don't have a grid.
[02:38:01] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:38:01] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:38:09] *** freestyledork is now known as freefork_afk
[02:38:28] <pulse> if you have to move between square grid cells in constant time, then you'll have to move faster diagonally
[02:38:33] <pulse> because the distance is longer
[02:38:40] <pulse> but it will still look off
[02:38:45] <pulse> so idk what's the point exactly
[02:39:06] <pulse> actually i guess you could do that to move between locked positions and it may look better in the end
[02:39:11] <o][o> hehehehe
[02:39:15] <pulse> depends on the situation really
[02:39:26] <pulse> but i'm pretty sure most 2d games where movement is free move you at the same speed
[02:39:27] <toxictype> That's so backwards I'm sorry.
[02:39:42] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:41:30] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:42:24] <notchris> huh whats the 2d question
[02:42:30] <notchris> diag moving?
[02:42:34] <toxictype> ye
[02:42:38] <notchris> what about it
[02:42:42] <toxictype> moves faster
[02:43:16] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:43:16] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:43:16] <o][o> ofc
[02:43:33] <toxictype> o][o does not know the way.
[02:43:41] <o][o> if you have horizontally and diagonally in the same RATIO, diagonally will be faster :)
[02:43:55] <toxictype> How do you un-ratio it?
[02:43:58] <o][o> :D
[02:43:58] <notchris> yeah
[02:44:00] <notchris> you want position += normalizedDirection * speed
[02:44:04] <LastTalon> You rotate your vector.
[02:44:24] <toxictype> How do I normalize that business properly then?
[02:45:05] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:45:05] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:45:10] <notchris> Math.Cos(angleInRadians) Math.Sin(angleInRadians)
[02:45:13] <notchris> for x and y
[02:45:25] <notchris> you can get radians with 45.0 * Math.PI / 180.0
[02:45:55] <toxictype> But that's a lot of if statements cant you use vectors?
[02:46:02] <pulse> isn't it just x += cos(45) * vx; y+= sin(45) * vy
[02:46:08] <LastTalon> If statements?
[02:46:10] <LastTalon> Where?
[02:46:12] <notchris> oooo yea
[02:46:15] <notchris> pulse++
[02:46:17] <toxictype> Yeah see?
[02:46:38] <toxictype> You have to into the vectors.
[02:46:38] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:46:40] <pulse> doesn't it look unnatural though
[02:46:43] <pulse> hmm
[02:46:45] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:46:55] <notchris> nah it will look normal
[02:46:55] <toxictype> No this looks unnatural.
[02:46:59] <toxictype> Especially in low fps.
[02:47:03] <pulse> maybe you're right yeah
[02:47:06] <notchris> he’s got a point about the diagnol speed thing
[02:47:07] <toxictype> Players complained.
[02:47:10] <notchris> it comes up all the time
[02:47:19] <toxictype> Told you it's gamedev 101
[02:47:22] <toxictype> I can't it.
[02:47:51] <notchris> when you move horizontally for instance
[02:47:59] <notchris> c² = 1 + 0 = 1
[02:48:05] <notchris> c = sqrt(1) = 1.00
[02:48:18] <notchris> but now say you move up and right
[02:48:21] <notchris> c² = 1 + 1 = 2
[02:48:24] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: No route to host)
[02:48:26] <notchris> c = sqrt(2) = 1.41
[02:48:30] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:48:37] <notchris> that additional .41
[02:49:59] <toxictype> ya
[02:50:15] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:50:15] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:50:21] <toxictype> Wait you just add?
[02:51:01] <notchris> yea man pythagoras
[02:51:03] <notchris> a2 + b2 = c2
[02:51:20] <notchris> its an angle
[02:51:22] <toxictype> Oh you square them too but that's wht I did.
[02:51:28] <toxictype> Look at my code
[02:51:31] <notchris> yeah but they have to be normalized
[02:51:38] <notchris> which is why id go with pulses equation
[02:51:39] <toxictype> oh uhh
[02:51:50] <toxictype> How do I normalize then?
[02:51:52] <notchris> it was a little bit up in the chat
[02:51:59] <LastTalon> Actually sqrt would be faster if you cared.
[02:51:59] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: No route to host)
[02:52:00] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:52:03] <notchris> x += cos(45) * vx; y+= sin(45) * vy
[02:52:10] <LastTalon> Rather than doing sin/cos
[02:52:12] <notchris> yeah or square root
[02:52:19] <toxictype> Yeah how do I do it with square root?
[02:52:32] <LastTalon> The one notchris was saying.
[02:52:42] <toxictype> https://pastebin.com/Y33q2a8W
[02:52:45] <toxictype> I already did that.
[02:53:45] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:53:46] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:53:53] <LastTalon> Yeah, that's fine.
[02:54:00] <LastTalon> That'll normalize it.
[02:54:01] <toxictype> Goes faster.
[02:54:03] <notchris> you could do like
[02:54:05] <notchris> https://hastebin.com/repiranomu.nginx
[02:55:30] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:55:30] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:57:14] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[02:57:14] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[02:57:27] *** grim001 <grim001!~grim001@ip70-189-228-129.lv.lv.cox.net> has quit IRC (Read error: Connection reset by peer)
[02:57:53] <LastTalon> toxictype, here, from khanacademy. https://www.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-vectors/a/vector-magnitude-normalization
[02:59:00] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[02:59:00] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:00:45] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:00:45] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:02:28] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:02:28] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:04:15] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:04:15] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:05:40] <notchris> toxictype: https://hastebin.com/lizefaciba.nginx
[03:05:57] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:05:58] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:06:23] <toxictype> But that's what I do.
[03:07:44] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:07:44] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:07:57] <notchris> https://hastebin.com/ewequpajer.cpp
[03:08:01] <notchris> youre doing the normalization too?
[03:08:12] <toxictype> Yes
[03:08:26] * notchris shrugs
[03:08:28] <notchris> im sorry then idk
[03:09:28] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:09:28] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:10:47] *** RoadKillGrill <RoadKillGrill!~RoadKillG@cpe-75-187-139-141.neo.res.rr.com> has joined #gamedev
[03:11:13] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:11:13] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:12:59] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:12:59] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:14:42] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:14:42] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:16:27] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:16:27] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:17:36] *** LunarJetman2 <LunarJetman2!LunarJetma@5ec16e1a.skybroadband.com> has quit IRC (Ping timeout: 250 seconds)
[03:18:12] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:18:12] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:19:57] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:19:57] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:21:41] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:21:41] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:23:27] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:23:27] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:25:10] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:25:10] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:26:40] *** notchris <notchris!~notchris@c-73-16-120-84.hsd1.ct.comcast.net> has quit IRC (Quit: notchris)
[03:26:56] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:26:58] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:28:40] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:28:40] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:29:02] <o][o> let's kick brainzap
[03:29:03] *** Twipply <Twipply!~Twipply@unaffiliated/twipply> has quit IRC (Quit: Leaving)
[03:30:26] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:30:27] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:32:11] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:32:11] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:33:51] *** notchris <notchris!~notchris@c-73-16-120-84.hsd1.ct.comcast.net> has joined #gamedev
[03:33:51] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:33:56] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:35:41] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:35:41] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:37:25] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:37:26] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:39:09] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:39:10] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:39:19] *** RoadKillGrill <RoadKillGrill!~RoadKillG@cpe-75-187-139-141.neo.res.rr.com> has quit IRC (Read error: Connection reset by peer)
[03:40:55] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:40:55] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:42:40] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:42:40] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:44:24] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:44:24] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:46:10] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:46:10] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:47:24] *** pulse <pulse!~pulse@unaffiliated/pulse> has quit IRC (Quit: the cheetahmen ran off... and now ... the cheetahmen)
[03:47:55] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:47:55] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:49:36] *** _DB <_DB!68375605@gateway/web/cgi-irc/kiwiirc.com/ip.104.55.86.5> has joined #gamedev
[03:49:36] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:51:25] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:52:32] *** _DB <_DB!68375605@gateway/web/cgi-irc/kiwiirc.com/ip.104.55.86.5> has quit IRC (Client Quit)
[03:53:08] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:53:08] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:54:54] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:54:54] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:56:38] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[03:56:38] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[03:58:23] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[03:58:23] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:00:08] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:00:08] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:01:52] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:01:52] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:03:37] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:03:37] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:05:22] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:05:22] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:07:08] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:07:08] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:08:52] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:08:52] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:10:37] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:10:37] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:12:21] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:12:21] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:15:36] *** xen74 <xen74!~xen74@2001:44b8:2e3:9b00:a4a8:3da3:760a:ec4e> has joined #gamedev
[04:15:51] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:15:51] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:17:37] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:17:37] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:17:53] *** _DB <_DB!68375605@gateway/web/cgi-irc/kiwiirc.com/ip.104.55.86.5> has joined #gamedev
[04:19:20] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:19:20] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:21:06] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:21:06] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:22:12] *** xen74 <xen74!~xen74@2001:44b8:2e3:9b00:a4a8:3da3:760a:ec4e> has quit IRC (Read error: Connection reset by peer)
[04:22:50] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:22:50] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:24:35] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:24:35] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:26:20] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:26:20] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:28:06] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:28:06] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:29:51] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:29:51] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:31:35] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:31:35] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:33:19] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:33:19] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:34:42] *** solidfox <solidfox!~solidpizz@unaffiliated/snake/x-2550465> has quit IRC (Quit: Leaving)
[04:34:54] *** aindilis <aindilis!~aindilis@172-12-3-117.lightspeed.sgnwmi.sbcglobal.net> has quit IRC (Ping timeout: 272 seconds)
[04:34:57] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:35:04] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:36:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:36:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:38:36] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:38:36] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:40:18] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:40:18] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:42:03] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:42:03] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:43:48] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:43:48] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:47:16] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:49:01] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:50:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:50:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:52:31] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:52:31] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:54:17] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:54:17] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:56:01] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:56:01] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:57:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[04:57:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[04:59:32] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[04:59:32] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:01:16] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:01:17] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:03:01] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:03:02] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:04:46] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:04:46] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:06:31] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:06:31] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:08:16] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:08:16] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:10:01] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:10:01] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:11:46] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:11:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:13:30] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:13:31] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:15:15] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:15:15] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:16:59] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:16:59] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:18:45] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:18:46] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:19:22] *** _DB <_DB!68375605@gateway/web/cgi-irc/kiwiirc.com/ip.104.55.86.5> has quit IRC (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
[05:20:30] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:20:30] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:21:19] *** _DB <_DB!68375605@gateway/web/cgi-irc/kiwiirc.com/ip.104.55.86.5> has joined #gamedev
[05:22:14] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:22:15] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:23:58] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:23:58] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:24:32] *** aindilis <aindilis!~aindilis@172-12-3-117.lightspeed.sgnwmi.sbcglobal.net> has joined #gamedev
[05:25:43] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:25:43] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:27:28] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:27:28] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:29:14] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:29:14] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:32:37] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:32:45] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:33:25] *** immibis <immibis!~immibis@125.238.72.168> has joined #gamedev
[05:36:13] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:36:14] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:37:01] *** [Relic] <[Relic]!~Relic]@2602:306:33a3:6d30:81fd:ffb2:d4f8:f5a5> has quit IRC (Quit: Leaving)
[05:37:57] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:37:57] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:39:40] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:39:42] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:41:34] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:41:34] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:43:12] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:43:12] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:44:58] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:44:58] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:46:43] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:46:43] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:48:28] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:48:28] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:50:12] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:50:12] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:51:57] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:51:57] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:53:42] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:53:42] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:55:21] *** notchris <notchris!~notchris@c-73-16-120-84.hsd1.ct.comcast.net> has quit IRC (Quit: notchris)
[05:55:22] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:55:27] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:56:37] *** Beliar <Beliar!~Beliar@2a02:8108:9640:6c42:2507:aa4c:66ff:b0c9> has joined #gamedev
[05:57:10] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[05:57:11] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[05:58:55] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[05:58:56] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:00:40] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:00:40] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:02:25] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:02:25] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:04:08] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:04:08] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:05:55] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:05:55] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:07:38] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:07:38] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:08:44] *** Kelzorz <Kelzorz!~Kelzorz@162.104.220.155> has quit IRC (Quit: 0x80)
[06:09:25] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:09:25] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:11:08] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:11:08] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:12:54] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:12:54] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:14:37] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:14:37] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:16:23] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:16:23] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:18:07] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:18:08] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:19:53] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:19:53] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:21:36] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:21:36] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:23:21] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:23:22] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:25:07] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:25:07] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:26:52] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:26:52] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:28:36] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:28:36] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:30:21] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:30:21] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:33:56] *** jlebrech <jlebrech!~jlebrech@89.165.136.2> has joined #gamedev
[06:33:56] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:35:35] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:37:19] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:37:19] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:39:04] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:39:04] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:40:48] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:40:48] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:42:34] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:42:34] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:44:19] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:44:19] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:47:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:47:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:49:33] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:49:33] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:51:18] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:51:18] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:53:04] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:53:04] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:54:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:54:47] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:56:09] *** jlebrech <jlebrech!~jlebrech@89.165.136.2> has quit IRC (Remote host closed the connection)
[06:56:33] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[06:56:34] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: No route to host)
[06:58:17] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[06:58:17] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[06:58:51] *** atomekk <atomekk!~atomekk@unaffiliated/atomekk> has joined #gamedev
[07:00:01] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[07:00:01] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[07:01:45] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[07:01:45] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[07:03:32] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has joined #gamedev
[07:03:32] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Read error: Connection reset by peer)
[07:09:00] *** brainzap2 <brainzap2!~brainzap@217.22.129.78> has quit IRC (Ping timeout: 250 seconds)
[07:25:35] *** Beliar <Beliar!~Beliar@2a02:8108:9640:6c42:2507:aa4c:66ff:b0c9> has quit IRC (Quit: The only real mistake is the one from which we learn nothing)
[07:26:08] *** Donitzo <Donitzo!~Donitzo@85-156-203-108.elisa-laajakaista.fi> has quit IRC (Read error: Connection reset by peer)
[07:27:46] *** Donitzo <Donitzo!~Donitzo@85-156-203-108.elisa-laajakaista.fi> has joined #gamedev
[07:37:04] *** jprajzne <jprajzne!jprajzne@nat/redhat/x-bfapqrbvcuadzoih> has joined #gamedev
[07:38:02] *** bildramer <bildramer!~bildramer@2a02:587:540b:b800:2983:9ae7:cf50:24db> has quit IRC (Quit: Of course we scientists have our little secrets. For instance, the moon is in Spain. Another: stars aren't real. Also, cells are huge. One cell is roughly the size of a marble.)
[07:45:10] *** brainzap <brainzap!~brainzap@77.208.14.46.static.wline.lns.sme.cust.swisscom.ch> has joined #gamedev
[07:45:33] *** brainzap <brainzap!~brainzap@77.208.14.46.static.wline.lns.sme.cust.swisscom.ch> has quit IRC (Client Quit)
[08:00:57] *** corvidzz_ <corvidzz_!~corvidzz@70-59-133-37.ptld.qwest.net> has joined #gamedev
[08:01:20] *** circuitbone <circuitbone!sid355934@gateway/web/irccloud.com/x-colvnkmdbtxertao> has joined #gamedev
[08:09:44] *** Tylak <Tylak!~Tylak@074-135-002-092.res.spectrum.com> has quit IRC (Quit: Nettalk6 - www.ntalk.de)
[08:15:38] *** brainzap <brainzap!~brainzap@77.208.14.46.static.wline.lns.sme.cust.swisscom.ch> has joined #gamedev
[08:16:16] <brainzap> good morning skeletons covered with flesh and skin
[08:17:56] <jprajzne> been rehearsing greetings recently? :)
[08:19:29] <mijowh> brainzap: nailed it. g'mornin
[08:19:47] <mijowh> although you did forget the hair and cheeto-dust
[08:24:24] *** corvidzz_ <corvidzz_!~corvidzz@70-59-133-37.ptld.qwest.net> has quit IRC (Quit: Lost terminal)
[08:36:30] *** hahuang6- <hahuang6-!~hahuang65@104-50-0-198.lightspeed.sntcca.sbcglobal.net> has quit IRC (Quit: ZNC 1.7.1 - https://znc.in)
[08:36:47] *** hahuang6- <hahuang6-!~hahuang65@2600:1700:38c0:6c50:25c4:7f2b:4fc3:13fb> has joined #gamedev
[08:45:03] *** bnyio <bnyio!~bnyio@alcatraz.open-xchange.com> has joined #gamedev
[08:49:07] *** stefkos <stefkos!~Pawel@79.184.73.24.ipv4.supernova.orange.pl> has joined #gamedev
[08:50:50] *** S_Gautam <S_Gautam!uid286066@gateway/web/irccloud.com/x-stcjkqkejuoyeqcw> has joined #gamedev
[09:02:33] *** atom32k <atom32k!~atomekk@unaffiliated/atomekk> has joined #gamedev
[09:05:09] *** atomekk <atomekk!~atomekk@unaffiliated/atomekk> has quit IRC (Ping timeout: 258 seconds)
[09:15:13] <Prestige> hello brainzap
[09:18:23] <brainzap> hi Prestige
[09:22:43] <Prestige> whats up?
[09:31:51] <brainzap> I am learning google cloud
[09:32:32] <DarkUranium> How come?
[09:35:01] <brainzap> I got a month free training material, so its fun to click around in the cloud
[09:35:16] <brainzap> the Video to text API could be useful in the future
[09:39:24] *** DnzAtWrk <DnzAtWrk!~DnzAtWrk@mobile-access-6df024-144.dhcp.inet.fi> has joined #gamedev
[09:46:18] *** moldybits <moldybits!~mb@unaffiliated/moldybits> has quit IRC (Quit: WeeChat 2.4)
[09:52:47] <DnzAtWrk> morning birches
[09:53:03] *** atom32k__ <atom32k__!~atomekk@unaffiliated/atomekk> has joined #gamedev
[09:53:14] *** rindolf <rindolf!~rindolf@77.126.109.232> has joined #gamedev
[09:54:42] *** rindolf <rindolf!~rindolf@77.126.109.232> has quit IRC (Remote host closed the connection)
[09:55:24] *** atom32k <atom32k!~atomekk@unaffiliated/atomekk> has quit IRC (Ping timeout: 250 seconds)
[10:01:29] *** moldybits <moldybits!~mb@unaffiliated/moldybits> has joined #gamedev
[10:08:11] <Prestige> sup DnzAtWrk
[10:08:39] <DnzAtWrk> work
[10:08:50] <DnzAtWrk> check out mah demo https://js1k.com/2019-x/demo/4192
[10:11:02] <kernel-sanders> what's that a pokemon gym badge generator?
[10:11:14] <DnzAtWrk> if you believe
[10:12:44] <DnzAtWrk> I wonder if people will even notice that it uses dynamic lighting
[10:12:48] <DnzAtWrk> may have been a waste
[10:13:00] *** atom32k <atom32k!~atomekk@unaffiliated/atomekk> has joined #gamedev
[10:13:36] <DnzAtWrk> I wanted specular highlights too but that was too much
[10:15:41] *** atom32k__ <atom32k__!~atomekk@unaffiliated/atomekk> has quit IRC (Ping timeout: 258 seconds)
[10:16:44] <kernel-sanders> looks pretty varied though the shapes that are generated
[10:17:55] <DnzAtWrk> draw circles with random number of vertices, random radius at each vertex, and round it to a grid
[10:18:00] <DnzAtWrk> pretty simple
[10:18:57] <jprajzne> looks nice, DnzAtWrk
[10:19:03] <DnzAtWrk> danke
[10:19:47] <jprajzne> what's the plan with it?
[10:20:11] <DnzAtWrk> not sure. Maybe I'll look at it when I need some idea for a spaceship
[10:20:19] <DnzAtWrk> some designs weren't that bad
[10:20:37] <DarkUranium> DnzAtWrk, what did you use for it?
[10:20:47] <DarkUranium> Is it JS, or is it emscriptened, or what?
[10:20:49] <DnzAtWrk> click demo details and the full source is shown
[10:21:21] <DarkUranium> Ah.
[10:21:23] <jprajzne> love that aspect about web :)
[10:21:42] <DnzAtWrk> indeed, altough in this case you have to manually include the source, since like 99% of the time you'll want to compress it
[10:23:01] *** BrahRah <BrahRah!~BrahRah@178.162.203.203> has joined #gamedev
[10:24:37] <circuitbone> https://www.creativebloq.com/how-to/hide-your-javascript-code-from-view-source
[10:25:00] <DnzAtWrk> was never a fan of obfuscation
[10:25:12] <DnzAtWrk> I like code that can be read and analyzed
[10:25:26] <DnzAtWrk> one reason I hate that you can just send in minified nonsense to npm
[10:25:39] <circuitbone> obsfucate it enough and it becomes a game for the other team.
[10:25:54] <DarkUranium> DnzAtWrk, well, you can't prevent it.
[10:26:00] <circuitbone> 2 games kill one stoner
[10:26:05] <DarkUranium> Since there's no way to autodetect obfuscation.
[10:26:08] <DnzAtWrk> they could force you to use a git repo for npm
[10:26:13] <DnzAtWrk> and they would pull the source from there
[10:26:23] <DarkUranium> Then you just have a git repo where you push obfuscated code.
[10:26:26] <DarkUranium> And the true repo is elsewhere.
[10:26:59] <DnzAtWrk> well, you get some kind of history at least
[10:27:04] <DarkUranium> Sure.
[10:27:14] <DarkUranium> ... unless you always do a rewrite + force push :)
[10:27:41] <DnzAtWrk> ah
[10:27:53] <DarkUranium> If npm wants history, it'll have to be done at the npm servers' level.
[10:28:56] <jprajzne> free learning resources for everyone, but yeah, let's obfuscate the shit out of my code :)
[10:29:22] <DnzAtWrk> still better than binary files
[10:29:32] <jprajzne> that's true
[10:29:56] <DarkUranium> Only marginally, though.
[10:35:15] * DarkUranium is still looking for a webdev.
[10:35:22] <DarkUranium> Though I'm not even sure if it's a webdev I need at this point, TBH.
[10:38:17] <circuitbone> docker mamp pro the env
[10:46:01] <circuitbone> docker lamp if you want to avoid an apple tax there DarkUranium
[10:46:07] <circuitbone> https://www.linode.com/docs/applications/containers/how-to-install-docker-and-deploy-a-lamp-stack/
[10:49:21] <R2robot> an apple tax on webdev? wut?
[10:49:47] <DnzAtWrk> wat
[10:49:49] <DarkUranium> I dislike every single letter in LAMP, and *really* dislike the AMP part of it.
[10:49:58] <DnzAtWrk> let's see
[10:50:02] <DnzAtWrk> no
[10:50:03] <DnzAtWrk> L is fine
[10:50:07] <DarkUranium> And I dislike Docker, too.
[10:50:10] <DarkUranium> DnzAtWrk, pre-systemd maybe.
[10:50:28] <R2robot> I dislike docker fans more than docker itself. lol
[10:51:07] <DarkUranium> R2robot, honestly, ever since I started seeing projects where the official way to build is via Docker (instead of using a build system of some sort like a normal project), yeah.
[10:51:08] <circuitbone> what do you use to setup the environment for the server?
[10:51:19] <DnzAtWrk> never planning to use docker
[10:51:19] <DarkUranium> Anyhow, my comment has nothing to do with the server.
[10:51:26] <DnzAtWrk> why would I? I can just put it together myself
[10:51:33] <DarkUranium> I do sysadmin work professionally, I can deal with the server side.
[10:51:47] <circuitbone> You want to be able to scale and move them
[10:52:01] <DarkUranium> Docker has historically had so many problems it's ridiculous.
[10:52:05] <R2robot> that's middle management speak
[10:52:06] <DarkUranium> It's just too unstable for server stuff.
[10:52:15] <DarkUranium> For dev, I get it, it can be useful.
[10:52:24] <DnzAtWrk> plus to me docker has always seemed like a "let's install this thing some rando put together"
[10:52:26] <DnzAtWrk> yeah no
[10:52:27] <DarkUranium> (especially for automated testing, to ensure you always have the same env)
[10:54:03] <circuitbone> Its just an install list at the heart. lol
[10:54:23] *** grouse <grouse!~grouse@83-233-9-2.cust.bredband2.com> has joined #gamedev
[10:54:37] <DnzAtWrk> god I've really started to like jupyter
[10:54:44] <DnzAtWrk> it made work fun again
[10:55:18] <DnzAtWrk> Cue ooos and aaas as I show you a PCA plot
[10:56:48] *** immibis <immibis!~immibis@125.238.72.168> has quit IRC (Ping timeout: 246 seconds)
[11:08:21] <brainzap> DarkUranium: I hate everything new
[11:09:07] <DarkUranium> no u
[11:09:32] *** DnzAtWrk <DnzAtWrk!~DnzAtWrk@mobile-access-6df024-144.dhcp.inet.fi> has quit IRC (Read error: Connection reset by peer)
[11:15:47] *** DnzAtWrk <DnzAtWrk!~DnzAtWrk@mobile-access-6df024-144.dhcp.inet.fi> has joined #gamedev
[11:44:09] *** SolderBlob1 <SolderBlob1!~SolderBlo@95.174.67.140> has joined #gamedev
[11:48:01] *** SolderBlob <SolderBlob!~SolderBlo@212.103.50.52> has quit IRC (Ping timeout: 255 seconds)
[11:56:24] *** bildramer <bildramer!~bildramer@athedsl-361556.home.otenet.gr> has joined #gamedev
[11:58:09] *** DnzAtWrk <DnzAtWrk!~DnzAtWrk@mobile-access-6df024-144.dhcp.inet.fi> has quit IRC (Read error: Connection reset by peer)
[12:00:15] *** ZeroSystem <ZeroSystem!45f81b6b@gateway/web/freenode/ip.69.248.27.107> has quit IRC (Quit: Page closed)
[12:33:17] *** DnzAtWrk <DnzAtWrk!~DnzAtWrk@mobile-access-6df024-144.dhcp.inet.fi> has joined #gamedev
[12:54:29] *** aly777 <aly777!~kes777@50-242-177-217-static.hfc.comcastbusiness.net> has joined #gamedev
[13:09:43] *** DaScoot <DaScoot!~Scooter@static-24-153-33-9.cpe.metrocast.net> has joined #gamedev
[13:14:24] <brainzap> DaScoot: you make a textbased game?
[13:14:40] <brainzap> in what format do you have the dialogs
[13:16:31] <DaScoot> unfortunately I don't have the writing time to make much in the way of branching conversations
[13:17:04] <DaScoot> for the most part it's all self-contained scenes, with a couple where you can choose a response A or B halfway through
[13:19:31] <DaScoot> why do you ask
[13:20:31] <brainzap> is there a tool for it or do people use excel
[13:22:17] <DaScoot> for managing branches and that? I think there's tools, I think there's a unity one called fungus or something?
[13:22:29] <DaScoot> none of it really works for my situation
[13:22:48] <jprajzne> for text, you can probably use some storytelling/writer tools
[13:23:01] <jprajzne> there're some for free
[13:23:17] <jprajzne> allowing for scenes, versions and branches
[13:29:06] <DnzAtWrk> I've wanted to make a text based game based on nouns, verbs and adjectives
[13:29:35] <DnzAtWrk> the entire world would be based on a object class, which has actions as verbs and stats as adjectives
[13:30:08] <DnzAtWrk> objects can carry child objects
[13:30:41] <DnzAtWrk> so, noun: player is holding child noun: eye which has verb: see (insert function here) and adjective: health
[13:31:37] <DnzAtWrk> earth -> field -> house -> room -> player
[13:32:05] <DnzAtWrk> room -> door with verb: open and enter (functions)
[13:32:09] <DnzAtWrk> mmmmm
[13:32:11] <DarkUranium> DnzAtWrk, I'm just working on something related, so consider it a professional disfigurement --- but sounds like a relational model to me :D
[13:32:34] <brainzap> but is it fun
[13:32:39] <DnzAtWrk> yes
[13:32:48] <brainzap> do it!
[13:33:06] <DnzAtWrk> I've tried before, and the issue is you end up having to add too many hard-restrictions
[13:33:19] <DnzAtWrk> basically, objects require too many custom rules
[13:33:30] <DnzAtWrk> can I pick it up? how much does it weigh?
[13:33:35] <jprajzne> DnzAtWrk: chomsky's syntactic tree sounds similar
[13:33:40] <DnzAtWrk> if I steal an eye from another person, can I see with it?
[13:33:41] *** xen74 <xen74!~xen74@2001:44b8:2e3:9b00:ac5a:71c4:28d8:1f0f> has joined #gamedev
[13:33:45] <DnzAtWrk> it gets mental
[13:34:14] <DnzAtWrk> oo, nice. Didn't know about those
[13:34:35] <DarkUranium> W.r.t. stealing an eye, you might need conditions.
[13:34:40] <DarkUranium> Sort of like what planners do.
[13:35:02] <DnzAtWrk> indeed
[13:35:03] <DarkUranium> eye:(attached,!damaged)=>(see)
[13:35:12] <DnzAtWrk> I tried representing the entire game as a json file basically
[13:35:15] <DnzAtWrk> that would be optimal
[13:35:30] <DarkUranium> I prefer CSV, but yeah, same idea.
[13:36:01] <DnzAtWrk> so you start with "world" { "children": [ { "planet": {...} }], "verbs": [], "adjectives": [] }
[13:36:15] <DnzAtWrk> it would be so nice if that was all that was needed
[13:36:19] <DnzAtWrk> it's so beautiful
[13:36:22] <DarkUranium> Sounds doable.
[13:36:40] <DnzAtWrk> with js you can even embed code inside of verbs and eval it :D
[13:36:51] <jprajzne> what about no :D
[13:36:53] <DnzAtWrk> but but but, you still need to basically re-use objects
[13:37:05] <DnzAtWrk> I mean, you don't want to redefine eye for every creature
[13:37:16] <DnzAtWrk> so now instead you have list of object templates with children
[13:37:50] <DnzAtWrk> it's already crumpling
[13:37:56] <DarkUranium> DnzAtWrk, hang on, I might have smoething that's of interest to you.
[13:38:08] <DarkUranium> I had the same idea before I ran into this, but--
[13:39:12] <DarkUranium> DnzAtWrk, http://www.squidi.net/three/entry.php?id=165
[13:39:18] <DnzAtWrk> hmmm... a lot of the special "rules" could be adjectives come to think of it
[13:39:26] <DnzAtWrk> "pickupable"
[13:39:47] <DarkUranium> I'd rename that to "properties"
[13:39:52] <DarkUranium> Or something, but yeah.
[13:40:00] <DnzAtWrk> oh but adjective verb and noun makes it make so much sense
[13:40:12] <DarkUranium> I guess.
[13:40:21] <DarkUranium> Well, you're describing data, not sentences.
[13:40:22] <jprajzne> attributes
[13:40:29] <DnzAtWrk> but yeah, I called it properties too up until now
[13:40:31] <DarkUranium> So in that sense, "actions"/"attributes" would make more.
[13:40:37] <DnzAtWrk> when it occured to me that adjective would be nice
[13:40:57] <DnzAtWrk> but then you fall into that same trap
[13:41:05] <DnzAtWrk> it kinda gets... progremmatic
[13:41:20] <DnzAtWrk> with adjective you're forced to use a certain style
[13:41:37] <DnzAtWrk> not consider it a program as much as a real item
[13:41:44] <DnzAtWrk> eh, maybe I'm just rambling
[13:42:00] <jprajzne> english is quite forgiving in this regards i think
[13:42:26] <jprajzne> given there're two forms - more something & something-er/est
[13:42:56] <DnzAtWrk> mass, volume, count, visibile, attached... attachement_strength?
[13:42:58] <DnzAtWrk> damn!
[13:43:11] <DarkUranium> lol
[13:44:19] <DnzAtWrk> maybe properties is better than
[13:44:23] <DnzAtWrk> then*
[13:44:27] <jprajzne> maybe would be nice to generate dependency graph, for example take the verb visible and try to find out what makes sense, what is/can be visible
[13:44:39] <DnzAtWrk> mass: 50, volume: 30, attachementStrength: 30
[13:45:39] <DnzAtWrk> attachementType: "organic"
[13:45:49] <DarkUranium> KISS
[13:45:52] <DarkUranium> At least for a start.
[13:45:57] <DnzAtWrk> but now every object is forced to have these properties
[13:46:00] <DnzAtWrk> I think
[13:46:09] <DarkUranium> Anyhow, problem with attachments is that it's a relation.
[13:46:15] <jprajzne> depends on what makes sense in the world
[13:46:21] <DnzAtWrk> I think it should be considered relative to the parent
[13:46:35] <DarkUranium> What if it's attached to 2 things, like a rope connecting two objects?
[13:46:41] <DnzAtWrk> the real world can kinda be considered a bunch of things holding other things
[13:46:45] <DnzAtWrk> to a certain degree
[13:46:56] <DnzAtWrk> hmmm
[13:47:02] <DarkUranium> DnzAtWrk, more like a bunch of things pushing other things away :D
[13:47:09] <DarkUranium> ... containing things holding other things!
[13:47:18] <DnzAtWrk> rope_end :D
[13:47:31] <DarkUranium> lol
[13:47:55] <jprajzne> lol
[13:48:00] *** Twipply <Twipply!~Twipply@unaffiliated/twipply> has joined #gamedev
[13:48:59] <DarkUranium> BTW, you're recreating some of the earliest NLP/AI environments here.
[13:49:06] <DarkUranium> The typical 3-boxes-in-a-space stuff.
[13:50:05] <DnzAtWrk> heh
[13:50:37] <DnzAtWrk> yeah I could imagine something along these lines would have to be tackled for an AI to be able to make assumptions about the world
[13:51:02] <brainzap> https://shiro.ch/f4pBAC9.gif
[13:51:10] <DarkUranium> I think it was the very first real NLP example ever, too.
[13:51:25] <DarkUranium> Where you could say stuff like "PUT RED BOX ON TOP OF BLUE BOX" (or something like that)
[13:51:51] <DnzAtWrk> instructions unclear, kill all humans
[13:52:13] <DarkUranium> lol
[13:53:01] <jprajzne> uknown argument, humans
[13:54:25] <brainzap> Does anyone want to make a voice assistant based text adventure?
[13:55:20] <DarkUranium> brainzap, I've been wanting to make a space sim with speech recognition.
[13:55:20] <jprajzne> i think we talked about this, brainzap
[13:55:44] <brainzap> cool we are already three people
[13:55:49] <jprajzne> DarkUranium: speech recognition.. would be cool to make a tool for gamers
[13:56:05] <brainzap> exists, just google elite dangerous has it
[13:56:06] <DarkUranium> There is one. Well, there's multiple.
[13:56:15] <DarkUranium> brainzap, eh, doesn't count.
[13:56:20] <DarkUranium> AFAIK, E:D isn't bridge-based.
[13:56:21] <brainzap> but I am talking for text adventure which you can play with eyes closed
[13:56:26] <jprajzne> i mean cross-platform/game
[13:56:34] <DarkUranium> jprajzne, hm?
[13:56:38] *** gogoprog <gogoprog!~gogoprog@2a02:a03f:4466:7600:3ab1:d4d4:9081:13c3> has joined #gamedev
[13:56:44] <brainzap> just make your own
[13:56:55] <brainzap> its not hard to script scentenses to button presses
[13:57:12] <DarkUranium> Well, sure.
[13:57:18] <DarkUranium> Never said *that* part was hard :)
[13:57:18] <jprajzne> DarkUranium: you yell commands in the games instead of using mouse and keyboard for certain operations, such as 'group'
[13:57:29] <DarkUranium> jprajzne, yeah, but like I said, not the same thing as on a bridge :)
[13:57:46] <DarkUranium> brainzap, another thing I've been wanting to do is a game where you play the forward observer and call in artillery. Again, via voice.
[13:58:26] <jprajzne> brainzap: what yo uwant shouldn't be that hard these days
[13:58:40] <DarkUranium> brainzap, e.g. "A7, G10, adjust fire, over." Followed by a response, and so on and so on.
[13:58:52] <DnzAtWrk> how cool would it be to have a military general game in which you have no overhead view
[13:59:01] <DnzAtWrk> you just have a map, a bunch of pieces and a bunch of radio operators
[13:59:14] <DnzAtWrk> you have to tell them to report in the status of your squads, give orders
[13:59:21] <DnzAtWrk> you have to manually move the pieces on the map
[13:59:52] <brainzap> Battlefield had this, and another great game had this
[14:00:08] <DarkUranium> DnzAtWrk, that sounds very interesting :D
[14:00:15] <DnzAtWrk> it could also be done on a very low budget
[14:00:17] <brainzap> Nuclear Dawn
[14:00:17] <DnzAtWrk> just simple 3d graphics
[14:00:21] <DnzAtWrk> maybe make it vr with voice control
[14:00:46] <DnzAtWrk> you're inside a mobile command center
[14:01:00] <jprajzne> https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API
[14:01:56] <jprajzne> plus mozilla recently crowdsourced large voice dictionary
[14:02:19] <jprajzne> so what you describe brainzap should be relatively easy
[14:02:43] <brainzap> everything is realitvely easy, until you need a develope with 15 years experience, oh for free
[14:02:59] <DnzAtWrk> the issue is really time
[14:03:21] <DnzAtWrk> but I can tell you that if you made that game and put it on steam for VR, you'd get a nice number of hits relative to the effort it takes to create
[14:03:23] <DnzAtWrk> ah well
[14:03:28] <DnzAtWrk> a man can dream
[14:03:33] <DnzAtWrk> but not create
[14:04:13] <DarkUranium> DnzAtWrk, honestly, I think 2D graphics would work better than 3D for that.
[14:04:55] <DnzAtWrk> yeah but then you lose the VR crowd
[14:05:24] <DarkUranium> DnzAtWrk, I mostly meant because of this aesthetic https://4.bp.blogspot.com/-Hf-KaWtjDg0/V_sfbPhDNnI/AAAAAAAAQx8/G1XcqXrxQ8YJs6DA-2nmGchB6h3yCFi7wCEw/s1600/Wargames%2B1.jpg
[14:05:31] <DnzAtWrk> some kind of cell-shaded 3d look with squarish graphics would work nicely
[14:05:34] <DnzAtWrk> like, no textures
[14:05:38] <DnzAtWrk> just flat colors for most things
[14:05:49] <DnzAtWrk> oh yeah
[14:05:58] <brainzap> how about speech only
[14:05:59] <DarkUranium> Or do textures, but literally present a map. You could probably find some "bunker" prefabs online.
[14:06:02] <DnzAtWrk> make it five nights at freddys except you're a general :D
[14:06:20] <DnzAtWrk> if the enemy troops overtake your command center they jump in your face
[14:06:21] <DnzAtWrk> lol
[14:06:36] <jprajzne> brainzap: hard to hold all of the game space in your head with voice only :)
[14:06:55] <DnzAtWrk> though in a modern setting like that you don't have an excuse to not use technology
[14:06:58] <brainzap> most nerds have some world war play pieces at home, or warcraft thing
[14:07:08] <DnzAtWrk> it would work if it was set in some 1940s war
[14:07:26] <DnzAtWrk> so you have to use a real map
[14:07:36] <DnzAtWrk> and real proper radio communication
[14:07:42] <DnzAtWrk> none of this fancy 3g nonsense
[14:07:45] <DarkUranium> DnzAtWrk, or maybe your faction is some sort of a guerilla/insurgency/resistance thingie?
[14:07:54] <DnzAtWrk> that could work too
[14:08:01] <DarkUranium> Or put it in the future, where the more advanced tech is toast (because nuclear war) :P
[14:08:07] <brainzap> Memoir '44: the enemy player is a voice assistant
[14:08:09] <DarkUranium> Or say it's being jammed, any number of excuses works.
[14:08:28] <DnzAtWrk> sounds like a terminator game
[14:08:30] <DarkUranium> Or it's in the future, you're being jammed, and you're an insurgency group! :P
[14:08:35] <DarkUranium> ha
[14:08:51] <brainzap> lets do it! Who has 60'000 ready
[14:08:51] <DarkUranium> Funny thing is, in a nuclear war, machines would probably be worse off than us.
[14:08:54] <DnzAtWrk> though it would work to the scare factor that you fight machines
[14:09:17] <DnzAtWrk> honestly, I could probably make this game if I set my mind to it over like a year, but again
[14:09:17] <DarkUranium> (EMP doesn't harm us at all, and radiation harms both [unlike popular belief])
[14:09:20] <DnzAtWrk> too much effort
[14:09:32] <DarkUranium> The minimal version, the 2D one, could be made in a weekend, probably.
[14:09:40] <DarkUranium> Okay, hunting voice actors might take longer, but you get the idea.
[14:09:52] <brainzap> robot voice
[14:10:10] <brainzap> do you have time this weekend DarkUranium?
[14:10:33] <DarkUranium> brainzap, I don't think TTS would work here. But finding voice actors once you have a game shouldn't be a big deal.
[14:10:40] <DarkUranium> Especially since placeholders are trivial to obtain.
[14:10:50] <DarkUranium> I'm not sure, TBH.
[14:10:52] <DarkUranium> (w.r.t. time)
[14:10:53] <DnzAtWrk> but yeah, if it was like a survival game where you just have to hold out for a certain amount of time, it would capture a huge audience
[14:10:58] <DnzAtWrk> people love games like that
[14:11:18] <DarkUranium> DnzAtWrk, I was working on an FPS like that for some time. It's on hold due to a lack of time.
[14:11:21] <brainzap> all these flights and war nerds
[14:11:22] <DnzAtWrk> place your troops at defensive positions, have them report in, oh no you lost the squad to the east
[14:11:24] <DnzAtWrk> quick, backup
[14:11:32] <DnzAtWrk> oh no all radio operators are busy
[14:11:45] <DarkUranium> brainzap, anyhow, why do you ask?
[14:12:13] <DarkUranium> It's actually a pretty good idea, and to me, it seems like the evolution of my FO idea.
[14:12:22] <DarkUranium> (both could take place in the same universe anyhow)
[14:12:32] <DnzAtWrk> and the best thing is. Low asset count!
[14:12:44] <brainzap> your FO idea is just an UI to an existing game
[14:13:01] *** Rangar <Rangar!~Rangar@124.197.27.173> has quit IRC (Quit: Leaving)
[14:13:17] <DarkUranium> brainzap, which one?
[14:13:38] <DarkUranium> DnzAtWrk, trivial assets, too, at least with the abstract one.
[14:13:51] <DarkUranium> You either use actual military symbols, or you draw stylized ones (like pseudo-military)
[14:14:51] <DnzAtWrk> indeed. The gameplay could also be rather addictive if balanced correctly
[14:14:58] <DnzAtWrk> just need to be hard enough
[14:15:16] <DarkUranium> There are a few issues that would need to be resolved, though.
[14:15:20] <DnzAtWrk> maybe have a game be 10-15 minutes
[14:15:32] <DarkUranium> E.g. how do you make it exciting, how do you give orders, that sort of stuff.
[14:15:56] <DnzAtWrk> for starters you should probably have a limited number of assets each game
[14:16:05] <DnzAtWrk> if you lose a squad it should hurt
[14:16:12] *** solidfox <solidfox!~solidpizz@unaffiliated/snake/x-2550465> has joined #gamedev
[14:16:15] <DarkUranium> Here's a fun idea. I have a tablet with one of those pens. What if you could draw on it, too? Like, draw a red line w/ an arrow for the enemy forces.
[14:16:15] <DnzAtWrk> maybe you have like alpha bravo gamma etc. squads
[14:16:19] <DnzAtWrk> which you can call by name
[14:16:20] <DarkUranium> (for the drawing, you'd need *no* assets then)
[14:16:50] <DarkUranium> I was thinking more on a strategic scale, but sure, tactical could work, too.
[14:16:57] <DnzAtWrk> The enemy forces should not be visible anywhere by default, but your troops may report that they see enemies at like 9 o' clock
[14:16:58] <DarkUranium> (it's just that the whole bunker idea makes more sense at bigger scales)
[14:17:09] <DnzAtWrk> and your troops can report in their location
[14:17:18] <DnzAtWrk> so by putting pieces on the map you can get an overview over the battle
[14:17:30] <DnzAtWrk> then you tell your troops to like, move earth or move to C7
[14:17:35] <DnzAtWrk> what do you think?
[14:17:39] <DnzAtWrk> move east*
[14:17:41] <DarkUranium> With better maps (i.e. not abstract), you could have the troops report locations via landmarks.
[14:17:47] <brainzap> watch a memoir 44 play on youtube
[14:17:49] <DarkUranium> E.g. "we are north-east of your position, just south of the mountain"
[14:17:51] <brainzap> copy it -> gg
[14:17:54] <DarkUranium> And there's a huge mountain north-east.
[14:18:08] <DnzAtWrk> maybe the troops have a moral factor, and if panicked will give you bad info
[14:18:12] <DnzAtWrk> or incomplete info
[14:18:19] <DnzAtWrk> not moral
[14:18:21] <DnzAtWrk> I meant...
[14:18:44] <DnzAtWrk> the word for how scared you are
[14:19:13] <brainzap> I will try something if I have time this weekend
[14:19:14] <DarkUranium> DnzAtWrk, that could actually work for a horror game. E.g. the units are fighting some aliens (think Alien franchise) or something.
[14:19:20] <DnzAtWrk> gamma squad loses 4 out of 5 troops. The last one is fleeing and reports in that he is crossing a river help help
[14:19:38] <DarkUranium> brainzap, ya mon
[14:19:42] <DarkUranium> brainzap, you gonna do 2D or 3D?
[14:19:43] <DnzAtWrk> and put your mobile command center somewhere on the map too so you can literally lose if all squads die
[14:19:46] <DarkUranium> I'm tempted, if I can find the time.
[14:19:49] <brainzap> DarkUranium: on paper
[14:20:00] <DarkUranium> Oh, a design doc?
[14:20:32] <brainzap> no I play it on paper, setup includes drawing the field of course, then squads report what they see and you paint it on paper
[14:20:51] *** notchris <notchris!~notchris@67.218.88.131> has joined #gamedev
[14:20:56] <brainzap> The game is called Blind Advanced
[14:21:00] <DnzAtWrk> lol, then you make a paper and crayons mod
[14:21:09] <notchris> mornin'
[14:21:15] <brainzap> hi notchris
[14:21:26] <DnzAtWrk> though then you need to do a lot of erasing
[14:21:29] <DnzAtWrk> both drawing and pieces
[14:21:35] <DnzAtWrk> you get to pick your own pieces :D
[14:21:49] <DarkUranium> DnzAtWrk, make a crayons mod, call it the "US Marine Corps" mod :D
[14:21:54] <notchris> heya brainzap
[14:21:59] <DnzAtWrk> honestly, this idea is infinitely moddable
[14:22:03] <DnzAtWrk> with like steam workshop
[14:22:04] <DnzAtWrk> heh
[14:22:30] <DnzAtWrk> with a proper base
[14:22:52] <DnzAtWrk> like, completely new themes and settings
[14:23:03] <DnzAtWrk> ok that's getting a bit ahead
[14:23:30] <DarkUranium> wee bit :P
[14:23:46] <brainzap> you realise by playing it on paper I also verify the concept, to see if it is fun
[14:24:12] <DarkUranium> You'd still need a game to simulate things for you.
[14:25:17] <DnzAtWrk> but it could easily be done with placeholder art
[14:25:33] <DnzAtWrk> the UI is like the most important component of the game
[14:25:48] <DarkUranium> There isn't much in terms of UI though, is there?
[14:26:15] <DnzAtWrk> hmmm. You need the map, a visible overview of the radio operators I guess, pieces/markers
[14:26:17] <brainzap> drag, drop, rotate, delete
[14:26:19] <DnzAtWrk> and some fluff art
[14:26:37] <DarkUranium> I mean for a prototype. You don't need fluff art there.
[14:26:40] <DarkUranium> For a MVP.
[14:26:46] <brainzap> play it in word
[14:27:30] <DarkUranium> DnzAtWrk, fun fact, I have one of those military mapping tools here.
[14:27:38] <DarkUranium> I just used it yesterday (was the closest ruler I had at hand)
[14:28:04] <DnzAtWrk> nice!
[14:28:21] <DarkUranium> it's one of those plastic things with stuff in it for unit symbols and whatnot
[14:28:25] <DarkUranium> Sort of like this https://www.cadetdirect.com/media/catalog/product/cache/1/image/500x500/8e31f3fa6a25b50c1bfa9c68940c11e0/l/e/leniar-nato-army-military-map-marking_stencil-close_2.jpg
[14:28:28] <DnzAtWrk> MVP is good in this case
[14:28:40] <DnzAtWrk> if you could switch out the entire interface to be like 3d or 2d
[14:28:46] <DnzAtWrk> that would be a well made engine
[14:28:58] <DarkUranium> Well, not in a weekend project you couldn't :D
[14:29:01] <DarkUranium> Other than that, trivially.
[14:29:12] <DarkUranium> Engine needs no GUI at all in this case, because it only drives a few things.
[14:29:19] *** warweasle <warweasle!user@2600:3c03::f03c:91ff:fe26:d1db> has joined #gamedev
[14:29:24] <DarkUranium> So it could be sort of like a real-time chess engine. Could even expose a socket to communicate with a frontend :)
[14:29:25] *** BrahRah <BrahRah!~BrahRah@178.162.203.203> has quit IRC (Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/)
[14:29:55] <warweasle> I think it's easier to make my own turning animations than it is to try and untangle the ones I bought.
[14:30:02] <DarkUranium> warweasle, =(
[14:30:07] <DnzAtWrk> yeah, the entire battlefield thing is essentially just a bunch of logic to begin with
[14:30:51] <DarkUranium> DnzAtWrk: You need what? Orders to squad (which could be structured, e.g. csexpr, so that the system can interpret them), info from squad (along with state, e.g. "panicked"; needs to be structured too, to be able to use voice actor-acted voice), uhm
[14:30:53] <warweasle> I've spent hours trying to make them work. Instead, I just made my own in around an hour.
[14:31:02] <DarkUranium> DnzAtWrk, the map drawing parts are irrelevant, it doesn't know nor care about them.
[14:31:32] *** Aichan <Aichan!~Aichan@aichan.be> has joined #gamedev
[14:32:02] <DarkUranium> DnzAtWrk, in the long term, you'd probably want to encode details about the map into the protocol, but yeah.
[14:32:29] <DnzAtWrk> Wondering if squad should be made out from soldiers or if squad should be the top unit
[14:32:49] <DnzAtWrk> maybe it's easier that it's just squads
[14:33:04] <DarkUranium> Honestly, I'm thinking more platoons or such.
[14:33:08] <DarkUranium> Make it more strategic.
[14:33:11] <DarkUranium> But sure.
[14:33:49] <Aichan> Good afternoon people, digging into the ECS I've often seen one "root", usually called "World" to contain all the entities. My question is the following : Is it only because I've seen small examples or is it advised to keep one world for everything? I'm thinking of a logical separation like a scene/a screen which could use its own "World" maybe?
[14:34:03] <DnzAtWrk> squad: x, y, troop count, injured count
[14:34:05] <DnzAtWrk> hmmm
[14:34:20] <DarkUranium> DnzAtWrk, maybe morale?
[14:34:22] <DnzAtWrk> health?
[14:34:30] <DnzAtWrk> oh yeah that's the word I was searching for
[14:34:34] <DarkUranium> DnzAtWrk, and/or ammo?
[14:34:43] <DarkUranium> If you wanna track that.
[14:34:45] <DnzAtWrk> but what about morale for individual soldiers?
[14:34:54] <DarkUranium> This is grand strategy, no need IMHO.
[14:34:56] <DnzAtWrk> I wouldn't think an entire squad would panic at once
[14:35:11] <DarkUranium> Eh, they might. Usually, units rout in a group.
[14:35:23] <DarkUranium> (there's a strong social effect to someone panicking and running away)
[14:35:30] <DarkUranium> (assuming this isn't the USSR where he gets shot :D)
[14:35:40] <DnzAtWrk> yeah, better keep it simple
[14:35:59] <DarkUranium> You could do it without individual soldiers, but still simulate that, though.
[14:36:16] <Aichan> Sid Meyer's pirate use this morale notion on groups, but effect of that squad moral would affect individuals (who would flee)
[14:36:29] <DarkUranium> At a certain low level of morale, big events (e.g. a huge explosion nearby) makes the squad automatically lose a unit (they panicked and ran off), and lots of morale.
[14:36:54] <DarkUranium> Aichan, yeah.
[14:36:57] <DnzAtWrk> how would injuries work
[14:37:04] <DnzAtWrk> make the entire squad worse?
[14:37:07] <DnzAtWrk> slow them down
[14:37:13] <DarkUranium> I wouldn't model that.
[14:37:24] <DarkUranium> Let's assume there are medical units around to help, and they stay behind.
[14:37:34] <DarkUranium> Remember, I'm thinking platoon or bigger level.
[14:37:41] <DarkUranium> Because squads don't make sense narrative-wise, IMHO.
[14:37:43] <DnzAtWrk> ah yeah. It doesn't make sense to have some kind of amazing healing powers anyway
[14:37:48] <DarkUranium> If you're leading 4 squads, you won't be holed up in a bunker.
[14:38:34] <DarkUranium> I'd make it so that death and injury are just fluff; *unless* you keep squad numbers for next mission (then, [say] half the injured units recover on average)
[14:39:16] <DnzAtWrk> It would make sense to make the game easy to lose if you don't pay attention, but have the games be relatively short lived to keep it intense
[14:39:23] <DnzAtWrk> so like 15 minutes maybe
[14:39:34] <DarkUranium> Mhm.
[14:39:36] <DnzAtWrk> maybe have it play out faster than real life
[14:39:43] <DarkUranium> That's what I was thinking.
[14:39:51] <DarkUranium> Honestly, my initial idea was division-level, but faster than life.
[14:39:54] <DarkUranium> And you have armor, too.
[14:40:15] <DnzAtWrk> yeah, could work
[14:40:23] <DarkUranium> Would be interesting to have the AI obey the exact same rules (but obivously, that's a longer-term goal).
[14:40:25] *** S_Gautam <S_Gautam!uid286066@gateway/web/irccloud.com/x-stcjkqkejuoyeqcw> has quit IRC (Quit: Connection closed for inactivity)
[14:40:42] <DarkUranium> Give it the radio operator abstraction, and have it bark orders.
[14:40:50] <DarkUranium> It gives you two things:
[14:40:55] <DarkUranium> 1) No cheating, ever.
[14:41:03] <Aichan> No one has experience with the Entity Component System then?
[14:41:08] <DarkUranium> 2) Multiplayer is "free". It's just an AI that happens to have brainmatter make decisions.
[14:41:13] <DarkUranium> Aichan, I do.
[14:41:16] <DarkUranium> But, uh.
[14:41:18] <DarkUranium> Not sure.
[14:41:29] <DnzAtWrk> indeed, though the AI shouldn't be too smart or random
[14:41:31] <Aichan> What's your own experience about the matter?
[14:41:37] <DnzAtWrk> or it will just be frustrating for the player
[14:42:19] <DarkUranium> DnzAtWrk, Well, best AI should be. It's always easier to make good AI and tone it down, than trying to tone bad AI up.
[14:42:39] <DarkUranium> Aichan, I guess it depends on whether you need to have entities exist between worlds.
[14:42:43] <DnzAtWrk> yeah, but it's also pretty difficult to make a dumb AI using machine learning if you go that route
[14:42:56] <brainzap> Squad: search and destroy. Me going to sleep
[14:43:01] <brainzap> thats how management does it
[14:43:11] <DarkUranium> Worlds themselves could be a hierarchy, I guess (only for organizational reasons; there's only ever 1 active world), but that might be overdoing it.
[14:43:30] <Aichan> DarkUranium, So there's no "guideline" against it, it's up to logic?
[14:43:35] <DnzAtWrk> I often use a World object as the root in my games :D
[14:43:38] <DarkUranium> DnzAtWrk, you could have it ignore some signals every once in a while or something. Dunno.
[14:43:57] <DarkUranium> Aichan, for an easier API, I tend to prefer a single global world. That said, I can understand why you might want multiple.
[14:44:03] <Aichan> DnzAtWrk, what if you change screen? Say you change a level, do you destroy all entities and recreate new one?
[14:44:19] <DnzAtWrk> depends, but generally I'd say no
[14:44:28] <Aichan> So what do you do?
[14:44:30] <DnzAtWrk> I'd have World -> Room
[14:44:31] <DnzAtWrk> or Level
[14:44:32] <DnzAtWrk> or Map
[14:44:35] <DnzAtWrk> whichever you pick
[14:44:51] <Aichan> So the rooms/level/maps are part of the world then?
[14:45:08] <DnzAtWrk> if you want your game to have nice transitions, yes
[14:45:15] <DnzAtWrk> because you need somewhere to keep your transition logic
[14:45:20] <DnzAtWrk> and keeping them in world makes sense
[14:45:31] *** pulse <pulse!~pulse@unaffiliated/pulse> has joined #gamedev
[14:45:53] <Aichan> The issue I see there is having to pass that world through all layers
[14:46:00] <DnzAtWrk> is this a 3d game?
[14:46:11] <Aichan> No, 2D game using MonoGame
[14:46:24] <DnzAtWrk> how are rooms seperated?
[14:46:55] <Aichan> Isometric maps, a cell at each edge allows you to go that direction
[14:47:29] <DnzAtWrk> and you probably want to transition between the maps using a sweeping motion, right?
[14:47:36] <DnzAtWrk> ie, both maps must exist at the same time
[14:47:49] <Aichan> There is another level of separation which would be screens : title screen, game screen, option screen, ..
[14:48:19] <Aichan> DnzAtWrk, I don't know yet, maybe, maybe not :)
[14:48:38] <Aichan> But I see where you're going
[14:48:46] <DnzAtWrk> do you want your menu to be visible on top of your game?
[14:49:11] <Aichan> Sure
[14:49:25] <DnzAtWrk> then you can not treat the menu as a seperate scene at least
[14:49:47] <Aichan> Scene as in World is it?
[14:49:57] <Aichan> it is*
[14:50:12] <DnzAtWrk> the world wouldn't be a scene. If you want it to be a scene call it something like Ingame
[14:50:42] <DarkUranium> or rename World->Context, Ingame->World.
[14:50:45] <DnzAtWrk> What I tend to do is have the scenes Menu, Ingame
[14:50:57] <DnzAtWrk> and then I have an IngameMenu entity in the world
[14:51:47] <DarkUranium> Aichan, FWIW, the main situation where multiple worlds proper might make sense would be MMOs. Where you have many instances running in the same process, and want to share as many resources as possible between them.
[14:51:50] <Aichan> DnzAtWrk, mind describing what are scenes menus and Ingame to you?
[14:52:09] <DarkUranium> (but OTOH, you can get pretty far with just `fork()`)
[14:52:55] <DnzAtWrk> ok, start with a base Scene, with a draw and update function. Derive the Ingame and Menu scenes. In Menu you draw the menu and update menu logic. In Ingame you iterate over and update your game entities and draw them
[14:53:03] <DnzAtWrk> alternatively you update and draw the world object
[14:53:12] <DnzAtWrk> (or just update it if its offscreen)
[14:53:39] <Aichan> DnzAtWrk, ah great, I've such thing in my code already, I've called them "Screens" though
[14:53:58] <DnzAtWrk> Problem I have with that term is that it comes with implications
[14:54:02] <DnzAtWrk> that you have a screen
[14:54:05] <DnzAtWrk> doesn't matter tho
[14:54:23] <Aichan> Let's call it Scene for the sake of our understanding then :o)
[14:55:00] <DnzAtWrk> Now you make a Simulation scene with an array of 200 worlds where you use genetic algorithms to evolve the best map layout according to some pre-specified criteria
[14:55:01] <Aichan> So basically every Scene should be able interact with the world
[14:55:02] <DnzAtWrk> and done
[14:55:46] <Aichan> DnzAtWrk, It would make sense for that example true :D
[14:56:04] <DnzAtWrk> I'd say no. There should almost never be a reason for scenes to communicate
[14:56:16] <DnzAtWrk> you need a way to switch scene
[14:56:22] <DnzAtWrk> from your very root game class
[14:56:24] <Aichan> A SceneManager
[14:56:25] *** freefork_afk is now known as freestyledork
[14:56:29] <DnzAtWrk> or that
[14:56:36] <Aichan> It's already up too :o-)
[14:57:35] <DnzAtWrk> for funsies
[14:57:45] <DnzAtWrk> do you have a base entity type or gameobject?
[14:57:56] <Aichan> But all Scenes should still be able to interact with the root world isn't it?
[14:58:26] <DnzAtWrk> Naw. The World exists within Ingame
[14:58:32] <DnzAtWrk> no need for menu to communicate with it
[14:58:50] <Aichan> Ooooh so the World only exists within the Ingame Scene?
[14:58:57] <Aichan> Not on the root level
[14:59:00] <DnzAtWrk> yes
[14:59:15] <Aichan> It makes so much more sense now
[14:59:29] <DnzAtWrk> if properly made you should very rarely need to communicate with parent objects
[14:59:46] <DnzAtWrk> of course there are exceptions
[14:59:52] <DnzAtWrk> Input, Audio, Particle managers
[14:59:54] <DnzAtWrk> the likes
[15:00:07] <DnzAtWrk> My solution is to packet all of these into a Context class passed along update and draw
[15:00:26] <DnzAtWrk> draw(Context context) { context.particleManager.draw... };
[15:00:30] <Aichan> "do you have a base entity type or gameobject?" <- Entity
[15:00:32] <DnzAtWrk> I don't remember the coding style I had in C# anymore
[15:01:19] <DnzAtWrk> so yeah, for fun. Try to make a Camera entity
[15:01:22] <DnzAtWrk> with its own viewport
[15:01:42] <DnzAtWrk> I think you may enjoy the sillyness
[15:01:59] <Aichan> Shouldn't the camera be a part of the Rendering System ?
[15:02:14] <DnzAtWrk> not necessarily
[15:02:26] <DnzAtWrk> allowing the camera to exist within your entity system adds some neat possibilities
[15:02:39] <DnzAtWrk> also, it removes a bunch of custom code from your base classes
[15:03:00] <Aichan> If you're interested, here's the Entity base class I'm using https://github.com/craftworkgames/MonoGame.Extended/blob/develop/Source/MonoGame.Extended.Entities/Entity.cs
[15:04:09] <Aichan> Since it's a 2D isometric game I've had no use for the camera yet, but I'll keep that in mind
[15:04:21] <DnzAtWrk> nice nice
[15:04:30] <Aichan> I can already see how it can be turned into an entity :)
[15:05:06] <Aichan> Could give each entity a different camera property and have it really funky haha
[15:05:30] <DnzAtWrk> makes it easier to make cool cutscenes too
[15:07:34] <Aichan> Anyway, thanks to both of you for clarifying that !
[15:07:49] <DnzAtWrk> np, game design is fun
[15:07:53] <Aichan> I rewrote my projects 3 times already because I couldn't find the right way to do that :o)
[15:07:58] <DnzAtWrk> good
[15:08:08] <DnzAtWrk> iterative improvements
[15:08:17] <Aichan> Yeah I'm usually bad at those
[15:08:23] <Aichan> I tend to go for the final products immediately
[15:08:39] <notchris> ive never done cut scenes
[15:08:44] <notchris> i should try one
[15:09:35] <DnzAtWrk> I've never done them right either
[15:09:51] <DnzAtWrk> it's a pretty difficult thing
[15:10:16] <DnzAtWrk> coroutines may help
[15:15:39] <brainzap> GOLANG
[15:15:48] <notchris> javascript!
[15:16:16] <brainzap> https://fiverr-res.cloudinary.com/images/q_auto,f_auto/gigs/105341569/original/74716f149ed9a43376a98249d6bca73957bf8c8c/code-the-program-in-golang-go-programming-language.png
[15:16:35] <brainzap> notchris: how is your 2d game engine going?
[15:16:47] <notchris> Great!
[15:16:54] <notchris> I wish i brought my laptop to work today
[15:17:00] <notchris> So i could show u some progress
[15:18:55] <brainzap> so you dont want to use an existing engine
[15:19:16] <notchris> ehh not for 2d really
[15:19:19] <notchris> for 3d i would
[15:19:30] <notchris> phaser is cool but, i would just use pixi if i used that
[15:19:52] <DnzAtWrk> pixi is nice if you need a scene graph
[15:20:20] <DnzAtWrk> though in 2d I find scene graphs to be more of a hindrance
[15:20:23] <DnzAtWrk> PERSONAL OPINION
[15:20:36] <brainzap> notchris: so you know phaser?
[15:21:41] *** MatiasMunk <MatiasMunk!5731923f@gateway/web/freenode/ip.87.49.146.63> has joined #gamedev
[15:22:10] <notchris> yea im fluent with phaser!
[15:22:18] *** MatiasMunk <MatiasMunk!5731923f@gateway/web/freenode/ip.87.49.146.63> has quit IRC (Quit: Page closed)
[15:22:18] <notchris> but i dont particularly like some aspects, but its impressive af
[15:22:30] <notchris> I like to use raw canvas or svg
[15:22:37] <notchris> canvas for performant things
[15:22:44] <DnzAtWrk> really?
[15:22:48] <DnzAtWrk> should be the opposite
[15:22:56] <notchris> canvas is way faster than svg
[15:22:59] <DnzAtWrk> oh
[15:23:03] <notchris> since SVG uses the dom
[15:23:04] <DnzAtWrk> I thought you were comparing canvas and webgl
[15:23:12] <notchris> Well webgl is implemented in canvas
[15:23:17] <DarkUranium> No it isn't.
[15:23:19] <DnzAtWrk> but is way faster
[15:23:23] <DarkUranium> That would be waaaay too slow.
[15:23:29] <notchris> you cant render webgl without canvas though DarkUranium
[15:23:43] *** MatiasMunk <MatiasMunk!~MatiasMun@87-49-146-63-mobile.dk.customer.tdc.net> has joined #gamedev
[15:23:43] <DarkUranium> <canvas> the HTML element, sure
[15:23:49] <notchris> yeah thats what i mean
[15:23:50] <DarkUranium> canvas the 2D API/context, no
[15:24:05] <DarkUranium> BTW https://dnd.stdrand.com/prototypes/PerfTest/
[15:24:05] <notchris> well you still need to call the context
[15:24:08] <DarkUranium> debug mode for logs
[15:24:24] <DnzAtWrk> I don't really know how the classic canvas is implemented
[15:24:24] <DarkUranium> Wouldn't recommend the DOM or SVG tests.
[15:24:28] <DarkUranium> Well, they work okay nowadays.
[15:24:34] <DnzAtWrk> some type of blitty blotty abstraction over I have no idea
[15:24:36] <notchris> Amazingly
[15:24:37] <DarkUranium> A few versions ago, Firefox would freeze completely.
[15:24:40] <notchris> oh yea
[15:24:55] <notchris> Basically if you used like
[15:24:59] <notchris> animating the viewbox attribute
[15:25:02] <DarkUranium> notchris, remember that getContext has '2d' and 'webgl' (and 'webgl2').
[15:25:03] <notchris> or using :filter attribute
[15:25:13] <notchris> ahhh right DarkUranium
[15:25:17] <notchris> that's true
[15:25:36] <DarkUranium> Speaking of which, can anyone see any weird artefacts here, while scrolling? https://dnd.stdrand.com/prototypes/VirtualScroll/ScrollTest3.html
[15:25:38] <notchris> but yea, i used to see, and still often times see a massive performance drop when using filter attribute
[15:25:46] <DarkUranium> compare: (this one does have them) https://dnd.stdrand.com/prototypes/VirtualScroll/ScrollTest.html
[15:25:54] *** aindilis <aindilis!~aindilis@172-12-3-117.lightspeed.sgnwmi.sbcglobal.net> has quit IRC (Read error: Connection reset by peer)
[15:25:58] <notchris> none on my work computer DarkUranium
[15:26:08] <notchris> Chrome Version 72.0.3626.121 (Official Build) (64-bit)
[15:26:10] <notchris> OSX
[15:26:52] <DarkUranium> notchris, you mean the PerfTests?
[15:27:19] <notchris> on the scroll test
[15:27:24] <notchris> i actually dont see artifacts on either
[15:27:26] <DarkUranium> Define "not work".
[15:27:55] <notchris> no i mean, my computer at work
[15:28:50] *** RandomCouch <RandomCouch!~RandomSof@207.219.200.115> has joined #gamedev
[15:28:59] <brainzap> I use the same komputer for work and privat work and fapping
[15:29:01] <DarkUranium> Oh, sorry, misread.
[15:29:10] <notchris> ill be working from home starting soon
[15:29:20] <DarkUranium> brainzap, and getting fucked by your clients/boss?
[15:29:21] *** aindilis <aindilis!~aindilis@172-12-3-117.lightspeed.sgnwmi.sbcglobal.net> has joined #gamedev
[15:29:24] <notchris> i think half of the pain in my life is sitting in traffic for a half hour every day
[15:29:32] <DarkUranium> Only half an hour? Pfft.
[15:30:04] *** aindilis <aindilis!~aindilis@172-12-3-117.lightspeed.sgnwmi.sbcglobal.net> has quit IRC (Read error: Connection reset by peer)
[15:30:04] <notchris> making programmers sit in traffic with the rest of everyone is cruel
[15:30:09] <notchris> :(
[15:30:10] <MatiasMunk> ParkUranium I don't think your conversation is suited here, you should probably take that kind of chatter else where.
[15:31:09] *** aindilis <aindilis!~aindilis@172-12-3-117.lightspeed.sgnwmi.sbcglobal.net> has joined #gamedev
[15:33:47] <DarkUranium> notchris, yeah, I do work remotely now, too, so :)
[15:35:31] <brainzap> so how do you deal with loneliness
[15:37:45] *** aindilis <aindilis!~aindilis@172-12-3-117.lightspeed.sgnwmi.sbcglobal.net> has quit IRC (Read error: Connection reset by peer)
[15:38:26] <DarkUranium> That's what I have you guys for! <3
[15:40:22] <notchris> Right
[15:43:08] <DnzAtWrk> idunno, being alone with a computer all day can make you go a bit wierd
[15:43:48] <DarkUranium> Dunno, the bodies in my freezer say I'm completely normal.
[15:47:33] <DnzAtWrk> this decision fatigue thing is really wearing on my mind
[15:47:49] <notchris> DarkUranium: lmao
[15:50:00] <DarkUranium> notchris, https://youtu.be/7SaUcNWboYU?t=97
[15:50:44] <CarlaoBazuca> <3
[15:50:58] <CarlaoBazuca> DnzAtWrk, only if you have bad games
[15:51:19] <CarlaoBazuca> also the right prOUN stuff can help
[15:51:42] <DnzAtWrk> I could make a Yakko's world cover from my unfinished projects
[15:51:47] <CarlaoBazuca> I would sprout code like crazy if I had to be alone with a computer by some time
[15:52:11] <CarlaoBazuca> yesterday (and this morning) I was working on my text widget with my arcade font
[15:52:26] <CarlaoBazuca> so many little problems to solve...
[15:56:28] *** freestyledork is now known as freefork_afk
[16:00:23] *** freefork_afk is now known as freestyledork
[16:00:59] <notchris> back
[16:01:14] <notchris> Last night i built all the logic for a mini golf game with physics
[16:01:15] *** S_Gautam <S_Gautam!uid286066@gateway/web/irccloud.com/x-dolwoxphxypnrioj> has joined #gamedev
[16:01:19] <notchris> twas very fun
[16:01:53] *** sebbu <sebbu!~sebbu@unaffiliated/sebbu> has quit IRC (Ping timeout: 268 seconds)
[16:02:13] <DnzAtWrk> coffee or pain
[16:02:58] <brainzap> you get both either way
[16:08:07] *** sebbu <sebbu!~sebbu@unaffiliated/sebbu> has joined #gamedev
[16:11:47] <R2robot> notchris: neat
[16:12:00] *** gareppa <gareppa!~gareppa@unaffiliated/gareppa> has joined #gamedev
[16:13:37] *** gareppa <gareppa!~gareppa@unaffiliated/gareppa> has quit IRC (Remote host closed the connection)
[16:22:28] <R2robot> also, we need screenshots or something
[16:22:29] <R2robot> :D
[16:28:40] <R2robot> https://www.polygon.com/2019/3/25/18280778/morrowind-free-elder-scrolls-25th-anniversary
[16:28:45] <R2robot> free gaem
[16:29:39] <brainzap> steam key or bust
[16:30:27] *** bnyio <bnyio!~bnyio@alcatraz.open-xchange.com> has quit IRC (Quit: WeeChat 2.4)
[16:31:28] *** atom32k <atom32k!~atomekk@unaffiliated/atomekk> has quit IRC (Ping timeout: 250 seconds)
[16:32:37] <kernel-sanders> ^ lol
[16:33:14] *** jprajzne <jprajzne!jprajzne@nat/redhat/x-bfapqrbvcuadzoih> has quit IRC (Quit: Leaving.)
[16:34:38] *** aindilis <aindilis!~aindilis@172-12-3-117.lightspeed.sgnwmi.sbcglobal.net> has joined #gamedev
[16:37:02] <R2robot> yeah, I hate when they don't provide steam keys. lol
[16:38:22] <kernel-sanders> yeah steam is the main library that I use
[16:41:12] <notchris> backkkk
[16:41:15] <notchris> R2robot: TY :D
[16:44:52] <DarkUranium> I use GoG whenever I can help it.
[16:45:15] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has quit IRC (Remote host closed the connection)
[16:45:28] <CarlaoBazuca> argh! bethesda account
[16:45:30] <CarlaoBazuca> no thanks!
[16:45:50] <CarlaoBazuca> Update (4:21 p.m. ET): Many users are experiencing issues logging in to their existing Bethesda.net account or creating a new one to take advantage of today’s promotion. Bethesda says it’s aware of the issue
[16:45:52] <CarlaoBazuca> fuck this shit
[16:46:56] <brainzap> serverload 10005
[16:47:14] <CarlaoBazuca> here is a free game to download
[16:47:17] <CarlaoBazuca> but first...
[16:48:10] <DarkUranium> I have a physical copy of it anyhow *shrug*
[16:53:53] *** arne82 <arne82!~arne82@ip1f10d138.dynamic.kabel-deutschland.de> has joined #gamedev
[16:58:13] *** _DB <_DB!68375605@gateway/web/cgi-irc/kiwiirc.com/ip.104.55.86.5> has quit IRC (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
[17:00:02] <brainzap> physical copy in 2019 lol
[17:03:06] <kernel-sanders> the last game I got a physical copy of is Starcraft II wol
[17:03:21] <notchris> mine was Counter-strike 1.6
[17:03:28] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has joined #gamedev
[17:03:33] <notchris> err 1.5
[17:04:43] <DarkUranium> Mine was probably Fallout 3 or similar.
[17:08:29] *** brainzap <brainzap!~brainzap@77.208.14.46.static.wline.lns.sme.cust.swisscom.ch> has quit IRC (Quit: My tummy says it's time to sleep Mr. Bubbles.)
[17:11:34] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has quit IRC (Remote host closed the connection)
[17:12:28] *** aly777 <aly777!~kes777@50-242-177-217-static.hfc.comcastbusiness.net> has quit IRC (Ping timeout: 246 seconds)
[17:12:45] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has joined #gamedev
[17:28:30] *** solidfox <solidfox!~solidpizz@unaffiliated/snake/x-2550465> has quit IRC (Quit: Leaving)
[17:28:55] *** diwr <diwr!~diwr@unaffiliated/diwr> has joined #gamedev
[17:30:42] *** notchris <notchris!~notchris@67.218.88.131> has quit IRC (Quit: notchris)
[17:32:15] *** Beliar <Beliar!~Beliar@2a02:8108:9640:6c42:a00d:340b:49b9:9aa7> has joined #gamedev
[17:48:11] *** brainzap <brainzap!~brainzap@217.22.129.78> has joined #gamedev
[17:50:27] *** grouse <grouse!~grouse@83-233-9-2.cust.bredband2.com> has quit IRC (Quit: Leaving)
[17:54:37] *** Tylak <Tylak!~Tylak@074-135-002-092.res.spectrum.com> has joined #gamedev
[18:01:00] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has quit IRC (Ping timeout: 246 seconds)
[18:03:15] <CarlaoBazuca> hmmm physical copies of pc games... I got one of the versions of CoD as a gift, but I gave it away as fast as I could
[18:03:24] <CarlaoBazuca> I have physical copies of nintendo DS and nintendo switch games
[18:04:24] <CarlaoBazuca> in the 90s I also committed the horrible mistake of purchasing a copy of an RTS game based on MtG. It was licensed by WotC and such, but it sucked a lot
[18:04:34] <CarlaoBazuca> this + a lot of unexpected importing fees :(
[18:05:14] *** baudejogos <baudejogos!~sjw@pool-98-113-134-150.nycmny.fios.verizon.net> has joined #gamedev
[18:06:41] *** o][o <o][o!~sjw@pool-98-113-134-150.nycmny.fios.verizon.net> has quit IRC (Ping timeout: 250 seconds)
[18:09:48] *** Kelzorz <Kelzorz!~Kelzorz@162.104.220.155> has joined #gamedev
[18:13:05] <brainzap> RIP importing from UK
[18:22:18] *** DnzAtWrk <DnzAtWrk!~DnzAtWrk@mobile-access-6df024-144.dhcp.inet.fi> has quit IRC (Quit: Leaving)
[18:24:02] *** toothlessg <toothlessg!~toothless@rrcs-24-103-153-67.nys.biz.rr.com> has joined #gamedev
[18:34:58] <LastTalon> Last I got was a physical copy of wc3.
[18:36:34] <brainzap> last I got was one of the bbest scifi games ever made: Haegemonia
[18:50:25] *** S_Gautam <S_Gautam!uid286066@gateway/web/irccloud.com/x-dolwoxphxypnrioj> has quit IRC (Quit: Connection closed for inactivity)
[18:54:19] <R2robot> I think WoW Wrath of the Lich King was the last physical box I bought
[19:01:26] *** diwr <diwr!~diwr@unaffiliated/diwr> has quit IRC (Remote host closed the connection)
[19:07:52] *** solidfox <solidfox!~solidpizz@unaffiliated/snake/x-2550465> has joined #gamedev
[19:08:05] <MatiasMunk> The last physical copy of a game I bought was probably World of Warcraft Cataclysm
[19:09:37] <R2robot> now I have to listen to some WoW sound track
[19:10:00] <MatiasMunk> Now I think I might start playing Wow again.
[19:10:09] <MatiasMunk> Wow, such things that comes from conversation.
[19:10:10] <MatiasMunk> loel
[19:10:41] <programmerq> I bought a copy of Black and White on cdrom on ebay last year
[19:10:52] <programmerq> but I haven't tried getting it working yet.
[19:10:58] <programmerq> that involves digging out an optical drive
[19:11:04] <R2robot> MatiasMunk: I miss it so much
[19:12:01] *** MatiasMunk <MatiasMunk!~MatiasMun@87-49-146-63-mobile.dk.customer.tdc.net> has quit IRC (Changing host)
[19:12:01] *** MatiasMunk <MatiasMunk!~MatiasMun@unaffiliated/matiasmunk> has joined #gamedev
[19:15:26] *** solidfox <solidfox!~solidpizz@unaffiliated/snake/x-2550465> has quit IRC (Quit: Leaving)
[19:18:38] *** notchris <notchris!~notchris@67.218.88.131> has joined #gamedev
[19:21:50] *** atom32k <atom32k!~atomekk@unaffiliated/atomekk> has joined #gamedev
[19:30:53] <notchris> hmmm
[19:30:57] <notchris> gonna do some more dev tonight
[19:31:12] <notchris> mostly doing alerts / messages styling / animation likely
[19:40:11] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has joined #gamedev
[19:44:22] *** Serpent7776 <Serpent7776!~Serpent77@90-156-31-193.internetia.net.pl> has joined #gamedev
[19:46:17] <MatiasMunk> R2Robot Then try and play it again :D
[19:48:05] *** RandomCouch <RandomCouch!~RandomSof@207.219.200.115> has quit IRC (Quit: Leaving)
[19:48:49] *** LunarJetman2 <LunarJetman2!LunarJetma@5ec16e1a.skybroadband.com> has joined #gamedev
[19:59:24] *** Iolo <Iolo!~iolo@dsl-tkubng22-58c023-38.dhcp.inet.fi> has quit IRC (Quit: ZNC 1.6.6+deb1ubuntu0.1 - http://znc.in)
[20:01:11] *** Iolo <Iolo!~iolo@dsl-tkubng22-58c023-38.dhcp.inet.fi> has joined #gamedev
[20:25:06] <Donitzo> article 13 got through whoopedydo wake me when something happens
[20:25:35] <Donitzo> god I just can't be bothered to care
[20:25:47] <Donitzo> was going to happen no matter
[20:31:34] <LastTalon> I'm not very up on european politics, but I don't really understand what there is to like about it.
[20:33:54] <Aichan> LastTalon, in it's essence it's supposed to guarantee artists to be paid when their creation is being used
[20:34:24] <Aichan> In reality, it's going to fuck every small content creator
[20:34:24] <LastTalon> But it doesn't.
[20:34:29] <LastTalon> Yeah.
[20:34:33] <LastTalon> And large ones even.
[20:34:41] <LastTalon> Like... it just means more region locked youtube videos
[20:34:52] <Aichan> Large content creator can still pay for a music producer and stuff
[20:35:10] <LastTalon> I meant to say large hosts.
[20:35:12] <Aichan> I mean, they're probably going to be impacted too, but at a smaller scaler
[20:35:39] <Aichan> What makes me really sad is that I've been following that guy on Youtube who sorta does funny reviews of video games
[20:35:46] <Aichan> (Usually the most shitty ones)
[20:35:53] <Donitzo> mmm, I don't think you see the big picture
[20:36:14] <Donitzo> it basically forces hosting platforms to kill off fair use entirely
[20:36:17] <LastTalon> I mean even fairly large creators by internet standards are going to be fucked by this because they're going to get region locked out of europe.
[20:36:17] <Donitzo> since they can't take the risk
[20:36:19] <Aichan> With that article 13 he probably will have to stop that :/
[20:36:36] <Aichan> LastTalon, Ha yes that
[20:37:00] <Aichan> There's already speculations over Youtube and stuff becoming region locked
[20:37:12] <Aichan> We're moving to chinese Youtube guys !
[20:37:18] <LastTalon> Lol
[20:37:38] <LastTalon> Or like... what is steam going to do?
[20:37:51] <Donitzo> can't we just like
[20:37:54] <Donitzo> ignore the EU
[20:37:54] <Aichan> What about Steam?
[20:38:00] <Donitzo> maybe it goes away if we don't look
[20:38:07] <LastTalon> They don't actually take the time to vet their games for copyright.
[20:38:11] <Aichan> Donitzo, what if you live in the EU?
[20:38:16] <Aichan> Do I have to keep my eyes shut?
[20:38:24] <Donitzo> just pretend it's not a thing
[20:38:24] <LastTalon> So are they just not going to sell in the EU? Lol
[20:38:40] <Aichan> Like the UK did?
[20:38:41] <Aichan> :D
[20:38:56] <Aichan> LastTalon, vet their games?
[20:39:04] <Donitzo> well, I'm not hosting any forums
[20:39:04] <Aichan> I'm unfamiliar with this expression
[20:39:08] <Donitzo> so I'm not worried right now
[20:39:14] <LastTalon> Steam doesn't check to make sure their games aren't infringing copyright.
[20:39:19] <Aichan> Ha !
[20:39:21] <Aichan> I see
[20:39:26] <Donitzo> let's just hope everything burns equally to the point where there are pitchforks and torches outside the parlament
[20:39:30] <Donitzo> or something along those lines
[20:39:41] <Aichan> Yeah they're pretty much accepting anything nowaday
[20:39:51] <Aichan> Donitzo, agreed
[20:39:57] <DaScoot> I hope that last long enough for me to get my game on there :P
[20:40:03] <LastTalon> Yeah. I'm expecting this to be amended when europe realizes its not getting the same content it used to online.
[20:40:29] <LastTalon> Article 11 is a good example. Some countries have already tried something like article 11 before.
[20:40:32] <Donitzo> "what? You mean this affects ME?"
[20:40:35] *** xen74 <xen74!~xen74@2001:44b8:2e3:9b00:ac5a:71c4:28d8:1f0f> has quit IRC (Read error: Connection reset by peer)
[20:40:47] <LastTalon> Spain's news sources are still not shown on google. Lol
[20:41:03] <Aichan> What was article 11?
[20:41:23] <LastTalon> Article 11 is another part of the copyright directive.
[20:41:27] <LastTalon> Its the "link tax"
[20:41:33] <DaScoot> you have to pay a news site to link to them
[20:41:57] <DaScoot> behold, as every european newspaper disappears from google
[20:42:02] <LastTalon> Yup
[20:42:08] <LastTalon> That's all that's going to happen.
[20:42:09] <Donitzo> behold as... nobody fucking implements it
[20:42:15] <Donitzo> because it's mental at the very core
[20:42:18] <LastTalon> Or rather...
[20:42:30] <LastTalon> They're going to opt in to giving google license to use snippets of their work.
[20:42:33] *** immibis <immibis!~immibis@125-238-72-168-fibre.sparkbb.co.nz> has joined #gamedev
[20:42:33] <LastTalon> Like already happens in germany.
[20:42:36] <Aichan> It's going to be the same as the patrimony tax some countries have
[20:42:57] <LastTalon> So again, it just screws small aggregators.
[20:42:58] <Aichan> They make it untaxable and there goes the tax
[20:43:14] <LastTalon> I mean its not a real "tax"
[20:43:20] *** bildramer1 <bildramer1!~bildramer@athedsl-361601.home.otenet.gr> has joined #gamedev
[20:43:23] <LastTalon> They just call it that.
[20:43:43] <LastTalon> Its one company paying another company a license fee.
[20:43:48] *** bildramer <bildramer!~bildramer@athedsl-361556.home.otenet.gr> has quit IRC (Ping timeout: 245 seconds)
[20:43:53] <Aichan> Oh no what I mean is that it won't work
[20:44:03] <LastTalon> No, certainly not.
[20:44:06] <Aichan> Same as when they fight piracy
[20:44:06] <Donitzo> let's just create a new internet
[20:44:14] <Donitzo> we'll just existing infrastructure, but call it internet 2
[20:44:16] <Donitzo> problem solved
[20:44:18] <Donitzo> they can keep internet 1
[20:44:20] <LastTalon> Publications will just opt in for free.
[20:44:26] <Donitzo> we'll use*
[20:44:31] <Aichan> Internet 1 will be for the dinosaurs that make the laws
[20:44:35] <LastTalon> Because as much as they complain about aggregators, having aggregators is better than not having them.
[20:44:36] <DaScoot> then stuff like reddit falls into the same issue here as with the porn ban in the UK
[20:44:51] <DaScoot> if a ton of people post links on various subreddits, does that make reddit a news aggregator
[20:45:01] <Aichan> Those guys that are 70+ and have to ask their children how to use an email yet pass laws about it
[20:45:05] <DaScoot> likewise, are they a porn site in the UK
[20:45:24] <LastTalon> DaScoot, the definition is extremely broad in the copyright directive.
[20:45:35] <LastTalon> Like... you'd be upset if you saw how broad the definition is.
[20:45:38] <Aichan> DaScoot, UK is another level
[20:45:41] <LastTalon> And how many exceptions they put in place.
[20:45:46] <Aichan> You'll need a license to use internet soon enough
[20:45:53] <Donitzo> oh hai there, I'd like one porn pass for milf dwarf furry porn plz
[20:46:02] <Donitzo> ok I have no idea how the porn pass works
[20:46:16] <DaScoot> sorry, we're all our of milf dwarf furry passes
[20:46:25] <DaScoot> would you like some bondage scat, got plenty of those
[20:46:35] <Donitzo> ewww what kind of freak do you think I am
[20:46:35] <LastTalon> Oh shit.
[20:46:37] <Aichan> DaScoot, but, do you have a license to request that license?
[20:46:43] <LastTalon> I just realized this ruins my plans to go live in sweden.
[20:46:56] <Aichan> What about Sweden?
[20:47:09] <LastTalon> Sweden has to follow EU laws, doesn't it?
[20:47:18] <Aichan> It's a bit more complex than that
[20:47:21] <DaScoot> actually, come to think of it, milf dwarf furry does hit three of the checkmarks on my game's list
[20:47:28] <LastTalon> Yeah, but I'm pretty sure the copyright directive applies to them.
[20:47:31] <LastTalon> Damnit.
[20:47:42] <Aichan> The thing is, Europe usually don't apply laws
[20:47:55] <Aichan> It's still up to the country to write a law that's within EU's guideline
[20:48:08] <LastTalon> Right, but the copyright directive instructs them to write such laws.
[20:48:11] <LastTalon> That's the point of it.
[20:48:29] <Donitzo> but who is going to enforce that?
[20:48:31] <Aichan> Sure, but how you apply that law is again still up to the country
[20:48:46] <pulse> let's just ban the internet
[20:48:53] <pulse> get it over with
[20:48:56] <LastTalon> Insofar as they're sovereign countries still I guess.
[20:48:59] <Aichan> Sweden has usually been fighting for free internet
[20:49:06] <LastTalon> But the EU can take action against them.
[20:49:09] <Donitzo> yes, all this information is bad for humanity
[20:49:14] <Aichan> LastTalon, true
[20:49:16] <Donitzo> let's go back to the 80s
[20:49:17] * brainzap takes pulse and moves him to "Starting Village"
[20:49:29] <Aichan> But "actions" is a big word
[20:49:33] <Aichan> Could mean anything and nothing
[20:49:39] * Donitzo puts on his pirate bay t-shirt
[20:49:52] <LastTalon> Aichan, yeah, that's what makes it suck. Because free internet is part of the reason I wanted to move there.
[20:50:04] <LastTalon> Who knows, maybe they'll be safe.
[20:50:11] <Aichan> The next few days will tell
[20:50:17] *** atom32k <atom32k!~atomekk@unaffiliated/atomekk> has quit IRC (Quit: Leaving)
[20:50:23] <Donitzo> GDPR, article 13 and article 11 has ruined any semblence of that... if implemented
[20:50:34] <brainzap> btbw the game foodtruckpup is really well made, and i love how you can skip everything byb watching a dumb ad
[20:50:54] <LastTalon> Apparently it affects them.
[20:51:06] <LastTalon> They have negotiators for the copyright directive.
[20:51:09] <Donitzo> technically it affects every country on earth
[20:51:24] <Donitzo> it's the whole "if you do business in..."
[20:51:48] <pulse> i for one welcome our new copyright overlords
[20:51:51] <Donitzo> but in the US you can just ignore it
[20:51:56] <Donitzo> because what are they going to do, sue you?
[20:52:16] <Donitzo> actually I'm not sure about that
[20:52:36] <LastTalon> If you do business in the EU they can sue you.
[20:53:05] <Donitzo> yes but in which court?
[20:53:16] <LastTalon> Whatever member state you're doing business in?
[20:53:20] <notchris> court of EARTH
[20:53:24] <Donitzo> and if you don't go there?
[20:53:28] <pulse> court of kings
[20:53:34] <LastTalon> Then you lose.
[20:53:39] <Donitzo> and then what
[20:53:55] <LastTalon> Then they ask the US to extradite you
[20:53:57] <brainzap> they will hand you over
[20:53:58] <LastTalon> Lol
[20:54:03] <brainzap> and we fuck you in our country
[20:54:09] <notchris> with stakes
[20:54:20] <Donitzo> really, the US will extradite you for breaking some copyright law?
[20:54:26] <Donitzo> I find that hard to believe
[20:54:36] <notchris> I dont think the US will
[20:54:37] <LastTalon> No, they'll extradite you for avoiding legal action in another country.
[20:54:42] <notchris> probs community server at a Good Will for a week
[20:54:47] <notchris> and then a slap on the wrist
[20:54:48] <DaScoot> https://medium.com/@emanuelkarlsten/sweden-democrats-swedish-social-democrats-defeat-motion-to-amend-articles-11-13-731d3c0fbf30
[20:54:52] <notchris> service*
[20:55:04] <brainzap> maybe we should exit EU
[20:55:10] <DaScoot> 11 and 13 got through because elected representatives are too stupid to correctly push a button
[20:55:13] <LastTalon> The copyright violation is a civil matter, not showing up for your trial and not following through with what that court decides is a criminal matter.
[20:55:25] <pulse> what if it's my religion to violate copyright
[20:55:31] <notchris> ooo never not show up
[20:55:36] <notchris> thats the worst thing you can do
[20:56:00] <CarlaoBazuca> ok. enough of dumb political discussions here
[20:56:06] <CarlaoBazuca> you all suck
[20:56:08] <notchris> yay
[20:56:10] <Donitzo> no you!
[20:56:14] <notchris> no u*
[20:56:22] <brainzap> if you just voted
[20:56:23] <CarlaoBazuca> you are trying to turn this channel into ##programming
[20:56:25] <CarlaoBazuca> I won't let you
[20:56:27] <Aichan> Donitzo, the thing is Europe as a whole is the first economical region in the world, and around 10-15% of world population (counting those who can't afford a computer with internet, and those who already have no access to youtube and stuff)
[20:56:29] <CarlaoBazuca> game dev
[20:56:32] *** ShadowIce <ShadowIce!~pyoro@unaffiliated/shadowice-x841044> has joined #gamedev
[20:56:34] <CarlaoBazuca> Super Mario
[20:56:38] <CarlaoBazuca> Heroes of Might and Magic III
[20:56:39] <Aichan> So let's say tomorrow Youtube is blocked in the EU
[20:56:43] <notchris> Ok lets all just agree
[20:56:44] <LastTalon> Politics aren't allowed in ##programming ;)
[20:56:45] <CarlaoBazuca> Shining Force
[20:56:52] <notchris> Diddy Kong Racing > Mario Kart 64
[20:56:53] <CarlaoBazuca> E.V.O.
[20:56:55] <notchris> end of story
[20:56:55] <Aichan> Youtube isn't viable YET with the current situation
[20:56:59] <LastTalon> Hence we are not ##programming
[20:57:00] <CarlaoBazuca> notchris, hehehe nice
[20:57:08] <CarlaoBazuca> Mario Kart 64 was great
[20:57:09] <Donitzo> Secret of Mana > all of those
[20:57:11] <Donitzo> plebs
[20:57:12] <LastTalon> Crash team racing?
[20:57:12] <Aichan> Losing a fair market share is going to impact them really hard
[20:57:21] <brainzap> I just wanna point out that it is all Donitzos fault
[20:57:25] <notchris> crash team < diddy kong racing > mk64
[20:57:30] <notchris> errr
[20:57:30] <CarlaoBazuca> Death Rally
[20:57:30] <pulse> i agree with brainzap
[20:57:38] <LastTalon> You can't do arrows that way. D:<
[20:57:40] <notchris> Diddy Kong racing last race was almost unbeatable
[20:57:42] <CarlaoBazuca> so racing games. why Mario Kart got so popular?
[20:57:45] <notchris> LastTalon: ARROWSSSS
[20:57:56] <pulse> any game without flaming arrows isn't worth its salt
[20:57:59] <brainzap> Mario Kart has a comeback mechanic for the noobs
[20:58:07] <CarlaoBazuca> my favorite is ROCK'N'ROLL RACING
[20:58:11] <LastTalon> Is there a term for both "greater than sign" and "less than sign"?
[20:58:13] <pulse> death rally > all
[20:58:19] <CarlaoBazuca> pulse, this is pretty good too
[20:58:20] <Donitzo> slicks n slide
[20:58:21] <pulse> LastTalon, !=
[20:58:26] <notchris> mario kart has good drifting
[20:58:27] <brainzap> it went downhill after Grand Turismo 2 and micro machines
[20:58:31] <notchris> that never made it into the tutorials
[20:58:39] <Donitzo> oo micro machines
[20:58:40] <LastTalon> pulse, no, the name of the collection of symbols.
[20:58:42] <notchris> but bad handicaps
[20:58:45] <Donitzo> now there's an infuriating piece of ****
[20:58:46] <Donitzo> but I still love it
[20:58:56] <CarlaoBazuca> Rock'n'Roll Racing has Deep Purple in the background
[20:58:57] <pulse> LastTalon, angle brackets
[20:59:02] <CarlaoBazuca> this should be enough to be the best racing game
[20:59:15] <Donitzo> wacky wheels
[20:59:18] <pulse> NFS1 is where it's at
[20:59:23] <LastTalon> pulse, different symbol.
[20:59:31] <LastTalon> We just happen to use angle brackets for that symbol in programming.
[20:59:47] *** brainzap <brainzap!~brainzap@217.22.129.78> has quit IRC (Quit: My tummy says it's time to sleep Mr. Bubbles.)
[21:00:18] <LastTalon> Inequality signs.
[21:00:20] <LastTalon> That's it.
[21:00:40] <pulse> inequality signs includes != >= <=
[21:00:42] <Donitzo> ♂
[21:00:43] <pulse> not just < >
[21:00:52] <LastTalon> Yes, I know.
[21:01:21] <LastTalon> Also, != >= and <= are not actual inequality signs.
[21:01:30] <LastTalon> They're just how most programming languages represent them.
[21:02:01] <Donitzo> also, = doesn't mean assign usually
[21:02:04] <Donitzo> but who cares
[21:02:17] <LastTalon> Me. Because I was talking about inequality signs. D:<
[21:02:17] <pulse> programming is weird
[21:02:18] <Donitzo> pascal got it right
[21:02:25] *** immibis <immibis!~immibis@125-238-72-168-fibre.sparkbb.co.nz> has quit IRC (Ping timeout: 255 seconds)
[21:02:35] <LastTalon> ≫
[21:04:13] <LastTalon> Or ≯
[21:04:21] <LastTalon> Beautiful inequality symbols.
[21:04:53] <CarlaoBazuca> nope. there is a better language for them
[21:05:11] <CarlaoBazuca> I forgot its name now
[21:05:23] <Donitzo> class Blah { ≯(a) { a===this; } }
[21:05:28] <Donitzo> valid javascript because why not
[21:05:47] <pulse> javascript 2020: a==========b
[21:05:58] <Donitzo> also, !==
[21:06:11] <LastTalon> Now we need ?==
[21:06:58] <Donitzo> I don't get the extreme hatred people have for ternary operators
[21:07:19] <LastTalon> Not hatred for the operator. Hatred for using it in ways that make things hard to read.
[21:07:41] <Donitzo> so many times it's easier to use one ternary in one line than spread it out over 5 lines
[21:08:04] <Donitzo> blah = bleh === null ? new Bleh() : bleh;
[21:08:17] <pulse> ternary is fine
[21:08:34] <LastTalon> I'd be okay with that if you included some parens for clarity.
[21:08:39] <pulse> what is really hard to read is overly FP one liners
[21:08:50] <LastTalon> Like blah = (bleh === null) ? new Bleh() : bleh;
[21:09:00] <Donitzo> In that case there is no other way to read it
[21:09:06] <Donitzo> other cases it may be confusing
[21:09:10] <LastTalon> Yeah, but readability is still useful.
[21:09:27] <LastTalon> Either way its still a very valid case of it.
[21:09:45] <Donitzo> you could make the argument to use bleh || new Bleh();
[21:09:50] <Donitzo> but honestly I don't trust boolean casting
[21:10:16] <LastTalon> I'm not super familiar with coercion and casting in JS.
[21:10:27] <pulse> it's fun
[21:10:35] <Donitzo> undefined, 0, null and... I don't know, the color green, is false
[21:10:41] <pulse> https://dorey.github.io/JavaScript-Equality-Table/
[21:10:50] <LastTalon> "foo = foo or bar" in Lua is the preferred way to do it actually.
[21:11:38] <LastTalon> Unless foo is a boolean.
[21:11:47] <LastTalon> If foo is a boolean don't do that.
[21:12:17] <LastTalon> But if foo were a boolean you probably wouldn't need to do that.
[21:13:20] <LastTalon> C# is also nice for this. "int x = y ?? 1;"
[21:13:41] <Donitzo> in javascript I prefer to only use null
[21:13:55] <Donitzo> I explicitely declare my variables with null, and compare with null
[21:13:59] <Donitzo> and forget undefined exists
[21:14:09] <Donitzo> less headache
[21:14:26] <Donitzo> except some of the bloody functions still return undefined, like array.find
[21:15:17] <LastTalon> I'm still confused as to why JS needs both null and undefined.
[21:15:25] <pulse> Donitzo, all functions return undefined :D
[21:15:32] <pulse> unless a return is defined
[21:15:36] * pulse shrugs
[21:15:57] <pulse> LastTalon, undefined is supposed to be reserved for variables that are unassigned
[21:16:01] <Donitzo> also, things can be not defined as in, error not defined
[21:16:06] <Donitzo> and undefined as in, it just says undefined
[21:16:09] <Donitzo> I don't even
[21:16:10] <pulse> null is not undefined basically
[21:16:31] <LastTalon> Then what do they need null for?
[21:16:34] <LastTalon> Lol
[21:17:08] <pulse> well idk the technical reason but it's nice to have an explicit null
[21:17:21] <pulse> otherwise you'd be stuck with assigning undefined to variables
[21:17:24] <pulse> which is weird to say the least
[21:17:34] <LastTalon> Or you could just remove undefined.
[21:17:36] <Donitzo> and you're often warned to not rely on comparing with null or undefined or whatever because they can be redeclared
[21:17:37] <LastTalon> And keep null.
[21:17:42] <Donitzo> WELL THAT'S NOT MY PROBLEM
[21:17:52] <LastTalon> You don't need both.
[21:17:55] <pulse> LastTalon, but then undefined variables would be null
[21:17:56] <pulse> and not undefined
[21:18:11] <pulse> var a; // undefined
[21:18:15] <pulse> makes sense because it's literally undefined
[21:18:17] <LastTalon> You can have undefined variables without having an undefined type.
[21:18:37] <pulse> which complicates everything further
[21:18:48] <LastTalon> And there's nothing wrong with assigning undefined variables null.
[21:19:08] <LastTalon> It doesn't complicate anything.
[21:19:10] <Donitzo> null is the perfect "I don't have a value" value
[21:19:17] <Donitzo> null, None in python
[21:19:23] <LastTalon> nil in Lua
[21:19:32] <pulse> LastTalon, technically, null == undefined
[21:19:39] <pulse> but null !== undefined
[21:19:40] <pulse> so
[21:19:41] <pulse> :D
[21:19:45] <LastTalon> Exactly.
[21:19:52] <LastTalon> There's no good reason to have it as a separate type.
[21:20:01] <pulse> reason?
[21:20:04] <pulse> who needs reason
[21:20:17] <Donitzo> if javascript was made today from scratch it wouldn't have it surely
[21:20:22] <LastTalon> ^
[21:21:54] *** solidfox <solidfox!~solidpizz@unaffiliated/snake/x-2550465> has joined #gamedev
[21:22:50] <LastTalon> In Lua all variables not yet allocated are nil.
[21:23:24] <DarkUranium> Lua shares the mistakes of global-by-default with JS, though.
[21:23:38] <DarkUranium> At least JS's local declaration keyword is short & easy to type <_<
[21:23:40] <pulse> i'm waiting for LunarJetman to destroy all languages and make a perfect one
[21:23:42] <Donitzo> I thought things were in window by default
[21:23:50] <Donitzo> so still in an object
[21:23:55] <Donitzo> just a very high object
[21:24:40] <pulse> the web makes a lot of sense anyway https://stackoverflow.com/a/3434388
[21:24:41] <pulse> we're all fine
[21:24:44] <pulse> nothing to worry about
[21:24:48] *** DaScoot <DaScoot!~Scooter@static-24-153-33-9.cpe.metrocast.net> has quit IRC (Quit: Bye)
[21:25:17] <Donitzo> shh, ignore it
[21:25:23] <pulse> polluting a global namespace with html ids makes perfect sense
[21:25:26] <pulse> and will never cause any problems
[21:26:39] <LastTalon> DarkUranium, most people quickly learn to type local infront of everything in Lua.
[21:27:13] <DarkUranium> LastTalon, really, it should be invalid syntax to not declare at all.
[21:27:26] <LastTalon> Time for static typing? :D
[21:27:32] <DarkUranium> Just static scope.
[21:27:34] * LastTalon loves static typing
[21:27:36] <DarkUranium> (which they already do)
[21:27:40] <DarkUranium> I was once working on a similar lang to JS/Lua, what I did was that everything had to be declared explicitly.
[21:27:44] <DarkUranium> After that, C-like rules.
[21:27:49] <DarkUranium> LastTalon, you'll love my scripting lang, then :D
[21:27:52] <DarkUranium> 'tis statically-typed.
[21:27:54] <LastTalon> Yay!
[21:27:59] <LastTalon> Although, don't do like python
[21:28:05] <DarkUranium> It's very C-like.
[21:28:19] <DarkUranium> LastTalon, https://old.coyote-lang.org/examples/test-siege.coy.html
[21:28:22] <LastTalon> Don't make everything look like its lexically scoped but then not actually lexically scope it and have weird edge cases.
[21:28:52] <LastTalon> Python has a global keyword otherwise its local, but local does not mean lexically scoped in python.
[21:29:03] <LastTalon> D:<
[21:29:48] <LastTalon> Is module like a namespace?
[21:30:07] <DarkUranium> I suppose it is.
[21:30:08] <LastTalon> Oh, this is looking a lot like Java
[21:30:11] <LastTalon> So like a package?
[21:30:11] <DarkUranium> The concept comes from D.
[21:30:17] <DarkUranium> More like a Python module.
[21:30:27] <DarkUranium> But the ideas are all related, anyhow.
[21:30:42] <DarkUranium> What Java does is not unlike what Python or D or any language with modules does.
[21:30:57] <DarkUranium> (the only exception is that in Java, you can have multiple files be in 1 module; what Java calls a "package")
[21:31:08] <DarkUranium> (Python has packages too, but modules are still explicit constructs, unlike in Java)
[21:31:28] <DarkUranium> LastTalon, anyhow, everything in Coyote is lexically scoped, no exceptions.
[21:31:33] <LastTalon> Wew
[21:31:37] <DarkUranium> Out of curiosity, what are Python's exceptions?
[21:31:46] <LastTalon> Its actually very similar to JS.
[21:31:53] <DarkUranium> Okay, what are JS' exceptions? :D
[21:31:53] *** freestyledork is now known as freefork_afk
[21:32:03] <LastTalon> Well like in JS if you used var instead of let.
[21:32:21] <LastTalon> Its scoped by function environment, not lexically.
[21:32:44] <LastTalon> There are also a few edge cases, too.
[21:32:52] *** arne82 <arne82!~arne82@ip1f10d138.dynamic.kabel-deutschland.de> has quit IRC (Ping timeout: 246 seconds)
[21:33:08] <DarkUranium> Oh, that. Right.
[21:33:17] <DarkUranium> I forget that JS's `var` is fubar'd.
[21:33:19] <DarkUranium> And Python, too.
[21:33:31] <DarkUranium> Nah, I'll do none of that. Scoping rules will be pretty much the same as the usual C-family.
[21:33:37] <LastTalon> iirc it has 5 scopes that a variable can possibly have.
[21:33:43] <DarkUranium> (I say "pretty much" because maybe I'm forgetting some obscure edge case of C or something)
[21:33:57] <DarkUranium> (other than that, it should be exactly the same, with the caveat that I have modules, which obviously interact)
[21:34:05] <DarkUranium> lol
[21:34:20] <DarkUranium> I think I have 3, which are categorized into 2 parts.
[21:34:27] <DarkUranium> (module, record [class/struct], and function)
[21:34:45] <LastTalon> Python has a scope specifically for making closures work.
[21:34:51] <DarkUranium> (former two are what I call "declarative scopes" --- order is irrelevant and you're limited to declarations only)
[21:34:55] <DarkUranium> Huh?
[21:35:04] <LastTalon> Yeah, its its "enclosing function" scope.
[21:35:05] <LastTalon> Lol
[21:35:26] <DarkUranium> If you're saying what I think you're saying, that does make sense for any language w/ lexical closures.
[21:35:33] <DarkUranium> But I know Python's rules around those are a bit odd.
[21:35:38] <LastTalon> It also has a scope for its built in variables.
[21:35:54] <LastTalon> Its just odd that it has to name it specifically.
[21:36:06] <LastTalon> Like normally that would be part of your lexical scoping to begin with.
[21:36:16] <DarkUranium> Yeah. I guess it must be separate because of the weird scoping rules.
[21:36:32] <LastTalon> Because otherwise it would abandon the old function environment when it starts a new one.
[21:37:50] <LastTalon> I forgot what the fifth scope is called actually. Its sort of a hidden one that most people don't really know about because it never comes up.
[21:38:17] <LastTalon> But yeah, otherwise they have a scope for built in variables, global variables, enclosing function variables, and local function variables.
[21:38:31] <DarkUranium> I feel like the 5th one might have to do with __all__ or something weird like that.
[21:38:38] <DarkUranium> Or maybe the magic surrounding __foo in classes
[21:38:46] <LastTalon> Something like that possibly, yeah.
[21:38:51] <DarkUranium> Well, I'll have 3, generally.
[21:38:52] <LastTalon> Its not really important I guess.
[21:39:01] <DarkUranium> module, record, function.
[21:39:12] <LastTalon> Oh yeah, and you have namespaces ontop of those. :P
[21:39:18] <LastTalon> In python.
[21:39:28] <DarkUranium> And 2 or so lookup methods (direct, e.g. for the `bar` of `foo.bar`, and indirect, for the `foo` in the example)
[21:39:54] <LastTalon> How is the scoping different for record and function?
[21:40:13] <DarkUranium> Well, record is declarative scope (just like module).
[21:40:16] <DarkUranium> Means it's order-independent.
[21:40:20] <DarkUranium> e.g. this is okay:
[21:40:28] <DarkUranium> class Foo { int getX() { return x; } int x; }
[21:40:45] <DarkUranium> Semantics-wise, it's as if it were a two-pass process (... mostly because it will be :P)
[21:40:54] <DarkUranium> Pass #1 gets just the names of the symbols, pass #2 does the actual compile/resolve/link
[21:41:06] <LastTalon> I see.
[21:41:08] <DarkUranium> For functions, it's strictly top to bottom.
[21:41:21] <DarkUranium> This way, this does the expected thing:
[21:41:26] <LastTalon> Time for first class records. :D
[21:41:29] <DarkUranium> int foo() { int y = x; int x; }
[21:41:30] *** notchris <notchris!~notchris@67.218.88.131> has quit IRC (Quit: notchris)
[21:41:36] <DarkUranium> What are first-class records?
[21:41:41] <LastTalon> I suppose that would be ruby's thing.
[21:42:05] <LastTalon> Like I guess it would be true object oriented programming.
[21:42:14] <LastTalon> Even records defining objects are objects.
[21:42:21] *** Xizor <Xizor!~Xizor@2001:41d0:52:100::5ec> has joined #gamedev
[21:43:20] <DarkUranium> Right, no :P
[21:43:22] <solidfox> woah rebinding
[21:43:26] <DarkUranium> In fact, I'm hoping to move in the other direction, not OOP.
[21:43:29] <LastTalon> :P
[21:43:33] <DarkUranium> I'm ... really tempted to do traits.
[21:43:33] <LastTalon> Whats wrong with OOP/
[21:43:43] * LastTalon ducks
[21:43:58] <DarkUranium> I'd still have class methods and all that, but they'd just be syntactic sugar for (anonymous) trait implementations.
[21:45:44] <LastTalon> Traits and classes and objects all work together.
[21:45:54] *** qrestlove <qrestlove!~qrestlove@2601:446:c201:f560:dde3:63b1:f903:6239> has quit IRC (Ping timeout: 268 seconds)
[21:46:04] <DarkUranium> Traits are really just fancy interfaces in the model I have in mind :P
[21:46:16] <LastTalon> They can sort of be thought of that way.
[21:46:29] <LastTalon> They both enable multiple inheritance.
[21:46:55] <DarkUranium> and `class Foo { int x, y, z; void foo() {...} }` in my model would be a class with just x,y,z ... `void foo()` would then be an anonymous trait, implementing `foo()` for that class
[21:47:05] <DarkUranium> I saw a language that did MI in quite a (IMHO) sane way.
[21:47:07] <DarkUranium> Completely OOP.
[21:47:17] <DarkUranium> I don't recall the name, but what it did was to have 2 constructors.
[21:47:27] <DarkUranium> One ran per-instance, and the other ran per-inheritance-path.
[21:47:36] <LastTalon> That sounds fine.
[21:47:41] <LastTalon> That still sounds like a class to me.
[21:47:43] <DarkUranium> So in the diamond pattern (A->{B,C}->D), A would have one ctor that runs once, and another that runs twice.
[21:48:00] <DarkUranium> Obviously, the one that runs once can't have parameters, though.
[21:48:27] <DarkUranium> (unless you add tuples and implement some sort of a rule where it gets a tuple of tuples of arguments, for each invocation ... but that'd get ugly)
[21:48:57] <LastTalon> I think multiple inheritance is one of these scary things for people.
[21:49:23] <LastTalon> Interfaces and traits are multiple inheritance, just with restrictions that prevent the ugly things people don't like about it.
[21:49:35] *** toothlessg <toothlessg!~toothless@rrcs-24-103-153-67.nys.biz.rr.com> has quit IRC (Read error: Connection reset by peer)
[21:49:53] *** toothlessg <toothlessg!~toothless@rrcs-24-103-153-67.nys.biz.rr.com> has joined #gamedev
[21:50:06] * LastTalon still wants to learn scala
[21:50:09] <DarkUranium> I think inheritance in general is not that useful.
[21:50:12] <DarkUranium> Multiple, even less so.
[21:50:24] <LastTalon> I think it is very useful, but most people misunderstand it.
[21:50:32] <DarkUranium> *shrug* maybe
[21:50:48] <LastTalon> I think most people see multiple inheritance and think that means you go wild with it.
[21:50:58] <LastTalon> Or inheritance in general for that matter.
[21:51:58] <LastTalon> Its a tool and a feature of a language just like any other, you use it to achieve a task. You should always keep in mind what this means your program is actually doing and how its handling data.
[21:53:15] <DarkUranium> I think flatter, component-based structures are a better idea, but *shrug*
[21:53:25] <DarkUranium> ANYHOW
[21:53:34] <DarkUranium> Point is, this is the lang I'm making. There are still a few open design questions.
[21:53:40] <DarkUranium> And one big API-related design question, heh.
[21:54:12] <LastTalon> Composing components can be indistinguishable from inheritance depending on what exactly you're doing with them.
[21:54:35] <LastTalon> Especially if you're including MI methods like interfaces and traits.
[21:54:44] <DarkUranium> There is one important difference.
[21:54:55] <DarkUranium> Traits/interfaces do not typically have fields.
[21:55:20] <DarkUranium> No state means the #1 issue of MI is eliminated.
[21:55:44] <LastTalon> Well yeah, like I said, they fix the major ugliness people don't like. :P
[21:56:14] <DarkUranium> Anyhow, the difference between traits and interfaces for me is that I can define a trait on something post-fact.
[21:56:49] <DarkUranium> E.g. I can do (actual syntax I'll probably use) `extend SomeClass: JSONSerializable { JSONValue jsonSerialize() { ... } }`
[21:57:14] <DarkUranium> My `extend` syntax is designed to mimic `class` syntax. It looks exactly the same, it's just a keyword replacement.
[21:57:24] <DarkUranium> (slightly different semantics; for one, SomeClass must exist already!)
[21:57:30] <LastTalon> So you can attach them afterward you mean?
[21:57:33] <DarkUranium> Yes.
[21:57:44] <DarkUranium> This is important for good extensibility.
[21:58:11] <DarkUranium> E.g. if I made a library for parsing JSON, I probably didn't predict anyone needing XML export.
[21:58:21] *** freefork_afk is now known as freestyledork
[21:58:36] <DarkUranium> But if the user can attach the proper trait by themselves, it works nicely.
[21:58:38] <LastTalon> Yeah, this is what I was saying with records being first class.
[21:58:46] <DarkUranium> It's also going to be used for UFCS (via anonymous traits)
[21:58:55] <LastTalon> The idea of being able to operate and move them around like objects.
[21:58:55] <DarkUranium> I'm still not sure what you mean by "first-class records".
[21:58:58] *** qrestlove <qrestlove!~qrestlove@2601:446:c201:f560:3013:7f1f:89c1:c7e1> has joined #gamedev
[21:59:10] <LastTalon> Lets add this bit to this one, remove that bit.
[21:59:23] <DarkUranium> Mind you, the thing I'm talking about is entirely static.
[21:59:27] <LastTalon> I know.
[21:59:29] <DarkUranium> All of this can be reasoned about at compile-time.
[21:59:36] <DarkUranium> (and removal would be ... interesting)
[21:59:36] <LastTalon> But you're edging to close in the direction of this. :P
[21:59:58] <LastTalon> But yeah, being able to do that is not something that the concept of a trait/interface/inheritance weighs in on
[22:00:07] <LastTalon> Its just usually done one way.
[22:00:09] <LastTalon> :P
[22:00:43] <LastTalon> Ruby lets you do things like removal.
[22:00:49] <LastTalon> That's why I brought up ruby before.
[22:01:04] <DarkUranium> I see. This is a less dynamic language, though.
[22:01:09] <LastTalon> Yeah.
[22:01:28] <LastTalon> I just think that there's a divide between the pro/anti-OOP people.
[22:01:52] <LastTalon> Where in my eyes a lot of what people who don't like OOP do is OOP with a different name or through a different lens.
[22:01:59] <DarkUranium> Honestly, I used to like OOP, but I find I like it less and less.
[22:02:05] <DarkUranium> I know this is mostly OOP, I'm talking generally.
[22:02:20] <DarkUranium> It just has a slew of issues.
[22:02:32] <DarkUranium> But I need to support it because familiarity is literally a design goal for my lang.
[22:02:32] <LastTalon> I think the issues are more to do with people using it tbh.
[22:02:38] <DarkUranium> Nah, it's OOP.
[22:02:46] <DarkUranium> Problem is, it's subjective on how you split things up into objects.
[22:02:51] <DarkUranium> With e.g. FP, it's easy.
[22:02:58] <DarkUranium> You have state, and you have non-state (functions).
[22:03:05] <LastTalon> How you organize a program and your program's state is always subjective.
[22:03:17] <DarkUranium> Yeah, but in OOP, bad organization can royally screw you over.
[22:03:24] <DarkUranium> I mean, moreso than elsewhere.
[22:03:28] <LastTalon> That's a user issue.
[22:03:32] <DarkUranium> Not really.
[22:03:36] <LastTalon> Someone is writing a bad program.
[22:03:48] <DarkUranium> The issue is, again, that what's an object is *subjective*.
[22:03:54] <DarkUranium> What's state is *objective*.
[22:04:13] <LastTalon> An object is a way of organizing state.
[22:04:18] <DarkUranium> OOP also combines state with behavior, which can get interesting when you have multiple completely different things you want to do with the same state.
[22:04:19] <LastTalon> The way you organize state in every program is subjective.
[22:04:34] <DarkUranium> No, an object is a way of organizing state & behavior.
[22:04:53] <DarkUranium> I mean, programming patterns show many of the deficiencies.
[22:04:59] <LastTalon> Behaviours meant to operate on that state, yes.
[22:04:59] <DarkUranium> Like the visitor pattern, which are glorified callbacks.
[22:05:18] <DarkUranium> Yeah, but what if you have two completely independent things that want to operate on that state?
[22:05:28] <DarkUranium> Or if you have 1 thing that needs to operate on multiple states?
[22:05:34] <LastTalon> There's no reason you couldn't take all of your behaviors out of your classes and attach them back through composition.
[22:05:37] <DarkUranium> If I have a function that needs to deal with classes A *and* B, where do I put it?
[22:05:49] <DarkUranium> With FP, it's easy. You put it anywhere, since states don't have methods, functions are separate.
[22:06:10] <DarkUranium> (this holds for "classic" imperative programming [e.g. C], too)
[22:06:12] <LastTalon> But why you would do that would be baffling. Because some behaviors assume a certain state.
[22:06:40] <LastTalon> And even if you separated state from behavior that's still object oriented programming.
[22:06:42] <DarkUranium> Funnily enough, even OOP proponents often suggest composition over inheritance.
[22:06:52] <LastTalon> Because composition is good.
[22:07:14] <LastTalon> Because well-written programs use composition.
[22:07:28] <DarkUranium> But you just said "why you would do that would be baffling".
[22:07:31] <LastTalon> That's what I'm saying from the start. Its the same thing through a different lens.
[22:07:40] <DarkUranium> It's really not, unless you call everything OOP.
[22:07:47] <LastTalon> DarkUranium, it would be baffling to do it with all of your behavior.
[22:08:33] <DarkUranium> ?
[22:08:34] <LastTalon> Again, still the problem.
[22:08:45] <DarkUranium> Like I said, if I have classes A and B, stuff needs to operate on both.
[22:08:48] <LastTalon> The only difference is where you choose to draw the line for what is called what.
[22:08:48] *** Serpent7776 <Serpent7776!~Serpent77@90-156-31-193.internetia.net.pl> has quit IRC (Quit: leaving)
[22:08:48] <DarkUranium> Where do I put the method?
[22:09:07] <DarkUranium> It's subjective stuff like this that's the problem. And that's assuming you correctly defined where the line between A and not A is.
[22:09:08] <LastTalon> And you just so happen to choose to draw the line in a spot that lets you easily label an entire discipline as problematic.
[22:09:17] *** refs <refs!~refs@dslb-094-222-021-148.094.222.pools.vodafone-ip.de> has joined #gamedev
[22:11:39] <DarkUranium> My criticisms are well-known.
[22:12:01] <LastTalon> Being well-known doesn't mean your conclusions are correct.
[22:12:21] <LastTalon> Its divisive.
[22:12:23] <DarkUranium> Then why is it always OOP that keeps struggling to find its way? People are constantly running into issues with it.
[22:12:36] <LastTalon> Programming in general is always struggling to find its way.
[22:12:39] <DarkUranium> So constantly, in fact, that there's been entire books made about programming patterns, to help alleviate some of them
[22:12:43] <LastTalon> Have you ever encountered FP?
[22:12:43] <R2robot> :)
[22:12:45] <DarkUranium> Including suggestions such as "don't use inheritance"
[22:13:04] <LastTalon> How about procedural programming?
[22:13:17] <LastTalon> All of programming has these issues. Its a complicated subject that we aren't very good at in general.
[22:13:51] <DarkUranium> FP doesn't have the subjectivity problem of "do I put this in A or B?", for example.
[22:14:00] <DarkUranium> that's already 1 fewer thing you need to worry about
[22:14:11] <LastTalon> When does anyone have that problem?
[22:14:20] *** ShadowIce <ShadowIce!~pyoro@unaffiliated/shadowice-x841044> has quit IRC (Quit: Leaving)
[22:14:29] <CarlaoBazuca> <DarkUranium> Including suggestions such as "don't use inheritance"
[22:14:36] <CarlaoBazuca> inheritance is abused by everyone, indeed
[22:14:40] <LastTalon> ^
[22:14:41] <LastTalon> Yeah.
[22:14:54] <LastTalon> Inheritance, like many other tools in programming gets abused by people.
[22:14:58] <LastTalon> Don't blame the technique.
[22:15:12] <DarkUranium> A blatant ban is not "don't abuse".
[22:15:28] <CarlaoBazuca> who is banning things? (I just got here)
[22:15:30] <LastTalon> I don't ban inheritance.
[22:15:30] <pulse> i blame brainzap
[22:15:32] <DarkUranium> When your paradigm has proponents within it tell you not to use one of its core principles, you may have a problem.
[22:15:52] <LastTalon> I don't know anyone who actually says to not use inheritance.
[22:15:59] <CarlaoBazuca> if composition fits X, then inheritance won't be used in X
[22:16:01] <pulse> OOP is nice because animal -> dog -> rottweiler
[22:16:06] <CarlaoBazuca> pulse, :(
[22:16:09] <LastTalon> I tell people not to abuse inheritance.
[22:16:09] <pulse> inheritance*
[22:16:22] <CarlaoBazuca> I tell people to rarely use inheritance
[22:16:37] <pulse> i rarely tell people to rarely use inheritance
[22:16:43] <LastTalon> And again, just because someone says something doesn't mean their conclusions about it are correct.
[22:16:49] <CarlaoBazuca> except when it is me
[22:16:53] <pulse> exactly
[22:16:54] * CarlaoBazuca is always correct
[22:16:54] <LastTalon> ^ :P
[22:16:56] <pulse> all my code is perfect
[22:16:59] <pulse> all other code is ugly
[22:17:18] <pulse> and it varies from ungodly ugly to passable ugly
[22:17:19] <CarlaoBazuca> regarding coding and videogames, everyone can always trust me
[22:17:33] <pulse> CarlaoBazuca, solve the game loop problem
[22:17:39] <CarlaoBazuca> sure. what is the problem?
[22:17:43] <pulse> it's broken
[22:17:57] <CarlaoBazuca> give up on a variable frame rate first
[22:17:59] <pulse> it's impossible to write a perfect game loop
[22:18:01] <CarlaoBazuca> make it work with a fixed frame rate
[22:18:07] <CarlaoBazuca> then you can improve on top of it
[22:18:07] <pulse> i have but now i'm giving up on fixed framerate
[22:18:12] <pulse> no
[22:18:16] <pulse> i have two builds of my game
[22:18:19] <CarlaoBazuca> :)
[22:18:21] <pulse> one uses variable + no vsync
[22:18:21] <LastTalon> OOP is good. Inheritance and polymorphism are useful. Just asserting that lots of people have bad things to say about it, doesn't counter that.
[22:18:25] <pulse> the other uses fixed + vsync
[22:18:31] <pulse> variable + no vsync has smoother movement
[22:18:50] <LastTalon> Lots of us programmers have big egos and think we know a lot about everything. Doesn't mean we are.
[22:19:15] <pulse> and why is game loop not a solved problem
[22:19:20] <pulse> it's driving me insane i tell you
[22:19:27] <LastTalon> pulse, it is, its just not an easy to solve one.
[22:19:34] <pulse> no it's basically unsolved
[22:19:46] <LastTalon> Its solved, its just not solved in a simple way. There are no shortcuts.
[22:19:56] <CarlaoBazuca> actually there are lots of shortcuts
[22:19:57] <pulse> in an ideal world you would: 1) predict how much time the next frame takes 2) render that frame
[22:19:59] <pulse> which you can't do
[22:20:02] <pulse> so best you can do is wiggle a solution
[22:20:05] <LastTalon> CarlaoBazuca, well not without sacrifices.
[22:20:10] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has quit IRC (Ping timeout: 272 seconds)
[22:20:11] <pulse> which is a tradeoff of either X or Y
[22:20:11] <CarlaoBazuca> yup! you always need to compromise
[22:20:18] <pulse> and none of which works ideally
[22:20:21] <CarlaoBazuca> or else we would not have videogames at all
[22:20:41] <LastTalon> pulse, well that's why you throttle your loop and control how much time the next frame takes.
[22:20:42] <pulse> i've been reading some blogs and someone wrote "all timing in games is broken"
[22:20:43] <pulse> i laughed
[22:20:47] <pulse> because it's true
[22:20:48] <pulse> and sad
[22:20:59] <CarlaoBazuca> :D
[22:21:10] <CarlaoBazuca> what's next? a real time OS to make games on it?
[22:21:12] *** Cahaan <Cahaan!~Cahaan@ns326233.ip-37-187-158.eu> has quit IRC (Quit: Leaving)
[22:21:18] <LastTalon> You can prepare frames in advance to make sure you've always got one ready.
[22:21:25] <CarlaoBazuca> LastTalon, ew
[22:21:31] *** Beliar <Beliar!~Beliar@2a02:8108:9640:6c42:a00d:340b:49b9:9aa7> has quit IRC (Quit: The only real mistake is the one from which we learn nothing)
[22:21:34] <LastTalon> Ew?
[22:21:39] <LastTalon> Most games have this capability.
[22:21:53] <CarlaoBazuca> annoying to do. very easy to break
[22:22:00] <LastTalon> Break?
[22:22:08] <LastTalon> Its also not that annoying to do.
[22:22:08] <CarlaoBazuca> yeah! you are doing prediction
[22:22:13] <LastTalon> Its not prediction.
[22:22:15] <CarlaoBazuca> :-/
[22:22:17] <LastTalon> Its double buffering.
[22:22:21] <CarlaoBazuca> o_O
[22:22:30] <CarlaoBazuca> to have a frame, you need to advance state
[22:22:45] <CarlaoBazuca> you advance state based on the current state + user inputs
[22:22:46] <LastTalon> You just hold onto the old state for one frame...
[22:22:51] <LastTalon> Its rendered one frame late.
[22:22:55] <CarlaoBazuca> ew too
[22:23:02] <CarlaoBazuca> what is the gain?
[22:23:04] <LastTalon> You must not be too familiar with rendering techniques.
[22:23:06] <LastTalon> This is commoon.
[22:23:08] <CarlaoBazuca> if you are rendering late?
[22:23:11] <CarlaoBazuca> what do you gain?
[22:23:41] <CarlaoBazuca> (crickets)
[22:23:53] <pulse> stop fighting and tell me something
[22:23:54] <pulse> why is it
[22:23:55] <LastTalon> You keep two (or more) buffers. You render to one, wait a frame, display that one while you render the current frame to the toher.
[22:23:58] <pulse> that every old game i run
[22:24:01] <pulse> it has rendering issues
[22:24:08] <pulse> did this happen in the past too
[22:24:11] <pulse> or is this because of LCDs
[22:24:18] <CarlaoBazuca> LastTalon, if you are rendering late, I don't see what is the gain
[22:24:19] <LastTalon> Rendering one frame late is imperceptible.
[22:24:21] <pulse> or did my brain neurons speed up by 100x so i'm able to perceive it now
[22:24:35] <LastTalon> The gain is that it smooths out the rendering process.
[22:24:44] <CarlaoBazuca> how so?
[22:24:50] <LastTalon> Because rendering takes time.
[22:24:54] <CarlaoBazuca> are you using threads?
[22:25:06] <LastTalon> So if you're late rendering you have to delay your frame until its done rendering.
[22:25:18] <LastTalon> If you double buffer you don't need to worry about that frame being late.
[22:25:19] <CarlaoBazuca> just render the current state whenever you want
[22:25:33] <LastTalon> It can do it during idle iterations of your loop.
[22:25:43] <CarlaoBazuca> idle iterations? there are no such things in a game
[22:25:50] * LastTalon sighs
[22:25:56] <CarlaoBazuca> things are always moving
[22:25:58] <pulse> there's triple buffering too
[22:26:01] <LastTalon> ^
[22:26:05] <LastTalon> There are idle iterations.
[22:26:05] <CarlaoBazuca> triple buf = vsync
[22:26:11] <LastTalon> iterations where no updates are called.
[22:26:13] <pulse> somewhat correct
[22:26:15] <pulse> but not entirely
[22:26:20] <pulse> vsync is hardware side
[22:26:28] <LastTalon> vsync and double buffering are separate but usually used together.
[22:26:39] <pulse> mostly to create chaos and confusion
[22:26:44] <CarlaoBazuca> :) yup
[22:26:46] <LastTalon> vsync is literally just waiting for the right time to render.
[22:26:47] * CarlaoBazuca KISS
[22:27:11] <CarlaoBazuca> no, seriously. most of these 'rendering techniques' are just to make the life of the coders and the debuggers/testers harder
[22:27:17] <LastTalon> Which you could totally do with one buffer, but why would you?
[22:27:26] <pulse> CarlaoBazuca, they solve 10% of the problem at best
[22:27:28] <pulse> we need a game loop
[22:27:30] <pulse> that's like
[22:27:32] <pulse> from aliens
[22:27:33] <pulse> or something
[22:27:41] <LastTalon> Its not. It solves actual rendering problems in videogames.
[22:27:45] <LastTalon> Screen tearing for instance.
[22:27:52] <pulse> LastTalon, mostly on old hardware though
[22:27:54] <CarlaoBazuca> screen tearing = vsync
[22:28:01] <LastTalon> Not if you don't double buffer.
[22:28:02] <CarlaoBazuca> and only for old hardware indeed
[22:28:17] <LastTalon> Because if you have to render only half a rendered buffer this v blank your next one will be torn.
[22:28:22] *** MatiasMunk <MatiasMunk!~MatiasMun@unaffiliated/matiasmunk> has quit IRC ()
[22:28:24] <LastTalon> :D
[22:28:37] <LastTalon> Why am I explaining this? You guys aren't interested in hearing it.
[22:28:38] <CarlaoBazuca> I would never render half a buffer
[22:28:41] <CarlaoBazuca> ew
[22:28:44] <LastTalon> I'm gonna go work on my project.
[22:28:58] <CarlaoBazuca> either I go with full frames or individual sprites
[22:29:02] <LastTalon> CarlaoBazuca, then you're just not rendering that frame. LOL
[22:29:11] <LastTalon> You're just lowering your framerate.
[22:29:17] <LastTalon> Also an option.
[22:29:28] <CarlaoBazuca> a lower consistent framerate is still better than quirks
[22:29:39] <CarlaoBazuca> or code that is insanely written
[22:29:48] <LastTalon> Double buffering lets you keep a consistent framerate without having to render partial frames.
[22:30:05] <LastTalon> Look, double buffering is a couple lines of code. You act like this is a complicated thing to do.
[22:30:09] <CarlaoBazuca> well, I think everyone uses double buffering
[22:30:23] <CarlaoBazuca> it is the easiest to implement
[22:30:32] <LastTalon> Anyway, I'm going to go work on my project...
[22:30:39] <pulse> all this completely overlooks the big problem
[22:30:49] <CarlaoBazuca> scratch everything in the buffer... then blast the whole thing in the canvas
[22:30:59] <pulse> it. keeps. going. out. of. sync
[22:31:01] <pulse> aaaaa
[22:31:10] <CarlaoBazuca> pulse, account for leftover times
[22:31:16] <pulse> aaaaaaaa
[22:31:18] <CarlaoBazuca> know how to advance your state partially
[22:31:33] <pulse> :!#$!
[22:31:33] <CarlaoBazuca> accept that you can't have total precision
[22:31:51] <CarlaoBazuca> you can have some movement algorithms that correct themselves
[22:33:24] <pulse> PC operating systems use preemptive multitasking, which means how much time your program gets is completely under the purview of the OS. When you sleep(10ms), that's a suggestion to the OS. It's rarely perfect, but usually it'll do its best, and you'll wake up sometime within the next 9.9 to 10.1 milliseconds. Sometimes though, it might be 15. Sometimes, if the system is under heavy load, it might be 10000. If an interrupt or signal occurs, it might be
[22:33:24] <pulse> 1ms
[22:33:37] <pulse> just kill me
[22:33:45] <CarlaoBazuca> to use sleep, you need to calibrate the time after
[22:33:53] <CarlaoBazuca> that is the biggest deal in my fixed framerate loop
[22:33:55] * pulse calibrates the time
[22:34:00] <CarlaoBazuca> I made it 'green' (with sleep)
[22:34:09] <CarlaoBazuca> and I get occasional jittering
[22:34:19] <pulse> i get it smooth 99.9% of time
[22:34:23] <pulse> ok probably not that high
[22:34:25] <pulse> 99%
[22:34:30] <pulse> but 1% of the time it's jittery
[22:34:33] <LastTalon> pulse, you know you're making this problem to be a bigger one than it is.
[22:34:41] <pulse> i've thought of that too
[22:34:48] <pulse> how did i not notice this playing old games for example
[22:34:53] <pulse> not once
[22:34:58] <LastTalon> You can literally get away with just checking how long its been since your last frame render and working from there.
[22:35:07] <pulse> that's my initial goto loop yea
[22:35:32] <LastTalon> All this other stuff is for fixing minor issues that arise.
[22:35:33] <CarlaoBazuca> "just checking how long its been since your last frame render"
[22:35:39] <CarlaoBazuca> not always possible
[22:35:58] <LastTalon> Only if you can't keep track of a number.
[22:38:03] <pulse> we need some kind of einstein to come up with a better game loop
[22:38:05] <pulse> because this is madness
[22:38:56] <LastTalon> pulse, like I said, its been done.
[22:39:01] <LastTalon> How do you think major engines do it?
[22:39:12] <LastTalon> But they're heavily engineered beasts of loops.
[22:39:22] <pulse> they get it wrong too
[22:39:33] <LastTalon> Wrong?
[22:39:57] <pulse> not ideal
[22:39:59] *** [Relic] <[Relic]!~Relic]@2602:306:33a3:6d30:f877:9720:3c2d:686a> has joined #gamedev
[22:40:10] <LastTalon> Ideal as in no context switching?
[22:40:12] <R2robot> tradeoffs
[22:40:27] <pulse> ideal as in perfect
[22:40:36] <LastTalon> By who's authority?
[22:40:51] <LastTalon> If its yours you're going to have to tell me what you mean by perfect.
[22:41:01] <pulse> the authority of universal stability and continuity
[22:41:12] <CarlaoBazuca> purrfect
[22:41:13] *** togo <togo!~togo@2a01:5c0:1a:c171:3ee7:9c4a:6828:3ea8> has joined #gamedev
[22:41:15] <R2robot> the Time Lords
[22:41:18] <CarlaoBazuca> =^.^=
[22:41:23] *** Cahaan <Cahaan!~Cahaan@static.88-198-39-148.clients.your-server.de> has joined #gamedev
[22:41:24] <LastTalon> I mean they are continuous.
[22:41:31] <LastTalon> They don't cease to exist sometimes.
[22:41:42] <LastTalon> Not sure what you mean by universal stability.
[22:41:42] <pulse> when i kick a ball in real time the light that hits my eyes doesn't desync with the ball at random intervals
[22:41:51] <CarlaoBazuca> :D
[22:41:51] <LastTalon> pulse, of course it does.
[22:41:59] <pulse> :S
[22:42:02] <LastTalon> Light is made up of discrete units called photons.
[22:42:20] <pulse> aren't they wavicles
[22:42:20] <LastTalon> Your brain just averages them together to perceive constancy.
[22:42:21] <CarlaoBazuca> we just need more hardware sprites
[22:42:43] <CarlaoBazuca> that's how most old games were done and that's how they fooled pulse :)
[22:42:53] <pulse> how about MS DOS ones
[22:42:58] <CarlaoBazuca> most are crap
[22:42:58] <pulse> how did carmack did it
[22:43:05] <LastTalon> pulse, you're just making it into a harder issue than it is.
[22:43:13] <pulse> probably :S
[22:43:17] <LastTalon> Tell me what actual problems real engine game loops have and we can work from there.
[22:43:19] <CarlaoBazuca> you compare the ports of the 80's arcades... EWWWWWWW
[22:43:21] <pulse> it's one of those can't unsee
[22:43:22] <pulse> issues
[22:43:44] <pulse> LastTalon, even a brand new AAA game when i launch it straight off the bat there's screen tearing
[22:43:48] <LastTalon> But you're seeming to strive for some mythical Perfection™ which you're never going to do.
[22:43:48] <pulse> and then i turn vsync on and it's better
[22:43:51] <R2robot> Carmack: https://github.com/id-Software
[22:43:52] <pulse> but not perfect
[22:43:57] <pulse> basically
[22:43:59] <pulse> is perfect possible
[22:44:02] <pulse> and if it is, how does it look like
[22:44:12] <pulse> is what i'm wondering
[22:44:21] <LastTalon> Yeah, those graphics options are flags to the game loop for it to choose which bits to do.
[22:44:30] <LastTalon> Like you turn on vsync and it starts waiting for v blanks.
[22:44:45] <pulse> yeah but the hardware is super powerful
[22:44:47] <pulse> so why
[22:44:50] <pulse> in gods name
[22:44:59] <pulse> can't i move one (1) sprite across the screen
[22:45:01] <pulse> in a smooth motion
[22:45:16] <LastTalon> You can.
[22:45:28] <LastTalon> Phi phenomenon.
[22:45:31] <pulse> you sorta can come close to it but you can't perfect it
[22:46:57] <LastTalon> If you can't make something move smoothly you probably have a bug.
[22:47:29] <pulse> it moves smoothly but it jitters on rare occasion
[22:47:51] <myke> try it on a different platform and see if you get the same error
[22:48:02] <LastTalon> Is your update step tied to your render step?
[22:48:09] <pulse> yeah i tried it on another pc with a smaller 4:3 screen and it's a lot better
[22:48:14] <pulse> almost imperceptible
[22:48:19] <pulse> which makes me think it's something to do with my monitor
[22:48:25] <LastTalon> Separate your render step from your update step.
[22:49:04] <pulse> LastTalon, i played around with the loop a lot so now i have two versions, one with fixed timestep+vsync and other with variable+no vsync (vsync makes it worse with variable)
[22:49:24] <pulse> i implemented interpolation with the fixed loop too
[22:49:31] <pulse> yet somehow variable+no vsync works better still
[22:49:37] <pulse> idk maybe i fucked something up
[22:49:43] <LastTalon> But is your update always done at the same time your render is done?
[22:49:51] <LastTalon> This is the thing I was explaining the other day.
[22:50:07] <pulse> depends on the method
[22:50:14] <pulse> for variable, yeah
[22:50:14] <LastTalon> Your objects might jump or jitter because its waiting for a render to complete.
[22:50:38] <LastTalon> But if they're separated and your framerate is appropriate for the machine they won't.
[22:52:05] *** gogoprog <gogoprog!~gogoprog@2a02:a03f:4466:7600:3ab1:d4d4:9081:13c3> has quit IRC (Quit: WeeChat 2.4)
[22:57:33] *** ZeroSystem <ZeroSystem!45f81b6b@gateway/web/freenode/ip.69.248.27.107> has joined #gamedev
[23:00:02] <pulse> hmm
[23:00:06] <pulse> i discovered something very weird
[23:00:21] <pulse> i gotta test it more to confirm lol
[23:03:58] <R2robot> nobel prize worthy discovery?
[23:04:04] <R2robot> or just an AHA moment?
[23:04:16] <pulse> more like an i don't know what the fuck to think moment
[23:04:22] <R2robot> oh. lol
[23:04:34] <pulse> if i change my screen resolution to 1920x1080 then i can't invoke jittering anymore
[23:04:38] <pulse> no matter how hard i try
[23:04:44] <pulse> the fuck.
[23:04:57] <pulse> if i change it to 1920x1200 then it happens occasionally
[23:05:22] <pulse> not the game resolution but the actual screen resolution
[23:05:45] <pulse> i don't get it
[23:08:06] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has joined #gamedev
[23:09:07] *** mandeep <mandeep!~mandeep@unaffiliated/mandeepb> has quit IRC (Remote host closed the connection)
[23:10:51] <CarlaoBazuca> :)
[23:11:04] <R2robot> magic.gif
[23:11:36] <pulse> and now it doesn't h appen on 1920x1200 either
[23:11:43] <pulse> a heisenbug
[23:11:56] <R2robot> stop writing troll code
[23:12:02] <CarlaoBazuca> stop doing drugs
[23:14:45] <sebbu> not respecting your screen's aspect ratio is *bad*
[23:15:15] <toxictype> Did someone say drugs?
[23:20:12] <sebbu> yeah, they're gonna report you
[23:20:19] *** Tylak <Tylak!~Tylak@074-135-002-092.res.spectrum.com> has quit IRC (Quit: Nettalk6 - www.ntalk.de)
[23:21:38] <toxictype> Hey I'm here for gamedev.
[23:21:49] <toxictype> https://psychictype.itch.io/sotc
[23:22:10] <CarlaoBazuca> chungus?
[23:22:14] <toxictype> Yes.
[23:22:27] <CarlaoBazuca> Sometimes when walking around the player (and other entities) may teleport to an unknown location. The cause or the solution are unknown. If you encounter this then please restart the game.
[23:22:28] <CarlaoBazuca> :D
[23:22:43] <toxictype> PROBLEM SOLVED
[23:22:57] <CarlaoBazuca> this is a FEATURE
[23:23:05] <toxictype> Makes the game harder
[23:23:15] <pulse> teleport to an unknown location
[23:23:20] <pulse> sounds mysterious
[23:23:23] <pulse> and tempting
[23:24:06] <toxictype> play it pls
[23:24:43] *** _DB <_DB!68375605@gateway/web/cgi-irc/kiwiirc.com/ip.104.55.86.5> has joined #gamedev
[23:25:05] <Prestige> toxictype: available on linux yet?
[23:26:02] <toxictype> No but if you want you can have the Visual Studio solution.
[23:28:44] <_DB> oi! sup mates
[23:28:44] <_DB> i need some help giving a quote for a new client
[23:28:44] <_DB> its a very basic ESport style game, you create a character and a Team name/flag and do penalty shots in soccer, its for phones so its basic swipe controls to either shoot or block
[23:28:44] <_DB> it has leader boards, 1 on 1 games, and ads of course because how else will they make money
[23:28:45] <_DB> I estimated 4-6 months to finish working part time on it 1 of those months is pure UI/UX another month is searching for any bugs
[23:30:44] *** stefkos <stefkos!~Pawel@79.184.73.24.ipv4.supernova.orange.pl> has quit IRC (Quit: Going offline, see ya! (www.adiirc.com))
[23:31:42] <Prestige> you're going to make all that in 4 moths? How big is the team _DB ?
[23:33:09] <_DB> just me
[23:33:21] <_DB> currently i will most likely get an artist on board
[23:33:45] *** Goojira <Goojira!~Goojira@185.75.21.15> has joined #gamedev
[23:36:50] <Prestige> idk about pricing but you might want to get started, sounds like a lot to do
[23:38:28] <_DB> yeah im not sure I was thinking 1k a month tbh the project itself is simple just requires time for individual features
[23:41:46] <R2robot> how many assets.. how much will the artist charge? flat fee? Hourly? that seems like a big variable
[23:42:49] <_DB> the artist charges a flat fee but takes payment installments
[23:45:41] *** Tylak <Tylak!~Tylak@074-135-002-092.res.spectrum.com> has joined #gamedev
top

   March 26, 2019  
< | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | >