Giter Club home page Giter Club logo

tremulous-game-logic's People

Contributors

alidrus avatar amanieu avatar cengique avatar cmf028 avatar dgr8lookinsparky avatar dkameoka avatar ensiform avatar icculus avatar inolen avatar jeremiah-sypult avatar jkent avatar jonathangray avatar lamefun avatar lnussel avatar norfenstein avatar nuclearmonster avatar pan7 avatar richard-allen avatar smcv avatar smiletheory avatar sploit avatar timangus avatar tjdub avatar undeference avatar wtfbbqhax avatar xembie avatar xhairball avatar xnmrphr avatar xycaleth avatar zturtleman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

tremulous-game-logic's Issues

Bot movemer support

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.

First person model overhaul/renewal/fix

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,

Human bot shooting

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.

Tremulous 1.3 bot pnode/path node vanishing or not being placed

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.

Port Some CoW Features and Implemented some relate improvements to the bot system.

  • Implement a navigational system based on CoW.
  • Change the nextid field in the path structure to a connection structure, giving each connection an optional action, and required abilities.
  • Adjust the action subcommand in the /pnode command to allow selection connections to set the per connection actions, and implement an array based look up function for the string representations.
  • Implement a similarly used "abilities" subcommand for permitted, required and excluded class abilities per connection, use exclude all to make a connection one way.
  • Adjust the path file format (in regards to both saving and loading), use "bot_path" files for the new format, and add a migrate command with an old version of the load function to migrate the old format.
  • Automatically calculate the max dimensions for a class to fit for a given path node location, cache this whenever a path node is added/loaded/moved.
  • Change the pounce function to pounce to a bot target supplied as an argument, based on the equation shown at https://en.wikipedia.org/wiki/Trajectory_of_a_projectile#Angle_%7F'%22%60UNIQ--postMath-0000003A-QINU%60%22'%7F_required_to_hit_coordinate_(x,y) .
  • Include the following kinds of pounces: shortest angle (for entity targets), greatest angle (for non-visible path nodes), min velocity (for visible path nodes).
  • Finish porting over CoW's think/modus/attack/etc functions.
  • Clean up the think function.
  • Appropriately use/adjust the functions in g_bot_control.c
  • Reformat the g_bot files.

Some Mouses not working on 1.3+

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.

Redesign the bot system

  • Read this pdf about the ioquake3 bots: http://www.kbs.twi.tudelft.nl/docs/MSc/2001/Waveren_Jean-Paul_van/thesis.pdf
  • Redesign the bot brian as a well organized FSM (perhaps as a UML State Machine), based in part on the ioquake3 bots and on the CoW bots.
  • Rework the path node navigational system to at least have the actions and class/weapon/upgrade restrictions automatically generated for each connection. After that works look into using A* for the path finding, and perhaps look into having the connections auto generated.

Bot going around in loops

(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.

Bot will not aim Up or Down when targeting a path node

(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.)

Bot movement

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.

Undefined symbols durring build

Undefined symbols

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.

ui.dylib

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)

cgame.dylib

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

game.dylib

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

Human bot grenades

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.

Implement charged penetration/relfection for the mass driver fire.

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.

Create a method of death attributes array.

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.

Implement a Tyrant acid bomb

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.

Finish generalizing the splatter pattern system

Note: this should only be started after this issue is complete: #140

  • Allow for specifying hitscan impact, vs missile explosion impact, vs missile run, vs missile launch.
  • Allow for specifying the pitch based yaw offset distribution.
  • Allow for specifying the pitch based yaw layers variation distribution.
  • Allow for specifying the start and end yaw layer distribution.
  • Allow for the option of specifying persistent impact pools with splash damage, splash radius, and repeat.
  • Allow for an optional damage over time from being damaged by a pool.
  • Allow for specifying the means of death for each kind of damage.
  • Allow for custom impact markers, impact particle systems, pool particle system, pool idle sounds, and pool damage sounds.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.