Giter Club home page Giter Club logo

xna-cncnet-client's Introduction

CnCNet Client

The MonoGame / XNA CnCNet client, a platform for playing classic Command & Conquer games and their mods both online and offline. Supports setting up and launching both singleplayer and multiplayer games with a CnCNet game spawner. Includes an IRC-based chat client with advanced features like private messaging, a friend list, a configurable game lobby, flexible and moddable UI graphics, and extras like game setting configuration and keeping track of match statistics. And much more!

You can find the dedicated project development chat at C&C Mod Haven Discord server.

Targets

The primary targets of the client project are

However, there is no limitation in the client that would prevent incorporating it into other projects. Any game or mod project that utilizes the CnCNet spawner for Tiberian Sun and Red Alert 2 can be supported. Several other projects also use the client or an unofficial fork of it, including Tiberian Sun Client, Project Phantom, YR Red-Resurrection, The Second Tiberium War and CnC: Final War.

Development requirements

The client has 2 variants: .NET 4.8 and .NET 8.0.

  • Both variants have 3 builds: Windows DirectX11, Windows OpenGL and Windows XNA.
  • .NET 8.0 in addition has a cross-platform Universal OpenGL build.
  • The DirectX11 and OpenGL builds rely on MonoGame.
  • The XNA build relies on Microsoft's XNA Framework 4.0 Refresh.

Building the solution for any platform requires Visual Studio 2022 17.8 or newer and/or the .NET SDK 8.0.200. A modern version of Visual Studio Code, MonoDevelop or Visual Studio for Mac could also work, but are not officially supported. To debug WindowsXNA builds the .NET SDK 8.0 x86 is additionally required. When using the included build scripts PowerShell 7.2 or newer is required.1

Compiling and debugging

  • Compiling itself is simple: assuming you have the .NET 8.0 SDK installed, you can just open the solution with Visual Studio and compile it right away.
  • When built as a debug build, the client executable expects to reside in the same directory with the target project's main game executable. Resources should exist in a "Resources" sub-directory in the same directory. The repository contains sample resources and post-build commands for copying them so that you can immediately run the client in debug mode by just hitting the Debug button in Visual Studio.
  • When built in release mode, the client executables expect to reside in the Resources sub-directory itself for .NET 4.8, named clientdx.exe, clientogl.exe and clientxna.exe. For .NET 8.0, those executables will reside in Resources\BinariesNET8\{Windows, OpenGL, UniversalGL, XNA} folders, named client{dx, ogl, ogl, xna}.dll, respectively. Note that client{dx, ogl, ogl, xna}.runtimeconfig.json files are required for the corresponding dlls.
  • When built on an OS other than Windows, only the Universal OpenGL build is available.
  • The Scripts directory has automated build scripts that build the client for all platforms and copy the output files to a folder named Compiled in the project root. You can then copy the contents of this Compiled directory into the Resources sub-directory of any target project.
Development workarounds
  • If you switch among different solution configurations in Visual Studio (e.g. switch to TSUniversalGLRelease from AresWindowsDXDebug), especially switching between .NET 4.8 and .NET 8.0 variants, it is recommended to restart Visual Studio after switching configurations to prevent unexpected error messages. If restarting Visual Studio do not work as intended, try deleting all obj folders in each project. Due to the same reason, it is advised to close Visual Studio when building the client using the scripts in Scripts folder.
  • Some dependencies are stored in References folder instead of the official NuGet source. This folder is also useful if you are working on modifying a dependency and debugging in your local machine without publishing the modification to NuGet. However, if you have replaced the .(s)nupkg files of a package, without altering the package version, be sure to remove the corresponding package from %USERPROFILE%\.nuget\packages folder to purge the old version.

End-user usage

  • Windows: Windows 7 SP1 or higher is required. The preferred build is DirectX11 (.NET 4.8), i.e., clientdx.exe. If your GPU does not support DX11, consider using the OpenGL or XNA build instead. Advanced users may experiment with the .NET 8 builds at their discretion.
  • Other OS: Use the Universal OpenGL build.

End-user requirements

Windows .NET 4.8 requirements:

(Optional) The XNA build requires:

Linux requirements:

macOS requirements:

Windows .NET 8.0 requirements:

Windows .NET 8.0 requirements

(Optional) The XNA build requires:

Windows 7 SP1 and Windows 8.x additionally require:

  • Microsoft Visual C++ 2015-2019 Redistributable 64-bit / 32-bit.

Windows 7 SP1 additionally requires:

Client launcher

This repository does not contain the client launcher (for example, DTA.exe in Dawn of the Tiberium Age) that selects which platform's client executable is most suitable for each user's system. See dta-mg-client-launcher.

Branches

Currently there are only two major active branches. develop is where development happens, and while things should be fairly stable, occasionally there can also be bugs. If you want stability and reliability, the master branch is recommended.

Screenshots

Screenshot Screenshot

Footnotes

  1. How To Install PowerShell Core

xna-cncnet-client's People

Contributors

alexlambson avatar alexp8 avatar ayylmaorote avatar balcsida avatar belonit avatar crimsonum avatar devo1929 avatar dkeetonx avatar fongertastic avatar frg2089 avatar funkyfr3sh avatar graiondilach avatar grantbartlett avatar hejiajun107 avatar mahboideveloper avatar metadorius avatar mortonpl avatar pure-scum avatar pzhlkj6612 avatar rampastring avatar rans4cker avatar sadpencil avatar starkku avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xna-cncnet-client's Issues

Understanding Client

Hi, I'm started learning c# in my university and want to create client for ra2yr because client works better than original with windows 10 and ares.But I have few question
-- Project solution can create necessary ini,png files like the cncnet yuri client ?
-- Where can I find files list for client needed.
-- Im added new buildings but cncnet yuri client not see new buildings but when I try start game with ares works well.What I need to fix that ?

