Questions tagged «.net»

.NET是基于CLR(“公共语言运行时”)标准的软件开发框架。

13
哪些C#库可用于支持游戏开发?[关闭]
由于游戏基于许多不同的子系统,例如图形(DirectX,OpenGL等),声音(OpenAL,Ogg Vorbis等)或物理(碰撞等),因此您知道哪些有用的库是有用的C#中的游戏开发,它们提供什么好处?
58 c#  .net 


3
团队如何防止覆盖源文件中的工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 4年前关闭。 在我看来,有一种可能性,例如由多个人同时处理游戏引擎时,如何防止覆盖? 假设开发者一在工作,Audio.cpp而开发者二也在工作Audio.cpp,这在大型团队中通常如何进行管理以应对覆盖?(换句话说,要阻止开发人员2打开文件,直到开发人员1完成)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

4
我的物理引擎中更新问题的动量和顺序
这个问题是我上一个问题的“后续”问题,涉及到碰撞检测和解决,您可以在这里找到。 如果您不想阅读上一个问题,这里是有关我的物理引擎如何工作的简短描述: 每个物理实体都存储在称为SSSPBody的类中。 仅支持AABB。 每个SSSPBody存储在一个名为SSSPWorld的类中,该类更新每个身体并处理重力。 每帧,SSSPWorld都会更新每个身体。 每个更新的实体都在空间哈希中查找附近的实体,检查是否需要检测与它们的碰撞。如果是,它们将调用“碰撞”事件并检查是否需要解决与其之间的冲突。如果是,他们将计算穿透矢量和方向重叠,然后更改其位置以解决穿透问题。 当一个物体与另一个物体碰撞时,只需将其速度设置为自己的速度即可将其速度传递给另一个物体。 如果从上一帧起未更改位置,则将物体的速度设置为0。如果它也与移动的物体(例如升降机或移动的平台)相撞,则会计算升降机的运动差,以查看物体是否尚未从其最后位置移动。 同样,当一个实体的所有AABB角与某帧中的某些内容重叠时,它会引发“压碎”事件。 这是我的游戏的完整源代码。它分为三个项目。SFMLStart是一个简单的库,用于处理实体的输入,绘制和更新。SFMLStartPhysics是最重要的类,其中SSSPBody和SSSPWorld类位于其中。PlatformerPhysicsTest是游戏项目,包含所有游戏逻辑。 而这是在SSSPBody类,评论和简化了“更新”的方法。如果您不想看整个SFMLStartSimplePhysics项目,则只能看一下。(即使这样做,您也应该看看它,因为它已被注释。) .gif显示两个问题。 如果将实体放置在不同的顺序中,则会发生不同的结果。左侧的板条箱与右侧的板条箱相同,只是以相反的顺序放置(在编辑器中)。 两个板条箱都应朝屏幕顶部推进。在左边的情况下,没有箱子被推进。在右边,只有其中之一是。两种情况都是意外的。 第一个问题:更新顺序 这很容易理解。在左侧的情况下,最上面的板条箱先于另一个板条箱被更新。即使底部的板条箱将速度“传递”到另一个板条,它也需要等待下一帧移动。由于它没有移动,因此底部木箱的速度设置为0。 我不知道如何解决此问题。我希望解决方案不依赖于“排序”更新列表,因为我觉得我在整个物理引擎设计中做错了什么。 主要的物理引擎(Box2D,Bullet,花栗鼠)如何处理更新顺序? 第二个问题:只有一个板条箱被推向天花板 我还不明白为什么会这样。“弹簧”实体的作用是将物体的速度设置为-4000,然后将其重新放置在弹簧本身的顶部。即使禁用重新定位代码,该问题仍然会发生。 我的想法是,当底部板条箱与顶部板条箱发生碰撞时,其速度设置为0。我不确定为什么会这样。 尽管有机会看起来像放弃第一个问题的人,但我在上面发布了整个项目的源代码。我没有任何东西可以证明这一点,但是相信我,我努力解决了这个问题,但是我找不到解决方案,并且我以前没有任何物理和碰撞方面的经验。我一直在努力解决这两个问题超过一个星期,现在我很绝望。 我认为如果不从游戏中剥离许多功能(例如,速度传递和弹簧),就无法找到解决方案。 非常感谢您花时间阅读此问题,如果您甚至想提出解决方案或建议,也要多谢。

