Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Source 2 fgd system #6

Open
wants to merge 2 commits into
base: mapbase
Choose a base branch
from

Conversation

Unusuario2
Copy link

@Unusuario2 Unusuario2 commented Feb 9, 2025

This PR splits up the fgd code base into several files. Why this is so useful? Makes iteration/creation much faster since it is very easy to find for example a post-procesing entity, it is worth noting that this adds another layer of organization for the engine (which source lacks) separating all sub modules of the engine into several files.

Also for steam release mods they can (or should) follow the source 2 organization fgd system. The base engine .fgds will be inside the platform folder which acts as "core" folder in s1. The halflife2.fgd will need to be in the hl2 or mod folder.

For example:
|- hl2 (or mod folder) [here it goes the halflife2.fgd or mod.fgd]
|- platform [here goes the models_base.fgd,lights.fgd, , ai_basenpc.fgd ,base.fgd, postprocessing.fgd]

To enable this feature (by default is not) just go in halflife2.fgd and follow the instructions in line 17.

NOTE: there is a small bug where hammer interprets a path with "/" to work but hammer ++ does it with "\", i will report this bug, for now see the halflife2.fgd line 20 for reference (this at this moment will only affect steam realised mods if they want to follow this organization system)

NOTE: the mapper/hammer user will not notice any diference, since these changes are for developers to have a better organization.

Split up:

         ai_basenpc.fgd : Defines AI classes and NPC entities for games.   
         base.fgd :  Engine basics common branch entities.  
         halflife2.fgd : hl2 entities.  
         lights.fgd : Defines entity classes to control lighting and shadows.  
         models_base.fgd : Defines Props classes and entities for games.   
         postprocessing.fgd :  Defines entity classes to control postprocessing  

@Unusuario2 Unusuario2 changed the title Source2 fgd system Source 2 fgd system Feb 10, 2025
@TeamSpen210
Copy link

Not sure why you want to arbitrarily copy Source 2 here, there’s lots of other differences. The specific categories are a little strange, it’ll make it harder to find any specific FGD entry. Why not use the prop_ etc prefix for example, that’s what my own database uses. Though I also compile mine down to a single file.

@Unusuario2
Copy link
Author

Unusuario2 commented Feb 11, 2025

Not sure why you want to arbitrarily copy Source 2 here, there’s lots of other differences. The specific categories are a little strange, it’ll make it harder to find any specific FGD entry. Why not use the prop_ etc prefix for example, that’s what my own database uses. Though I also compile mine down to a single file.

Because i want to follow as much as i can the source 2 organization (is is better) where all the core engine features are separated from the mod/game. In this case you can see the core features clearly and the mod/game. Also for uptading basic core stuff i feel this is better system.

Does it really matter to the hammer/mapper user? No, they will load hlaflife2.fgd as usual.

But at least for me is easier, if i release a game in steam using the source engine i want the core engine to be separated from the game/mod (because is easier to maintain), which something that source lacks. (platform: core engine, mod/hl2: game stuff)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants