Jump to content
A 2021 backup has been restored. Forums are closed and work in progress. Join our Discord server for more updates! ×
SoaH City Message Board

Smidge204

Members
  • Posts

    826
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Smidge204

  1. I'm need a break so I thought I'd vent a few thoughts on mashups.

    Not to be confused with remixes - which put new music to existing songs - mashups combine two or more songs into one übersong. Usually with a very distinct flavor from all of the components. I find looking up the songs and artists used in them is a good way to find new music.

    Here are some examples that I like:

    =

    "Roxanne" by Sting & The Police + "You Should Be Dancing" by The Bee Gees

    Come as the Starlight =

    "Starlight" by The Supermen Lovers +

    Others I don't care to break down:

    If I Were a Free Fallin' Boy (Beyonce + Tom Petty)

    Easy Heaven (The Cure + The Commodores)

    Careless Or Dead (Bon Jovi + George Michael)

    More amusingly, sometimes the result is pretty great even though the individual songs that went into it are complete and utter shit by themselves:

    Good Girls Burn Miami =

    +
    +
    +
    +

    =Smidge=

  2. Well a *real* pinball bumper collision is simply a "superelastic" collision. The total energy increases rather than decreases. Since the bumper itself is fixed, you can just add some appropriate value to the bouncing object's velocity and achieve exactly the same result.

    And yes, I did hijack the previous thread but I split it off so we're good. The Smidge works in mysterious ways~

    =Smidge=

  3. That might be the way the game works, but that's not what I'm going for... I want realistic collisions.

    I know the logic can be simplified but it's broken up that way due to tinkering. I was playing with the signs until it worked - but ultimately it still doesn't. I've also been trying to calculate the angle between the velocity vector and the center-center line using dot product but that's not working either.

    So annoying :/

    Edit: I think I've finally got it. A few bugs in the dot product calculation but I've been watching simulations for the past 20min and no buggy bounces seem to occur. Compiled EXE and source code here:

    http://www.smidgeindustriesltd.com/geom/Bounce.zip

    =Smidge=

  4. EDIT: No, no... still not 100%. Damn close, though.

    I think I solved it. Not only was there an error in the CheckDistance() function, which I used in a few other projects but never noticed before because it's find of self-correcting internally (two mistakes canceled each other out!) but I took a whole other approach:


    tDist = (X1 - X2) ^ 2 + (Y1 - Y2) ^ 2

    If tDist <= MinD Then
    CheckDistance X1, Y1, tAng, (R1 + R2), X2, Y2

    'Vector magnitude and angle
    vMag = ((vX1 ^ 2 + vY1 ^ 2) ^ 0.5) '* BE
    vAng = Atan2(vY1, vX1)

    'Rotate vector angle - formula varies slightly with quadrant
    If vAng > 3 * Pi / 2 Then
    vAng = vAng - 2 * Abs(tAng - vAng) + Pi

    ElseIf vAng > Pi Then
    vAng = vAng - 2 * Abs(tAng - vAng) + Pi

    ElseIf vAng > Pi / 2 Then
    vAng = vAng + 2 * Abs(tAng - vAng) + Pi

    Else
    vAng = vAng + 2 * Abs(tAng - vAng) + Pi
    End If

    'Apply rotation to make new vector
    vX1 = vMag * Cos(vAng)
    vY1 = vMag * Sin(vAng)
    End If
    [/CODE]

    Seems to work:

    bouncy.gif

    bouncy2.gif

    grr...

    =Smidge=

  5. That would give me a line perpendicular line to the vXp1 vector, but that's not what I want. Maybe if I explained it graphically...

    Start at the beginning: The moving object is the one on the right. Shown in green is the velocity vector, with vX and vY in red.

    fig1.gif

    In this step, I have constructed a rotated coordinate system X'/Y' (in gray) to project the current velocity vectors on to. In this pic I've also done the projection onto the X' axis (vXX', vYX' - Magenta) and combined them into the new X component, vX' (Blue)

    fig2a.gif

    Doing the same for vY'.

    fig2b.gif

    Sanity check: Reinsert the original vector (green) to verify the projection works. It does. (I realize this can be done directly, but it's all about screwing around with the angles)

    fig2c.gif

    Now we apply the "bounce" : mirror the "perpendicular" component.

    fig3.gif

    Now we project the new vectors vX' and vY' back onto the global coordinate system.

    fig4.gif

    Done. The Y component here is ever so slightly positive in this case and rather hard to see, but it's there.

    fig5.gif

    Reconstruct the new combined vector, adding gin the original for reference.

    fig6.gif

    Why does this work? Well, we can rotate our POV and slide the vectors to the intersection of the two objects. Add in a virtual floor tangential to the bumper (now on the bottom) and voilà:a perfectly ordinary bounce.

    fig7.gif

    Now that I've draw that out, I'm even MORE confused. There's no reason I can think of why this doesn't work... maybe it's something to do with VB's fucked up coordinate system (angle 0 is horizontal left to right with positive angles rotating clockwise, not counter-clockwise) but that should still be okay as long as it's consistent... I think.

    =Smidge=

  6. On a related note: It was a REALLY slow day at work yesterday so I decided to try coding simple bumper-esque collision detection routine in VB. I worked out all the geometry on paper and it works fine there, but there's some kind of quirk that prevents it from working properly in code... very frustrating. Probably missing something very obvious...


    'Moving object is a circle of radius R1 located at (X1,Y1)
    'Bumper object is a circle of radius R2 located at (X2,Y2)

    'MinD is precalculated to be the sum of the circle radii squared,
    'eliminating the need for square roots on everything...

    tDist = (X1 - X2) ^ 2 + (Y1 - Y2) ^ 2

    If tDist <= MinD Then

    'CheckDistance moves the moving object out of the bumper
    'if it somehow moved inside (as if moving too fast)
    'X1 and Y1 (Moving object's center) are modified and tAng
    'is assigned a value for the angle of a line drawn between object
    'and bumper center. Consider it magic...

    CheckDistance X1, Y1, tAng, (R1 + R2), X2, Y2


    'Map vX1 and xY1 (object velocity) to rotated coordinate system

    vXp1 = vX1 * Cos(tAng) + vY1 * Sin(tAng)
    vYp1 = vX1 * Sin(tAng) + vY1 * Cos(tAng)


    'Flip component perpendicular to the contact surface to bounce

    vXp1 = -vXp1


    'Reconstruct back into global coordinate system

    vX1 = vXp1 * Cos(tAng) + vYp1 * Sin(tAng)
    vY1 = vXp1 * Sin(tAng) + vYp1 * Cos(tAng)
    End If
    [/CODE]

    It doesn't work as expected. If I also add "vYp1 = -vYp1" (thus flipping both rotated vectors) it [i]kinda[/i] works - it's close, but noticeably wonky.

    I gotta be missing something obvious...

    Edit:

    http://www.smidgeindustriesltd.com/Bounce.exe

    That EXE (Win32) uses the above code. Moving object's velocity and position are random and reset when it stops bouncing.

    =Smidge=

  7. It's very difficult to feel that no amount of contests or events are going to solve the stagnation problems this community has.

    I'm not sure I can fully articulate what these problems are, since they're not physical. It's more like a general sense of complacency, melancholy, mediocrity and a few other five-dollar words. If nobody gives a shit then no amount of horse corpse flogging will make them give a shit. I'm fully open to suggestions.

    =Smidge=

  8. I managed to solve the problem using a quasi-physical simulation method: Applying "gravity" to each link and then constraining each link to a maximum distance to both of its neighbors in the chain.

    http://www.smidgeindustriesltd.com/LinkDemo.rar

    VisualBasic 6 source code included.

    Here's the meat of it, reduced to a pseudo-code:


    /*plist is a collection of links form 0 to MaxLinks */

    /* Fix the start link at (280,300) */
    plist(MaxLinks).X = 280
    plist(MaxLinks).Y = 300


    Do

    /* Apply simulated gravity to the link */
    /* Links 0 (mouse) and MaxLinks (fixed) are exempt */

    For i = 1 To MaxLinks - 1
    plist(i).Y = plist(i).Y + Gravity

    /* ChkDist checks the distance between the link centers and, if */
    /* greater than LinkLength, moves the first link to be at that */
    /* maximum distance. */
    ChkDist(plist(i).X, plist(i).Y, 0, LinkLength, plist(i - 1).X, plist(i - 1).Y)
    Next i

    /* Now modify link locations in the other direction, from the */
    /* fixed link to the mouse (movable) end, to create a sag. */
    For i = MaxLinks - 1 To 1 Step -1
    ChkDist plist(i).X, plist(i).Y, 0, LinkLength, plist(i + 1).X, plist(i + 1).Y
    Next i

    /* set the last link in the chain to the mouse's position */
    plist(0).X = Mouse.X
    plist(0).Y = Mouse.Y

    /* Update everything graphically */
    Drawlinks
    Loop
    [/CODE]

    You can check the VB source for the whole thing. Files can be read using your favorite text editor.

    Edit: I should explain that I copy-pasted ChkDist from another, older project and it was originally intended to do a bit more than what it does here... so the arguments are kinda odd. Sorry for any confusion.

    =Smidge=

  9. OMG, i don't have problems with air, because sonic can swim. But okay, i will add more bubbles =)

    Yeah, but I was in a tunnel with no openings to air above. What LOOKED like openings were actually solid.

    And having "door" transitions between water and air is really... strange.

    =Smidge=

  10. Normally I take a week off from work just for SAGE so I can get the most out of the spurt of liveliness the event offers our community, and I'd have more time to probe and savor the offerings. This year, though, I'm just too busy to do so... I apologize for the really terse reviews since I only have maybe two hours a day at most to dedicate to experiencing SAGE, which includes more than playing the actual games. So little time!

    Aria of Destiny

    First thought: Controls are gonna suck (after reading README.txt)

    Second thought: The two characters are from different dimensions but apparently they both know Dracula. Guy must really get around...

    Third thought: My GOD the controls suck... and attacking is dodgy too...

    Graphics: First impressions were pretty good. While not exceptional in and of themselves, the graphics have a nice console-retro quality to them. Music: Standard fare. Level Design: Adequate from what I saw. Not exceptionally complex but not broken to the point of not being able to make your way around either. Gameplay: Attacking is slow and difficult to time correctly. This ultimately led to my demise on the very first level - being unable to defeat the enemies without also taking damage. I would recommend using something more comfortable for the controls if possible: A/S/D for Jump/Interact/whatever, for example.

    Brazsonic 2

    For the record, auto-center plus unmovable app = unplayable on my dual monitor setup. The game window is split between my screens, separated by about 3 inches and vertically offset by about an inch. Unplayable... and so no review at this time. Will update when this is fixed.

    Cooperationation

    A fairly unique puzzle type game, insomuch as the two-character mechanism isn't used all that often these days. The goal is to get the (presumably human) girl to the exit portal, with the help of a very blue and most likely not human (male?) counterpart. Each character has slightly different traits - most notably, the blue one can double jump and crouch to make a platform the girl can stand on. The player uses the two characters together to reach the goal. Graphics are a little crude but honest, as opposed to something the creator threw together while clearly not giving a shit. This is worth a try if only because it's something unique in a swamp of half-baked platforming games.

    Super Mario Brothers: Bloody Battles

    The childish pleasures of Super Mario Bros. mixed with the childish propensity for excessive gore and gun violence. What could be better? Classic Mario graphics and (thankfully optional) gunplay make for a rather interesting and occasionally difficult game. If you've ever played a Super Nintendo era Mario game, you know exactly what to expect and won't be disappointed.

    Mario Roots

    Done in Paper Mario style, the graphics and animation are pretty high quality. Unfortunately mario contorls like an overweight cow... jumps are barely high enough to reach the platforms, and it's far too easy to under/overshoot jumps due to the character's sluggish momentum. Gameplay elements such as powerups seem a little too complex for my tastes... too RPGish. If skill management is absolutely required to progress through the game I can't honestly say I'd bother.

    Mine Hunt

    Minesweeper with music. Retardedly, I won the first stage instantly due to a bug of some kind. As a Minesweeper aficionado I got up to stage 13 before losing a life and decided to quit while the sun was still up. Suggestions to improve play: "Question mark" squares (Nothing > Flag (chao) > ?) and left_Right click on numbers to open up all uncovered and unflaged squares IF the appropriate number of flags are in place (even if they're wrong). Makes things go a lot faster.

    And oh yeah - music/background variety would be nice. I'm assuming it stays that way forever, but maybe at some point make the field larger to acomodate more mines, change the music and background for variety's sake.

    NemeGraphe

    GIVE ME AN OPTION TO SKIP THE TUTORIAL YOU BASTARD!!!!! Jesus that's annoying. Especially since you have to wait for the text to type itself out, follow whatever inane instructions it gives, and wait again.

    Beyond that little gripe, the game is fun and strighforward: Fill in the squares according to a given number of squares in each column and row, along with some minimal pattern information. A good little time-waster puzzle which appears to have a function for importing custom pics - a promising feature that could add long-term playability.

    Sonic Gemini

    ARG FORCED FULLSCREEN DOES NOT WORK ON DUAL MONITOR SETUP. Not a huge problem, though, since none of the enemies appear to hurt me... as if collision detection with enemies was missed completely. Spikes work, though! The bonus stage is actually pretty neat, especially since the checkpoint post reactivates when I leave so I can go back in as many times as I want.

    Again, I find Sonic's lack of power disheartening. Capable of very decent speeds but unable to walk up any slope greater than five degrees is pretty retarded. Similarly unable to complete a loop without a spindash no matter how much momentum I've got beforehand. This is a very common problem that I've ranted about quite a bit last SAGE.

    Sonic Nexus

    Fast, smooth, excellent (and huge) level design. Smacks od Sonic CD goodness. A few gimmicks, a few well placed "gotchas!" in the way of spikes and pits (but no DEATH PITS). Did I mention the levels were huge? Sadly there's only two acts of one zone. Get back to work, guys!

    Sonic the Hedgehog 3D

    For a 3D Sonic fangame, this could have been a LOT worse. Like, trainwreck worse. instead this reminds me of a very early SRB2; Kinda clunky, rough around the edges, but not unplayable. Some better enemy models and textures would go a long way to making it look better, and the controls need a little (okay, a lot) of work, but this actually seems like a good start. For starters, the camera isn't a total pile of ass like it is in... well, EVERY 3rd person game Sonic Team has ever produced. Worth a try if you can stand the massive download for only a few minutes worth of game. (P.S. I drowned. Need more air bubbles, dude...)

    Pure Chaotix

    Problem #1: Death pits.

    Problem #2: Can't walk up gentle slopes.

    Redeeming value #1: Excellent use of parallax and adding a multi-layered feel to the level.

    Problem #3: Needs to be a better way to tell what features are on YOUR layer. It gets crowded.

    Gameplay is a little rough. Enemies and landscape bend together almost seamlessly, in that they're basically camouflaged. The layering is an excellent effect and very well executed EXCEPT for the great difficulty of telling what parts of the landscape are yours and which are in the fore/background. This is especially vital when trying to avoid the legion of bottomless pits that litter the level design. Lack of checkpoints hurts, too... at least let me start from where I found the last team mate or something!

    More to come as I find the time.

    =Smidge=

×
×
  • Create New...