Question in Chinese localization.

Greetings, I'm a MO gamer in china.I'm trying to translation this DTAclient into Chinese version.
I try to compile a .SpriteFont file with Chinese characters.
But there still remains some problems.

qq 20170220092612

qq 20170220091508

I replace SpriteFont1.xnb in MO 3.3's Resources folder, and it's works a little.
From the pic above u can see, some text textures' font in UI have been changed,and other Chinese characters in list box, check box, etc. still have some problem. Some characters were replaced by question mark.

qq 20170220092556

Also, I try to chat in Chinese in multiplayer mode, still there are some characters remain in question mark.

qq 20170220095813

And here's my speculation:

  1. IT IS the default font this project use that cause the question mark issue. For example suppose we use font "Times New Romans" as client default font, when we type in Chinese character client could find only small part of these Font and others become question mark.
  2. Only small part of text textures use SpriteFont files, and it helps a little in online chat and Chinese localization.
  3. WOULD YOU KIND create an INI interface from which players can change the default font that client use.So that it will be easier for players around the world to trans this client into their language version.

Besides, someone has done translation successful by decompiling some files.
Here's the pic:
81588218367adab4f566e4e682d4b31c8601e4a7

3a5769224f4a20a48e76e46399529822730ed0e8

And link: 百度贴吧

Clicking on someones name shows where they are

It was quite a nice little feature back in the very original client, seeing where other players are. If they're in a game or in the lobby etc.

It would be quite nice to see this in the core client again.

Cursor

There's a report of playing a game, finishing and then it appears in the client along with cursor.cur from Resources.

https://forums.cncnet.org/index.php?topic=7139.0;topicseen
cursor

Screenshot above shows YR's in game cursor, but the printscreen doesn't show that both cursors show up.
The cursor in Resources directory is just the default windows cursor that windows uses.

Sending additional arbitrary data to players upon starting game

Hello,

The idea is for a room host to ping an endpoint when starting the game.
The endpoint would return some arbitrary data like an ID. This would need to be shared with the other players in the room.

Upon a player returning from the game, they will have this ID.

What would be the best approach in sending custom data to other players like this?

launch issue

Any idea why I get this error?
I am trying to run it on VB on Mac Pro using Windows Vista

untitled

Unable to load DLL 'Mfplat.dll'

https://forums.cncnet.org/index.php?topic=6970.0

cncnet error

08.12. 17:37:24.394 Source: MonoGame.Framework
08.12. 17:37:24.394 TargetSite.Name: get_State
08.12. 17:37:24.394 Stacktrace: ved Microsoft.Xna.Framework.Media.MediaPlayer.get_State()
ved ‮‭‮‎​‎‍‭‍‮‪‫‫​‫‎​‍‏​‫‪‬‬‪‏‮.‌‌‎‭‫​​​​‮‫‮‬‮‮​‎‪‎‪‎‭‮‫‮()
ved ‮‭‮‎​‎‍‭‍‮‪‫‫​‫‎​‍‏​‫‪‬‬‪‏‮.‏‍‎‪​‌‭‍‪‌‌​‍‬‏‫‫‪‎‮‌‍‌‌‍‮()
ved ​‪‫‬​​‭‎‌‍​‏‫‪‭‮‏‍‎‫‌​‎‮.‍‏‭‍‌‎‫‮‫‭‪‏‪‎‏‬​‭‏‫‭‎‍‭‏‏‮(Object , EventArgs )
ved ‮‭‮‎​‎‍‭‍‮‪‫‫​‫‎​‍‏​‫‪‬‬‪‏‮.‎‎‫‮‎‌‍‎​‮‫‌​‍‌​​‬‪‎‮‬‫‬‍‮(Object , EventArgs )
ved Rampastring.XNAUI.XNAControls.XNAControl.OnLeftClick()
ved Rampastring.XNAUI.XNAControls.XNAButton.OnLeftClick()
ved Rampastring.XNAUI.XNAControls.XNAControl.Update(GameTime gameTime)
ved Rampastring.XNAUI.XNAControls.XNAButton.Update(GameTime gameTime)
ved Rampastring.XNAUI.XNAControls.XNAControl.Update(GameTime gameTime)
ved Rampastring.XNAUI.XNAControls.XNAPanel.Update(GameTime gameTime)
ved ‮‭‮‎​‎‍‭‍‮‪‫‫​‫‎​‍‏​‫‪‬‬‪‏‮.‏‫‫‍‮‭‌​‮‭​​‌‎‭‫‬‎‮‭‏‬‍​‍‪‪‫‮(GameTime )
ved Rampastring.XNAUI.WindowManager.Update(GameTime gameTime)
ved Microsoft.Xna.Framework.Game.<>c.<.cctor>b__114_1(IUpdateable updateable, GameTime gameTime)
ved Microsoft.Xna.Framework.Game.SortingFilteringCollection1.ForEachFilteredItem[TUserData](Action2 action, TUserData userData)
ved Microsoft.Xna.Framework.Game.Update(GameTime gameTime)
ved Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime)
ved Microsoft.Xna.Framework.Game.Tick()
ved MonoGame.Framework.WinFormsGameWindow.RunLoop()
ved MonoGame.Framework.WinFormsGamePlatform.RunLoop()
ved Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
ved Microsoft.Xna.Framework.Game.Run()
ved ‏‬‍‭‪‎‫‬‎‎‮‌‫‌‪‬‏​‎‪‭‏‎‎‬‮.‫‪‭‭‏‪​‭‍‭‌‍‬​‌‎‮‭​‌‍‍‭‫‬‬‭‪‬‌‮()
ved ‪‪‎‮‮‮‮‌‬‬​‏‫‪​‭‎‌‮‮‍‍‏‮.‎‪‬‭‮‎‬‏‪‮‪‮‏‏‮‌‪‮‎‎‮‪‮​‮‫‮(String[] )
ved ‮‍‭‍‏‎‎‮‬​‏‭‮‪‭​‭‌‎‬‭‌​‬‫‌‮.‮‏‏‎​‏‭‬‭‭‎‌‍‫​‭‪‏‎‌‮(String[] )
08.12. 17:37:24.394 InnerException info:
08.12. 17:37:24.394 Message: Unable to load DLL 'Mfplat.dll': Den angitte modulen ble ikke funnet. (Exception from HRESULT: 0x8007007E)
08.12. 17:37:24.394 Stacktrace: ved SharpDX.MediaFoundation.MediaFactory.MFStartup_(Int32 arg0, Int32 arg1)
ved SharpDX.MediaFoundation.MediaFactory.Startup(Int32 version, Int32 dwFlags)
ved SharpDX.MediaFoundation.MediaManager.Startup(Boolean useLightVersion)
ved Microsoft.Xna.Framework.Media.MediaManagerState.CheckStartup()
ved Microsoft.Xna.Framework.Media.MediaPlayer.PlatformInitialize()
ved Microsoft.Xna.Framework.Media.MediaPlayer..cctor()
08.12. 17:37:28.175 Map Rendering: 403 / 635
08.12. 17:37:28.175 Starting map generator.

