Fangame "Get help thread"

Discussion in 'Fangaming Discussion' started by Andrew75, Aug 26, 2012.

  1. BlackHole

    BlackHole

    You're going to need MORE than help. Member
    3,184
    15
    18
    England
    Sprites for Cybernetic Outbreak
    Er, is this just for Sonic the Hedgehog fangames? Just I wanna ask for hints on how to go about making this but the things at the top say "Sonic the Hedgehog > Fangaming Discussion"
     
  2. Relick

    Relick

    Member
    197
    0
    16
    England
    C++/DX10 Engine (not sonic related)
    Going back to the collision stated earlier, I was looking at the collision mask method and I feel like it seems a bit restricted once you want to create full 360 degree movement. It works excellent if you want to recreate the authentic Sonic experience but any further than that is a no.

    http://www.youtube.com/watch?v=YK36SpTGh3s

    This would be the sort of thing that I am trying to achieve, I have been thinking about it for ages, and I know how to get if it is collided or not, I just don't know how to go about getting the tangent/normal for the collision.

    Any help would be appreciated, doesn't have to be code, just a method for doing it will be great!
     
  3. Andrew75

    Andrew75

    Technical Artist Member
    1,956
    20
    18
    Project AXSX(Sonic Xtreme) + Misc Projects
    Me and Damizean had come up with a way to do it using 3D chunks awhile back.
    never got off the ground as he was busy with schooling and I was busy with home renovations and GHZ 2.5D at the time.
    It's a kind of long winded explanation. and would require some illustrations to go along with it.

    If and whenever I get some time I could draw up a proper presentation.
    for now I'm super busy with Xtreme and home renovations.. >__<

    I had however modeled out many of the chunks in 3D from Sonic 1,
    the normals were also set to face the same direction between the chunk surface endpoints so that they were balanced out to be in the middle.

    Another way to do it would be by chunk name, or even material ID.
    Whatever ID or chunk sonic touches would determine his physics for jump and acceleration or slope interactivity.
     
  4. Relick

    Relick

    Member
    197
    0
    16
    England
    C++/DX10 Engine (not sonic related)
    Sounds good, the chunk method could at least help with optimization (minimizing the size of any for loops should they need to be called).

    I was originally going to use 2D, however I may reprogram it so that either 2D or 2.5D can be used. Obviously it means more work but if I keep the method calls synchronised it should be ok.
     
  5. Andrew75

    Andrew75

    Technical Artist Member
    1,956
    20
    18
    Project AXSX(Sonic Xtreme) + Misc Projects
    Id go for material ID's on an invisible collision mesh.
    this way you have way more control.
    also the (non collision) visual mesh can still look like anything you desire without having to make so many models.

    AXSX actually uses this for switching between 3 gravity / gameplay modes.

    Edit: what game engine you using ?
     
  6. Relick

    Relick

    Member
    197
    0
    16
    England
    C++/DX10 Engine (not sonic related)
    Yeah, my experience with Unity allowed me to figure out that I should make the collision mesh separate from the visual mesh. Even in 2D this is extremely useful with collision masks, as shown by the original sonic engines themselves.

    As for engine, I am in fact attempting to build one with DirectX and C++. It is mainly for personal experience; but if I ever do finish it it will be a lightweight, optimized, easy to use open source alternative to other game maker or mmf engines. I would include a graphical level editor as well as a code based scripting tool (probably will be C++, I don't currently have the knowledge to implement another language). But obviously it is a long journey until I reach that stage, so any progress will end up in the general project thread :P

    That's why I initially wanted it 2D rather than 2.5D, to keep it simple and to serve as an alternative to Game Maker engines rather than GDK or Egg Engine which I believe are excellent already and do not need alternatives.

    EDIT:

    Well, I asked on a chat room I regularly visit, turns out at least for 2D the answer is simpler than I thought.

    The normal vector is from the point of collision to the center (or closest to) of the player if the player collision is a circle. Silly me >.<

    Then for 2.5D I intend to use a separate physics engine for that. I don't think I have time to learn how to do 3D collision (I have still barely done calculus in school anyway so... :P)
     
  7. BlackHole

    BlackHole

    You're going to need MORE than help. Member
    3,184
    15
    18
    England
    Sprites for Cybernetic Outbreak
    Out of curiousity, what is Unity and how easy would it be to program a Mega Man X engine into it? Just so I can actually get something out of that project.
     
  8. Relick

    Relick

    Member
    197
    0
    16
    England
    C++/DX10 Engine (not sonic related)
    Unity3D is a free (sort of) 3D game engine with built in graphics, physics and cross platform compatibility.

    C# and a modified javascript are the languages used by it, so it is pretty easy stuff. The API, I must say is excellent, everything is provided and for a flat platformer like Mega Man X you should have no trouble. I recommend making a few test projects though just to get a feel for the engine before starting on your full thing.

    I'm not sure what your experience with coding and maths is, but in order to make sure all your stuff works the first time you code it, you'll want a decent level of understanding of vectors and normalisation, and a low level knowledge of quaternions is also useful.
     
  9. BlackHole

    BlackHole

    You're going to need MORE than help. Member
    3,184
    15
    18
    England
    Sprites for Cybernetic Outbreak
    Well my experience with maths is...hang on....subract the 2, carry the one...absolutely none. My apologies for wasting your time.
     
  10. Hez

    Hez

    Asshole Oldbie
    3,126
    59
    28
    Hell
    Your mother
    I still need a fully working catakiller....for 3 years now.
     
  11. Andrew75

    Andrew75

    Technical Artist Member
    1,956
    20
    18
    Project AXSX(Sonic Xtreme) + Misc Projects
    Play the game called connect the dots on paper,,, that help any ?
    or do u mean a 3D model.
     
  12. winterhell

    winterhell

    Member
    1,162
    6
    18
    Relick, if you need to calculate the normals or tangents in a collision mesh, I have done this in the past so I can give you code. It can also work with variable step, I.e. if you want one angle per 16x16 block, thats fine, or if you need every column to have its own normal.
     
  13. Hez

    Hez

    Asshole Oldbie
    3,126
    59
    28
    Hell
    Your mother
    MMF2 sonic 1 catakiller to me more exact.
     
  14. Zenor

    Zenor

    flip the chessboard over Member
    274
    0
    16
    I tried making one three or more years ago. Luckily, I still have the MMF2 file - Here it is. Oh, I'm sure there are much better ways (and ways that don't look like a mess) to do it. But at least now you have something?

    It's not fully working, but the movement is there!
     
  15. Hez

    Hez

    Asshole Oldbie
    3,126
    59
    28
    Hell
    Your mother
    I have the movement down to the exact way it works in sonic 1. The main problem is keeping the objects seperate when you have more than one.
     
  16. Zenor

    Zenor

    flip the chessboard over Member
    274
    0
    16

    That doesn't seem like much of a problem if you link each piece of the caterkiller together. I modified the source and did that here. I hope I didn't get the wrong idea of what you're having problems with; I've no idea of how it works in Sonic 1, plus I don't know how much you have done, so this is pretty much as far as I'll go.
     
  17. Hez

    Hez

    Asshole Oldbie
    3,126
    59
    28
    Hell
    Your mother
    ...I fucking love you. I guess I never have gotten how to link objects. I suck at it.
     
  18. Alien Treasure

    Alien Treasure

    Bringing you Seven Force since 1993
    20
    0
    0
    Rio Das Ostras, Rio De Janeiro, Brazil
    Exploring Ristar's code, Sonic 1-3K Advance
    Does a Sonic Advance-esque engine for GameMaker exist? I'm planning to do some Advance-style fangames, and I already have GameMaker installed via Steam, so...
     
  19. InfinityAlex

    InfinityAlex

    Artist, animator and musician
    20
    0
    0
    Wigan
    Sonic Origins: Amy & Kaboom Runners
    In my own fan game I want to be able to have Sonic change to another running animation when he reaches a certain speed. In short, I'm copying Lake's gimmick. Anyway, I tried this:
    *Animation of O=2
    *Character Speed of M=0
    *Abs(XSpeed("M"))>=10
    *Sonic: Change animations sequence to HighSpeed

    However, when the animation does change, it only stays on frame 1! Any help?
     
  20. Tiller

    Tiller

    Member
    836
    0
    16
    HDK & World Runner
    You might want to mention that you're using Sonic Worlds there bud.

    I ran into this when screwing around and adding animations but it can be caused from a lot of things. First thing to do is to not look at the event code. Chances are you logic is mostly right but one little dumb thing is holding the whole thing up. Check your PlayerSkin_Sonic in the .player folder and make sure your animation loops correctly for whatever action you called it. There is a little check box for loops that needs enabled and you need to make sure it is looping the correct frames. I think like data arrays the first animation frame is 0, the next is 1. If you have two frames of animation you need to loop from 0 to 1. For 3 frames you would need to loop from 0 to 2. Etc. If you start at 1 and end on 2 in a two frame animation, the second frame is the only one that it is told to loop.

    Try that first and then we'll dive into your logic. I can send you over my worlds beta code for the little stuff I was experimenting with. Part of it has functional animation based on speed.