10
C#在游戏开发方面是否有未来?
我最近从CVG.co.uk上的一次采访中了解到MMO Minecraft是由Java驱动的,该采访涉及两位以前和现在竞争的同事之间可能的合作。在接受采访时,他直截了当地说Minecraft的创始人是Java编码器,而他是C或C ++编码器,因此它们彼此不兼容。因此,在未来的项目上进行合作将很困难。 这让我开始思考,如果Java可以做到这一点?就游戏或主流游戏开发而言,MS非常流行的C#语言和.Net平台的未来将如何发展?


6
Visual Studio 2012和游戏开发
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 5年前关闭。 好吧,我认为这是一个简单的问题,但是我很难找到一些答案。 我已经读过XNA不在Visual Studio 2012中。我最近学会了使用XNA,但是由于我想从事游戏工作,所以我想知道是否有办法在Visual Studio 2012上使用C#开发游戏。 ,还是我应该再次使用C ++和Direct3D学习一切? C#是我非常喜欢的一种语言,因此,如果没有办法用C#来实现,但是如果使用Java来进行游戏开发就非常容易,我也会对此感兴趣。 非常感谢!
10 xna  c#  3d  directx  .net 

2
实时游戏的最佳服务器架构是什么?
我正在开发一款实时游戏,该游戏应能实时容纳数千名玩家(FPS,最大延迟为1秒)。最好的基础架构是什么? 我的想法是使用2个服务器群集-一个用于服务器端(所有计算端),一个用于数据库端,其中负载均衡器对每个群集都是“负责任的”。一台主服务器将接收来自用户的请求,并发回相关服务器的IP地址,以便用户可以使用该服务器。 数据库集群将使用数据库复制来确保数据库之间的一致性。 还应该有一个地理负载均衡器-因此它将为每个用户分配区域负载均衡器以获得最佳响应。 我正在使用.NET + MSSQL进行游戏。 谢谢!

3
为什么Farseer 2.x将临时人员存储为成员而不是堆栈中?(。净)
更新:此问题涉及Farseer2.x。较新的3.x似乎没有这样做。 目前,我在广泛使用Farseer Physics Engine,并且我注意到它似乎将许多临时值类型存储为类的成员,而不是像人们期望的那样存储在堆栈中。 这是来自Body该类的示例: private Vector2 _worldPositionTemp = Vector2.Zero; private Matrix _bodyMatrixTemp = Matrix.Identity; private Matrix _rotationMatrixTemp = Matrix.Identity; private Matrix _translationMatrixTemp = Matrix.Identity; public void GetBodyMatrix(out Matrix bodyMatrix) { Matrix.CreateTranslation(position.X, position.Y, 0, out _translationMatrixTemp); Matrix.CreateRotationZ(rotation, out _rotationMatrixTemp); Matrix.Multiply(ref _rotationMatrixTemp, ref _translationMatrixTemp, out bodyMatrix); } public Vector2 GetWorldPosition(Vector2 localPosition) …

7
维基百科A *寻路算法需要大量时间
我已经在C#中成功实现了A *寻路,但是速度很慢,而且我不明白为什么。我什至尝试不对openNodes列表进行排序,但仍然相同。 映射为80x80,并且有10-11个节点。 我从维基百科这里获取了伪代码 这是我的实现: public static List<PGNode> Pathfind(PGMap mMap, PGNode mStart, PGNode mEnd) { mMap.ClearNodes(); mMap.GetTile(mStart.X, mStart.Y).Value = 0; mMap.GetTile(mEnd.X, mEnd.Y).Value = 0; List<PGNode> openNodes = new List<PGNode>(); List<PGNode> closedNodes = new List<PGNode>(); List<PGNode> solutionNodes = new List<PGNode>(); mStart.G = 0; mStart.H = GetManhattanHeuristic(mStart, mEnd); solutionNodes.Add(mStart); solutionNodes.Add(mEnd); openNodes.Add(mStart); // …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.