Add check for Microsoft.Xna.Framework.Media.MediaQueue.Play

https://forums.cncnet.org/index.php?topic=7061.0

Log below. Also might kill two birds with one stone in reference to #29 and #26

20.12. 01:39:43.328 Logfile for Yuri's Revenge client
20.12. 01:39:43.343 Client version: 2.0.3.1
20.12. 01:39:43.343 Loading settings.
20.12. 01:39:43.406 Initializing updater.
20.12. 01:39:43.421 Update mirror count: 1
20.12. 01:39:43.421 Running from: clientxna.exe
20.12. 01:39:43.421 Operating system: Microsoft Windows NT 5.1.2600 Service Pack 3
20.12. 01:39:43.421 Selected OS profile: Windows XP
20.12. 01:39:43.437 Removing partial custom component downloads.
20.12. 01:39:43.437 Checking for the existence of FinalSun.ini.
20.12. 01:39:43.437 FinalSun.ini doesn't exist - writing default settings.
20.12. 01:39:43.437 An exception occured while checking the existence of FinalSun settings
20.12. 01:39:43.453 Writing installation path to the Windows registry.
20.12. 01:39:44.593 InitGraphicsMode: 1600x900
20.12. 01:39:44.937 Loading maps.
20.12. 01:39:45.109 Checking local file versions.
20.12. 01:39:45.906 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:45.921 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:45.921 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:45.953 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:45.953 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:45.984 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:45.984 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:46.000 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:46.031 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:46.046 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:46.062 AssetLoader.LoadSound: Sound not found! MainMenu\button.wav
20.12. 01:39:46.140 Hardware info: Intel(R) Celeron(R) D CPU 3.06GHz (1 cores) Video controller: NVIDIA GeForce 7300 GT
20.12. 01:39:46.687 Attempting to parse INI\Battle.ini to populate mission list.
20.12. 01:39:46.687 File INI\Battle.ini not found. Ignoring.
20.12. 01:39:46.687 Attempting to parse INI\BattleE.ini to populate mission list.
20.12. 01:39:46.703 File INI\BattleE.ini not found. Ignoring.
20.12. 01:39:46.781 Saved Games directory not found!
20.12. 01:39:47.109 Skipping reading statistics because the file doesn't exist!
20.12. 01:39:47.218 AssetLoader.LoadSound: Sound not found! none
20.12. 01:39:47.218 AssetLoader.LoadSound: Sound not found! none
20.12. 01:39:47.218 AssetLoader.LoadSound: Sound not found! none
20.12. 01:39:47.218 AssetLoader.LoadSound: Sound not found! none
20.12. 01:39:47.218 AssetLoader.LoadSound: Sound not found! none
20.12. 01:39:47.984 MultiplayerGameLobby: Saved games are not available!
20.12. 01:39:48.875 MultiplayerGameLobby: Saved games are not available!
20.12. 01:39:49.234 Loading friend list failed!
20.12. 01:39:49.312 KABOOOOOOM!!! Info:
20.12. 01:39:49.312 Message: Song playback failed. Please verify that the song is not DRM protected. DRM protected songs are not supported for creator games.
20.12. 01:39:49.359 Source: Microsoft.Xna.Framework
20.12. 01:39:49.359 TargetSite.Name: Play
20.12. 01:39:49.359 Stacktrace: at Microsoft.Xna.Framework.Media.MediaQueue.Play(Song song)
at ‫‭‍‬‫​‍‬‭‮‎​‌‎‏‌‏‏‏‮‌‌‍‎‮.‫‮‌‍‎‌‫‪‬‮‌‌‬​‬​‏‫‮‎​‪‮()
at ‫‭‍‬‫​‍‬‭‮‎​‌‎‏‌‏‏‏‮‌‌‍‎‮.‬‫​‬‭‫‫‬​‌​‬‫‮‫‮‏‏‌‫‫‬‬‮()
at ‫‫‌‪​‏‬‭‮‮‫‬‪‍‫‬‬‍‬‭‏‭‪‬‮‪‬‫‮.‪​‫‬‫‎‪‎‭‫‎​​‫‫‪‪‌‫‌‬‪‏‮()
at ‫‫‌‪​‏‬‭‮‮‫‬‪‍‫‬‬‍‬‭‏‭‪‬‮‪‬‫‮.‭‎‍‍‭‍‫‍‮​‫‌‏‮‮‫‍‍‬‭‭‬‭‬‫‌‏‬‮‮()
at ‫‫‌‪​‏‬‭‮‮‫‬‪‍‫‬‬‍‬‭‏‭‪‬‮‪‬‫‮.‫‭‬‪‌‪‬‪‍‬‍‬‎‫‬‬‬‪‌‏‮‎‮(GameTime )
at Rampastring.XNAUI.WindowManager.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
at Microsoft.Xna.Framework.GameHost.OnIdle()
at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Microsoft.Xna.Framework.WindowsGameHost.Run()
at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
at ‫‎‫‎‌‮‮‍‏‎‭‍‫​‫‫‬‪‬‮‌‭‮‎‪‮.‏‮‮‫‫‏‪‫‮‏‏‭‍‍‬‍‪‌‫‬‫‮()
at ‏‏‭‮‎‎‬‫‭‏‫‬​‮‎‬‌‎​‭‏‮‍‫‍‮.‌‏‏‎‮‫‭‮‫‮‎‪‮‎‬‭‏​‍‍‮(String[] )
at ‍​‌‭‬‮‬​‮‌‏​‏‮‭‎‪‌‫‎‫‫‬‫‮.‪‪‪‭‭‍‫‌‫‫‬‌‮‍‫‭‭‮‫‫‮(String[] )
20.12. 01:39:49.359 InnerException info:
20.12. 01:39:49.359 Message: An unexpected error has occurred.
20.12. 01:39:49.359 Stacktrace:

