游戏开发

专业和独立游戏开发人员的问答

2
在典型的C64游戏中,究竟是什么构成了屏幕?
我试图通过BASIC来了解C64游戏开发的基础知识,并且我可以针对一些非常基本但很重要的内容使用一些建议:屏幕上的所有内容实际上是什么,以及如何绘制? 看看Katakis / Denaris: 屏幕上至少有9种不同的东西: 得分栏,具有不同的字体 船本身 附属于船的卫星,可拆卸 次要武器弹丸 初级武器弹丸 移动物体(可以是敌舰) 状态栏,显示船舶图像,生命数量和可填充的三个区域 主武器充电条,可以填满 背景中的滚动星空 (在屏幕上未编号)作为背景一部分的坚硬物体,例如岩石或金属墙 C64每条水平扫描线仅支持8个Sprite,所以我认为屏幕中间的所有内容都不是Sprite吗?我以为任何需要碰撞的东西都将是一个精灵(因为我可以使用精灵进行硬件碰撞检测),但是即使那样我也很快达到了8个精灵的限制。而且,我的武器可以发射的弹子不止一个-我的飞船,卫星和6枚子弹已经是连续8个子弹了(看录像时约50秒)。 另外,像这样的游戏会使用哪种图形模式?《编程手册》列出了位图模式,它实际上直接修改了屏幕存储器。这是我通常应该使用的模式吗?我如何将所有非精灵元素组合在一起以使其出现在屏幕上? 分数和状态栏中的很多内容都是静态的(“ Area:01”或“ frame”),因此我猜我将在级别开始时将它们填充一次。需要更新的内容(得分,底部的充电条)是否会通过用黑色填充屏幕内存,然后在每一帧绘制新得分来进行更新? 还是我必须在每一帧上绘制整个屏幕?

5
是否有适用于Android的免费开源3D引擎?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 是否有适用于Android的免费和无限开源3D引擎?是NDK的直接薄层吗? 我只发现了两个引擎:Unity和Shiva 3D。但是没有免费或开源的。

4
域驱动设计是否适合游戏?
我刚刚阅读了有关Domain模型的知识,因为我一直在开发一种游戏,该游戏的类仅包含数据(很少的行为/方法),因此它给我带来了启发。我将处理这些类的工作分配给了经理……现在我的经理看起来像是上帝的对象。我应该处理逻辑的游戏对象只是一个贫血领域模型。 我当前的设计模式是在Singleton中,我想进行一些重新编码以将这些内容发布出来。我从未在游戏上看到DDD(到目前为止),但这是一个好方法吗?我只是一个新手程序员(不喜欢游戏开发人员),所以我想在游戏变得过于肿以至于无法重新设计之前,了解有关良好架构的更多信息。

1
opengl 3和opengl 4之间的区别
我刚刚开始游戏编程,我想开始学习opengl。我从头开始发现了一个非常好的入门教程,而我想知道openGL 3和openGl 4之间是否有很大的区别。或者我应该问一下,openGL 4是否会使openGL 3过时,或者我可以以openGL 3,然后可以移至openGL 4了吗?
10 opengl 

2
旧版游戏中的数据结构
我对编程诸如NES的Super Mario Brothers和SNES的Super Mario World之类的旧游戏进行编程时使用的数据结构感到好奇。我的理解是,这段时期的游戏是汇编形式的。程序员是否定义/使用任何数据结构? 例如:当一组硬币出现在屏幕上时,如何存储它们?程序员只是使用数组吗?也许他们有链接列表? 干杯! 编辑:我对各种方法感兴趣...不一定是通用方法。 编辑2:在我的一些游戏中,我对收藏使用了一种(可能很糟糕的)方法,并且我想知道是否有任何较旧的游戏使用了类似的方法。我喜欢执行以下操作: // statically allocated arrays (max number of coins is 4) int coinsXs[4] = {0, 0, 0, 0}; int coinsYs[4] = {0, 0, 0, 0}; // bitset that keeps track of which coins are active int coinsActive = 0; // ... // …

