Quantcast
Channel: Project Reality Forums - PR:BF2 Community Modding
Viewing all 924 articles
Browse latest View live

Your suggestions on what weapon model to make?


[Weapon] FGM - 148 Javelin

$
0
0
Here's the Javelin i just started working on















Work continues :)

BF2 HD Remastered 3.0 Beta - 2017 - Official

$
0
0
After 5 months of a lot of work, BF2 HD Remastered 2017 has finally gone Gold in it's first Official Release.

Lot's of improvements has been made since the first Beta release 1.2 , some of them:

Change-log from 1.2 - 1.65

- Added Official Vanilla Conquest game modes and MD5 anti-cheat support
- New improved textures and details for terrain and vegetation
- Fine tuned Realistic Lightmaps and Color Pallete
- Improved Coop game modes and strategies
- Performance Optimizations and fixes
- 6 New Classic Maps Remastered

Description

Realistic BF2 HD Remastered battles, up to 64-Bots coop mode for training or epic online game modes. Enhaced HD 2017 maps, much more realistic look, better textures and lighting, lots of graphics tweaks for better visuals, new larger navmesh and strategic areas.


Info
- It's not a mod, You can play it with your Official Vanilla BF2 installation.
- 12 classic BF2 maps fully remastered. (1.65)



1) Visuals and Graphics

- 60% larger view distance in all maps maps, maintaining each map individual Fog signature
- All maps with much better Hi-Resolution 2048MB (Finest possible quality) Lighting with SoftShadows, original maps have an 512MB texture for object lighting and Low-Res shadows for terrains, that makes it much less realistic and whith far worse graphics in general.
- Much better Static Objects details, all static objects keeps the highest Level of Detail (LOD) no matter what. Needs a 1GB+ VRAM Card, capable of running the game at high settings except for AA filtering.
- New color palette, with more realistic look and not as bright and washed as the original one.
- Improved vegetation, more dense and higher, with improved mesh and textures
- New, more realistic Sky Models and Sky Effects
- More detail over distance for every soldier, vehicle, terrain and objects
- New, improved and more detailed textures for terrain and vegetation


2) Ai improvements and Dedicated Co-op Server capable

- All maps except for Kubra Dam, have dedicated server co-op option for training with up to 64 bots.
- Larger Navigation Mesh for infantry and vehicles for Dragon Valley and Daqing Oilfields, making wider epic Co-op matches possible in a true 64 players combat area.
- Elaborated Game-modes and strategies for all maps on singleplayer and Co-op, that can also be used for new Conquest tournaments.
- Custom Ai file fully compatible with Vanilla Official servers, for large co-op game modes with up to 64 Players


3) Performance & Fixes

- Fixed flickering on bridges and Airstrips, fixed detail flickering on rocky surfaces
- Disabled LOD switching for objects with complex geometries, this can reduce lag and stuttering at expense of using more video memory (1GB+ VRAM Recommended)
- Reduced vegetation and gravel being rendered in places no one will ever see, such as under big static objects or areas out of combat bounds
- Fine tuned vegetation, view distance and fog for best performance without weird objects pop-in the screen, but avoiding them to be rendered in distances over the max view distance, increasing performance and reducing memory usage.


4) Full support for Official severs and game-modes

- Official Vanilla compatible Conquest game modes for 16,32 or 64 players
- Custom MD5 checksums for anti-cheat support, compatible with PB and others anti-cheat tools.


Donate for further development
Donate Here!


Instructions

1) Download the BF2 game at www.battlelog.co and BF2 dedicated server if you want to run a dedicated Co-Op server for training or fun.

2) Copy/paste the content of Levels folder into your EA Games/Battlefield 2/mods/bf2/Levels folder. Do the same for your BF2Server/mods/bf2/Levels to run the HD maps in a dedicated server or Lan mode.

3) Copy/paste the content of BF2Server folder into your EA Games/BF2Server folder to run a dedicated Co-Op server with up to 64 bots and 100FPS (instead of default 35FPS server) or an Official Vanilla Conquest server at 100FPS. Override when asked.

4) Have fun!


The Ai File comes pre-configured to 48-Bots since not every old computer is able to run an 64 bot match in large maps, you can change it with your notepad for 63 bots if needed.

For 48 Bots/Players:

- Set your BF2ServerLaucher to 48 Max Players
- Set the CoopBotRatio to 100%
- Set CoopBotCount to 24

For 64 Bots/Players:

- Change the provided AiDefault.con from 48 to 63 in "aiSettings.setMaxNBots"
- Set your BF2ServerLaucher to 64 MaxPlayers
- Set the CoopBotRatio to 100%
- Set CoopBotCount to 32


Look for this server to try it out:
BF2 Brasil HD Maps

__________________________________________________ ___________________
Version 1.65



Development & Features




Combat & Training - Gameplay




All Maps Flyby































Full HD Picture Gallery at:
BF2 HD Remastered - 2017- v1.65 - Album on Imgur


Dowload the HD Remastered Map Pack 1.65

https://goo.gl/R7b1Ta

BF2 HD Remastered 2.0 - Vanilla Sky- 2017 Now Available!!

New Features Version 2.0 Remastered - Vanilla Sky Edition

14 of the most classic BF2 maps, Fully remastered, now with new Vanilla Sky HD atmosphere, minor fixes and 2 new maps: Shongua Stalemate and Wake Island 2017

All the version 1.65 HD improvements plus:

New HD photorealistic Sky textures from 2048x512 to 8192x2048, with realistic hand painted transactions and perspectives. (Thanks Sgt. Prof for providing the RAW images at 13.000x4.000 some identical with the ones used in BF2!)

New 1k HD Clouds and Sunflares! ( vs 128 )

- Reduced view distance from version 1.65 by 30% from 1.6 ratio to 1.3x

- Fixed Operation Harvest HD compatibility with official server and files. (thanks to RockstarCjbr to sort it)

- More transparent water in some maps

- New 16k Mosque texture for Manshtuur Citty ( Thanks to Jeremy Youngs to share it)