[Bug][YR/RA2] Gametype meatgrind

Hello, meatgrind gametype is broken I used to play this with friends on old game before cncnet happened, now its not working in skirmish and online tried both and another thing sometimes it shows my customs maps then shows few maps excluding custom ones when selecting this gametype,
Also this game type limits tech used like troops buildings etc but its showing all the tech.

Can you guys look into this thanks.

Hosted game is invisible while host is viewing the CnCNet lobby

(Bug report from Dawn of the Tiberium Age staff)

When someone is hosting a game, and they switch to the CnCNet Lobby via the top bar, they stop sending game broadcast messages, making their game room invisible to other players until they use the top bar to switch back to the game room.

A fix would be writing a new Timer class and adding Timer support to the WindowManager, and letting the timer handle game broadcasting instead of CnCNetGameLobby handling it in its own Update() method.

Memory leak when closing client

"You close the client by pressing x in windowed mode (not log out) it will not close and you have a memory leak eating RAM."

This image format is not supported

https://forums.cncnet.org/index.php?topic=6959.0

07.12. 18:38:41.068 RMP: [email protected] NOTICE #cncnet-yr-game3597662,�GO 75;5;10;0;3cef8cd2040c24ce639bbef4e7771fd5a2908909;Battle;619826563�,
07.12. 18:38:41.075 Executing callback ​‭‎‎‮‫‌‫‭​‪‍‬​‮‏‬‍‭‍‎‮‎‎‮
07.12. 18:38:41.078 CnCNetGameLobby_CTCPReceived
07.12. 18:38:41.280 Message received: :Svenro_1__!~[email protected] NOTICE #cncnet-yr-games :�GAME R3;3.0.39;8;#cncnet-yr-game3031997;Svenro_1__'s Game;11000;Svenro_1__,wilinthegame;[2] Happy Trails;Battle;62.141.38.182;0�

