Posts for Warp


Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
OmnipotentEntity wrote:
Were you looking for a uniform distribution on the number of face up cards? You didn't specify.
Well, I did talk about "an evenly-distributed random number between 0 and 52"
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
OmnipotentEntity wrote:
Wouldn't just shuffling the standard way, but flip one half of the deck each time, work?
Then you would get half of the cards face up, not a random amount of them.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
In the latest Numberphile video the guest needs to shuffle a deck of cards, but in such a manner that not only is their order randomized, but also a random amount of them is face up and the rest face down. This got me thinking how that could be done with a physical deck of cards, to assure as high-quality randomness as possible. There exist very good techniques to just shuffle the deck with all cards face down (like the techniques used by professional poker dealers), but what if you indeed had to have a random amount of cards in the deck, chosen at random, be face up? (In the video in question the suit and number of the cards didn't matter for what she was trying to demonstrate, but let's assume that in our scenario we want them randomized as well.) I suppose that one way would be to shuffle the deck with all cards eg. face down, then using some external method get a fair random number between 0 and 52, and turn that amount of cards face up, and then shuffle again. Of course this would require an external way of getting an evenly-distributed random number between 0 and 52. What if we don't want to require such a thing? Can it be done by physically manipulating the cards alone, without external devices to give us random numbers? (And obviously we want the number of cards that are turned face up to be as evenly random as possible. For this we cannot just rely on the human selecting a random amount of cards. At least not directly. Humans are notoriously bad at generating evenly-distributed random numbers.)
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
MUGG wrote:
Ideally the game runs at the same constant FPS for everyone and I can do logic based on frames. But in practice, it seems you need to account for FPS differences and include delta time in most calculations. Maybe I will not worry about it for now...
It depends on how exactly you are doing the timing of your code. If the framework/game engine you are using is calling your update function eg. 60 times per second, always, regardless of hardware, and your game is light enough, you could bypass checking for passed time and always assume your game runs at exactly that speed. If the game is light enough, it will probably run at that speed even on a potato, and even if some lag frames are introduced (eg. something else on the OS becomes suddenly so heavy that it causes your game to lag), you'll just get an individual stutter or two. The problem is that most game frameworks/engines won't call your update function at a given interval, but rather at the screen's refresh rate (because if they don't, you'll get tearing), and this refresh rate may be different for different computers. Heck, someone might be running your game on a 144Hz display, and there's no way the game engine can scale that evenly to 60Hz. Either your update function will now be called 144 times per second, making your game run over twice as fast (if you don't account for the time difference between updates), or there will be some odd constant stuttering if the engine really tries to call it at exactly 60Hz but also vsync at the same time. Of course in case your game does become too heavy to run on a potato PC, and the framerate drops to eg. 30Hz, your game will start running at half the speed. I don't know if the library you are using offers timing functionality that automatically provides you with the time delta since the last frame, but most game engines do, and it should be used. (If the library you are using doesn't, then you have to figure it out somehow.) But, I suppose, for a simple small project, you could just as well ignore it for now.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
mz wrote:
I don't give a fuck about anyone calling soccer a shit sport or whatever they think of it.
If you are talking about someone else's toxicity, perhaps it would be wise to watch your own language a bit. Else you'll end up sounding a bit hypocritical. You might not find that kind of language inappropriate, but I'm sure you understand that many do. And it kind of undermines your message a bit when you use crass language, especially in this particular context.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
The mid-to-late-1990's was a rather significant chapter in my life, with a lots of things happening (among other things, moving from one country to another, and starting at the university, both of which were a rather radical cultural shift, full of growing pains). Even though I was already an adult by that time, technically speaking, I would still say that I "grew up" listening to the music of the era, and nowadays the compositions that I heard so much back then give me a really nostalgic feeling today. It doesn't really matter that these are mostly what you would say "mainstream" (as they were quite a lot played on radio etc.) They still give me nostalgic feelings. Such as, for example: Robert Miles - Children Alexia - The Summer is Crazy DJ Bobo - Pray Haddaway - What is Love
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Zeupar wrote:
Sadly, it looks like you can be a complete dick on TASVideos and get away with it as long as you are productive and useful for the site.
That's not completely fair. I remember at least one case where inappropriate behavior by a (quite active) staff member resulted in reprimands and eventual stepping down. I just don't understand the response by the staff in this situation, to people raising their concerns and complaints. Even if no action is done, at least respond to people appropriately and express why, rather than deflecting with something about the title of the thread.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Mothrayas wrote:
Is it any wonder that we discuss re-encode flooding in a thread that's titled "Re-encode flooding"? If people have issue with another subject, they should post in that topic instead, not here.
Numerous people have expressed time and again their outrage about a particular event, and all you can respond with is about the thread's title (even though, as fmp above points out, the very first post of the thread talks about that particular event). Why are all the staff members avoiding and deflecting the subject, rather than responding directly what people are complaining about? This kind of behavior is not making the staff look any better.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Nach wrote:
AngerFist wrote:
In my opinion, an apology is not enough. He should be stripped from his duties.
Why are you using the singular when it is plural?
People are talking about this, not about this (which seems to be what you constantly go back to). I don't think anybody cares that the TVC lost a few subscribers at one point in the past. That's not the thing people are upset about.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Warepire wrote:
I was referring to things like this: https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html
In many/most cases you would instantiate such point and rectangle objects by value, rather than with new. (In fact, creating them by value is more efficient.) If you needed to store lots of eg. point objects, you usually would use eg. a std::vector to do so, instead of allocating every individual object dynamically (once again also gaining a performance benefit as a positive side effect). Suppose you were, for example, to handle an image, and every pixel is an object. Rather than allocate width*height individual pixel objects (which would be horrendously inefficient), you instead create a std::vector of width*height objects (very efficient). Of course there are situations where you just can't get around it, and you simply have to allocate individual objects dynamically with new. In that case you do need to decide on how to manage those objects, because the language will indeed not automatically do it for you. But the language standard library does offer a few tools that could possibly be used, such as std::unique_ptr or std::shared_ptr which, if feasible to use in your use case, can remove the burden of manual memory management. If those simply cannot be used, or would be too much overhead, or for some other reason, then yes, you would need to manage it yourself. In most cases you could write your own class that does the memory managing, but writing such a class does require experience, knowledge and a bit of work.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Given that most of my comments in this thread have had a somewhat neutral-to-slightly-negative slant to them, I would like to balance that with a bit more positive feedback. Not just this one GDQ event, but the TAS block at GDQ in general. I have commented now several times how it feels like the TAS block has created a kind of separate independent category of TASing, which is distinct from what we do here, and that the (mostly naturally formed, rather than imposed) requirements for the TAS block feel a bit unfair, given that they are so different both from the regular GDQ speedruns and the normal stuff we do here at tasvideos, which imposes a quite large burden on the people creating the content for the TAS block, and presenting it. However, there are also quite positive things that have been created, which could perhaps never have happened if it weren't precisely for the above. While, IIRC, console verification was being developed before and independently of GDQ, I think the GDQ TAS block has really boosted the development of that technology, taken it into levels that we could have never imagined before, and made it into an artform. The people involved in this research and work probably now understand console verification better than could perhaps have never been possible if it hadn't been for the incentive that GDQ provided. Completely new insight into, and new information about these old consoles has been gained due to this work. The results have oftentimes been quite astonishing. Things that nobody could have even imagined in the past have been proven possible. (Who could have guessed that it would be possible to hack and insert a custom program into a game console solely via controller input, without the need for any hardware modification, nor any custom or modified game cartridge? Who would have guessed that the controller input could be used to effectively stream data into the console in real time in this manner?) The payloads themselves have often been highly entertaining, amusing and interesting, which is not something to forget nor underappreciate. It's not necessarily very easy to create custom payloads that will entertain massive audiences, especially since this requires quite a lot of low-level programming for the console. It can be safely said that the work done for the GDQ TAS blocks has not only contributed to the event, to the charities, and to the popularity of the tasvideos website, but in fact to the technological knowledge of society. This shouldn't be underestimated nor forgotten. And, of course, the TAS block would have never become a reality, nor continue to be a reality, without the hard work of the people who are going to the event and presenting it to the public. This requires understanding of the underlying technology, planning, rehearsing and presentation skills. Your work is awesome, dwangoAC, and all the other people responsible. Please do not ever get the impression I'm not appreciative of it.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Warepire wrote:
Unlike the previous languages you have been exploring, C/C++ does not perform memory management for you
Well, yes and no. If you use standard containers like std::vector and std::map, they are going to manage their memory without you having to do anything about it. You can also create similar classes yourself (although this requires a bit advanced knowledge of the language.) In general, if you can avoid new and delete you ought to be mostly fine in terms of memory management. The main problem becomes things like accessing arrays out of bounds and other such errors.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Grincevent wrote:
What I suggest is to put less emphasis on technical prowess: as long as you can show something that make people laugh, you're successful.
This actually delves into the irony of what I have been commenting about: GDQ is (for the most part) about completing games as fast as possible, ie. speedrunning. TASes, and what tasvideos.org is about, are (for the most part) about completing games as fast as possible. Yet, ironically, the TASbot block of GDQ is expected to do something "funny" rather than just completing games as fast as possible. Now, don't get me wrong. I'm not saying that's a bad thing that needs to be changed. I just find it ironic. And perhaps, in a sense, a bit unfair. It's a bit unfair in that if we want to present TASes at GDQ, we are pretty much in essence obliged to create "funny" original content that's specifically crafted for GDQ, and which has little to do with what we normally do here at tasvideos.org. It's ironic that a good portion of the material presented at GDQ is not representative of tasvideos. It's ironic that simply showing "normal" TASes, as the ones published here, would be considered "boring", even though completing games as fast as possible, regardless of the means, is what GDQ is all about. Sure, sometimes speedrunners will exhibit other kind of content, such as glitch exhibitions, but these tend to be just bonus content (typically after the actual speedrun of the game has been completed) rather than the main content. The standards seem to be different for the TAS block. But, as said, maybe that's just how it is, there's nothing wrong with it, and there's no changing it. I just feel that it causes more work for the people creating the GDQ TAS content. Most of that work is simply presented at one GDQ event, and that's it. It's like an ice sculpture or a sand castle: It's made once, it looks gorgeous, but then it smelts away and it's gone.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
feos wrote:
Stop twisting my words. You're not helping anyone.
So you are not going to clarify, for reasons only know to you.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
feos wrote:
You weren't satisfied by simply asking for clarification, you started imagining whatever nonsense my words meant (you even knew it was nonsense in the first place), while none of them was even remotely close to the nonsense you imagined. If you reread the SMB warpless thread and feel perfectly fine about everything what happened, then you don't have to worry about people apologizing.
This paragraph of text could have been a brief summary of what you actually meant. Instead, you still insist on a knee-jerk and antagonizing reaction. The onus of being understood correctly is on the writer, not on the reader. If the text is confusing and someone asks for clarification, the proper answer is not "do your own research to try to find out what I actually meant, I'm not going to explain it to you". You are asking me to do research to interpret correctly what you wrote, rather than actually explaining what you meant. It is still unclear to me what exactly was the thing you were talking about in that apology post, and I'm asking for a brief explanation. Why is that too much to ask? Am I somehow being unreasonable here to ask for clarification?
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Nicos wrote:
huh guys, i hate to be that guy but, we're talking about TASBot there, not what or what not the charity might or might not do
Well, the question of financing the TASbot presentations on GDQ has become a big issue, because it's not free, and the issue that donations, and overall interest, by the community are waning. The point was brought up that one aspect of this might be, in some cases, that some people don't trust the charity organizations for which the donations are going to. This led inevitably to the discussion of why.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
feos wrote:
Download div.cpp
Language: cpp

#include <stdio> #include <stdlib>
Those header files should be either <cstdio> and <cstdlib>, or <stdio.h> and <stdlib.h> (the former is recommended in C++). I'm surprised that even compiles. Could be a non-standard behavior from the compiler, if it indeed does.
int main(int argc, const char *const *const argv)
Technically speaking the standard defines only two signatures for main():
int main()
or
int main(int argc, char** argv)
The main() function (both in C and C++) is a bit special in that, rather unusually, it doesn't really matter what kind of parameters you declare it to take. It will still usually compile (and possibly misbehave if you specify the wrong type of parameters and try to read them), and technically speaking const char*const*const will work. It's just that the standard doesn't define it as one of the valid signatures. (It's actually not wrong to change argv, either the variable itself, or what it points to. So it's not like it's horribly wrong to not make it const. I suppose you can make an argument that it's still a good idea to do so.)
strchr(argv[1], '/')
atoi(argv[1])
printf("%f\n", (double)num/(double)denom);
Whether those names are available in the global namespace depends on whether you included <cstdio> and <cstdlib>, or <stdio.h> and <stdlib.h>. While it might feel convenient at first to do the latter and avoid the std:: prefix, a very good argument can be made to use the former, and use the prefix:
std::strchr(argv[1], '/')
std::atoi(argv[1])
std::printf("%f\n", (double)num/(double)denom);
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
TiKevin83 wrote:
I'd note that MSF/Doctors Without Borders is also a controversial charity. Their rescue operations in the Mediterranean have routinely assisted human trafficking and they take a pretty extreme stance with respect to US politics on family planning services as essential medicine.
Also, they are supposed to be a completely apolitical neutral humanitarian organization that takes no sides, yet they have expressed, at least in the recent past, quite heavily political stances against Israel in particular.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
feos wrote:
Why should I care about words you imagine me saying?
The apology post you made, in the context of this thread, almost sounded like you were apologizing that the entire tasvideos staff intentionally colluded in trying to bury that one SMB TAS. I was asking for clarification because that can't possibly be so. I'm convinced you didn't mean that, so I was asking what exactly you were apologizing for. I find an answer like "I don't care if you are understanding what I meant incorrectly" very puzzling. Why wouldn't you want to clarify such a misunderstanding? First you write a commendable piece of apology, and then you act in a very confrontational and dismissing manner towards someone asking for clarification. I don't understand why.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Warp wrote:
feos wrote:
Not to be this guy, but as I was probably the first one to admit, we as a community have been unfair when all we're talking about here happened. It all started in the SMB warpless submission, and we all overreacted, which led to a huge confrontation and confusion. TVC flood was just a result of it, and we, the community, are sorry about this result as well as what led to it. As I also said above, this whole situation showed us that we're very imperfect, and we will be using this understanding in future to be more fair and more united.
This almost makes it sound like you all were in cahoots to deliberately and knowingly sabotage that one SMB TAS.
Nobody has denied or refuted this. Am I to conclude that it's actually what happened?
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
p4wn3r wrote:
The problem is that not everyone trusts charitable organizations.
Some people, including some speedrunners, have presented criticism of the PCF in particular. But perhaps this is not the place to discuss that...
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Nach wrote:
Warp wrote:
That thread you are referring to seems to be talking about sudden loss of subscribers and views on the YouTube channel
Yes, that's exactly what I'm talking about. I haven't said anything different.
The problem, as I see it, is that people are talking about this new information that has surfaced, allegations that a particular staff member deliberately acted completely inappropriately, but the only responses we are getting are, essentially, "this was already dealt with months ago, the new information doesn't change anything". I don't think people are talking about the loss of subscribers to the YouTube channel. That's not the issue here.
Post subject: Re: Capping off AGDQ 2019, looking to changes for future GDQ's
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
dwangoAC wrote:
I can say, however, that TASVideos forums has clearly not been a place where people have stepped up to help. Dacicus did post in the thread but it really seems like most of TASVideos just sort of ignored this event. Heck, it's clear there's fatigue on the financial side too as I'm still $2,325 short of my funding goals (I haven't added up all expenses to find out exact numbers but my estimate wasn't far off). The point is, TASVideos just isn't as excited at working on this.
This got me thinking about how different the TASbot block at GDQ is compared to the vast majority of the rest of the event. A difference that I would even consider unfair, in a sense. In the vast majority of cases, when speedrunners go to GDQ to run a game, there aren't any expectations of novelty or improvement. While there are often never-before-seen games being run at the event, year after year there are also the same old games being run as well. How many times have we seen all the classical speedrunning games, like Half-Life, Doom, Megaman, Donkey Kong, SMB, Final Fantasy, Pokemon and so on and so forth, again and again, year after year? And there's never any sort of expectation that the runner has to break previous records or do something new and exciting. In general, GDQ isn't about breaking speedrunning records and constantly showing something new. Running the same game year after year, perhaps at most with some variety in goals (such as any% one year and 100% another) is completely ok. The point is not really about breaking records and showing something new. The point is showing speedrunning skill, and the banter. The audience is entertained by these things even if the game is the same, and no records are being broken. Speedrunners can go to the even year after year to run the same games, and that's just fine. There are no expectations of improvement or novelty imposed onto them. (Of course there are also new games and new goals for some games almost every year, but that doesn't mean that the same games with the same goals cannot be used.) Contrast this with the TASbot block: It would be unthinkable for us to show the same TAS of the same game twice. Even if the same game is ever used, the TAS should somehow have novelty and be better, or have some kind of more interesting goal. Moreover, almost every year it's expected (although this might be more of a self-imposed demand) that if there's some kind of glitch exploit demonstration, it has to be better than previously, to show something completely new and unseen. With regular speedrunning it doesn't really matter if a speedrun is objectively worse (slower, sloppier, more mistakes...) than in previous years, because it's not really about improving on past events. Watching regular speedrunning at these events is a bit like watching a football match: Even if you have seen the games from the same team in the past, there's no requirement that this time they will get a bigger score. But showing a "sloppier" TAS of the same game the next year would be unthinkable and unacceptable. On that note, I think that the couch commentary requirements are also much higher. It's not rare to see 2-hour speedruns on the stream of some rather obscure game, played in the middle of the night (local time) with an almost empty audience, where the speedrunner provides very little commentary. And this commentary oftentimes isn't even very technical. Because, oftentimes, it doesn't even need to be. Even when there is couch commentary, it's rarely highly rehearsed. But contrast that with the (perhaps mostly self-imposed) requirements for highly-technical commentary on TASes. It's a ton of work. In fact, the whole TASbot block is a boatload of work. This is not to disparage the work and skill that regular speedrunners need to do to become good at speedrunning a game, but they seldom need to do particular work for a specific GDQ event, especially not technical work that's done specifically for that particular presentation. It doesn't exactly help that the work that has to be done for GDQ is quite separate than what's actually going on at tasvideos.org. It's not enough to just make a tool-assisted speedrun using an emulator, and submitting it and encoding it. There's a boatload more than has to be done. It's like its own separate category entirely, that's pretty much unrelated to what most people do here. During the first years most people here were excited about the GDQ TASbot events, and were willing to participate and contribute. However, as the novelty has worn out, and the technical requirements and amount of work have increased year after year, it's no wonder that people are losing interest and getting tired of it. One has to wonder if this is really something worth doing forever. The amount of pressure, expectations, work, and even monetary cost, is getting out of hand, and people here are getting tired and disinterested.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Nach wrote:
I wouldn't call releasing a lot of encodes in a single day by several encoders/publishers an "egregious cases of abuse" . Common sense would tell me there's no problem at all. Encoders/publishers are doing what they should be doing. The outcome as described in the staff thread was probably a surprise to all involved, and possibly even unintended by those among them who had malicious intent.
I'm really confused about this. There seems to be some kind of misunderstanding here. That thread you are referring to seems to be talking about sudden loss of subscribers and views on the YouTube channel, and if I'm understanding correctly, that is what you are talking about ("the outcome as described in the staff thread was probably a surprise to all involved", with which I believe, and correct me if I'm wrong, you are referring to the "outcome" meaning the loss of subscribers and views). But this is not at all what I'm talking about (nor, I think, others commenting on this subject). I'm talking about the alleged actions of one staff member, who has been accused (and who seemingly admitted to it) of deliberately trying to sabotage the TAS of one particular author, by abusing his status as a publisher. What you are talking about is confusing to me because of the lack of detail and specifics (which I might have missed). But the impression I'm getting, or at least that seems to be what you are hinting at, is that this one staff member somehow tricked the other publishers via deception, to upload-flood the YouTube channel, and the other publishers fell for it, and now you are considering this a form of shared guilt, and that no single individual can be held responsible. I may well be completely off track here and wrong, but this is the impression I'm getting from what I'm reading. However, if this is even remotely the case, I don't understand it at all: Just because he convinced other publishers to inadvertently join in his "let's bury this one TAS under a flood of re-encodes" campaign (if that's indeed what happened), that doesn't absolve him of egregiously abusive behavior. Tricking others to do the work for him doesn't somehow transfer guilt to them. If I'm completely mistaken about the whole situation, by all means elaborate. I'd absolutely hate to have the wrong impression about the situation. Also, this confuses me to no end as well:
feos wrote:
Not to be this guy, but as I was probably the first one to admit, we as a community have been unfair when all we're talking about here happened. It all started in the SMB warpless submission, and we all overreacted, which led to a huge confrontation and confusion. TVC flood was just a result of it, and we, the community, are sorry about this result as well as what led to it. As I also said above, this whole situation showed us that we're very imperfect, and we will be using this understanding in future to be more fair and more united.
This almost makes it sound like you all were in cahoots to deliberately and knowingly sabotage that one SMB TAS. Which would make literally zero sense, and I couldn't believe it for a second. I must be completely misunderstanding this whole thing. This is extremely confusing. I really need some clarification.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Nach wrote:
As much as I dislike what occurred, I'm not going to treat it like felony murder, especially when at the time under the previous rules, there was no felonious activity.
I don't know if any sort of punishment should be applied in this particular case, but I have to slightly object to that principle that you seem to be expressing, that people shouldn't be punished for things that weren't explicitly forbidden in the rules of the website at the time of the incident. I think a degree of common sense can be applied. The rules of the website are not, and practically speaking cannot be, a 50-volume 10-thousand page legal document explicitly listing every single minuscule infraction under the sun that could perhaps possibly be done by someone. The principle of "people shouldn't be punished for actions that were not criminalized by law at the time of the incident" may be applicable to law, but that's because the law is supposed to be a comprehensive detailed list of crimes, explicitly listing every single thing that's illegal. The rules of a website like tasvideos.org can't be expected to be such a thing, and I think common sense should apply, especially in egregious cases of abuse, even if those cases could not have been predicted when the rules were first written.