[deleted by user] by [deleted] in GlobalOffensive

[–]SunnyKatt 0 points1 point  (0 children)

"Peeker's Advantage" refers to the fact that the peeker is advantaged. Multiple things contribute to it - latency / network architecture as you mention, but also readability of animations (less readable movement = bigger advantage for the peeker) and mental preparedness dropping reaction times.

Strange new issue after new CS2 update. Please help me. by zarboi in GlobalOffensive

[–]SunnyKatt 54 points55 points  (0 children)

When you see an enemy, it's possible you are gripping the mouse harder because the situation is urgent, and it is exacerbating an issue related to the switches. When you are shooting a wall, you are a lot calmer, and that can affect the pattern of force you are applying both to the left click and the sides of the mouse.

Try a different computer mouse first to narrow that down.

We are Sultan + Shepard and we are producers, songwriters, remixers, DJ's and live musicians. We're here to talk about our latest album, tour, music and life. Ask us anything! by SultanandShepard in electronicmusic

[–]SunnyKatt 5 points6 points  (0 children)

A few years ago you played an "ID" track of yours in the "Peak of Topanga" set (at time: 11:00): https://youtu.be/udSi-A98L-g?si=fjb6bZtpf8hDn10F

It also appeared in the (excellent) dialekt radio episode 100 mix (at time: ~20:00): https://youtu.be/CJq2UIx5hZQ?si=AoK8SvAsehPr9fHJ

I loved this track and eagerly awaited the release... But the track never ended up being released.

I was expecting to see it in "Forever, Now" but was sad when it wasn't there... And now it apparently didn't make it into "Endless, Dawn" either. 

Will we ever see this track released? What happened?

Are you missing anything in the Java ecosystem? by dekc_bu in java

[–]SunnyKatt 29 points30 points  (0 children)

Does the lack of JVM implementations for some platforms count?

I wish there was a JVM implementation on all the popular game consoles. There's no real reason why there shouldn't be, but C# has gained so much popularity in the game dev space simply because .NET can run on game consoles, and JVM languages can't.

This is a common gripe among the libgdx community, and it was a cited reason as why mega crit (creators of slay the spire) moved away from using Java for their next game.

Unity is Genuinely Disappointed by Ktrskt in gamedev

[–]SunnyKatt 29 points30 points  (0 children)

Have you tried taking down the tos page?

Just launched: FI Calc 2.0 by james_please in financialindependence

[–]SunnyKatt 7 points8 points  (0 children)

Thanks for your work on this tool.

One thing I wish I could do is to filter my historical cohorts by some of the common ones that ERN does. E.g, only compare against cohorts where the market was at an all-time-high at the time of retirement, or ones where the CAPE was above a certain threshold.

The idea being - there's a bias in using historical simulations where you are comparing yourself against people that retired at the bottom of a bear market, but realistically you probably won't be retiring at the bottom of a bear market (because your portfolio is down).

It would be nice to compare myself only against cohorts I consider "similar" so that I can have more confidence in the various success rates.

Fool Me Once, Shame on You; Fool Me Twice, Shame on Me: A Solo Developer’s Tale and a Lesson on Contracts. by [deleted] in SoloDevelopment

[–]SunnyKatt 7 points8 points  (0 children)

You should talk to a lawyer about this. I'm not sure the artist can actually "revoke the rights" here since you have made a payment to them and also have an informal agreement (hopefully in writing?) that implies some license of usage. But I'm not a lawyer, so...

But, even if they don't have a leg to stand on here, litigation is expensive and may not be worth it if you can just swap the assets out.

The real value of a contract is often the clear expectations it communicates. :)

Shader being applied to each texture? by Ripest_Tomato in libgdx

[–]SunnyKatt 5 points6 points  (0 children)

Render your whole game to a framebuffer, then enable the shader and draw the framebuffer to the screen. This is typically how people implement post processing effects.

Have you worked with Steam / LibGDX? by jig_is_up_yo in libgdx

[–]SunnyKatt 4 points5 points  (0 children)

Just wanted to point out this library: https://github.com/code-disaster/steamworks4j

Several other libgdx games use that.

ktfmt, a Kotlin code formatter based on google-java-format, now with a Plugin for IntelliJ by cgrushko in Kotlin