07.12. 18:38:41.285 RMP: Svenro_1__!~[email protected] NOTICE #cncnet-yr-games,�GAME R3;3.0.39;8;#cncnet-yr-game3031997;Svenro_1__'s Game;11000;Svenro_1__,wilinthegame;[2] Happy Trails;Battle;62.141.38.182;0�,
07.12. 18:38:43.223 KABOOOOOOM!!! Info:
07.12. 18:38:43.225 Message: Exception has been thrown by the target of an invocation.
07.12. 18:38:43.237 Source: mscorlib
07.12. 18:38:43.239 TargetSite.Name: InvokeMethod
07.12. 18:38:43.240 Stacktrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.UnsafeInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at Rampastring.XNAUI.XNAControls.Callback.Invoke()
at Rampastring.XNAUI.WindowManager.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.<>c.<.cctor>b__114_1(IUpdateable updateable, GameTime gameTime)
at Microsoft.Xna.Framework.Game.SortingFilteringCollection1.ForEachFilteredItem[TUserData](Action2 action, TUserData userData)
at Microsoft.Xna.Framework.Game.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at MonoGame.Framework.WinFormsGameWindow.RunLoop()
at MonoGame.Framework.WinFormsGamePlatform.RunLoop()
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
at Microsoft.Xna.Framework.Game.Run()
at ‪‫‬​‍​‫‪‎‭‍‏‎‮‫‌‍‫‫‏‫​‮‫‬‬‍‏‏‮.‬‭‪‭‫‪‏‎‮‮​‬‌‭‮‌‌‍‬‮‏‌‫‌‫‮()
at ‪‬‍‫‮‭‫‬‎​​‬‬‪‍‮‍‪‍‫‬‫‬‮.‍‌‪‭‌‌‫‌‭‬​‪‬‎‎‮​​‪‬‭‎‪‮(String[] )
at ‬‎‍​‪‍‫‌‫‏‬‫‎‮‫​‭‌‪‪‎‌‏‫‮.‭‏‫‍‍‮‮‬‮‭‌‫‮‪‬‎‎‪‮‫‭‪​‪‬‮(String[] )
07.12. 18:38:43.242 InnerException info:
07.12. 18:38:43.243 Message: This image format is not supported
07.12. 18:38:43.250 Stacktrace: at Microsoft.Xna.Framework.Graphics.Texture2D.FromStream(GraphicsDevice graphicsDevice, Stream stream)
at Rampastring.XNAUI.AssetLoader.LoadTextureUncached(String name)
at ‏‭‍‌‬‎‭‪‪‏‪‬‎‍‎‍‬‭‎‮.‬​‭‫‎‍‪‎‪‌‎‍‎‌‬‏‍‮‫‮‎​‌‮()
at ‏‌‮‪‎​​‮‍‫​‍‫‬​‏‌​‍​‭‍‮‪‮‍‬‌‮.‭‬‍‍‏‏‏‬‪‬‫‍​‏​‪‌‌‎‬‎‪‌‍‮‮()
at ‏‌‮‪‎​​‮‍‫​‍‫‬​‏‌​‍​‭‍‮‪‮‍‬‌‮.‏‫‏‬‬‮​‫‍​‬‎‮‭‏‌‌‭‪‪‪‪‮(‏‭‍‌‬‎‭‪‪‏‪‬‎‍‎‍‬‭‎‮ )
at ‮‍​‭‬‮‏‮‬‏‬‬‮​‎‌‏‫‫‏‍​‏‭‌‮.‏‪‌‬‬‌‎‮‎‍‪‏​‎‏‏‎‎​‮​‪‬‫‌‏‏‮(‏‫​‏‌​‏‫‬‏‭‭‏‌‪‪​‮‬‌‮ , ‏‭‍‌‬‎‭‪‪‏‪‬‎‍‎‍‬‭‎‮ )
at ‌‬‏‍‎‬‏‏‭‌‍‬‮‌‫‏‬‍​‭‮.‏‪‌‬‬‌‎‮‎‍‪‏​‎‏‏‎‎​‮​‪‬‫‌‏‏‮(‏‫​‏‌​‏‫‬‏‭‭‏‌‪‪​‮‬‌‮ , ‏‭‍‌‬‎‭‪‪‏‪‬‎‍‎‍‬‭‎‮ )
at ‍‌‎‬‌‎‭‍‭‏‫‏‎‌‭‎‎‬‌‍‪‏‎‮‭‏‪‭‮.‍‌‍‮‪‬​‮‏​‭‍‌​‮‎​‍‪‫‏‍‍‌‬‪‮(String , String )
at ‌‮‫‏‮‏‪‏‏‬‍‪‏‮‎‬‭‫‪​‍‌​‭‪​‌‭‮‮.‬‫‭‫‏‮‬‍​‌‭‪‭‎​‪‎‌‍‏‎‫‪‭‫‫‬‫‮(String , String )
at ‍‌‎‬‌‎‭‍‭‏‫‏‎‌‭‎‎‬‌‍‪‏‎‮‭‏‪‭‮.‮‬‎‫‎​‪‎‪​​‭‍‫‌‍‪‮‏‮‫‪​‌​​‮(Object , ‬‍‌‮‍‪‭‭‫‌‬‫‪‫‎​‌‮ )
at ‫‏‭‮‭‮‫‎‭‎‪‏‎‫‌‌​‍‮‌​‌‮‫‌‮.‏‮‮​‎‍‌‭‎‍‮‬‬‮‎‫‬‎‌‎‮‬‍‍‭​‫‪‮(String , String )
at ‭‭‮‍‪‬‏‍‭​‌‪‎​‏‭‌​‬‮‬‭‬‭‬‫‭‍‮.​‭‎‎‮‫‌‫‭​‪‍‬​‮‏‬‍‭‍‎‮‎‎‮(String , String , String )

Hiding certain factions for certain checkboxes

Hi - I would like to know the best approach about handling hiding certain factions based on a checkbox.
In this case if an RA2 Mode checkbox was checked, what would be the best way to hiding an faction?

Thanks

HRESULT: [0x887A0005], Module: [SharpDX.DXGI], ApiCode: [DXGI_ERROR_DEVICE_REMOVED/DeviceRemoved], Message: Unknown

https://forums.cncnet.org/index.php?topic=7038.0

