zoukankan      html  css  js  c++  java
  • Android游戏开发十日通(1)游戏编程基础

    前言

    很早之前就有做游戏的想法,感觉做游戏真的很酷!但由于时间和技术上的种种限制,没有去实现,最近终于下决心去学习这方面的知识。

    那么,就从今天起,开启Android的游戏之旅。


    第一篇还不涉及到游戏的技术细节,算是游戏变成的一些常识。


    以故事开始
    故事勾画出了游戏的动作,目的和流程。故事写的越详细,游戏开发的时候写编码就会越容易。


    故事为什么重要
       因为故事是整个游戏实现的基础,从开始到结尾。
       必须要意识到的是一个idea一定要完整,它的每个方面都必须认真地想清楚。
       理想的话,你的代码应该是拥有足够的可扩展性的,那样你能够很有效地去操纵它-特别是在后期你想要增加关卡或者boss到游戏中的时候。
       当你在编码的时候,如果有一个完整的游戏故事,则能够实时对应。
       
       如果你现在脑袋中有一个关于游戏的故事的话,现在就写下一个草稿。当你完成游戏的时候,你可以用游戏和它对比一下。
       
       OpenGL和2D
       OpenGL和3D的牵扯比较多,但是,渲染2D画面它也很擅长。实际上,OpenGL渲染和操纵2D图像比Android内置的方法还要有效。Android的内置API对大部分的应用开发已经足够好了,但是对于游戏,它更追求效率,OpenGL是最好的方式。
       
       一个典型的游戏运行方式
       绘制背景;
       如果需要的话移动背景;
       绘制文字;
       绘制武器,子弹等等;
       移动每个角色;
       播放背景乐和音效;
       接受输入设备的输入;
       跟踪角色和背景的运动轨迹,确定他们没有走到不改去的地方。
       绘制动画;
       确保物体的运动轨迹符合预期;
       记录玩家得分;
       管理网络;
       建立菜单。
       
       游戏引擎
       游戏引擎是普遍适用的,必须让它能够用在多种情形,可能的话,它应该是可以适用于不同游戏的,这和游戏代码刚好相反。对于游戏代码,就像他的名字那样,它只是针对某个特定地游戏。
       游戏引擎需要做的事:
       图形渲染;
       动画;
       声音;
       碰撞检测;
       人工智能;
       物理;
       线程和内存管理;
       网络;
       命令翻译。
       
       游戏引擎通常由低级语言编写。低级语言提供了一个更直接地方式和硬件连接。一个游戏引擎需要把游戏代码传递给硬件。这样,游戏就可以跑得更快,操作起来也有更好的体验。
       一个游戏引擎不会为某个游戏做事,比如,它不会因为控制图像渲染就在屏幕上画一个小猫,但是它允许你绘制任何事物。画小猫是游戏代码来做的,它窒只需要将它想要的传递给引擎。
       因此你将会在游戏引擎中看到下面的方法:
       DrawFunyKitten();
       同时,你也会在游戏代码中看到类似DrawCharacter(funyKitten);的语句。
       
       关于游戏代码
       游戏跑的就是游戏代码,他不同于游戏引擎,能够适用多个游戏,它通常是独一无二的。
       当你开发一款小游戏的时候,游戏引擎代码和游戏代码可能会契合地很紧密,很难将他们分开。但是理解两者的关系还是非常重要的。
       非常建议你将两者清晰地分开,这能够增强你的代码的可重用性,并且能提高你的开发技巧。另外,一定要避免Lazy code和lazy coding practices,比如代码不写注释,没有缩进。
       
     

  • 相关阅读:
    【WPF】wpf image控件加载网络图片不显示问题,
    【VS】vs修改大小写快捷键
    【C#】菜单功能,将剪贴板JSON内容或者xml内容直接粘贴为类
    【异常】调用的目标发生了异常
    【MySQL】函数IFNULL、设置默认时间
    【Kindle】pdf转mobi适合kindle查看格式
    【WPF】中的文字修饰——上划线,中划线,基线与下划线
    vscode使用Eslint + prettier + beautify 格式化vue 代码不换行
    Office文件转PDF
    MSSQL同步刷新视图字段长度和源表保持一致
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3025967.html
Copyright © 2011-2022 走看看