Posts for Derakon


Experienced Forum User
Joined: 7/2/2007
Posts: 3960
This is fascinating stuff. Good luck, sockfolder!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
DeHackEd wrote:
On the original issue of the site having his plaintext password you're missing the obvious: your complaint is the site has your plaintext password at the moment of registration. Duh! You literally just provided it.
Email is not a secure protocol. Sending passwords or any other valuable information over email is inherently a bad idea. Hence the comment a couple of posts above mine about needing "secure email".
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
None of those are likely to happen anytime soon, as Hourglass doesn't really handle "modern" games well. There's a reason why all of the Windows TASes so far have been for comparatively simple games, and it's not just because those games are easier to TAS; those games are possible to TAS.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Bisqwit wrote:
Derakon wrote:
I don't understand your "No frame-perfect landing+jumps while ground trembles in Gutsman battles to avoid losing balance" rule, Bisqwit.
I see it as an off-by-one error that if you land while the ground is trembling, you don't lose your control if you jump at the same frame you land. The effects of the tremors kick in 1 frame after you land. They're not checked the same frame when you land; possibly because the trembling check is situated in the code before the check that changes jumping status into standing status when Megaman collides with ground. A "nobody is going to notice that we did this shortcut in programming that technically brings incorrect behavior in certain corner cases" type bug, as are most bugs in general.
Ahh, I see. I thought you were doing frame-perfect jumps around the ground trembling, not in it (i.e. you weren't landing while the ground was trembling). Your explanation makes sense. Frankly I think that any attempt to come up with firm rules about what a "no-glitch" run would be would be argued vociferously by some portion of the community here (c.f. me and feos respectfully disagreeing with you on ladders!). In other words, I don't think it's possible to avoid ambiguity over what is and isn't a glitch. So just go with what you think is best. I'm sure the result will be worth watching.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
And? You'd have to do that anyway regardless of what approach you use. You're still saving a ton of time in using a pre-tested library to do a significant part of the work for you. Or hey, I bet you could buy a "platforming physics" package in Unity's store. Probably wouldn't cost you too much compared to the time you'd save, either.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
I don't understand your "No frame-perfect landing+jumps while ground trembles in Gutsman battles to avoid losing balance" rule, Bisqwit. The others seem plausible to me. Perhaps overstrict -- I doubt I'd mind ladder-grabbing, for example -- but plausible anyway.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Then use a pre-existing library. That's what they're there for! If you insist on having your own physics implementation (where by "physics" I mean the process of detecting and reacting to collisions), then I guarantee that you're going to spend a lot of time tinkering with it and trying to fix obscure bugs. I know this because I have done it. One of the reasons why Jetblade died out as a project was because I insisted on writing everything myself. Collision detection and response is a hard problem. There's very rarely a reason to solve it yourself when other people have already solved it for you. (Another reason Jetblade died is because I tried to be waaaaay too general in everything, but that's not currently relevant)
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Implement NES-era Simon Belmont as an extra character, put Dracula at the top of the castle (replacing Richter), and trigger the credits when Dracula is killed.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Weatherton wrote:
Perhaps a preferable approach would be to create a save file the replicates the state of having legitimately unlocked these parts.
That's functionally identical to using an AR code to unlock the parts and then resetting the console. There's still no way to make a verification movie that unlocks those parts.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Warp wrote:
Derakon wrote:
Gravitational potential energy is easy to measure; it's just mass * height * force of gravity. So a 1kg ball 1m above the surface of the earth has 1kg * 1m * 9.8m/s^2 = 9.8J of potential energy. This is equal to the kinetic energy the ball will have right before it hits the ground.
You can calculate a number for it... but does it actually physically exist? Can you physically measure it with a device, if you eg don't know the altitude?
You can't speak about the energy of an object without talking in respect to the system the object is in. Even heat is, at a fundamental level, the motion of particles; if you isolate a particle from everything else then it has no heat. Energy is always the energy of a system. Thus if you want to speak of the gravitational potential energy of an object, you implicitly know the altitude of the object; it doesn't have any meaning otherwise.
(On a meta-level: Why are things like "potential energy" taught as if they were conceptually simple, easy-to-grasp, self-evident things? They are far from easy to understand. They are so abstract, when you really think about them.)
Potential energy is extremely helpful for calculating energy conversions, which is why it's taught. We teach plenty of highly abstract concepts to our students -- not just stuff like energy but also algebra, atoms, economics, basic game theory, justice, etc. We don't always expect them to fully understand these concepts, but we do expect them to be able to make use of them with a reasonable degree of proficiency.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
henke37 wrote:
The thing is, I know not to do that. I just don't know a good alternative.
Use a pre-existing library. Seriously.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Gravitational potential energy is easy to measure; it's just mass * height * force of gravity. So a 1kg ball 1m above the surface of the earth has 1kg * 1m * 9.8m/s^2 = 9.8J of potential energy. This is equal to the kinetic energy the ball will have right before it hits the ground. More generally, you ought to be able to quantify the kinetic potential energy of any object held in a vector field (e.g. magnetic field, wind, flowing water) by the ultimate amount of kinetic energy that the object will attain when it is released in that field.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
jlun2: this would be an exception, not an "okay, cheats are acceptable for every game now" precedent-setting rule change. Think of it this way: what if the pre-order version of a game gave your account access to a special character that was significantly faster than the normal characters? The character is "in" all versions of the game, but only unlocked if you use an account that pre-ordered the game, or if you use a cheat (assume there are no glitches to unlock the character without cheating). Because the unlock mechanism is to pre-order the game, the character can't be unlocked in a verification movie. The speedrunning community for that game is a mix of people who did pre-order and people who just used a cheat; there's no stigma attached to using the cheat there. Everyone uses this special character because they're so much faster than the normal ones. Functionally the JP parts are in the same category -- the only way to unlock those parts legitimately was to participate in events in Japan that have long since stopped happening. It's impossible to make a verification movie, and it may well not be possible to match the realtime records without these parts (though it's not as clear-cut as in my hypothetical -- but it's almost certainly true that a TAS using the parts would be faster than a TAS without them).
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Kuwaga wrote:
You're trying to apply collision detection after the player object has already moved. I don't recommend that. First of all, you could get a speed that's higher than a wall is thick that way, and no collision wouldl ever be detected, as the player would have already successfully passed through the wall.
While there are ways to get around this problem (continuous collision detection), as a general rule they tend to be more trouble than they're worth. You have to do stuff like sweeping the player's hitbox along its velocity vector to generate a convex polygon, then do collision detection on that, and then figure out when during the movement the collision occurred, etc. Just make certain that your top speed and minimum wall thicknesses are such that phasing through walls is impossible. Generally I feel like the Separating Axis Theorem (a.k.a. convex bounding polygons) is about as complicated as 2D collision detection should get without a really good reason. And the vast majority of games can get away with axis-aligned bounding boxes, which are really easy to work with. (Your other notes are fine; I just wanted to make a stand for the Acceptably Good solution instead of the Perfect solution)
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Whoops, I read that as "the spheres are thermally isolated from each other" and mentally went "well, duh." Go go reading comprehension. :) I still think it's a pretty silly question, but oh well.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
thatguy: see, I would have given the same answer, but for different reasons (viz. that the sphere resting on a flat surface is less thermally isolated because it can dump heat into the ground). Of course the properties of the surface it is resting on, and of the string the other sphere is suspended from, are not specified.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
There is no movie file that can unlock the items; they have to be unlocked by taking your save card to an arcade machine. That is obviously not something that emulators are really equipped to handle. Hence why it's not unreasonable to consider using a cheat device.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
henke37 wrote:
Preexisting solutions don't work with my tilemap system. Nor my animation system. And I don't trust generic physics engines for platforming code, they are too unstable.
Oh come on. Plenty of people have made platforming games by taking advantage of pre-existing libraries or game engines. I mean, sure, if you don't want to use one, then that's your choice. But you can't discount them all out of hand as being "too unstable". As for your tilemap system, if you expect to write a game without having to rebuild the entire thing from scratch at least once, then you're either hopelessly naive or a far better programmer than you let on...and if you're the latter, then why do you need our help? I don't mean to be insulting; it's just a nigh-universal truth that nobody manages to write a game properly on their first try, not unless they have a lot of experience in writing games. Games are complex systems, with many interacting parts, and the software engineering required to make a game program that doesn't fall over under its own weight is nontrivial.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
You should consider finding a pre-existing engine (e.g. Unity) to handle physics for you, since it sounds like you're less interested in the details of how things work and more interested in what specifically happens. You're not going to find a programmer to just implement your ideas for you; indie game development doesn't work that way. So if you aren't happy with your own efforts, you're pretty much stuck finding pre-existing solutions that do most of what you need already, and then tweaking them until you're satisfied.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Truncated wrote:
That was nitsuja, actually. Post: http://tasvideos.org/forum/viewtopic.php?t=11376#276482 Youtube: http://www.youtube.com/watch?v=bFvOzLX-bm4 He made a TAS of the full game too, which I can't find on Youtube. Not sure why they weren't submitted.
Gah! Thanks for the correction, and sorry nitsuja!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
If you missed a block, you can watch it from the twitch archived. This thread has links to each game's run to make finding them more convenient. It's not the same as watching them live, but it's a heck of a lot better than nothing!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Yep. Even if the hard part of making a TAS is not something that would be significantly affected by the difficulty choice, it wouldn't look right to do F-Zero GX's infamously difficult Story Mode on anything less than Very Hard.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Radiant wrote:
This is possibly our first TAS for a game difficulty mode that's designed to be utterly impossible?
Adelikat did a TAS of Reallyjoel's Dad mode in Hero Core, which sticks you in a room with every single boss in the game active simultaneously. I don't think it got submitted for publication though.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Post subject: Re: Voting No
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Nach wrote:
In good judgment, I don't see where we can accept this. It's slower than it should be, and the trade-offs could be better. Great demonstration video for gruefood delight.
It sounds like most people consider themselves entertained by it, which would put it pretty squarely in the Moons category, no? I mean, obviously you personally don't like it as much, but I'd definitely say that this is a "Moons or nothing" submission.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
evknucklehead wrote:
I wonder, is it possible to use this on the SMW+AllStars cart to jump between games? Maybe find a similar entry vector in each of the All Stars games to jump between them without using the menu?
Seems plausible; the games almost certainly aren't sandboxed so each should have access to the others' memory addresses. You might even be able to set up a jump back to SMW (or your own custom code) by modifying the other games. E.g. change the behavior of the Hammer Brother powerup in SMB3 to instead send the player to SMB2 when used, change the POW block in SMB2 to send you to SMB2J when used, etc.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.