« first day (3841 days earlier)      last day (1473 days later) » 

02:28
I’ve figured out the pixel issue. My game uses 16x16 tiles and honestly, it looks great!
 
8 hours later…
nwp
nwp
10:05
I feel so lonely.
user92578
10:17
Here I am, saving the day :)
5
nwp
nwp
Yay!
I've started with my interactive story engine again. I struggled with Antlr4 because it's a JavaScript library with no documentation I could find and my attempts at reverse-engineering how to use the thing (for example you can set an error handler, but I can't find where it says what an error handler looks like) failed. Then I searched on github, hoping someone figured it out and it turns out there is Antlr4ts which is TypeScript and it just tells me everything.
All the struggles to get the JS library to work were unnecessary 🤡
user92578
10:59
Types is an overlooked form of documentation
12:57
Good morning everyone!
Good morning o/
user92578
13:10
FMOD is a C++ API yet relies on a bunch of create/release/unload methods :/
13:32
Good day. 🙂
Thanks for that tip on my answer @DMGregory.
It often helps to boot up Unity and go through the steps you're recommending a stranger take, just to make sure your phrasing matches how it's actually laid out in the engine.
Ok I’ll start doing that. It’s just hard to do on mobile if you know what I mean. 😉
13:48
Nothing bad happens if you wait till you can test an answer before posting.
That makes sense. The answer will always be there.
14:06
Besides that, how are you guys doing today?
14:24
Alright. Class went smoother yesterday afternoon.
That’s good. I’m actually in my class right now.
user92578
15:06
> Array of 8 bytes. The first 2 bytes contain the third group of 4 hexadecimal digits. The remaining 6 bytes contain the final 12 hexadecimal digits.
user92578
The same structure also has an unsigned integer member for the first 8 digits followed by two unsigned short members of the next two groups of 4 digits and then whatever this array is supposed to be lmao
That does seem like a strange way to dice it up...
@Tyyppi_77 I’m so confused about what you’re talking about. Probably because I don’t understand hexadecimal structures.
And haven’t started learning either.
user92578
Mainly just a ranting about FMOD's seemingly unnecessarily complex GUID structure
Hexadecimal's not too bad. Instead of writing 4 binary digit representing the number, say, 11 (dec) as 1011 (b), we can instead write it as a single character "B"
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 decimal
0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  hexadecimal
15:21
Oh. I do know a little bit of binary numbers though. I’ve been teaching myself how to learn and checking myself afterwards. So far I’m learning, so that’s good.
It’s interesting how everything on a computer is simply made of an array of 1s and 0s. It just brings what you learn to a whole new perspective.
Hex is just another representation. It's more space efficient than binary, but still has nice computer math properties.
So a single byte of 8 bits can be represented as 2 hexadecimal digits, like FF for 255 (11111111 in binary)
@Tyyppi_77 That does seem like an odd choice. Is there any guidance as to why it's that way?
What happens after 11111111?
user92578
@Pikalek I haven't found any, only thing I could guess is they do some kind of prefix lookups or something
15:28
Same thing as in other number systems - we add another digit.
255 + 1 = 256 (decimal)
11111111 + 1 = 100000000 (binary)
FF + 1 = 100 (hexadecimal)
So here we'd overflow what a single byte can represent, and need to bump up to a larger number format like a "short" (2 bytes) to contain this number.
Oh is that why the old Pac-Man will corrupt after level 255, because it can’t handle a 9th digit?
more or less
That was my go to example for teaching intro to binary math & the dangers of over/under flow
I like nuclear Gandhi in the old Civilization games, myself. 😉
user92578
I learned binary back as a Minecraft kid, making simple 8-bit ALUs with redstone and stuff :P
Nice!
user92578
15:32
The combination of logic gates to make an adder is not terribly helpful in general but understanding binary more so :D
Each faction had an aggressiveness value stored as a single byte. Gandhi was supposed to be peaceful, so his faction starts with the lowest aggressiveness. But when researching Democracy, the faction gets a modifier subtracted from their aggressiveness. That makes Gandhi's aggressiveness underflow the byte, and wrap back around to 255, so when played by AI he starts nuking everybody. 🤣
@Tyyppi_77 Yeah, I had wondered about that too. Or maybe they needed to expand the spec, but wanted to maintain backwards compatibility of some kind? <shrug>
I skipped over that series, but now that you mention it, I do recall the rumors.
There's a very detailed write-up about the pac-man killscreen overflow issue. called something like "the pac-man confidential" I think.
Same thing goes into stuff like the crazy super mario game play hacks.
Ahh, like the "parallel universe" warping? 😀
Maybe? I can't remember what the results were. I think it was used originally in speed runs.
I recall they use integer math for their floor polygon collision checks. Which means if you can get your floating point velocity high enough, you can "wrap around" the integer range to a corresponding point in the map, shifted by a multiple of the max level size.
15:42
Here's the one I was thinking of: hackaday.com/2015/01/22/…
NP - I failed to specify which mario - partially cause I didn't exactly recall ;)
Oh the N64 version is a fun one too.
Also brought to mind the Pokémon Yellow arbitrary code execution exploit, where you can power off the game just as it's creating your new game save file, so your inventory size byte is set to 255 instead of the intended size. Then you get a buffer overflow where the later inventory spots point at memory for other things - and by swapping and discarding items, you can put arbitrary binary values into the game's memory, including executable sections.
nwp
nwp
I remember them having to ban that exploit for speedruns because having every run end in 0h/m/s completion was boring.
It was entertaining for the "Pokémon Plays Twitch" demo, where they reprogrammed the game into a Twitch client to display the event's chat feed live. 🤣
16:02
well that was nice. I was trying to verify if it was just me, or if the search bar for the dot net documentation was broken (searching for a page that I was just on (or anything else for that matter) brought no results) & then I get a BSOD
Just to check: could someone go here:
https://docs.microsoft.com/en-us/dotnet/desktop/winforms/advanced/bezier-splines-in-gdi
and then try a search on: spline
Is this how you trick me into blue-screening my computer?
no - I think / hope the two were unrelated
forcing a BSOD from a web page would be pretty bad :(
16:08
well that's interesting as heck
what browser did you use?
That was in Chrome.
hmmmm
yeah, I got it to work in edge
but not vivaldi, which is a chromium variant
so it seems like a browser or maybe a cache problem on my end
Thanks for trying it.
Turns out that uBlock origin was the problem.
At least for search results. Not sure what triggered the BSOD.
No flagged drivers, which is usually where I cast my initial blame.
user92578
Does the BSOD repro for you?
No. The last two that I've had had different triggers. One was IRQL_NOT_LESS_OR_EQUAL & the other was System_Service_Exception
Both were after installing VS though. Only thing in common I can think of in terms of recent changes.
I'll dig around, maybe poke the dump files & see what I find.
16:46
That’s interesting. Yesterday I was trying to BSOD my computer by using an auto clicker in Edge, and I couldn’t get it to crash. I only used 6 GB of RAM. I think I’m going to try to fork bomb it and see how long it takes my computer to crash.
...why?
I honestly don’t know. I just want to test the limits of my PC. Or not, depending on whether it can cause damage.
I’m on lunch break now, but I have to do a debate in like 1 hour so that stinks.
user92578
17:27
Poking around in Celeste's released FMOD project, there's some really cool stuff there and I'm sure this will be a nice reference whenever I start getting around the basics
user92578
18:02
Nice, finally a got a first sound played with FMOD
user92578
Need to do some light feature diving so I can figure out a nice in-engine API for triggering the sounds, and come up with something would avoid those string event IDs
18:52
Nice work. 🙂
Gosh, the question feed is jumping today. With a lot of terrible formatting and titles to clean up.... 😅
19:33
unfiltered; just a camera on the proceedings
🚆💥🔥
Ironically, I just finished my debate for class.
I hope I won.
@DMGregory I agree that is a train wreck!
What did I miss while I was gone?
19:56
@noobprogrammer Unless you add a delay in the threads, the result should be more or less instantaneous.
Ok, I get that. Don’t want to barrage you guys! 😅
? Not sure what you mean. I was referring to your comment about "test the limits of your PC".
Unless you add in a delay, the time difference of fork bombing on 8gb & 128gb of ram should be imperceivable.
Due to the rate of exponential growth.
Was the topic of your debate was about children & video games?
20:13
Yup how’d you know? Wow. I thought someone was going to ask on that but you got it right away.
I thought that I recalled you mentioning the topic. I don't recall the exact age cut off though. 9 or 13 maybe? I also don't recall if you were arguing pro or con.
It was 13. I personally am against banning video games, but I was on the affirmative team.
Was there a clear definition of what is & is not a video game?
Yep. * An electronic game played by manipulating moving figures on a display screen.*
Huh. Why didn’t those italics work?
There's a bunch of usual markdown code that fails in chat.
In particular, anything multi-line I think causes the markdown code to render as text & not as meta/commands.
20:23
I think because you had a space between * and An. with no space, it works.
Oh I see. Let me try that.
Oh yeah, that too.
Never mind, I can’t edit it.
I bet it will work now.
😂
Yeah, it tends to catch me off guard as well.
I asked about the definition because my kiddo loves hard on the Toca apps, but I'm not sure I'd call them all games, at least not in the traditional sense.
Huh, we meant games more like Minecraft or Undertale or Pokemon. Stuff like that.
20:28
I'm amused by the sighted-centric definition. It wouldn't cover the Vale. Or Line Wobbler, for that matter.
Yep, the judges said both teams’ video game definitions were pretty vague.
But, I’ll make sure to get better at the next debate.
I like Bernard Suits's definition: "A game is the voluntary attempt to overcome unnecessary obstacles"
That is a good definition. It’s perfect! 👌
I’m gonna try to make some more art for my game today.
The Toca Life app is basically a digital playset. Sort like the sims, but with almost zero AI. There's some coded physics - most things can't float in the air, some things sink in water, ketchup will turn a character's hair red, but that's about it.
95% of the fun seem predicated on telling yourself a story & acting it out with the app.
That sounds like it would help kid’s creativity.
That’s one reason why I’m very fond of video games.
20:38
She composes a weekly news letter based around it.
Delivers a few hard copies up the block & sends digital versions to various friends & fam.
Speaking of which, I need to go extract her from the arctic yonder.
I got the double-jump fixed. It no longer double-jumps.
But what I came here to ask, is: How do I make my character stop jumping up my walls?
Don't treat walls as ground for the purpose of resetting your grounded state?
?
I use collider
To detect floors.
Then don't treat wall colliders as floors.
How? They're all box colliders, put together. And then I couldn't jump on the top of a wall.
20:50
You could use the collision point & normal to distinguish these cases, or create a separate floor collider on the top of the wall.
Yeah... but every single wall? That's like... 12,863 walls to fix... Uh...
I was thinking like to detect if the bottom of my character is toucing something, and not if the character is touching the top of something else. I'd adapt my 1 character to the 12,863 walls around it instead of the 12,863 walls to it.
Like, detecting if the collision is happening on the side of my character that equals "down"
But I'm not sure that's what would be ideal, which is why I asked you guys for help.
You could do some thing like if (!collision.CompareTag(“Wall”) && (collision.CompareTag(“Ground”)) then do something. Pardon the bad formatting my phone doesn’t have code quotations.
@Wasabi It might work.
user92578
Feet raycast is one way to figure out if the player can jump
@Tyyppi_77 Probably, since @noobprogrammer's idea would be tricky since I couldn't jump on top of the wall either then, and I'd have to tag every 12,863 walls with "Wall". So, I'd just Raycast like what? I don't want the raycast going all the way down, like if it hits the ground below the wall. I also want to be able to jump on an angle, which means it can't end directly below me.
user92578
The player can jump if the first hit straight down is sufficiently close (really close to zero if casting directly from the bottom of the player's collider)
21:02
yeah.
But then what about jumping on top of a triangle?
That also gives you a hit point and normal that you can detect is an up-facing surface below the player.
So Raycast, then.
You get these contacts from collision events too, if you prefer.
yeah
Yup. I didn’t know your game uses that many walls. Is it randomly generated?
21:08
I'm guessing there's currently one collider per tile, instead of combining them for efficiency.
Oh, that isn’t efficient at all.
Or, @Wasabi could add the wall tag to the prefab that is instantiated if it’s randomly generated.
That could make it easier to implement.
If you're using a Tilemap, you can add a TilemapCollider2D with a CompositeCollider2D to merge your colliders.
@noobprogrammer no. But actually, now that you mention it, I really want to make some simple game that random-generates a building.
Just to have fun with random-generated buildings. Because I don't know what it's like inside, so I get to explore it.
@Wasabi This question might give you some insight: gamedev.stackexchange.com/questions/134800/…
You could use squares instead if you would like.

« first day (3841 days earlier)      last day (1473 days later) »