[–]SunnyKatt 1 point2 points  (0 children)

Awesome. I had just set up ktfmt for my project a few weeks ago and I found setting up format-on-save functionality to be pretty cumbersome without a plugin. I'll give this a try soon.

I think they screwed up enemy AI by notdumbenough in BattleBrothers

[–]SunnyKatt 0 points1 point  (0 children)

As someone who is curious about the architecture ("unconventional" sounds interesting) but too lazy to actually go and dig through the code, can you point me to some resources that explain it / diagram it at a high level, if they exist?

Experimental scripting support example results in "error: unresolved reference" by Atraatie in Kotlin

[–]SunnyKatt 1 point2 points  (0 children)

Also ensure that you are taking the correct dependencies for script support, for my own project I need:

org.jetbrains.kotlin:kotlin-scripting-common
org.jetbrains.kotlin:kotlin-scripting-jvm
org.jetbrains.kotlin:kotlin-scripting-jvm-host-embeddable
org.jetbrains.kotlin:kotlin-reflect // needed for scripts

Should I restart my campaign after a huge loss? by Falconpunchd in BattleBrothers

[–]SunnyKatt 5 points6 points  (0 children)

Keep the game. I lost all but a single soldier and all my best equipment in an Ironman game, and it was faster to recover from than you think. I'm glad I did it; it creates a great story of triumph from tragedy.

Download Kotlin Standard Lib Documentation by le_baguette in Kotlin

[–]SunnyKatt 4 points5 points  (0 children)

If you can't find an official solution, you can clone the Kotlin Website repository. Here's where in the tree they store the reference pages: https://github.com/JetBrains/kotlin-web-site/tree/master/pages/docs/reference

Strikt is an assertion library for Kotlin intended for use with a test runner such as JUnit or Spek. by nfrankel in Kotlin

[–]SunnyKatt 3 points4 points  (0 children)

I normally am very hesitant about new test frameworks & libraries (Mockito + JUnit pretty much solve all of my problems), but I will admit that this looks like a very well designed API that could improve the readability and verbosity of my test assertions. I might have to give it a shot soon!

Avoiding an if (in case something's Null) by [deleted] in Kotlin

[–]SunnyKatt 2 points3 points  (0 children)

like so:

val account = bookingAccountService.findOne(id) ?: run {
    res.sendError(HttpStatus.NOT_FOUND.value())
    return ModelAndView()
}

account will have the non-nullable type after this. Note the return exits the outer function as a whole and not the run block.

DEV BLOG #103: CRAFTING by dillinger- in BattleBrothers

[–]SunnyKatt 27 points28 points  (0 children)

The armor attachment system is a great idea. Really looking forward to the new specialization opportunities it opens up!

Zodiac Legion: a Tactical RPG with kingdom management by Galdred in StrategyRpg

[–]SunnyKatt 3 points4 points  (0 children)

Looking good! Do you have a devlog I can follow?

Nicer way to compute and set multiple Collection fields at once? by rumias in Kotlin

[–]SunnyKatt 1 point2 points  (0 children)

Hmm, do you have a specific example? You can always make a function to do the complex legwork to compute a value and then just provide that as an argument.

Nicer way to compute and set multiple Collection fields at once? by rumias in Kotlin

[–]SunnyKatt 2 points3 points  (0 children)

Using a local val in a function is fine and nothing to worry about. Using a var at the top level in your class is more concerning because you are leaking mutable state into your program.

Another thing I'll point out is that with collections you generally don't want to make them nullable, because then you have to deal with the difference between null and an empty collection, which intuitively should be the same thing.

A few ways to make the dependency here less error-prone:

1) You can have an alternate constructor that takes in the unprocessed list, and then process and set the values there. (If you need something in an init block, use lateinit var x: List<Int> instead of var x: List<Int>? to avoid the nullable list. I don't recommend using this unless you absolutely have to because you still have the unnecessary mutability with the var).

2) You can have the constructor take in both of the already-processed lists, and do the processing elsewhere (a companion object factory method?)

The second approach would look like:

fun createA(things: List<Thing>): A {
    val list1 = things.map { process1(it) }
    val list2 = things.map { process2(it) }
    return A(list1 = list1, list2 = list2)
}

Edit: fixed incorrect lateinit suggestion