Recent comments in /f/killallgames
musou wrote
i am amazed by how much time this probably took to make
musou wrote
Reply to Another big videogame record is dead: Billy Mitchell of "King of Kong" fame caught using MAME and (probably) snapshots to set 1M point records in Donkey Kong by devtesla
people who cheat at videogames make me irrationally angry
mm_ wrote
cute_spider_ni_srsly wrote
Reply to Sephiroth Rolls Daedric Poison by devtesla
I'm really disappointed that the mod maker listed joints under "potions" instead of making a separate "Weed" category.
Presidential_Afro wrote
Reply to Sephiroth Rolls Daedric Poison by devtesla
is this mod lore friendly
toasthaste wrote
Reply to ganymede is the cat's favourite hero by mankyfax
hey i love your cat
hollyhoppet wrote
Reply to Sephiroth Rolls Daedric Poison by devtesla
blunt was equipped
devtesla wrote
Reply to comment by twovests in godot engine 3.0 just came out, so there goes one of my excuses by twovests
Theatre sounds fake tbh
twovests OP wrote
Reply to comment by Moonside in Floating point considered harmful (for games) (a rant by 1vs) by twovests
Ooh I'm actually learning StandardML for a course of mine! I'll have to read these blog posts later too, I luv rants and I luv booleans so I'll probably love this
twovests OP wrote
Reply to comment by neku in godot engine 3.0 just came out, so there goes one of my excuses by twovests
yes i have
edit: i have never heard of theatre
Moonside wrote (edited )
Reply to comment by twovests in Floating point considered harmful (for games) (a rant by 1vs) by twovests
I actually first stumbled into rational number data type when I was 12 or 13 and learning Lisp (but that story didn't end well and which totally gave me a misleading view of how principled programming languages were). I think all the major functional languages have them as it's not hard to implement as an abstract data type. A super basic is just a product type of two integers and call one the numerator and the other denominator and implement the operations accordingly.
Even Coq has them and if Coq has something implemented, it's probably pretty widespread in Haskell, Standard ML, OCaml, Scala and various Lisps and what have you.
If you really want some numeric nonsense:
- Bad implementations of complex numbers. The rectangular form
a + bi
is good for sums andre^(iθ)
for multiplications. Ideally there should be one type for complex numbers and two classes likedata Complex = Rectangular a b | Polar r θ
in Haskell. This works ok if there are sum types, but apparently this is too avant garde for most languages. - The Haskell numeric tower makes zero sense and is implemented with type classes, which isn't first class and is antimodular to the extent I recommend beginners only use library defined ones and not make your own like at all for a while at least. Like the Num class for numbers: you need to implement the operations
(+)
,(*)
,abs
,signum
,fromInteger
,(-)
whereabs
andsignum
are total party poopers as basically what Num is is a mathematical ring with an extra operation. But, for example, complex numbers don't have a notion of absolute value defined for them so this turns sour quickly. I don't know what would make the situation better, however. They'll never fix this, probably.
Also if you want to read a rant about Booleans... this is pretty good. Every time I'm writing a function that takes a boolean parameter, I split it in two functions or somehow avoid testing for equality in the function. Thus pattern matching is bae and matching constructors is heaven sent. The author's piece on why dynamic languages aren't a thing at all is good too.
Phew, I'm glad that I got all that out of my system!
neku wrote
would you say that you've been waiting for godot
Moonside OP wrote (edited )
Reply to comment by twovests in Limited size integers considered harmful by Moonside
Sad lofi Nintendo music plays their coders just got REKT
twovests OP wrote
Reply to comment by hollyhoppet in godot engine 3.0 just came out, so there goes one of my excuses by twovests
P H Y S I C S B A S E D R E N D E R I N G
hollyhoppet wrote
woah this looks pretty rad
twovests wrote
Reply to Limited size integers considered harmful by Moonside
ctrl h int -> BigInteger
twovests OP wrote
Reply to comment by Moonside in Floating point considered harmful (for games) (a rant by 1vs) by twovests
I never even considered time in a server or the whole mess of floats in emulators. I hope to dink nobody is using floats for time.
I also haven't considered about probabilities getting outside the bound of 1, but I still reserve my right to be angery at floats here. grrr floats.
I also have not considered rational numbers, because, wow, they sound very satisfying, and also even less supported, and I want to be their friends, where can I use them,
missingno wrote
but they didn't account for the human element
Moonside wrote
They represent real limitations for games (not really, but let's pretend)
They do, actually, if they're used for tracking time. If the game runs long enough (very possible in server-based online games), the physics increasingly start to go wonkier as the simulation becomes less and less fine-grained.
They're susceptible to flaws (different hardware might do different fast float maths - bad for speedruns, maybe? but also not a big deal at all)
It makes things more difficult for emulators, also in subtler ways like different kinds of conventions for rounding. I do wonder if these could be accounted for somehow, there are computations for which accuracy, reproducibility, making sense on a semantic level and so on are importanter than the pursuit of SPEED.
Other places we see floating points where fixed points could work just as well:
- Anything dealing with percentages (likely bounded 0 to 1, or 0 to 100.)
I do wonder how well that actually works. While for probabilities it is always the case that for any event X, 0 ≤ P(X) ≤ 1, you can have steps in calculations that go out of these bounds. For example, 0 ≤ P(A∪B) = P(A) + P(B) - P(A∩B) ≤ 1, but if P(A) = P(B) = 1 then we'll have P(A∪B) = 1 + 1 - 1 = 2 - 1 = 1, where of course 2 > 1.
Also my shout out to humble rational numbers: the opportunities for using them are rare, too rare perhaps, but you feel clean like after having a bath when you do get to use them.
twovests OP wrote
Reply to comment by voxpoplar in Floating point considered harmful (for games) (a rant by 1vs) by twovests
Convincing argument;;;
voxpoplar wrote
All numbers in PICO-8 are fixed precision. Yet another reason all games should be made in PICO-8.
butthole69 wrote
I love it!
twovests OP wrote
Reply to comment by voxpoplar in Does this idea make sense? 2 time dimensions in video games by twovests
Oh yeah, I know exactly how I'd do these! The only problem is free time (plus my excuse of "I'm waiting for Godot 3.0 to come out!").
I've also got some levels in mind :D
voxpoplar wrote
There's no reason you couldn't do this. It would really only be marginal more complicated than programming a normal game I think. Designing levels that make good use of it would be hard though.
devtesla OP wrote
Reply to comment by musou in Another big videogame record is dead: Billy Mitchell of "King of Kong" fame caught using MAME and (probably) snapshots to set 1M point records in Donkey Kong by devtesla
This one is particularly upsetting, it seems so sad to cheat when you're already so much a part of the history of the game.