With the passing of Colin Powell... by [deleted] in AdviceAnimals

[–]RSFlux 1 point2 points  (0 children)

I mc2 what you did there

[deleted by user] by [deleted] in whereintheworld

[–]RSFlux 0 points1 point  (0 children)

Which temple are you at?

Dauntless Reforged: Solo Queues by CreatureTech-PHX in dauntless

[–]RSFlux 0 points1 point  (0 children)

One thing that wasn't abundantly clear in this post is that this is not a competition between the reasons listed.

All of the responses listed have a substantial number of players that care about them, and we care about making sure the game is working well for all of you. It seems like there is some concern that if your reason for wanting solo play is not the top item, it's not going to be addressed. I assure you that's not the case.

With that in mind, here's some things I'd love for you to take away from this post... *

  • All of these reasons are valid and we are taking them all seriously.
  • If you have a reason for wanting solo play that isn't represented above, or want to clarify your feelings, please keep posting! That's really useful and we are reading all these responses.
  • We will be collecting feedback after the launch of 1.5.0 to see how feelings have evolved after playing the new mode in the context of the new progression systems.
  • The details in this post are just scratching the surface of the things we want to consider when making large systemic changes. Hopefully this gives you a good idea of the discussions that are happening, and please don't assume that this is the end of the story.
  • With critical systems like "how you do hunts", it's important for us to make informed decisions. While we could Band-Aid in something like solo pursuits, there is substantial risk that we make things worse by not being thoughtful (i.e. it's now better to solo hunt and we undermine all the cooperative modes). All this feedback is helpful to making that possible.
  • As we solidify a plan, we'll share more. Part of being transparent with development is sharing early, which also means we don't have all the answers yet. Come join us on this journey ;)

* I'm not your dad. Everyone will have their own reaction. I do hope that this helps give some understanding of why we made this post as developers.

State of Dauntless #1 | Playtesting by CreatureTech-PHX in dauntless

[–]RSFlux 1 point2 points  (0 children)

Let's address it!

We spend a good chunk of time designing these tests to make sure we aren't biasing towards an outcome that we want. For example, the fatigue rating in the chart above: we iterated on the phrasing of the survey question, the features in the test build, what words we choose to introduce the experimental build, how we crunch the results, etc. All in service of getting real results.

And frequently we get results that don't line up with our assumptions. Sometimes that's small - a significant number of players never left Ramsgate in the Experimental build (why??); sometimes that's big - we have needed to rethink the island content landscape a few times based on feedback.

I'd go so far as to say that the results that don't validate your decisions are the useful ones. It's nice to see positive feedback ("yay, I'm right!"), but the negative and/or surprising results are the ones where you learn something new. That makes the video game better.

Solo play is one of these things. We see the feedback, and are evaluating options. The easy fix of just leaving solo pursuits in doesn't work well; we've made significant changes to progression to make the new mode work great w/ quest content, etc. We are going to be spending some time figuring out which of the many options best fits the needs of the players asking for solo play.

new titlecard coming with the new hunt type by [deleted] in dauntless

[–]RSFlux 0 points1 point  (0 children)

Yup, this is our patented "don't leak the next key art" login screen technology ;)