3
发生碰撞时如何删除box2d实体?
我对Java和android编程还是很陌生,遇到碰撞时要移除对象有很多麻烦。我在网上四处张望,发现在碰撞检测(接触侦听器)期间,我绝不应该删除BOX2D主体,而应将对象添加到arraylist并在主体的“用户数据”部分中设置一个变量以删除或不删除并处理更新处理程序中的删除操作。因此,我这样做了:首先,我定义了两个ArrayList,一个用于面部,一个用于主体: ArrayList<Sprite> myFaces = new ArrayList<Sprite>(); ArrayList<Body> myBodies = new ArrayList<Body>(); 然后,当我创建一个面并将该面连接到其主体时,我将其添加到其ArrayList中,如下所示: face = new AnimatedSprite(pX, pY, pWidth, pHeight, this.mBoxFaceTextureRegion); Body BoxBody = PhysicsFactory.createBoxBody(mPhysicsWorld, face, BodyType.DynamicBody, objectFixtureDef); mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(face, BoxBody, true, true)); myFaces.add(face); myBodies.add(BoxBody); 现在,我在onloadscene中添加了一个联系人监听器和一个更新处理程序,如下所示: this.mPhysicsWorld.setContactListener(new ContactListener() { private AnimatedSprite face2; @Override public void beginContact(final Contact pContact) { } @Override …


3
从DirectX 10移至DirectX 11
我已经使用DirectX 9完成了大量的小型业余项目,但是现在该迁移到DirectX 11了。 我有一本关于使用DirectX 10进行3D编程的书,但对于DirectX 11却一无所知。我相信它们非常相似,但是我想知道是否有人可以枚举我需要意识到的代码级的主要区别(或指向现有来源)。
10 directx 

5
如何确定网格中的哪些像元与给定的三角形相交?
我目前正在编写2D AI模拟,但是我不确定如何检查代理的位置是否在另一个代理的视野内。 目前,我的世界分区是简单的单元空间分区(网格)。我想使用三角形表示视野,但是如何计算与三角形相交的像元? 与此图片相似: 红色区域是我要计算的单元格,方法是检查三角形是否与这些单元格相交。 提前致谢。 编辑: 只是增加了混乱(甚至可能使其更简单)。每个像元都有一个最小值和最大值向量,其中最小值是左下角,最大值是右上角。

1
哪个OpenGL的c / c ++模型动画库[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 6年前关闭。 我是游戏开发的新手,以前玩过xna,现在才学习OpenGL&c,我很想知道那里有哪些基于c / c ++的模型动画库,您会推荐哪个?我还没有想到任何特定的模型格式,但是可能是像Blender这样的免费建模工具所支持的格式。
10 opengl  c++  models  c 

2
更新着色器制服的最佳方法是什么?
使着色器矩阵保持最新状态的最常用方法是什么?为什么? 例如,目前我有一个Shader类,用于存储GLSL着色器程序和统一体的句柄。每次移动摄像机时,我都必须将新的视图矩阵传递给着色器,然后我必须将每个不同的世界对象的模型矩阵传递给着色器。 这严重限制了我,因为如果不访问该着色器对象就无法执行任何操作。 我想到创建一个ShaderManager负责容纳所有活动着色器的单例类。然后,我可以从任何地方访问该对象,世界对象不必知道什么着色器处于活动状态,只需要ShaderManager知道所需的矩阵即可,但是我不确定这是最好的方法,并且可能存在一些问题将采取这种方法。
10 opengl  shaders  glsl 

2
GPU的参考位置值得担心吗?
是否引用的局部性化妆一样多GPU性能差异,因为它确实CPU的性能? 例如,如果我向GPU发送200条绘制命令,如果每个命令的数据在内存中是连续的,而不是在缓冲区/纹理贴图上跳转,我是否会(可能)看到明显的不同? 附带问题:我假设GPU通过使大多数资源保持不变来确保避免错误共享问题。但是,如果不是这样,为什么线程总是执行四个片段的工作呢?

4
在基于图块的游戏中查找无遮挡的图块
我正在开发基于2D瓦片的游戏,现在我正在尝试使相当于2D的阴影体积起作用。我在寻找应该投射阴影的表面时遇到了麻烦。从游戏的任何点开始,我都需要找到未被遮挡的面孔或整个瓷砖。 我的问题是,如何在给定一个点的情况下尽快找到这些瓷砖/边缘?


1
在地图上以程序生成的2D弯曲道路
我一直在尝试使用算法为正在开发的游戏自动生成路线图。 我使用“ Kingdom Rush ”游戏作为参考点,因为它们具有一些精美的地图。 我是程序性内容生成的新手,并且想知道这里是否有人有任何指针。我已经尝试过生成随机的道路拓扑,例如,一些入口/源节点,一些内部节点(叉和合并)以及一些出口汇点节点,然后使用图形布局算法根据此信息创建实际的道路图。 这是一个使用Fruchterman-Reingold算法进行道路布局的示例: 蓝色图形使用一些随机生成的Bézier控制点来使边缘看起来不太平直。 这是使用相同算法但使用不同随机数生成的另一个示例: 麻烦的是,大多数结果最终看起来都非常相似,而且我不确定可以添加哪些规则来改善过程生成地图的可控制性和多样性。 任何建议表示赞赏。

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.