- Minor grass flickering fixes and wrong lightmap in Kubra Dam (thanks Shark from Battlelog to point this unnoticed errors)

- New higher definition lightmaps with 4k for objects and improved 1K resolution for terrain (vs 512)

- 2k Ground Hemi for better shadows over vehicles and infantry

- Overgrowth ShadowMap now wit 255 shades of gray for some maps instead of only 2 or 3. (Overgrowth is used for shadows over trees, bushes and some rocks)


Download Version 2.0C Vanilla Sky here:
https://goo.gl/GKsfHn


Need HD BF2 Vanilla soldier models and skins any volunteer?

$
0
0
Need HD BF2 Vanilla soldier models and skins any volunteer? Please, I would be glad to have that on next release of BF2 Remastered 3.0

Of course with all the credits on it for stuff I didn't made.

CH, MEC , EU and US or anything that fits in.

Vista's Improved Balance and Ballistics System

$
0
0
Vista's Improved Balance and Ballistics System



Hello everyone,


After the controversial update to the Ballistics and Weapon Damage in general, and due to the overall dissatisfaction from a substancial portion of the community in regards to the update, I've decided to take matters into my own hands and release a ballistics update myself.


Now, to understand what I changed, it's important to be in the loop about the past weapon damage balance and 'meta'. In the previous versions, fast firing rifles (like the Dutch, Canadian and French standard issue rifles) had an undeniable advantage in most engagements, especially in CQB encounters. Why?

Due to PR's gameplay nature, most engagements are going to be close-by-ish. I'd say no more than 250M. Majority of them you can call it 'CQB' - this due to the lack of scopes on some maps (lack of binoculars aswell) and the high recoil of some weapons. It's obviously better to get as close as you can before engaging the enemy. The problem is that the aformentioned rifles shine in these situations - they all have high RPM and a decent-ish ammount of base damage, this deadly combo when put against the low RPM rifles (like the AK-74) is very successful. The low RPM rifles just aren't really able to comepete at times, this is reinforced by the fact that the engine's hit detection is trash - while the AK-74 shoots 4 rounds and maybe 2 are hits (high recoil also doesn't help), the C8 just vomits 17 rounds in the same time, ensuring the kill.



So, how do you balance this? I did it in 3 different ways. The first, is through base damage. The majority of the fast firing 'NATO' factions' weapons saw a reduction in their base damage, while at the same time the glorious motherland weapons saw their base damage (slightly) increased. Secondly, I introduced a harsher damage droppoff on the NATO rifles, 7.62 rifles also had their damage droppoff increased, but not nearly as much as the NATO rifles - this way while the NATO rifles are still good at CQB, glorious motherland will be all up in that medium range buisness.

Finally, I re-enabled the 'backOnRecoil' setting on everything again. This was a setting that was enabled before 1.0 was released, which punished spraying by the fast RPM rifles. M42_Zwilling explained the technicalities, but TLDR it makes the fast firing rifles' base recoil a bit higher.

I also changed the damage modifier against non-armored targets. Reduced it to make INS maps a bit more fair, this way OpFor has a bit more survivability.

I also gave an individual buff to the british L85A2, it's supposed to use the NATO 5.56x45 round, but since that weapon's recoil is shitty and the RPM isn't all that great, I gave it the same round as the chinese QBZ-95, this way the L85A2 won't be as shitty and will have a bit more damage.

Also remember these changes are based on the PREVIOUS damage model, NOT Zwilling's 1.4.8 changes.


Changed Bullet properties

Weapons affected: M16, FAMAS, C8, L85A2, C7, G36, TAR-21

Before:

Code:

ObjectTemplate.create GenericProjectile 556_45_r (and all its variants)
ObjectTemplate.material 3556
ObjectTemplate.damage 39
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 400
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModmifier 0.3
include projectiles_comon.tweak
include projectiles_tracer_r.tweak 5

After:

Code:

ObjectTemplate.create GenericProjectile 556_45_r (and all its variants)
ObjectTemplate.material 3556
ObjectTemplate.damage 33
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 210
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModmifier 0.3
include projectiles_comon.tweak
include projectiles_tracer_r.tweak 5


Weapons affected: QBZ-95, L85A2

Before:

Code:

ObjectTemplate.create GenericProjectile 580_42_g
ObjectTemplate.material 3556
ObjectTemplate.damage 39
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 400
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModifier 0.3
include projectiles_common.tweak
include projectiles_tracer_g.tweak 5

After:

Code:

ObjectTemplate.create GenericProjectile 580_42_g
ObjectTemplate.material 3556
ObjectTemplate.damage 41
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 260
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModifier 0.3
include projectiles_common.tweak
include projectiles_tracer_g.tweak 5


Also changed L85A2 to use QBZ-95's damage model

Before:

Code:

ObjectTemplate.projectileTemplate 556_45_r

After:

Code:

ObjectTemplate.projectileTemplate 580_42_g

Weapons affected: G3, MG3, M14


Before:

Code:

ObjectTemplate.create GenericProjectile 762_51_g
ObjectTemplate.material 3762
ObjectTemplate.damage 50
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 400
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModifier 0.3
include projectiles_common.tweak
include projectiles_tracer_g.tweak 5

After:

Code:

ObjectTemplate.create GenericProjectile 762_51_g
ObjectTemplate.material 3762
ObjectTemplate.damage 52
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 350
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModifier 0.3
include projectiles_common.tweak
include projectiles_tracer_g.tweak 5



Weapons affected: AK-47, AKM


Before:

Code:

ObjectTemplate.create GenericProjectile 762_39
ObjectTemplate.material 3762
ObjectTemplate.damage 45
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 200
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModifier 0.3
include projectiles_common.tweak

After:

Code:

ObjectTemplate.create GenericProjectile 762_39
ObjectTemplate.material 3762
ObjectTemplate.damage 47
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 350
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModifier 0.3
include projectiles_common.tweak