14.12. 23:12:40.984 Checking if custom components are outdated.
14.12. 23:13:12.498 KABOOOOOOM!!! Info:
14.12. 23:13:12.500 Message: HRESULT: [0x887A0005], Module: [SharpDX.DXGI], ApiCode: [DXGI_ERROR_DEVICE_REMOVED/DeviceRemoved], Message: Unknown
14.12. 23:13:12.508 Source: SharpDX
14.12. 23:13:12.510 TargetSite.Name: CheckError
14.12. 23:13:12.515 Stacktrace: at SharpDX.Result.CheckError()
at SharpDX.Direct3D11.Device.CreateShaderResourceView(Resource resourceRef, Nullable1 descRef, ShaderResourceView sRViewOut) at SharpDX.Direct3D11.ShaderResourceView..ctor(Device device, Resource resource) at Microsoft.Xna.Framework.Graphics.Texture.GetShaderResourceView() at Microsoft.Xna.Framework.Graphics.TextureCollection.PlatformSetTextures(GraphicsDevice device) at Microsoft.Xna.Framework.Graphics.TextureCollection.SetTextures(GraphicsDevice device) at Microsoft.Xna.Framework.Graphics.GraphicsDevice.PlatformApplyState(Boolean applyShaders) at Microsoft.Xna.Framework.Graphics.GraphicsDevice.ApplyState(Boolean applyShaders) at Microsoft.Xna.Framework.Graphics.GraphicsDevice.PlatformDrawUserIndexedPrimitives[T](PrimitiveType primitiveType, T[] vertexData, Int32 vertexOffset, Int32 numVertices, Int16[] indexData, Int32 indexOffset, Int32 primitiveCount, VertexDeclaration vertexDeclaration) at Microsoft.Xna.Framework.Graphics.GraphicsDevice.DrawUserIndexedPrimitives[T](PrimitiveType primitiveType, T[] vertexData, Int32 vertexOffset, Int32 numVertices, Int16[] indexData, Int32 indexOffset, Int32 primitiveCount, VertexDeclaration vertexDeclaration) at Microsoft.Xna.Framework.Graphics.SpriteBatcher.FlushVertexArray(Int32 start, Int32 end, Effect effect, Texture texture) at Microsoft.Xna.Framework.Graphics.SpriteBatcher.DrawBatch(SpriteSortMode sortMode, Effect effect) at Microsoft.Xna.Framework.Graphics.SpriteBatch.End() at Rampastring.XNAUI.WindowManager.Draw(GameTime gameTime) at Microsoft.Xna.Framework.Game.<>c.<.cctor>b__114_0(IDrawable drawable, GameTime gameTime) at Microsoft.Xna.Framework.Game.SortingFilteringCollection1.ForEachFilteredItem[TUserData](Action`2 action, TUserData userData)
at Microsoft.Xna.Framework.Game.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at MonoGame.Framework.WinFormsGameWindow.RunLoop()
at MonoGame.Framework.WinFormsGamePlatform.RunLoop()
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
at Microsoft.Xna.Framework.Game.Run()
at ‎‌‍‭‭‏‏​‪‎‭‎‍‍‍‮‌‍‪‮‎‏‏‮.‌‪‎‪​​‭‮‭‎‍‌‌​‏‪‏‮‮‪‎‏‎‮​‭‎‮‍‬‮‮()
at ‪‫‏‭‫‬‮‍‬‏‏‬‬​‭​‍‪‏‭‪‍‎‬‮.‏‭‮‬‌‭‌‮‬‭‪‎‏‬​‏‬‪‪‭‪‫​‭‍‪‮(String[] )
at ‪‍‍‭‭‌​‮‮‏‬‪‮‮‮‏‍‏‬‭‬‌​‮‫‮‮.‏‬‬‬‫‭‪‌‭‪‫‮‫​‏‍‏‏‫‍‮(String[] )

Ignoring CTCP game message because of an invalid amount of parameters.

Is this because of some sort of encoding? There are black question marks in the log file if you see below.
Full log: https://drive.google.com/file/d/0B8gSFgpT3dl3d3g4MERFR2J6T0U/view
Inspected from this this post: https://forums.cncnet.org/index.php?topic=7064.msg50972#msg50972

27.12. 20:26:36.490 Executing callback ‪​‍‮‮‪‎‮‪‌‍‏‍‎‫‌‭‬‏‮‎‏‍‪‫‮
27.12. 20:26:36.492 Executing callback ‪​‍‮‮‪‎‮‪‌‍‏‍‎‫‌‭‬‏‮‎‏‍‪‫‮
27.12. 20:26:36.493 Executing callback ‪​‍‮‮‪‎‮‪‌‍‏‍‎‫‌‭‬‏‮‎‏‍‪‫‮
27.12. 20:26:36.495 RMP: Robertm67!~[email protected] NOTICE #cncnet-yr-games, GAME R3;3.0.47;8;#cncnet-yr-game8602389;Robertm67's Game;10000;Robertm67;[6] Sedona Pass;Battle;46.166.187.82;0 ,
27.12. 20:26:36.496 RMP: [email protected] NOTICE #cncnet-yr-games, GAME R3;3.0.47;8;#cncnet-yr-game3221733;BuBy's Game;11000;BuBy,USER;[8] Irvine, California;Free For All;27.254.64.37;0 ,
27.12. 20:26:36.499 RMP: [email protected] JOIN #cncnet,
27.12. 20:26:36.500 RMP: [email protected] NOTICE #cncnet-yr-games, GAME R2;N/A;8;#cncnet_YR-game678760;AndrewGamer's Game;00000;AndrewGamer,Jorik220,;���� 2 - 5. ���� + ����� ��������;Standard;1; ,
27.12. 20:26:36.503 RMP: RNLAF!~[email protected] NOTICE #cncnet-yr-games, GAME R3;3.0.47;8;#cncnet-yr-game7828528;Pestventjes;01000;RNLAF,TurboTYNO,ivar;[8] Heck Freezes Over;Megawealth;62.141.38.182;0 ,
27.12. 20:26:36.510 Executing callback ‌‌‍​‫‫‌‮‬‭‏‭‬‎‫‫‏‫‬‍‭‍‌‫‏‎‮‏‮‍‮
27.12. 20:26:36.512 Executing callback ‌‌‍​‫‫‌‮‬‭‏‭‬‎‫‫‏‫‬‍‭‍‌‫‏‎‮‏‮‍‮
27.12. 20:26:36.513 Executing callback ​‪‫‪‭‌‍‮‍‭‎‭‮‮‍‬​‬‎‌‎‮‌‌‪‮‏‪‍‮‮
27.12. 20:26:36.521 Executing callback ‌‌‍​‫‫‌‮‬‭‏‭‬‎‫‫‏‫‬‍‭‍‌‫‏‎‮‏‮‍‮
27.12. 20:26:36.522 Ignoring CTCP game message because of an invalid amount of parameters.
27.12. 20:26:36.525 Executing callback ‌‌‍​‫‫‌‮‬‭‏‭‬‎‫‫‏‫‬‍‭‍‌‫‏‎

Adding support for non-hostname connections

The issue described here: https://forums.cncnet.org/index.php?topic=7446.msg52811
The test build connects to the IP's of GameSurge servers directly and not the hostnames like "irc.gamesurge.net".

The solution was to add IP's into the list of hostnames too. So incase the hostnames fail to connect, there's a backup option of IP's to connect to. It might even be better to list them as:

"gamesurge", "irc.gamesurge.net",
"gamesurge-ip", "127.0.0.1", 

```etc

Wine/Mono support

I'm having a hard time trying to get the client to run under Wine on a Linux machine; tested Mental Omega, DTA and TI - with the same result.

Using Debian stretch/sid amd64, but probably any Wine setup is affected (MacOS as well).
Wine is 1.8.5 or 2.0rc1 (wine-development), Mono is 4.6.1.3 (complete with all libraries)

  1. create a clean 32-bit wineprefix:
    env WINEARCH=win32 WINEPREFIX=/home/user/cnc winecfg
  2. change settings: windows version = win7; prefer native for ddraw.dll and wsock32.dll
    3a) unzip TI or DTA to subdirectories of /home/user/cnc/drive_c/
    3b) install Origin and RA2+YR, then unzip MO to the game's directory
  3. in terminal: cd to the game's directory, then enter:
    `env WINEPREFIX=/home/user/cnc {wine, wine-development} {TI_Launcher.exe, DTA.exe, MentalOmegaClient.exe}'

I should see a client, but it goes KABOOOOOOM!; error code 0x800040001 not implemented

client log (for TI):

19.12. 20:29:16.206 Logfile for Twisted Insurrection client
19.12. 20:29:16.314 Client version: 2.0.0.5
19.12. 20:29:16.314 Loading settings.
19.12. 20:29:16.507 Initializing updater.
19.12. 20:29:16.510 Update mirror count: 1
19.12. 20:29:16.510 Running from: clientdx.exe
19.12. 20:29:16.513 Operating system: Microsoft Windows NT 6.1.7601.65536 Service Pack 1
19.12. 20:29:16.513 Selected OS profile: Windows 7
19.12. 20:29:16.516 Removing partial custom component downloads.
19.12. 20:29:16.518 Checking for the existence of FinalSun.ini.
19.12. 20:29:16.518 FinalSun settings file exists.
19.12. 20:29:16.534 Writing installation path to the Windows registry.
19.12. 20:29:16.550 Checking system specifications failed. Message: The method or operation is not implemented.
19.12. 20:29:17.874 KABOOOOOOM!!! Info:
19.12. 20:29:17.874 Message: HRESULT: [0x80004001], Module: [General], ApiCode: [E_NOTIMPL/Not implemented], Message: Unknown
19.12. 20:29:17.876 Source: SharpDX
19.12. 20:29:17.876 TargetSite.Name: CheckError
19.12. 20:29:17.882 Stacktrace: at SharpDX.Result.CheckError () <0x1ddc0e0 + 0x0004f> in :0
at SharpDX.DXGI.Device1.SetMaximumFrameLatency (Int32 maxLatency) <0x1dfad28 + 0x00043> in :0
at SharpDX.DXGI.Device1.set_MaximumFrameLatency (Int32 value) <0x1dfad00 + 0x00017> in :0
at Microsoft.Xna.Framework.Graphics.GraphicsDevice.CreateSizeDependentResources (Boolean useFullscreenParameter) <0x1df9568 + 0x00907> in :0
at Microsoft.Xna.Framework.Graphics.GraphicsDevice.PlatformInitialize () <0x1df47c8 + 0x00023> in :0
at Microsoft.Xna.Framework.Graphics.GraphicsDevice.Initialize () <0x1df45d0 + 0x00013> in :0
at Microsoft.Xna.Framework.Graphics.GraphicsDevice..ctor (Microsoft.Xna.Framework.Graphics.GraphicsAdapter adapter, GraphicsProfile graphicsProfile, Microsoft.Xna.Framework.Graphics.PresentationParameters presentationParameters) <0x1df0720 + 0x00337> in :0
at Microsoft.Xna.Framework.GraphicsDeviceManager.Initialize () <0x1df0128 + 0x001e3> in :0
at Microsoft.Xna.Framework.GraphicsDeviceManager.CreateDevice () <0x1df00e0 + 0x00013> in :0
at Microsoft.Xna.Framework.GamePlatform.BeforeInitialize () <0x1deffc8 + 0x000e1> in :0
at MonoGame.Framework.WinFormsGamePlatform.BeforeInitialize () <0x1ddee38 + 0x00063> in :0
at Microsoft.Xna.Framework.Game.DoInitialize () <0x1ddecd0 + 0x0001e> in :0
at Microsoft.Xna.Framework.Game.Run (GameRunBehavior runBehavior) <0x1ddd648 + 0x0007b> in :0
at Microsoft.Xna.Framework.Game.Run () <0x1ddd5f0 + 0x00027> in :0
at DTAClient.Startup.Execute () <0x1da8e28 + 0x00347> in :0
at DTAClient.RealMain.ProxyMain (System.String[] args) <0x1d87f40 + 0x00437> in :0
at DTAClient.Program.Main (System.String[] args) <0x1d60f78 + 0x00247> in :0

Creating new windows

So I'm working on integrating accounts, I've got to this so far with authentication: https://drive.google.com/file/d/0B5eSYrI0mFL2RnZJZjd2eTRfeXc/view

It's a work in progress, communicating with the API here - https://github.com/CnCNet/ladder-api

The UI handling could be better so I'm thinking it should move away from CnCNetLoginWindow and just have a button that opens up a new window that's Account management or similar.

What's the best way of creating a new window (Something similar to the PM message/ Friend list view)?

Client crash after launching game

https://forums.cncnet.org/index.php?topic=6962.0;topicseen

7.12. 18:25:37.576 Writing spawn.ini
07.12. 18:25:37.610 Writing RA2 Mode Setting
07.12. 18:25:37.629 Writing map.
07.12. 18:25:37.636 Loading map INI from C:\Program Files (x86)\Red Alert 2\Maps\Yuri's Revenge\XMP19T4.map
07.12. 18:25:37.749 Writing settings INI.
07.12. 18:25:37.796 KABOOOOOOM!!! Info:
07.12. 18:25:37.805 Message: Exception has been thrown by the target of an invocation.
07.12. 18:25:37.815 Source: mscorlib
07.12. 18:25:37.821 TargetSite.Name: InvokeMethod
07.12. 18:25:37.827 Stacktrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at Rampastring.XNAUI.XNAControls.Callback.Invoke()
at Rampastring.XNAUI.WindowManager.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.<>c.<.cctor>b__114_1(IUpdateable updateable, GameTime gameTime)
at Microsoft.Xna.Framework.Game.SortingFilteringCollection1.ForEachFilteredItem[TUserData](Action2 action, TUserData userData)
at Microsoft.Xna.Framework.Game.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at MonoGame.Framework.WinFormsGameWindow.RunLoop()
at MonoGame.Framework.WinFormsGamePlatform.RunLoop()
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
at Microsoft.Xna.Framework.Game.Run()
at ‏‬‍‭‪‎‫‬‎‎‮‌‫‌‪‬‏​‎‪‭‏‎‎‬‮.‫‪‭‭‏‪​‭‍‭‌‍‬​‌‎‮‭​‌‍‍‭‫‬‬‭‪‬‌‮()
at ‪‪‎‮‮‮‮‌‬‬​‏‫‪​‭‎‌‮‮‍‍‏‮.‎‪‬‭‮‎‬‏‪‮‪‮‏‏‮‌‪‮‎‎‮‪‮​‮‫‮(String[] )
at ‮‍‭‍‏‎‎‮‬​‏‭‮‪‭​‭‌‎‬‭‌​‬‫‌‮.‮‏‏‎​‏‭‬‭‭‎‌‍‫​‭‪‏‎‌‮(String[] )
07.12. 18:25:37.833 InnerException info:
07.12. 18:25:37.840 Message: Access to the path 'C:\Program Files (x86)\Red Alert 2\EXCEPT.TXT' is denied.
07.12. 18:25:37.847 Stacktrace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at System.IO.File.Delete(String path)
at ‬‏‭‮‌‏‌‌‪‪‍‬‌‏‮‌‮‪‏‭‪‎‌‭‎‌‭‮.‮​‌​‫‌‎​‌‎‌​‪‭‮‏‌‎‮‏‌‬‭‫‫‮()
at System.Action.Invoke()
at ClientGUI.GameProcessLogic.StartGameProcess(Int32 processId)
at ‭‮​‭‍‬‮‬‌‭​‏‬‌‬‮​‏‬‪‭​‫‪‭‎​‪‫‮.‎‪‬‬​‏‬‍‏‎‌‍​‍‏‌‪‫‪‪‮‪‍‍‫‪‭‌‮()
at ‎‫‌‏‌‪‍‏‫‮‭‪‎‏‏‏‭‮‮‪‏‎‬‭‮.‍​‎‎‮​‭‭‎‭‍‏‍‏​‏‬‎​​‎‭‭‬‪‬‮(String , String )
at ​‍‫‎‎‏‪‭‌‪‭‏‌‭​‪‭‍‏‏‭‮‍​‮.‫​‫​‎‌‬‪‎‍‏‪‌‬‫​‮​‭‪‌‭‪‬​‪‮(String , String )
at ‎‫‌‏‌‪‍‏‫‮‭‪‎‏‏‏‭‮‮‪‏‎‬‭‮.‭‏‬‌‮​‫‍‍‫‪‍‬‌‫‫‍‌‮‍‎‪‬‮(Object , ‫‌‍‮‫‏‭‎‭‮‬​‭‮‭‪‍‫‫‭‌‭‪​‏‍‫‮‮ )
at ‬​‮​‬‏​‫‏‪‭‎‏‪‍‍‮‮‌​‬‎‬‫‮.‪‍‎‬‫‎‬​‮‮​​​‪‫‭‬‏‏‍‮(String , String )
at ‎‭‏‍‍‍‬‍‫‌‎‮‍‎‭‍‎‍‪‎‎‏‏‪‏‍‫‌‮.‌‎‏‪‎‫‬‬‎‭‮‬‎‍‪‬‭‮‬‏‪‎​‫‏‮(String , String , String )
07.12. 18:25:38.955 Message received: :CaptainN!~[email protected] NOTICE #cncnet-yr-games :�GAME R3;3.0.41;4;#cncnet-yr-game6321982;CaptainN's Game;11000;CaptainN,TheDave;[4] Frostbite;Battle;104.156.251.89;0�

07.12. 18:25:38.961 RMP: CaptainN!~[email protected] NOTICE #cncnet-yr-games,�GAME R3;3.0.41;4;#cncnet-yr-game6321982;CaptainN's Game;11000;CaptainN,TheDave;[4] Frostbite;Battle;104.156.251.89;0�,
07.12. 18:25:39.128 SRM: AWAY :In-game
07.12. 18:26:07.566 SRM: PING LAG598197
07.12. 18:26:37.566 SRM: PING LAG381681
07.12. 18:27:07.567 SRM: PING LAG165164
07.12. 18:27:37.568 SRM: PING LAG848646

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.