Jump to content

Ntsc

Members
  • Posts

    50
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Ntsc

  1. Personally I'd suggest just getting a team together and making a demo then throwing that to your investors.

    The real challenge is that you need to really have motivation and a well rounded team to put together a real game. I've created a few games on my own but it is impossible to create a quality game with a small team of less than 10 within a reasonable amount of time.

    There are a lot of questions that interested developers would like to ask:

    • * What kind of game are you aiming for?
      * Why such a short time frame (March 15th, 09)?
      * Do you have any concept art or anything beside a basic idea? (flesh it out more if not)
      * What will set your game apart from others?

    These are the "phases" that I'd assume for such a project.

    1. Idea / Concept art. You need to have some ideas down on paper about what your game is going to be and how you are going to accomplish it.

    2. Team Gathering. Get together your lead programmer, lead modeler, lead writer, and lead manager (this could be you)

    3. Design your base engine and create a working demo. Make it simple and fast. Don't worry to much about mistakes and inaccuracies.

    4. Use this base engine / demo to get funding. If it is an open source project use the demo to attract more developers.

    5. Finalize your ideas. Figure out the EXACT direction that you want your game to go. What story it should have, what is your audiance, etc.

    6. Start developing!

    Edit:

    One of the best ideas ever created was a game called Graal. It had its own server that players subscribed to. As well as a place where players could lease a server with the development tools to build there own world with an editor. This created a mass network for players to basically do what they wanted and a great way for gamers to enjoy others gamers ideas.t

    OMG I finally found someone else who played graal?!?!?!

    Graal is the entire reason I started programming. I loved that game. I played from 1.11 to 1.42 but could never really get into the whole Graal 2000 and beyond.

  2. On a somewhat related note, someone will need to test how binary resist spells are effected when casting upon a creature immune to the secondary effect.

    Examples:

    Frost bolt on a mob immune to snares

    Mind flay on a mob immune to snares

    Death coil on a mob immune to horror (bosses)

    If they become partially resistible..well that would be weird but something you can't rule out until you test.

    - Binary spell recognition - I think spell can be considered as binary if it has some mechanic set. It's probably wrong - there is probably some attribute that marks the spell as binary (or partially resistible). Or the decision should be done just by checking for damage effects.

    Mind Flay doesn't actually have mechanic snare and neither does frost bolt. Both of them are NULL mechanic spells, they do have mechanic snare set for effect_2_mechanic though.

    I'd be willing to bet there is an attribute though as there are many boss spells which are not resistible at all and others which can only be fully resisted or not resisted.

  3. Hmm, we'll have to make some changes to 3rd party libs (SD2) to handle this though. The problem I see with this is we will have to somehow figure out if a spell is an AoE or not before casting it and then pass the X,Y,Z of target when casting.

    The correct way to do this would be to have Unit::CastSpell automatically figure that if we are casting an AoE ground targeted spell on a unit to instead cast on that units position. This will eliminate the need to overcomplicate spell handling in 3rd party script library.

  4. MANGOS_WIN32_DLL_IMPORT is never used. DLL_SPEC is what all other classes and functions use.

    You are probably right about that though. Me and Wyk3d were talking about this issue earlier today on IRC. We probably should be using MANGOS_DLL_DECL with MANGOS_WIND_DLL_EXPORT for Mangos and MANGOS_WIND_DLL_IMPORT for 3rd party script library. I'll have to try that out some time.

  5. Hmm actually I thought that using CastCustomSpell you could modify the base points of an effect. For example using the spell given you could make it give +200% by simply modifing the base points of effect one.

    I might be wrong so don't quote me on that =P

  6. I'm getting

    1>Linking...
    1>     Creating library ..\\..\\..\\..\\bin\\win32_release/MaNGOSScript.lib and object ..\\..\\..\\..\\bin\\win32_release/MaNGOSScript.exp
    1>mob_event_ai.obj : error LNK2019: unresolved external symbol "unsigned int __cdecl urand(unsigned int,unsigned int)" (?urand@@YAIII@Z) referenced in function "public: void __thiscall Mob_EventAI::ProcessEvent(struct EventHolder &,class Unit *)" (?ProcessEvent@Mob_EventAI@@QAEXAAUEventHolder@@PAVUnit@@@Z)
    1>..\\..\\..\\..\\bin\\win32_release/MaNGOSScript.dll : fatal error LNK1120: 1 unresolved externals
    1>Build Time 8:48
    1>Build log was saved at "file://d:\\Projects\\MangosCode\\src\\bindings\\ScriptDev2\\VC90\\ScriptDev2__Win32_Release\\BuildLog.htm"
    1>ScriptDev2 - 2 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

    When compiling SD2 now. Could you please check that you correctly defined urand so that SD2 can use it? We really would like to use the MaNGOS urand and other functions than use rand().

  7. 2) What do we want to do?

    For example: Tower taking and zone faction change in outland since TBC was launched, world events (phases in new island), fix the bad random movements, non offlike LOS checks (too restrictive), complete localization…

    A simple list: a to-do list would be useful to see what is missing for long time

    Then setting importance (priority) on theses items in the list would help seeing where we want to go, list dependencies and solve them.[/b]

    Tower Taking is actually being worked on by a few members. WolfDragon's WorldStates patch was a part of that as was w12x's code for Tower and other world pvp objectives. I think problem is that we have TO many big patches right now that delay review of some other patches. For example the Instance System, Multi-threaded maps, Arena System.

    A todo list would be nice but maybe best if it is kept very generic and only for big work (ex NO class skills or other small crappy things). I think it should also be posted publicly so non devs may know what they can work on if they have time.

    3) Who is doing what?

    Let’s first list who is doing what and who plan to do what, this would solve double work, patches conflicts or anything like this that may happen (I don’t say it ever happen, I let you appreciate)[/b]

    Hmm, I don't really see a whole lot of use keeping an up to date list of what is being worked on. The major patches we already know and are always posted somewhere in the dev sections. Wyk3d is doing instances system, Ralf the multi-threaded maps, etc. I personally only take on small endeavors related to creatures.

  8. Neither of these are official movement generators though and both can already be done with current movement generators work. I think you not understand how movement generators work with creature AI. The movement generator ONLY generates movement. That is all it does. It does not know or care if it is in combat nor does it know or care what happens after it reaches that point.

    Both of these functions can already be done. Use PointMovementGenerator to "attack to position" (escortAI in SD2 has a good example of how to do this). And to make a creature defend that position simply do not allow the creature to return to his home position (escortAI also shows how to do this).

    These two types of movement generators would be very very rarely used. I cannot think of any creature that doesn't already require a script that would require these.

  9. Ok well this is confusion for many Script developers so I explain here:

    Units are removed from all threat lists the moment they die. For example

    void UpdateAI(uint32 diff)
    {
           if (!m_creature->getVictim())
                    return;
    
        m_creature->getVictim()->DealDamage(m_creature->getVictim(), m_creature->getVictim()->GetMaxHealth(), bla bla bla);
    
        m_creature->getVictim()->GetHealth();    //CRASH!
    }

    getVictim() returned NULL at the line that says crash. This is because Victim is no longer valid. 99.9% of the the time you will not have a problem with this because all spells are actually casted on NEXT world update tick. The only exception to this is Triggered spells. Triggered spells are cast right then and there.

    Example

    void UpdateAI(uint32 diff)
    {
           if (!m_creature->getVictim())
                    return;
    
        m_creature->CastSpell(m_creature->getVictim(), 5, false);
    
        m_creature->getVictim()->GetHealth();    //Safe
    }

    void UpdateAI(uint32 diff)
    {
           if (!m_creature->getVictim())
                    return;
    
        m_creature->CastSpell(m_creature->getVictim(), 5, true);
    
        m_creature->getVictim()->GetHealth();    //Crash
    }

    The method the original MaNGOS developers chose was to simply assert if the target was somehow removed from threat list while CreatureAI::Update() was still in progress. Personally with ScriptDev2 I have had zero problems with simply adding Null pointer checks.

    On related note this crash also occurs with ThreatList Iteration if unit is removed from threatlist during the iteration but that is another story for another time.

    Anyway as far as I am concerned I'd say simply remove the assert and add a Null pointer check (if (!Victim) return;).

  10. Hmm did you use the WorldStatePatch written by WolfDragon/Seline? (sorry this patch is to huge for me to check right now) If not I recommend you merge it with yours as WorldStates need to be correctly stored and updated. Existing MaNGOS worldstate functionality only send to client.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use