Weapons affected: AK-74M, RPK-74M

Before:

Code:

ObjectTemplate.create GenericProjectile 545_39_g
ObjectTemplate.material 3556
ObjectTemplate.damage 36
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 400
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModifier 0.3
include projectiles_common.tweak
include projectiles_tracer_g.tweak 5

After:

Code:

ObjectTemplate.create GenericProjectile 545_39_g
ObjectTemplate.material 3556
ObjectTemplate.damage 38
ObjectTemplate.minDamage 0.4
ObjectTemplate.DistToStartLoseDamage 350
ObjectTemplate.DistToMinDamage 1000
ObjectTemplate.gravityModifier 0.3
include projectiles_common.tweak
include projectiles_tracer_g.tweak 5




Changed multipliers

Before:

Code:

MaterialManager.createCell 3556 24 (Unarmored)
MaterialManager.damageMod 1.7

After:

Code:

MaterialManager.createCell 3556 24 (Unarmored)
MaterialManager.damageMod 1.4


Before:

Code:

MaterialManager.createCell 3762 24
MaterialManager.damageMod 1.7
MaterialManager.setEffectTemplate 0 e_bhit_s_sold_limb
MaterialManager.setDecalTemplate 0 decal_l_blood
MaterialManager.setSoundTemplate 0 S_Impact_Flesh

After:

Code:

MaterialManager.createCell 3762 24
MaterialManager.damageMod 1.4
MaterialManager.setEffectTemplate 0 e_bhit_s_sold_limb
MaterialManager.setDecalTemplate 0 decal_l_blood
MaterialManager.setSoundTemplate 0 S_Impact_Flesh


Changed recoil property

Before:

Code:

ObjectTemplate.recoil.goBackOnRecoil 0
After:

Code:

ObjectTemplate.recoil.goBackOnRecoil 1

I know this might not be perfect, but it makes sense from a gameplay standpoint, and IMO it's better than Zwilling's changes.

I know some of you are like 'B-B-B-BUT VISTA MUH REALISM BROO', well PR is already a realistic game, but in the odd occasion when we have to chose between realism and gameplay, gameplay should suffice. This is a GAME that we PLAY afterall.

I also know that I didn't cover every weapon, and there's probably more stuff to balance, but if the DEVs implement these changes, I'll probably make more later on :wink:

If you've read this all the way, thanks for reading :D

DEVs can download the modded files HERE

Making python script for teamkill score

$
0
0
I'm using the python scoring file from aix2 to give to the players some bonuses for destroying enemy vehicles, that defined in separate file.

I'm trying to create the one that will count friendly vehicles teamkills too (vehicle_tkbonus.conf file)

Here is the changed lines from the scoringCommon.py:
Code:

VEHICLE_BONUS_CONF_FILE = "mods/aix2ex_mm/python/game/vehicle_bonus.conf"
g_vehicle_bonus = []

VEHICLE_TKBONUS_CONF_FILE = "mods/aix2ex_mm/python/game/vehicle_tkbonus.conf"
g_vehicle_tkbonus = []


def init():

        global g_vehicle_bonus

        fread = open(VEHICLE_BONUS_CONF_FILE)
        readlines = fread.readlines()
        fread.close()
       
        for line in readlines:
                list = line.split(',')
                g_vehicle_bonus.append(list)

        global g_vehicle_tkbonus

        fread = open(VEHICLE_TKBONUS_CONF_FILE)
        readlines = fread.readlines()
        fread.close()

       
        for line in readlines:
                list = line.split(',')
                g_vehicle_tkbonus.append(list)

And
Code:

def onPlayerKilled(victim, attacker, weapon, assists, object):       

        killedByEmptyVehicle = False
        countAssists = False
       
        # killed by unknown, no score
        if attacker == None:
               
                # check if killed by vehicle in motion
                if weapon == None and object != None:
                        if hasattr(object, 'lastDrivingPlayerIndex'):
                                attacker = bf2.playerManager.getPlayerByIndex(object.lastDrivingPlayerIndex)
                                killedByEmptyVehicle = True


                if attacker == None:
                        if g_debug: print "No attacker found"
                        pass

                        victimVehicle = victim.getVehicle()
        # killed by remote controlled vehicle, no score awarded in this game
        if object and object.isPlayerControlObject and object.getIsRemoteControlled():               
                pass
               
        # no attacker, killed by object
        elif attacker == None:
                pass
               
        # killed by self
        elif attacker == victim:

                # no suicides from own wreck
                if killedByEmptyVehicle and object.getIsWreck():
                        return

                attacker.score.suicides += 1
                if not attacker.isAIPlayer():
                        addScore(attacker, SCORE_SUICIDE, RPL)
               
        # killed by own team
        elif attacker.getTeam() == victim.getTeam():

                # no teamkills from wrecks
                if object != None and object.getIsWreck():
                        return
                       
                # no teamkills from artillery
                if weapon:
                        attackerVehicle = bf2.objectManager.getRootParent(weapon)
                        if attackerVehicle.isPlayerControlObject and attackerVehicle.getIsRemoteControlled():
                                return

#HF Start
        if weapon == None and object != None:
                        victimVehicle = victim.getVehicle()
                        victimRootVehicle = bf2.objectManager.getRootParent(victimVehicle)
                        victimVehicleType = getVehicleType(victimRootVehicle.templateName)
                        attackerVehicle = attacker.getVehicle()
                        attackerRootVehicle = bf2.objectManager.getRootParent(attackerVehicle)
                        attackerVehicleType = getVehicleType(attackerRootVehicle.templateName)
                        VehicleTKName = victimRootVehicle.templateName
                        if attackerVehicleType == VEHICLE_TYPE_AVIATOR and victimVehicleType == VEHICLE_TYPE_SOLDIER:
                                return