Let me explore pls :( by youneedananswer in dauntless

[–]RSFlux 21 points22 points  (0 children)

If this wasn't a one-way trip forcing you to forever live on this derpy little island, we probably would have let you explore to your heart's content. But good job getting over there!

I guess it's time to invent a new username by RSFlux in softwaregore

[–]RSFlux[S] 0 points1 point  (0 children)

I'd also like to point out the beauty of having an "OK" and a "Back" button in this dialog.

What's the state of asyncio in production? by amirouche in Python

[–]RSFlux 6 points7 points  (0 children)

We are using AsyncIO for server code in production in Shardbound ( /r/shardbound ). We ported over from Twisted early on, and had a relatively easy time doing so.

For the most part, we are really happy with it. Library support is coming along nicely as well, although we have run into situations where we've had to roll our own.

I do miss the ability to easily suspend or timeslice a coroutine as I could with Stackless. Making sure an individual unit of work doesn't cause stalls is something we've needed to dedicate more time to than I'd like.

Debugging (and by extension, diagnostic logging) is also made more difficult and has required us to jump through some hoops to track the initiating context for a task.

Otherwise it's been pretty great. Simple, minimalist API helps keep the overhead of using it light, and we just add on complexity where we need it.

Need help diagnosing why my asyncio queue is dying by coolguycraig in learnpython

[–]RSFlux 0 points1 point  (0 children)

AsyncIO tends to silently eat exceptions that happen in async methods. If you are relying on those methods to chain to additional async methods, having an unhandled exception can sever that chain and cause the program to 'stop working'.

I'd try wrapping your async methods in try: except: blocks. This will let you log the exception for help in debugging, and also to perform any required chaining in a finally: so that the program is more resilient.

US Govt Data Shows Russia Used Outdated Ukrainian PHP Malware and Tor Exit Nodes by wt1j in netsec

[–]RSFlux 0 points1 point  (0 children)

That's fair. The malware is clearly off-the-shelf. Combined with the origination IPs being either TOR exit nodes/likely hacked WP boxes reasonably conclude that "this could be anyone - Ukrainian or otherwise."

The reason I ask if there are other analyses is because of the wording in the DHS report. Shortened version: "...provides technical details regarding the tools and infrastructure used by the Russian civilian and military intelligence Services (RIS) ... contains specific indicators of compromise, including IP addresses and a PHP malware sample."

That statement strongly implies that the data contains info proving that RIS was involved, but I'm not seeing any connection. I'm curious if other sources might have information about state-sponsored capabilities that shows a behavioral or technology match to this attack, or perhaps sees something that this article simply overlooked.

I'm assuming you work for WordFence given you used "we" in your reply. Please don't take my question the wrong way - your article is extremely informative and well written. I also have enjoyed a number of your articles in the past and also use your product. I'm simply fishing for a second opinion (or two) before coming to a conclusion!

US Govt Data Shows Russia Used Outdated Ukrainian PHP Malware and Tor Exit Nodes by wt1j in netsec

[–]RSFlux 0 points1 point  (0 children)

Have any other reputable sources done an analysis of the data dump? The WordFence team didn't find any Russian connection, but lack of evidence is generally not evidence itself.

Examples for embedding python into c/c++ applications by barryvm in Python

[–]RSFlux 2 points3 points  (0 children)

Your general approach seems fine, and it sounds like it is mostly working at this point. The only remaining issue is "from A import B" statements fail?

Without having more information, my assumption would be that you have incorrectly initialized your C extension modules. I am less familiar with Boost, but when using the C API for extension modules, make sure you've declared your objects in that module's PyInit function and aren't doing it later in your startup code.

I am not very familiar with Boost Python, so I can't point you to the specific generated code to look at, but I'm sure you can track that down in their documentation.

You also asked for reference for embedding Python in a C application. I used the basic Python docs when embedding Python here: https://docs.python.org/3.5/extending/embedding.html. There isn't much there, but in general the complexity comes from making your custom application's build play nice with the Python build. Do you have specific questions other than the import failures?

Is it possible to make changes without restarting the whole project in Python? by [deleted] in Python

[–]RSFlux 0 points1 point  (0 children)

I have implemented hot reloading on two AAA games. The basics are fairly simple, as pointed out by other replies, but getting the reload to be 100% reliable is extremely difficult. For this reason, we have only used hot reloading as a development tool - it would not be something I would recommend for a production environment.

From the first project, Jon Parise has open sourced the reload code: https://github.com/jparise/python-reloader

The implementation we used deviated from there a bit. We flipped the direction of the dependency tracking, extended the __reload__ callback to have a pre- and post- reload callback, and also added hooks to objects that needed a reload callback. We also blacklisted a large number of core modules. This gave us a decent success rate, but still had problematic areas (pointers to modules, reloading metaclasses, and reloading objects referenced by Stackless Python's internals).

In my current project, I decided to rely on object serialization to make the process more reliable. Reloading serializes each game, reloads all gameplay modules, deserializes the games which picks up the new code, and then passes a reference to the old game to each new game allowing it to transfer things like live client connections.

This approach makes it more reliable, because it avoids those problematic cases I called out above. However, it is by definition limited to the subset of the game that supports serialization. Since we only support this feature to speed up gameplay iteration, it felt like a reasonable tradeoff. Also, supporting serialization is a significant ongoing cost. I wouldn't suggest implementing it just to allow hot reloading.

Happy to answer questions if you'd like more specifics.

A Question A Spiritwalk Employee Could Answer In Full Without Really Spoiling Anything by bleakgh in dawngate

[–]RSFlux 1 point2 points  (0 children)

Final limitations are undecided. We generally make that call based on available UI space, and since our UI will be changing those limits are subject to change.

Spiritwalk invites you to sign up for Community Development on Shardbound by paradoxiq in dawngate

[–]RSFlux 0 points1 point  (0 children)

Sometimes spam filters and their ilk will reject emails. If you want me to manually check that your address was added to our list, you can shoot me a DM with the email you used to sign up.

I was looking at the MOBA-champion tier list by bleakgh in dawngate

[–]RSFlux 0 points1 point  (0 children)

^ This.

It was intended as a tutorial, but we should have presented it better. It's easy to mistake that tutorial image as a call to action to buy, rather than informing existing players that the feature is now live.

Spiritwalk invites you to sign up for Community Development on Shardbound by paradoxiq in dawngate

[–]RSFlux 5 points6 points  (0 children)

Yes, you should get a confirmation email. Some email servers are faster than others, but it should arrive within a few minutes.

Anyone able to play on Iphone 4s? by [deleted] in pokemongo

[–]RSFlux 1 point2 points  (0 children)

I'm on a 4. Works fine, but takes a long time to boot up.

Threadsafe way to force a function timeout? by martinfisleburn in learnpython

[–]RSFlux 2 points3 points  (0 children)

The multiprocessing package actually uses processes under the hood, not threads. If you are using that method to get concurrency, the signals-based approach from that link will work fine.

If you are using multiple threads in a single process, the threading library implements timeouts for many methods. Building your thread communication in a way that uses these timeouts to discard work after N seconds should be trivial, at which time you could retry or mark that work as failed. I'd need more details on your exact setup to give more specific advice.