Jump to content

eezstreet

Members
  • Posts

    5,207
  • Joined

  • Last visited

Posts posted by eezstreet

  1. Why SP needs netcode at all is beyond me - it my mind, that makes any netcode limits entirely arbitrary.

    Netcode doesn't necessarily mean networking, you know. The netcode is also used on a local game in MP, but I hear no complaints about the limits being irrelevant there either. My speculation is that they kept a lot of the structures intact because it was either easier or because they intended for co-op of sorts.

  2. The problem with such a system is that it's particularly nasty to implement. In addition to the format handling itself (which admittedly is the easiest part), you have to actually implement the use of these fields. It's a bit tedious but the time spent towards these fields can outweigh the downsides.  

  3. They're purely optional fields, with a default option. iirc, the fields that NEED to be defined are as follows:

    • type
    • variation
    • classname
    • visual -> primary
    • primaryattack
    • stats

    There's more than that even. You can define splash damage, which has some really nifty damage area stuff (such as radius damage dealt over an increasingly large area, or damage done in waves etc), support for our damage type system (Cold/Fire/Lightning/Force Damage, with additional Ignition/On Fire, Freeze, Stun, Carbonite, Chill, and Poison sub-types, among others I think), and there's also stuff for bouncing missiles.

  4. The coders didn't want to detail the specs of each gun and saber stance balance issue, so instead of doing that, we made the modellers/playtesters work on that. Better balancing, better communications, better everything all around. Protip: make as much as you can into human-readable files as you can without reducing load times to a crawl. Much less work for you.

    katanamaru and ChalklYne like this
  5. How is this not arbitrary in a single-player campaign? :P (Which works in MP, how ironic)

    ..because SP uses the same netcode as MP?

    And SP is inconsistent in a number of ways. Like I said, I think it's an issue of the game not stripping out the .IBI when it does the path length check in SP, and not in MP. I'll download Atlantica and get back to you on that.

    (Also see: MP has twice as much memory for Ghoul 2 vertex transformations, despite SP having more intensive models)

  6. JKG did .wpn files and .stance files, but they used different formatting and a faster parser. I can show you some samples:

     

     

    {
      "name": "@JKG_ITEMS_WEAPON_FLECHETTE",
      "type": "WP_FLECHETTE",
      "variation": 0,
      "classname": "weapon_flechette",
      "description": "@MENUS_THE_PRIMARY_WEAPON_OF",
    
      "visual": {
         "viewmodel": "models/weapons2/golan_arms/golan_arms.md3",
         "worldmodel": "models/weapons2/golan_arms/golan_arms_w.glm",
         "hudicon": "gfx/hud/w_icon_flechette",
         "hudnaicon": "gfx/hud/w_icon_flechette_na",
         "selectsound": "sound/weapons/flechette/select.wav",
    
         "indicators": {
            "ammo": [ "models/weapons2/flechette_pistol/numbers3", "models/weapons2/flechette_pistol/numbers2", "models/weapons2/flechette_pistol/numbers1" ],
            "firemode": "models/weapons2/flechette_pistol/firemode"
         },
    
         "primary": {
            "type": "blaster",
    
            "muzzlefx": "slugthrowers/muzzleflash",
            "firesound": [
               "sound/weapons/flechette/launch.wav",
               "sound/weapons/flechette/oldie_shot1.wav",
               "sound/weapons/flechette/shot2.wav",
               "sound/weapons/flechette/shot3.wav"
            ],
            "projectilemodel": "models/weapons2/golan_arms/projectileMain.md3",
            "projectilefx": "flechette/shot",
            "miss": { "impactfx": "flechette/wall_impact" },
            "hit": { "impactfx": "flechette/flesh_impact" }
            },
             "secondary": {
                "type": "blaster",
    
                "muzzlefx": "slugthrowers/muzzleflash",
                "firesound": [
                    "sound/weapons/flechette/launch.wav",
                    "sound/weapons/flechette/oldie_shot1.wav",
                    "sound/weapons/flechette/shot2.wav",
                    "sound/weapons/flechette/shot3.wav"
                ],
                "projectilemodel": "models/weapons2/golan_arms/projectile.md3",
                "projectilefx": "flechette/alt_shot",
                "miss": { "impactfx": "flechette/wall_impact" },
                "hit": { "impactfx": "flechette/flesh_impact" }
             }
       },
    
       "stats": {
            "slot": 1,
            "reloadtime": 2000,
            "ammo": "AMMO_METAL_BOLTS",
            "reloadmodifier": 0.6,
            "speed": 0.95
       },
    
       "primaryattack": {
            "damage": 10,
            "ballistic": true,
            "projectiles": 10,
            "ammocost": 10,
            "firedelay": 400,
            "recoil": 5.0,
            "spread": 3.5,
            "projectileclass":"flech_proj",
            "meansofdeath": "MOD_FLECHETTE"
       },
    
       "playeranims": {
            "idle": { "torso": "BOTH_IDLE1", "legs": "BOTH_IDLE1" },
            "reload": { "torso": "TORSO_DROPWEAP1" },
            "ready": { "torso": "TORSO_WEAPONREADY3", "legs": "BOTH_STAND1" },
            "firing": { "torso": "BOTH_ATTACK3" }
       },
    
       "weaponanims": {
            "ready": "READY",
            "reload": "RELOAD",
            "firing": "FIRING"
       }
    }
    

    I don't have a sample of a .stance file to show you but they were a lot longer as they went into depth with each move etc.

  7. I dont understand why those limits even exist, some of them just seem arbitrary to me. :D

    MAX_QPATH is a legitimate limit, not very arbitrary at all. Reason is because some networked paths are bad if they exceed the maximum total character limit for networked strings (also known as configstrings).

    The actual path of sounds, effects, models, etc. get thrown into a pool along with player names, light saber colors for each client, dynamic light data, terrain data (for the unused Random Map Generation feature), cvars set via sets, voting data, and more. Needless to say, overflowing this is very bad, and issues can range from MB2's Kyle bug to MAX_GAMESTATES exceeded.

    It seems arbitrary yes, but the path limits are a step in the right direction.

  8. If there's any interested coders in here, I can provide a theory as to why this happens in SP but not MP.

     

    Basically when it does the path length check, it strips the .IBI extension in MP but it doesn't in SP. Hence, the length in SP == 67, while the length in MP == 63 == ok. Regardless, people shouldn't be giving files ridiculously long names like that.

    ChalklYne likes this
  9. ive really only made a map n some shaders in unreal so im pretty unfamiliar with it. i know for a fact that this is a dumb question... but why does jkas engine have so many limitations and is it as easy as just changine some lines as to how many verts/ etc can be rendered at once, or do u have to rewrite like every header  or whatever? guess im trying to get an idea of the amount of work needs to be done versus the benefits. 

    It's because the engine is old and they used a lot of stupid static limits for things. Lots of old games have weird problems and JKA's limits on vertices is fairly meaningful. They did it for consoles mostly. I've heard of weirder things in older games though (ie in San Andreas, anything higher than about 40 FPS breaks the swimming mechanics completely)

     

    Be grateful we have full source though, as Unreal doesn't. And it does suck to code for, trust me. You can't even fix those vertex issues in Unreal anyway.

     

    @DT no idea, sorry. Try looking online?

    ChalklYne likes this
×
×
  • Create New...