#HF Stop
               
                for vehicle_tkbonus in g_vehicle_tkbonus:
                       
                        if vehicle_tkbonus[0].lower() == str(VehicleTKName).lower():
                                addScore(attacker, int(vehicle_tkbonus[1]), RPL)
                                if not attacker.isAIPlayer():
                                        host.rcon_invoke("game.sayall \"" + attacker.getName() + " destroyed " + "friendly vehicle " + str(SCORE_TEAMKILL + int(vehicle_tkbonus[1])) + "]" + "\"")                               
                        countAssists = True


        # killed by enemy
        else:
                attacker.score.kills += 1
                addScore(attacker, SCORE_KILL, SKILL)
                vehicle = victim.getVehicle()
                victimVehicle = bf2.objectManager.getRootParent( vehicle )
                VehicleName = victimVehicle.templateName

                for vehicle_bonus in g_vehicle_bonus:




                        if vehicle_bonus[0].lower() == str(VehicleName).lower():
                                addScore(attacker, int(vehicle_bonus[1]), SKILL)
                                if not attacker.isAIPlayer():
                                        host.rcon_invoke("game.sayall \"" + attacker.getName() + " destroyed " + "an enemy vehicle" + " [+" + str(SCORE_KILL + int(vehicle_bonus[1])) + "]" + "\"")

                countAssists = True

                                # headshot/range/speed scoring + message
                data = createdata(victim, attacker, weapon)
                bf2.Timer(delayedplayerkilled, 0.1, 1, data)

        # kill assist
        if countAssists and victim:

                for a in assists:
                        assister = a[0]
                        assistType = a[1]
                       
                        if assister.getTeam() != victim.getTeam():
                       
                                # passenger
                                if assistType == 0:
                                        assister.score.passengerAssists += 1
                                        addScore(assister, SCORE_KILLASSIST_PASSENGER, RPL)
                                # targeter
                                elif assistType == 1:
                                        assister.score.targetAssists += 1
                                        addScore(assister, SCORE_KILLASSIST_TARGETER, RPL)
                                # damage
                                elif assistType == 2:
                                        assister.score.damageAssists += 1
                                        addScore(assister, SCORE_KILLASSIST_DAMAGE, RPL)
                                # driver passenger
                                elif assistType == 3:
                                        assister.score.driverAssists += 1
                                        addScore(assister, SCORE_KILLASSIST_DRIVER, RPL)
                                else:
                                        # unknown kill type
                                        pass

I've changed the lines marked with red, but I've no experience, and got strange result: the TK "bonus" works only if the friendly vehicle explodes after taking the critical damage inflicted by me.

Can anybody help me to create the correct script?

[?] BfMeshViewer wont start Win10 (Solved)

$
0
0
I am attempting to use Battlefield Mesh Viewer, and after downloading the .ZIP file and runtime file, neither times of which it wishes to cooperate. After attempting to run BfMeshview.exe, it gives the error "Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is missing or invalid".
Any help would be greatly appreciated!

BfMeshView ----Link to the website/download


-HawkeAssault

Unusual Error

$
0
0
Hi all, I keep getting an error message when im playing sometimes and I dont know what is causing it to happen. The error says "No valid Pcold found at position:8". Does anyone know what this is? Thanks in advance.

How to add more bots in the latest versions of PR?

$
0
0
Hey fellow "gamers who try to virtually recreate events and actions we would call warfare"-ers,

I hope all goes well, and for several years I have been enjoining this mod as an intense shooter and a strategic wargame. However, the intensity of a battle on a huge map between batallions of 16 VS 16 bots in a singleplayer game when I am not feeling very enthusiastic for a salty multiplayer game without any mic (mine is broken), is debatable. I wondered if some of the good folks in this forum could help me raise the amount of bots playable on the bigger maps to a maximum of 64 VS 64? And is it possible to raise the amount of bots for all maps, including the smaller ones? I did it with BF2, but now that PRBF2 is this magnificent standalone version, I would like some advice from the good people of the PR forums.

Thanks,

[HUD] Font Facelift

$
0
0
I thought I'd show something I've been working on for a little while.

For a long time we've had to deal with blurry text in the BF2 engine when running at more modern resolutions, but that can be a thing of the past.

Inspired after seeing the BF2 HDUI mod, I took a look at what they had and the method they used but found it somewhat lacking.

After fiddling around with BMFont source code I came up with a method to generate nice looking fonts that display at double the normal resolution.

These are some of my results so far, screenshots are all taken at 1440p:










Spacing, vertical offset, size and transparency can all be adjusted as needed.

There is of course a slight bump to memory usage but it should be about on par with using the Chinese or Japanese localizations. Additionally, going through the font files I found that there seem to be a number of fonts that are essentially duplicates, for example scoreboardfont_8, squadcreationfont_6, and vehiclehudfont_6. Its possible that the UI elements could be retargeted to reduce the number of duplicates but that may be more effort than its worth.

I imagine having this as a launcher option could be done by retargeting the clientarchives.con to the updated fonts package.

Anyways, I'd like to hear your thoughts/comments/suggestions.

RBE - Real Ballistic Environment - Guide

$
0
0
I've been the whole week modding weapons and all I can say is delete all BF2 parameters and start from zero, this game has the best ballistic system between all BF series but EA didn't use it. They added the same project velocity for a shotgun and for a M4 but made the shotgun projectile "die" sooner so they don't have the same reach, instead of making it drop to ground.

You will need this:

(1) http://www.hornady.com/assets/files/...Ballistics.pdf

(2) Standard Ballistics Calculator - Hornady Manufacturing, Inc

(3) https://phet.colorado.edu/en/simulat...jectile-motion


From ballistic charts you can see that a rifle like Ak47 has a velocity of around 715m/s and uses a projectile with 123g of mass. For pistols we have an average projectile velocity of 330ms and a larger projectile mass variation. We will use that later as reference, but you can take the initial muzzle velocity and energy from the first link.

Ok, so we already have the parameters necessary for the Ak47 rifle now lets find the physics:

