grangerhub / tremulous-game-logic Goto Github PK
View Code? Open in Web Editor NEWGame logic for Tremulous, maintained by GrangerHub
License: Other
Game logic for Tremulous, maintained by GrangerHub
License: Other
Human bots will sometimes randomly shoot at the walls or attempt to shoot through walls and has the ability to detect enemies in a nearby radius that wouldn't normally be visible. If the enemy is not visible, the bot should not shoot.
Upon getting stuck, bots will keep firing until all their ammo is gone after seeing an enemy.
Upon an enemy attacking at the bots feet, or nearby the bot will randomly shoot in all directions.
Aliens like marauder are able to jump directly past the RC without being zapped, or the zap does like 0 HP of dmg.
When running /give all or /give in the console with devmode on, you would automatically be de-spawned as if you died, no death messages.
While charging for a pounce, allow left click to be used to reduce the pounce charge.
For example:
'l', 'I', '1', and '|' would all resolve to l.
' ', '.', '-', and '_' would all resolve to '' (that is they would be removed characters).
Bots will randomly get stuck on a part of the map and keep doing random movements not getting unstuck or staying in a corner getting stuck on buildables. Human bots will constantly crouch or jump in the stuck position and with a bsuit just walk into the object and not turn and keep jumping. Alien bots will keep wall walking onto that one stuck position and not find a way out.
Dretch is able to jump onto the slide and bhop/repeatedly jump to travel up it, but can't walk up the slide with wall walk. Also, once wall walk is enabled on the slide, the dretch is unable to jump
Redo the dev environment setup with tup.
Fix the overlay vision transitions when changing the players you follow as a spectator.
Bot path nodes aren't being placed but instead either don't show up at all after doing /pnode add
or just vanish after a couple of seconds. g_pathediting
is enabled at the time. I tried this on Kraith in the elevator room where there is no path there and got the issue there, I tried on other parts of the map and ended up with the same issue.
Implement a bot goal queue to activate buttons for doors, similar to that used by aas.
Suggestion for some sort of fix, or perhaps overhaul or renewal of our fist person models, the Dragoon first person models aren't even visible even though we have them, the Marauder is perhaps the only most defined other than the Tyrant's first person claws and somewhat of the basilisks, it just feels like you're a floating gun shooting or a floating HUD that magically damages enemies when you click,
Gun recoil/kickback consistently readjusts aim "down" & "left" from where you're aiming instead of "up" (expected behavior)
(Avarthar:)
The bots seem to not aim Up or Down when targeting the path nodes. It only rotates towards it, but doesn't target it per say. Meaning it might have trouble getting into it. Maybe having a small sub-local temp pathing system or a node connected to the bot's model that would detect if there is an obstacle so it goes back on a better path. (I was watching aliens on Narrow_Edge when it happened first. but then I watched humans as well, it happens too.)
When at a low amount of HP the human bot doesn't use the medkit it has.
Finish fixing up the prediction for rotator movers, using ioq3's corresponding fix.
ioquake/ioq3@33a899d
ioquake/ioq3#381
Fix alien buildable stacks falling apart on movers when blocked
Human bots should throw their grenades when near death instead of just when there are multiple buildings around or if there are multiple aliens around or when there is a tyrant as a last resort instead of dying with the grenade.
have the primary attack for the md charge to penetrate targets and/or reflect off of map surfaces. at minimal charge the md just has a single impact at max impact damage. Require a minimum additional charge to penetrate/reflect, and any additional charge applies to the damage to the next target depending on the amount of additional charge up to the max impact damage. Allow additional penetrations/reflections up to the max charge.
Implement the laser trip mine
Slow the jet down to a more reasonable speed, and have the jet thrust gradually decrease when turned off.
Would fire as a short to mid range projectile (shorter range than the goon barb, but longer than just dropping). It wouldn't bounce, and on impact would shoot out acid in the same way as the planned acid pool acid of the acidtube, but perhaps with more "concentration" since it is a bomb explosion, and not fired in an ongoing way like the acid tube. The rant would only have one acid bomb at a time and it would have a decent regen period (perhaps equivalent to the time it takes a goon barb to regen 3 times). This is meant to be a ranged attack on the human base to weaken buildables before the rant goes in to finish at least some of the buildables off.
Make use of a similar effect for the explosion of alien buildables that are killed to allow for some residual acid damage on nearby areas.
Fix spectors seeing the void when passing through doors with area portals.
On the bot testing server that @dGr8LookinSparky made, the jetpack smoke was able to go through the floor.
Remove the lifesupport/hivemind cutting feature.
Have clients following other clients stop following on disconnect
When a player ejects a grenade from the launcher, they will be unable to buy a single grenades at the armory until their ejected nade explodes. Expected behavior is to only consider individual purchased grenades with the spam protection.
Get wall jumping to work with the mara bot
Note: this should only be started after this issue is complete: #140
The reserve BP display on the UI is too large for the circle area it is displayed inside of
Implement a new disabled buildable for use only by bot path node.
The right thing to do is to seperate the path node entity code from the buildable entity code completely.
test
The bot doesn't release the Luci charge blowing it up on itself.
Building the game only code (BUILD_CLIENT=0 BUILD_SERVER=0
) is broken. Probably broken in other ways too. We should not have a requirement on building the entire repo as it requires cloning the deps repo which sucks.
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bld/out/gpp_11/cgame.dylib] Error 1
LD bld/out/gpp_11/ui.dylib
Undefined symbols for architecture x86_64:
"_Cvar_VariableStringBuffer", referenced from:
_BG_InitAllowedGameElements in bg_misc.o
(maybe you meant: _trap_Cvar_VariableStringBuffer)
"_FS_FCloseFile", referenced from:
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
(maybe you meant: _trap_FS_FCloseFile)
"_FS_FOpenFileByMode", referenced from:
_BG_VoiceList in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
_BG_LoadEmoticons in bg_misc.o
"_FS_GetFileList", referenced from:
_BG_VoiceList in bg_voice.o
_BG_LoadEmoticons in bg_misc.o
(maybe you meant: _trap_FS_GetFileList)
"_FS_Read2", referenced from:
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
"_Parse_FreeSourceHandle", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseError in bg_voice.o
"_Parse_LoadSourceHandle", referenced from:
_BG_VoiceParse in bg_voice.o
"_Parse_ReadTokenHandle", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
_BG_VoiceParseTrack in bg_voice.o
"_Parse_SourceFileAndLine", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
_BG_VoiceParseError in bg_voice.o
(maybe you meant: _trap_Parse_SourceFileAndLine)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bld/out/gpp/ui.dylib] Error 1
LD bld/out/gpp_11/cgame.dylib
Undefined symbols for architecture x86_64:
"_Cvar_VariableStringBuffer", referenced from:
_BG_InitAllowedGameElements in bg_misc.o
(maybe you meant: _trap_Cvar_VariableStringBuffer)
"_FS_FCloseFile", referenced from:
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
(maybe you meant: _trap_FS_FCloseFile)
"_FS_FOpenFileByMode", referenced from:
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
_BG_LoadEmoticons in bg_misc.o
_BG_VoiceList in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
"_FS_GetFileList", referenced from:
_BG_LoadEmoticons in bg_misc.o
_BG_VoiceList in bg_voice.o
(maybe you meant: _trap_FS_GetFileList)
"_FS_Read2", referenced from:
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
"_Parse_FreeSourceHandle", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseError in bg_voice.o
"_Parse_LoadSourceHandle", referenced from:
_BG_VoiceParse in bg_voice.o
"_Parse_ReadTokenHandle", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
_BG_VoiceParseTrack in bg_voice.o
"_Parse_SourceFileAndLine", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
_BG_VoiceParseError in bg_voice.o
(maybe you meant: _trap_Parse_SourceFileAndLine)
"_qsnapvectorsse", referenced from:
_PmoveSingle in bg_pmove.o
LD bld/out/gpp/game.dylib
Undefined symbols for architecture x86_64:
"_Cbuf_ExecuteText", referenced from:
_G_MapConfigs in g_main.o
_G_InitGame in g_main.o
_ExitLevel in g_main.o
_G_LevelRestart in g_main.o
_G_ExecuteVote in g_main.o
_Svcmd_LayoutLoad_f in g_svcmds.o
_G_IssueMapChange in g_maprotation.o
...
"_Cmd_AddCommand", referenced from:
_G_RegisterCommands in g_svcmds.o
_G_admin_register_cmds in g_admin.o
"_Cmd_Argc", referenced from:
_ConcatArgs in g_cmds.o
_ConcatArgsPrintable in g_cmds.o
_Cmd_Give_f in g_cmds.o
_Cmd_VSay_f in g_cmds.o
_Cmd_SetViewpos_f in g_cmds.o
_Cmd_Follow_f in g_cmds.o
_Cmd_ListMaps_f in g_cmds.o
...
"_Cmd_ArgvBuffer", referenced from:
_ConcatArgs in g_cmds.o
_ConcatArgsPrintable in g_cmds.o
_Cmd_Team_f in g_cmds.o
_Cmd_VSay_f in g_cmds.o
_Cmd_CallVote_f in g_cmds.o
_Cmd_Ready_f in g_cmds.o
_Cmd_Vote_f in g_cmds.o
...
"_Cmd_RemoveCommand", referenced from:
_G_UnregisterCommands in g_svcmds.o
_G_admin_unregister_cmds in g_admin.o
"_Com_Error", referenced from:
_G_RunThink in g_main.o
_BG_EvaluateTrajectory in bg_misc.o
_BG_EvaluateTrajectoryDelta in bg_misc.o
_BG_UnpackEntityNumbers in bg_misc.o
_BG_MemClassNumFromChunkSize in bg_alloc.o
_BG_MemClassNumFromAdress in bg_alloc.o
__BG_StackPoolAlloc in bg_alloc.o
...
"_Com_Printf", referenced from:
_vmMain in g_main.o
_G_FindTeams in g_main.o
_G_InitGame in g_main.o
_G_LogPrintf in g_main.o
_G_ShutdownGame in g_main.o
_G_PrintSpawnQueue in g_main.o
_BG_ParseBuildableFile in bg_misc.o
...
"_Com_RealTime", referenced from:
_G_InitGame in g_main.o
_G_admin_adjustban in g_admin.o
_G_admin_time in g_admin.o
_G_admin_unban in g_admin.o
_G_admin_match_ban in g_admin.o
_G_admin_ban_message in g_admin.o
_admin_writeconfig in g_admin.o
...
"_Cvar_Register", referenced from:
_G_RegisterCvars in g_main.o
"_Cvar_SetSafe", referenced from:
_G_RestoreCvars in g_main.o
_G_MapConfigs in g_main.o
_G_InitGame in g_main.o
_G_CalculateStages in g_main.o
_G_CalculateAvgPlayers in g_main.o
_CalculateRanks in g_main.o
_ExitLevel in g_main.o
...
"_Cvar_Update", referenced from:
_G_UpdateCvars in g_main.o
_G_LevelRestart in g_main.o
_G_RewardAttackers in g_combat.o
_G_ClearRotationStack in g_maprotation.o
_G_PopRotationStack in g_maprotation.o
_G_SetCurrentNodeByIndex in g_maprotation.o
_G_StartMapRotation in g_maprotation.o
...
"_Cvar_VariableIntegerValue", referenced from:
_G_MapConfigs in g_main.o
_G_InitGame in g_main.o
_ClientConnect in g_client.o
_G_UpdateBuildableRangeMarkers in g_buildable.o
_G_admin_print in g_admin.o
"_Cvar_VariableStringBuffer", referenced from:
_G_InitGame in g_main.o
_ExitLevel in g_main.o
_LogExit in g_main.o
_G_LevelRestart in g_main.o
_G_ExecuteVote in g_main.o
_BG_InitAllowedGameElements in bg_misc.o
_Cmd_CallVote_f in g_cmds.o
...
"_FS_FCloseFile", referenced from:
_G_ShutdownGame in g_main.o
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
_G_NonSegModel in g_client.o
_G_LoadCensors in g_cmds.o
_G_InitDamageLocations in g_combat.o
_G_LayoutSave in g_buildable.o
...
"_FS_FOpenFileByMode", referenced from:
_G_InitGame in g_main.o
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
_BG_LoadEmoticons in bg_misc.o
_BG_VoiceList in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
_G_NonSegModel in g_client.o
...
"_FS_GetFileList", referenced from:
_BG_LoadEmoticons in bg_misc.o
_BG_VoiceList in bg_voice.o
_Cmd_ListMaps_f in g_cmds.o
_G_LayoutList in g_buildable.o
"_FS_GetFilteredFiles", referenced from:
_G_admin_gamedir in g_admin.o
_G_InitPlayerModel in g_playermodel.o
_G_GetPlayerModelSkins in g_playermodel.o
"_FS_Read2", referenced from:
_BG_ParseBuildableFile in bg_misc.o
_BG_ParseClassFile in bg_misc.o
_G_NonSegModel in g_client.o
_G_LoadCensors in g_cmds.o
_G_InitDamageLocations in g_combat.o
_G_LayoutLoad in g_buildable.o
_G_ParseMapRotationFile in g_maprotation.o
...
"_FS_Write", referenced from:
_G_LogPrintf in g_main.o
_G_LayoutSave in g_buildable.o
_admin_writeconfig in g_admin.o
_admin_writeconfig_int in g_admin.o
_admin_writeconfig_string in g_admin.o
_G_SavePlayMapPool in g_playmap.o
_G_SavePlayMapQueue in g_playmap.o
...
"_Parse_FreeSourceHandle", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseError in bg_voice.o
"_Parse_LoadSourceHandle", referenced from:
_BG_VoiceParse in bg_voice.o
"_Parse_ReadTokenHandle", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
_BG_VoiceParseTrack in bg_voice.o
"_Parse_SourceFileAndLine", referenced from:
_BG_VoiceParse in bg_voice.o
_BG_VoiceParseCommand in bg_voice.o
_BG_VoiceParseError in bg_voice.o
"_SV_AdjustAreaPortalState", referenced from:
_Use_BinaryMover in g_mover.o
_Think_ClosedModelDoor in g_mover.o
_Reached_BinaryMover in g_mover.o
_G_RemoveEntity in g_utils.o
"_SV_AreaEntities", referenced from:
_G_TouchTriggers in g_active.o
_ClientThink_real in g_active.o
_G_FindActivationEnt in g_active.o
_SpotWouldTelefrag in g_client.o
_Cmd_SayArea_f in g_cmds.o
_G_SelectiveRadiusDamage in g_combat.o
_G_RadiusDamage in g_combat.o
...
"_SV_EntityContact", referenced from:
_G_TouchTriggers in g_active.o
_G_BuildableTouchTriggers in g_buildable.o
"_SV_GameDropClient", referenced from:
_ClientUserinfoChanged in g_client.o
_Svcmd_EjectClient_f in g_svcmds.o
_admin_create_ban in g_admin.o
"_SV_GameSendServerCommand", referenced from:
_G_UpdateCvars in g_main.o
_G_CalculateBuildPoints in g_main.o
_CheckExitRules in g_main.o
_G_AdminMessage in g_main.o
_G_LevelRestart in g_main.o
_G_LevelReady in g_main.o
_G_CheckVote in g_main.o
...
"_SV_GetConfigstring", referenced from:
_G_FindConfigstringIndex in g_utils.o
"_SV_GetEntityToken", referenced from:
_G_ParseSpawnVars in g_spawn.o
"_SV_GetServerinfo", referenced from:
_G_InitGame in g_main.o
"_SV_GetUsercmd", referenced from:
_ClientThink in g_active.o
_G_RunClient in g_active.o
_ClientSpawn in g_client.o
"_SV_GetUserinfo", referenced from:
_ClientSpawn in g_client.o
_ClientUserinfoChanged in g_client.o
_ClientConnect in g_client.o
_Svcmd_DumpUser_f in g_svcmds.o
_Svcmd_Status_f in g_svcmds.o
_G_admin_rename in g_admin.o
_G_admin_transform in g_admin.o
...
"_SV_LinkEntity", referenced from:
_G_LevelRestart in g_main.o
_G_UnlaggedOff in g_active.o
_G_UnlaggedOn in g_active.o
_ClientThink_real in g_active.o
_SpawnCorpse in g_client.o
_ClientSpawn in g_client.o
_Cmd_Noclip_f in g_cmds.o
...
"_SV_LocateGameData", referenced from:
_G_InitGame in g_main.o
_G_Spawn in g_utils.o
"_SV_PointContents", referenced from:
_SpectatorThink in g_active.o
_ClientThink_real in g_active.o
_SpawnCorpse in g_client.o
_G_Physics in g_physics.o
_G_Bounce in g_physics.o
_G_CanBuild in g_buildable.o
"_SV_SendClientGameState2", referenced from:
_Cmd_Delag_f in g_cmds.o
"_SV_SetBrushModel", referenced from:
_SP_func_door in g_mover.o
_SP_func_door_rotating in g_mover.o
_SP_func_door_model in g_mover.o
_SP_func_plat in g_mover.o
_SP_func_button in g_mover.o
_SP_func_train in g_mover.o
_SP_func_static in g_mover.o
...
"_SV_SetConfigstring", referenced from:
_G_InitGame in g_main.o
_G_ShutdownGame in g_main.o
_G_ClearVotes in g_main.o
_G_CalculateStages in g_main.o
_CheckExitRules in g_main.o
_ExitLevel in g_main.o
_LogExit in g_main.o
...
"_SV_SetConfigstringRestrictions", referenced from:
_G_UpdateTeamConfigStrings in g_team.o
"_SV_SetUserinfo", referenced from:
_ClientUserinfoChanged in g_client.o
_G_admin_rename in g_admin.o
_G_admin_transform in g_admin.o
"_SV_Trace", referenced from:
_G_UnlaggedDetectCollisions in g_active.o
_G_FindActivationEnt in g_active.o
_G_RoomForClassChange in g_cmds.o
_Cmd_Destroy_f in g_cmds.o
_Cmd_Reload_f in g_cmds.o
_CanDamage in g_combat.o
_G_Physics in g_physics.o
...
"_SV_UnlinkEntity", referenced from:
_G_RunFrame in g_main.o
_SpectatorThink in g_active.o
_SpawnCorpse in g_client.o
_ClientBegin in g_client.o
_ClientDisconnect in g_client.o
_G_Physics in g_physics.o
_G_PuntBlocker in g_buildable.o
...
"_SV_inPVS", referenced from:
_Team_GetLocation in g_team.o
"_Sys_Milliseconds", referenced from:
_CheckCvars in g_main.o
_G_RunFrame in g_main.o
"_qsnapvectorsse", referenced from:
_PmoveSingle in bg_pmove.o
"_sl_query", referenced from:
_G_InitGame in g_main.o
_G_ShutdownGame in g_main.o
_LogExit in g_main.o
_ClientDisconnect in g_client.o
_G_admin_maplog in g_admin.o
_G_admin_seen in g_admin.o
Allow bots to have the ability to use elevators, buttons, doors and other utility movemers to allow bots to use a map fully without trouble.
Rebase and cherry-pick the existing bot code to the current develop branch when ready.
Don't allow repeaters to be placed in power range of existing repeaters that are constructing.
Don't allow bots to be moved to a different team from the one they were initialized for.
Fix the autobalance restriction to account for bots in teams.
Create a method of death attributes array. Would specify attributes such as "ballistic", "Thermal", "Energy", "Chemical", "Biological", "Gas", "Liquid", etc. Should have a modifier for each of those for the class, buildable, and upgrade attributes.
(Avarthar:)
The bots ends up going in loops sometimes. Maybe the node path randomizing might be too random or not enough. Or some connections might be invalid or could maybe have an error. Maybe logging when the bot chooses a new node to go at would show us more.
Instead of triggering the death animation on the corpse model, the godmode/spawn protection shader is applied to the model (posthumously), but the animations don't change, so an exploding grenade launches a dead 'running' player or so
Always allow buildables that are still constructing to be deconstructed.
When standing near a wall (or objects like the armoury), even while looking slightly away from it, flame thrower hits something which causes self damage
Sayori has a problem where 1.3 doesn't want to accept his mouse for some reason.
He told me he tried a few things and he made sure it wasn't a windows update problem.
I even made him reinstall the whole driver for his mouse and apparently it won't work.
The mouse he uses: AULA ghost shark
This problem could be extending to other marks. He tried two mouses but he can't find the other one as he told me.
Personally I have no mouse problem with a Corsair M65 PRO RGB. But this problem might also just be related to AULA's.
Add a cvar that disables the advance mover buildable interaction for better performance, and when enabled make use of a smaller local "push type" array in G_TryPushingEntities() of only clients instead of the inefficient memsetting for the larger "push type" used for all entities (that is too large for the stack frame to initialize as a local variable).
Don't communicate the class model via configstrings to avoid sending readable information to the enemy team that shouldn't be sent.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.