Using standard BF2 gravity and drag (don't know exactly how this last one varies in BF2 engine but gravity seems like same as real 9.8m/s^2 for gravity = 1)

We will need to calculate all the parameter for ballistics using projectile motion with drag resistance otherwise a M24 fire in a 20 degree angle would have a reach of 65Km.

I've done a spreadsheet using Runge Kutta discretization of fourth order, but I thought would be easier to just give the flash link above that once adjusted correctly can bring the same results in a much more interactive way.

We will need that to calculate the maximum practical range of each weapon in a battle field and also the necessary time to live so the bullets don't die before it reaches the end of it's trajectory.

With your ballistics chart opened open the projectile simulator (link 3) and lets start to calculate.

For that we will take the following scenario:

Average shooting height of 1.6m in a flat field using a 2 Degree elevation angle for compensation. That would be considered for maximum practical reach of the weapon and the needed time to live for this full trajectory.

The engine ballistic itself will be given by the projectile velocity, it's bundlemesh geometry, density, shooting angle and gravity modifier used, so that simulation will be used only to find appropriate realistic time to live and damage model.

Lets start:
- Move the cannon up to 1.6m
- Select tankshell
- Input angle of 2 Degree
- Input your desired project muzzle velocity
- Set 0.07 for mass
- Set 0.012 for diameter
- Set Air Resistance enabled
- Set Drag coefficient 1.8 (Don't ask me why this number, don't know how it's converting inside the model but that is the number that brought same results as when using a real ballistic spreadsheet that I use in the army)
- Fire! check if your final height is -1.6 check the time to live and the maximum range.


2 Degree is more than enough to cover 99.5% of real world given shoots with hand weapons, and that would be a good model to represent practical maximum reach and time necessary to finish the trajectory.

let's see how it works in practical, with a handgun of vi = 330ms and a 2 degree elevation you gonna be aiming 4.3m over your target to hit it at a maximum reach of 367m. For an assault rifle, that means you will be aiming 10m higher to hit a target at 698m. So if your target it's a human body you going to be aiming 5 human body higher in a distance that most of BF2 maps don't cover, that's more than most real scopes can handle but it can happen and it's covered by some good scopes so those are good numbers for practical use with a legend skilled shooter.

So lets go back to our AK-47 now, from the simulation model you should have something close to a maximum reach of 700m with a trajectory time of 2.9s.

The 2.9s you guess where it goes, I know it's much higher than standard BF2 TL, but the whole BF2 ballistics in general is different cause it doesn't exist, basically all the weapons have the same velocity and they adjusted the reach of each one using the time to live function to make one type of bullet die before the other.

So let's put original M4 spec in the simulation and see what happen:

Velocity = 1000 / TL 0.5s at 2 degree elevation the bullet will be traveling at a 10m height in direction of the target when suddenly at 323m it will disappear. Magic bullet. The M24 sniper rifle has the same velocity as the M4 but a time to live of 1 so it dies at 500m. None would ever hit that 800m target, sorry myths!

Yeah Lets go ballistic! That means you will have more objects with physics, geometry and ai computed at the same time, exactly the kind of object that BF loves most. So if you have other different effects, rain, wreck fires, smokes all over... be sure they all are well tuned so they don't live more than necessary, at frequencies that don't make any difference.

Oh the Ak! alright alright

So for now we have:

ObjectTemplate.velocity 715
ObjectTemplate.timeToLive CRD_NONE/2.9/0/0

a maximum reach of 700m and a projectile mass of 123g

On to the Damage model

I will also divide this in tree classes to make things easier, you can do that for as many calibers you whish.

Handguns/smg silenced
Projectile mass = 40g-120g
Velocity = 250-450ms
Energy = 300-650J
Damage Normalizing Factor (DNF) = 25
Caliber 45 Auto / 9mm Luger
Maximum practical range = 360m

Assault rifles
Projectile mass = 60g-120g
Velocity= 450-750ms
Energy = 650 - 1500J
Caliber 7.62x39
Damage Normalizing Factor (DNF) = 48
Maximum practical range = 700m

Long range rifles / Sniper
Projectile mass = 130g-180g
velocity = 750-1100ms
Energy = 1500J - 5000J
Caliber 300 Win Mag / 7.62x51 DMR (308 win SF)
Damage Normalizing Factor (DNF) = 34
Maximum practical range = 890m

The Damage Normalizing Factor, were attained crossing the damage in BF2 vanilla weapons with the real weapons energy according to the chart on first link. The method used was cross interpolation using the average effective range for each class above. Those factors will translate the real weapon energy into BF2 damage at their respective effective range of use. If you decrease them, you will have more damage than vanilla and if you increase it, less.

So let's go back to the Ak47 now, we have the project velocity from ballistic chart, maximum effective range of 700m from the simulation model, 2000J of energy at the muzzle and a Normalize Factor of 46, so lets make the damage model now.

First open up your ballistic calculator (link 2), than you fill it with your projectile mass and velocity accordingly with the ballistic chart (link 1), in the case of the AK 47 that would be 715ms with a bullet mass of 123g, set the maximum range to 2.000m and calculate, you will find that the energy in the muzzle will be around 2040J and around 620J at it's maximum effective range of 700m.

So on for the AK-47:

ObjectTemplate.velocity 715

ObjectTemplate.timeToLive CRD_NONE/2.9/0/0
ObjectTemplate.hasOnTimeEffect 1
ObjectTemplate.tracerScaler 10
ObjectTemplate.maxTracerScaler 60
ObjectTemplate.minTracerScaler 1
ObjectTemplate.tracerSizeModifier 3
ObjectTemplate.tracerTemplate p_tracer_r
ObjectTemplate.tracerConvergeDistance -1
ObjectTemplate.tracerInterval 1
ObjectTemplate.minDamage 620/48 = 13 (Divide the energy at the maximum effective range by the DNF)
ObjectTemplate.damage 2000/48 = 42 (Divide the energy at the muzzle by the DNF)
ObjectTemplate.distToStartLoseDamage 0
ObjectTemplate.distToMinDamage 700 (Maximum practical reach)


Now lets compare this with the original AK47 damage model

ObjectTemplate.timeToLive CRD_NONE/0.5/0/0
ObjectTemplate.material 38
ObjectTemplate.minDamage 0.2
ObjectTemplate.damage 38

Velocity = 1000

Well I don't even know how is that supposed to work, but if you try to hit a target at 499m it will give you a damage of 0.2 and at 500m the bullet will simply die before hitting the target. If you go back and check the ballistic chart again you will see that the AK still having 800J at 500m if you are compensating your drop. That's about 40% of the original energy/damage and if we take the original 38 of damage as reference that minimum damage value should be 15 at the maximum range and not 0,2.

With the new model the Ak will have a damage of 42 in the muzzle, 33 in a 175m range, 23 in a average effective range of 350m and 13 of minimum damage at its maximum effective range of 700m.

So that way we maintain the magnitude of BF2 damage system but scaling accordingly with each weapon real ballistic energy, so each weapon will behave and variate it's damage as the real ones.

Following the same technique we will have:

9mm handgun
ObjectTemplate.timeToLive CRD_NONE/1.9/0/0
ObjectTemplate.minDamage = 334/25 =13
ObjectTemplate.damage= 500(J)/25(DNF) = 20
ObjectTemplate.distToStartLoseDamage 0
ObjectTemplate.distToMinDamage 360

ObjectTemplate.velocity 330

300 Win Sniper
ObjectTemplate.timeToLive CRD_NONE/3.25/0/0
ObjectTemplate.minDamage 1980/28 = 36
ObjectTemplate.damage = 4800/34 = 141
ObjectTemplate.distToStartLoseDamage 0
ObjectTemplate.distToMinDamage 890

ObjectTemplate.velocity 1000

The only unrealistic stuff is that we kept it at BF2 standards for damage in each weapon class so we can have the same cool gameplay. The assault rifles are a bit underpowered in relation to the handguns. And all classes are underpowered when we take the reality into consideration.

There is 2 ways to make all the classes scale the same as the real ones in the same rate. And make the model 100% realistic.

The first one is to make the handguns behave as BBs using the average DNF of 34 for all classes, so we keep the BF2 damage standards and the weapons damage effectiveness scaling almost exactly as the real ones for all the classes but with a different magnitude than reality, which is the BF2 magnitude. That way the handguns would be very weak and the assault rifles much higher than BF2 standards so it means that at 180 distance you would need 4 shots with an AK-47 assault rifle to put some one down or 15 shots with a handgun at the same range, they are both unrealistic but the rifle gets much more powerful than it is on BF2 and the handguns even weaker than they were. The second way, and the most realistic one, would be to use a DFR of 10 for all weapons and have the real energy directly translated to damage in all classes, that would mean that a handgun would need 5 shots to put some one down at 180m, an assault rifle less than 2 shots and a sniper would have you killed twice at that distance.

If you got shoot by an 9mm at 180mm once, you will probably not be able to move as before but you got 75% chance of survive and probably one of your 4 members would ger fucked up (25%), 4 shots of a 9mm even at 180m will drop you dead with 90% of certain. That is the most realistic model, but not sure if it is the most fun one. A single shot of an assault rifle at 10m distance could put you down for good. That's well aligned with the reality but not really fun for gameplay so I will keep the first model which follows BF2 characteristics for each class individually. We can't take the credit for them on the gameplay model which brought countless hours of fun for everyone that knows and tried the game.

[Sounds] M9 preview + info on more sound work

$
0
0
Hello! I'm Nightfall, and I am a video game sound designer/audio engineer. I am working on some sounds for Project Reality with the goal of making things realistic, industry-standard levels/eq etc., and still able to influence excitement without sounding too "Hollywood" (hence the Reality part of things). I've been around and fired more firearms than I can even count, and I've recorded everything from the ocean waves to fighter jets flying 40 feet above ground level and all sorts of explosions and other loud sounds. I have worked on tons of mods and have had some of my free content used in games on Steam, including No More Room in Hell (2009-2012) and Space Pirate Trainer (2017).

My goal as explained above is to make things sound more realistic, more powerful, and just generally better where/when needed. This being said I admire and love the work of Anders, and he is an amazing sound designer. I've just noticed some things that could be changed here and there.

To start things off, I'd like to demonstrate one of the sounds I am working on in my spare time. The following video shows a first attempt at creating an interior firing sound for the M9. In real life, things tend to change quickly in the world of sound when firing in one environment versus another. Much of the time, when a firearm is fired indoors, the reverberation and immediate reflections around the shooter tend to significantly amplify the loudness and perception of the pressure wave emitted from such a powerful force. I try to demonstrate this chaotic effect in my video.

Content used to create these sounds comes from myself, zapsplat.com, and freesound.org. These are all permitted for use in my work.

P.S. The room tone for that area of the carrier was created via shoving a drum microphone inside my computer case and pointing a movie dialogue microphone at a vacuum motor, and then edited and manipulated beyond recognition :P.

*VOLUME WARNING*

[Help!] BF2 Mod Toolkit Download

$
0
0
I'm trying to download the BF2 Mod Toolkit. I've never used it, but I heard it is quite good at importing/ exporting detail and color maps into the editor.

I guess it's just a python that stitches and splits the .dds files, but I'd like to try it out. Maybe it's better than the bf2 tsplit command prompt I'm using now.

The link where you can usually find it;
Graphic Reality

doesn't download for me. It's probably very old and broken. Does anyone know of a better download site or have the .exe that they can give me?

[WIP] [Weapon] M2 Carl Gustaf

$
0
0
Hello. My attempt of this recoilless rifle. What i've done so far:





















used refs

tricount = ~9k.

What left: 3d scope(need refs :P ), ironsight(waiting calibration maybe?) and float geometry for normals.

Need help with Gmax

$
0
0
Couldn't find any working and safe 3dsmax 9 downloads except for one in uif format, but none of the right instruction materials I can find are for gmax.

http://imgur.com/R1M6WTU

How to add Custom Sounds to PR

$
0
0
Hello!

I'm new to this Form and I have no Idea where to post that Thread. I hope you are not going to delete this Thread just because I posted it at the wrong place.

Anyways, I need your help. I have the standalone version of PR and I've been playing it sience 3 years now.
BUT (for Singleplayer only,) I want to change some Weapon sounds. The G36 for exapmle.
So I found the Folder with all of the WAV files.

Volume D:>Programs>Project Reality BF2>Mods>PR>Content>objects_weapons_client.zip\wea pons\handheld\gerrif_g36\sounds

There are Indoor, Outdoor (..) sounds of course. At first I only want to change the Outdoor sound.
So I created my own WAV File (my own G36 Sound) and renamed it g36_1p.wav. That way, I could simply Overwrite that sound.
I made Backups of course.

I Booted up PR, loaded a German Map (Lashkar Valley) and My G36 makes no sound. I have no Idea What I have to do in order to hear my custom sound ingame.
I also changed a TWEAK files, to make that sound louder, but that did not work too. I changed that TWEAK file to original after that.
Also, I know about this 'Looping effect' you have to add in order to hear your gun firing in Full Auto.

I hope you can help me with my Problem.
Cheers

2-side faces in PR

$
0
0
Hello,
how to display texture on both sides of 1 face?
I've tryed same texture(camonet.dds) and hierarchy, but looks it doesnt work :(



Blender for PR Modelling?

$
0
0
Hello there folks,

I decided, for my first foray into modelling ever, I want to model the Sig Sauer M17/M18 MHS because I own a P320 that I can use for references and because it would be cool to see it in game with the US Army. I've been working in Blender so far, so I have to ask; is it possible and/or feasible to import models from Blender 2.78 to 3DSMax 9, or otherwise get them into the game? Or should I turn away from the 2 hours I've spent in Blender and somehow try to find a copy of 3DSMax 9?

Experimental updated 3dsMax Tools. Newer Max versions support and more.

$
0
0
Hey all,

sometime last year I started playing around with the 3ds Max tools code to accelerate my workflows.
This somehow escalated into much more than just little tinkering and might now be useful to other modders out there as well.
You can download the full install here: 3dsMaxBF2Tools045b.zip

To install, extract the contents of this folder into your "\Autodesk\3ds Max 9\" folder, overwriting anything you have there already in that folder and restart max.

If you want to use the tools is a different max version, you can just extract the contents into the appropriate folder as well.
However I recommend (and prefer for myself as well) to instead create symbolic links for /plugins/bf2_mat_staticmesh2.ms and the entire /scripts/bf2/ folder (will add how to do this here later).
This way settings will be carried over between max versions, and you don't need to worry about updating both independently.

Some of the changes require tutorials of their own (being worked on, will post them as soon as they're ready), but for now I can give a brief summary of the changes and additions:
  • Support for other Max version newer than Max 9 (Tested so far with max15 and max16, anything in between 9 and 16 and probably also newer ones should also work)

  • New Importer (for all other versions, selectable for Max 9)

    Correct material import: Setup BundledMesh/StaticMesh Materials
    - Only relative texture paths (-> Setup places mods folder in User External Paths)
    - Alpha displayed after import (also for LMing)
    - OG Import: Twosided and transparency for all materials with only base texture (also for LMing)
    - Downside, however is that the new exporter (entirely in maxscript) is somewhat slower than the original importer (written in max SDK). However maxscript is compatible between almost all max versions, and is easily changed, while max SDK is compiled and therefore inaccessible.

    Spoiler for Image of imported Static (directly after import, no manual material changes):



  • Alpha Selection in BF2 Materials
    Alpha Transparency Modes (No Alpha, Alpha Blend and Alpha Test) can now be selected for each BF2 Material (BundledMesh and StaticMesh Materials).
    The Material name is automatically appended with the correct prefix, and the transparency is displayed in the viewport.

  • Changes to the Exporter:


    Checkbox to not create a new directory during exports of bundledmeshes, staticmeshes (i.e. export directly into the current directory, as is default e.g. with animations)

    Remove Root Bone Checkbox now stays saved for each scene. (Important during 3P animation export)

    Lightmap Sample Generation: By default, Lightmap samples are now generated à la BfMeshView (by a small console app that contains BfMeshView's Sample generation code). Which Generator is used (BfMeshView or Original) can be selected in the Setup Menu.
    With BfMeshView it's possible to generate custom sample sizes (e.g. 128*64) straight from the max scene, as well generate custom-defined different sizes for each LOD using the "User" option. In this case each LOD node has to be suffixed with the desired size (e.g. lod0_256 or lod2_64*32).

  • Animating (FH2 Animation Tools in Utilities):
    Easier Handheld Animation Import:
    Pick Animation, (for 3P only: also lower body animation if required) and weapon mesh
    -> Imports everything into one scene correctly aligned and animated
    -> Also option to automatically set up IK chains and controllers (FH2-Style)

    Spoiler for Short Tutorial for 1P/3P Animation Import and Setup:


    This Tool is an extension of the existing Animation Import.
    In addition to importing the .baf it loads it straight into a hand/body scene, and additionally imports the requested handheld weapon mesh and aligns it to the .baf

    The following steps make up the import process:

    1. Click on the uppermost "Get" and navigate to the animation you want to import. (Both 1P and 3P are possible)
      In this example I'll be importing a crouch movement animation for the Lee-Enfield No4.


    2. (Only applicable for 3P Animations)
      Since most 3P animations are split into upper body (specific for each weapon) and lower body animation (shared among all weapons), it may be helpful to also import the corresponding lower body animation.
      If a 3P animation was selected in the first step, the tool tries to find the corresponding lower body animation. If you want a different one, or it didn't find the correct one, you can still change it by clicking on the 2nd "Get".
      In the example, it correctly picked the lower body baf, so I won't touch it.



    3. After having selected an animation in step 1, the tool will look for what it thinks is the corresponding the weapon mesh.
      If you want a different one, or it didn't find the correct one, you can still change it by clicking on the 3rd "Get".
      In the example, I'll want to confirm if the No4 animations work fine for the No1 SMLE (since they share the same animations), so I'll change the automatically found No4 to the SMLE.



    4. Click on import and a scene with all items will load. The scene is currently a bare-bones (no pun intended) animation setup, with none of the tools and controllers that are actually used during animating.
      Before we can actually with an animation, we need those setup. This is usually the first step in creating any animation.
      Luckily the tool can also take care of that for us. After importing, there will be a Message, asking whether we want to Setup Animation controllers.
      This leads to the next step:



    5. After clicking yes, we can setup animation hierarchies in the way we prefer. This is usually up to the animator's choice.
      In the example, I'll want all weapon meshes, as well as the hand controllers (which the tool created after clicking on "Yes") to be parented under the main weapon mesh.
      The hierarchies here can also be time-dependent, i.e. controlled through Link Constraints (Link Params Section in the Hierarchy Tab), e.g. for Reload Animations.
      Note that until the hierarchies setup is complete, the hands movement might differ from the final animation.



      Once the hierarchies are all setup, after clicking on "Continue" in the FH2 Animation Tools Dialog, we'll end up with the correct animation, as well as hand controllers (IK chains parented under hexagons, FH2-style).



    There is of course still the issue that exported animations have keys on every frame. Unfortunately there's no magic solution to get the original keys back.
    So you'll still have to reduce those manually (e.g. in trackview) to be able to change complex movements.
    Alternatively you can try to use Soft Selection in the track view, or to superimpose new movements using dummies in the hiearchy.





    Automation System for 3P animating:
    Derive Animation Systems from templates (e.g. one template for all handheld weapons)
    Basic Idea: General movements stay the same for almost all anims. Anims differ only in relative weapon position (to body), and hands and fingers on the weapon.
    -> Pick Template, define Still Weapon position, hand and finger positions. Tools then transfer those to an existing 3P Animation set exports and saves everything.
    Reload and zoom might (most probably) need manual correction, but over 90% of animations already done!
    (Tutorial also underway)

    Plus some one-click buttons for common (in my workflow at least) operations during animating.

    Spoiler for Image of new FH2 Animation Tools Dialog:



  • Lightmapping:
    Disclaimer: I don't have a mapping background and mostly stick to coding/modelling, so if somebody wants to weigh in on this process with requests or recommendations, they're more than welcome!

    Following Rhino's excellent tutorial, the lightmap process is now a bit more streamlined.
    An updated tutorial, taking into account the new changes is in work, but for now the major changes:

    Converting your Overgrowth to Static
    This step is no longer necessary, use the Load Overgrowth Button, then find Overgrowth/OvergrowthCollision.con to import OG straightaway.

    3DsMax LMing Scene Setup
    The recommended unit setup is now set automatically when opening the LM dialog.

    Importing Your Terrain into 3DsMax
    If a minimap exists, it is now automatically applied to the terrain.
    Note that a 2nd terrain is loaded and hidden in which the sealevel is applied automatically (which is needed later on).

    Importing Your Statics into 3DsMax
    Static children are now loaded as well. Also, when using the alternate importer alpha textures are applied correctly automatically.
    There's also a bunch of new settings in _Settings/StaticObjects_Import.con which can be used to further the streamline the process
    (E.g. automatically create point light sources for specific object templates)
    DestroyableObjects are now loaded and lightmapped automatically as well.

    Cleaning Up Your Objects
    OG and other objects that only cast but dont receive shadows are automatically stripped of their hierachies.
    BundledMeshes should now import correctly as well (and remain only with their lod0)

    Creating Reference, Shadow Casting Objects and Replacing Objects with Reference Objects
    This should all be managed automatically with alternate import, so no need to manually apply alpha and instantiate objects anymore.
    OG leafs are imported with a two-sided material, meaning that cloning, detaching and inverting the faces is no longer necessary.

    Spoiler for Image of OG object automatically imported (with alpha and two-sided) for LMing:



    Sorting out your Statics for Lightmapping
    Upon Importing of StaticObjects, Lightmap sizes are now automatically assigned (if samples for each object are present).
    Objects which have "GeometryTemplate.doNotGenerateLightmaps 1" set in their tweak file will automatically be prevented from lightmapping.
    DestroyableObjects now also have their Geom1 displayed in the Lightmap size file. Geoms are separated by a "|".

    Note that the tweak files are only read for those objects that are being imported. If the "Build Sizes File From:" button is used (which collects ALL sample files in the entire mod directory), .tweak files are not read and "GeometryTemplate.doNotGenerateLightmaps 1" is not handled.

    Importing your Sun & Preparing your Lights
    Sunlight, Skylight and Ambient Fill Lights are now loaded all at once, all with their colors already setup for simultaneous lightmap rendering.
    Sunlight is fit according to the mapsize. Intensity parameters are estimated, however this should still be checked and determined by the user in most cases.
    Note that a WaterLight (needed later) is also created and hidden.

    Terrain Sun & Sky Lightmaps and Terrain Sea Water Depth/Transparency Lightmap
    The "Render Terrain" Button now automatically creates a complete lightmap in the specified /terrain/ folder.
    The generated .tga lightmap can then be split and converted into the terrain patches required for bf2 by using the "Split Terrain File" Button.
    If uniform patches (i.e. no discernible differences over the entire image, e.g. for maps with lots of ocean floor) are found, they are automatically reduced to 8x8 textures.

  • Overgrowth Lod Creator:
    A small and lightweight tool to automatically create flat plane lods for overgrowth meshes.
    UV layout is automatic as well though, which is often not very efficient.
    Small tutorial to follow

Feedback, questions, bug reports and comments are always welcome!

[WIP][STATIC] House

$
0
0
The doors are 2m high and the builing is 15x22x12 m Approx. Ground floor ceiling is 3m high.Proposed static.




Thanks!
Viewing all 924 articles
Browse latest View live