⑴ 从事游戏开发,需要什么技能
游戏开发领域广阔,具体需要的技能取决于你所选择的方向。例如,策划人员需要掌握剧情策划、关卡设计和数值策划等技能;而程序开发人员则需要学习客户端编程、服务器编程、引擎编程、脚本编程以及手机游戏开发、网页游戏开发等。
对于程序开发而言,如果你专注于客户端开发,你需要熟悉Windows编程,学习Socket等服务器相关知识,以及数据库操作。引擎编程需要深入理解DirectX、OpenGL、3D数学和物理基础。脚本编程则需要掌握脚本语言的基础知识。手机游戏开发涉及iOS、Android平台,使用不同的引擎需要学习相应的知识。网页游戏开发则主要关注前端技术,如Flex、JavaScript、HTML等。
对于游戏开发,我建议你首先学习C++、数据结构、Socket编程、Windows编程、数据库编程等基础知识。然后深入学习3D数学,尝试开发一个小游戏。同时,研究开源游戏引擎,学习设计模式,这将是一个漫长的过程,但打下坚实的基础,你将能够应对各种开发挑战。
如果你希望成为一名游戏行业的从业者,建议你明确目标,选择一个方向进行专业培训。精通特定引擎或架构(如Cocos2D、Unity3D、OpenGL、DirectX等),或者掌握基础(如算法、设计模式、图形学、人工智能等)都将有助于你进入游戏行业。
而对于独立游戏开发者来说,你需要掌握更多的技能。首先,你需要明确自己想在哪个平台上开发游戏?iOS?Android?Windows?网络?每个平台都有其独特的开发工具和技术栈。在此基础上,你可以选择合适的引擎进行研究。此外,独立开发者还需要了解一些美术知识,以及数值策划,但这并不意味着美术是游戏开发的关键。
总的来说,游戏开发需要综合运用多方面的技能。无论是成为游戏行业的从业者,还是独立开发者,都需要不断学习和实践,才能在这个领域取得成功。
⑵ cocos2d Android项目不能读取文件
sqlite3.c来操作sqlite的,这个库的下载和使用,很多教程上都有介绍。
在win32和MacOS上,这个库的使用没啥特别,但是在Android上,却无法直接读取。
这里要说明,Android不能读取的原因,是因为对数据库的操作必须有root权限,也就是说,我们的应用程序只能对系统提供的特定目录中的数据库文件进行操作。
这个目录,cocos2.1.3可以通过CCFileUtils::sharedFileUtils()->getWritablePath()来获得。
也就是说,我们需要把资源目录下的sliqte库文件,复制到CCFileUtils::sharedFileUtils()->getWritablePath()中,才可以对其进行操作。
对于这种情况,我的解决方案是,在AppDelegate.cpp中,做如下实现
bool isFileExist(const char* pFileName)
{
if(!pFileName)return false;
std::string filePath = CCFileUtils::sharedFileUtils()->getWritablePath();
filePath+=pFileName;
FILE *pFp = fopen(filePath.c_str(),"r");
CCLog(filePath.c_str());
if(pFp)
{
fclose(pFp);
return true;
}
return false;
}
void Data(const char* pFileName)
{
std::string strPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(pFileName);
unsigned long len=0;
unsigned char* data =NULL;
data = CCFileUtils::sharedFileUtils()->getFileData(strPath.c_str(),"r",&len);
std::string destPath = CCFileUtils::sharedFileUtils()->getWritablePath();
destPath+= pFileName;
FILE *pFp=fopen(destPath.c_str(),"w+");
fwrite(data,sizeof(char),len,pFp);
fclose(pFp);
delete []data;
data=NULL;
}
bool AppDelegate::applicationDidFinishLaunching()
{
#if (CC_TARGET_PLATFORM !=CC_TARGET_WIN32)//Android下需要复制数据文件
//检查数据库文件是否已经提取
if(isFileExist("dbd_user_save.db")==false)
{
Data("dbd_user_save.db");//要使用的sqlite库文件
}
#endif
//下略
在程序启动时,检查sqlite是否存在,不存在,则复制一份。
⑶ 游戏开发需要具备哪些技术
一、游戏开发制作的概念
1、游戏开发是一个过程,为了激发玩家玩游戏热情,通过遵循设计制作规则,来设计人物、场景等游戏要素。
2、主要流程包括原画创作、建模、材质、灯光及渲染、骨骼设定、动画、特效等部分。涉及范畴包括 :游戏规则及玩法、视觉艺术、编程、产品化、声效、编剧、游戏角色、道具、场景、界面等等元素。
3、游戏程序开发归根到底就是软件工程,是游戏制造环节中不行短少的重要部分。游戏程序开发是技术含量最高的,游戏程序员的薪资也相对其他职业高许多,目前游戏职业中游戏程度人才的缺口非常大,供不应求。
二、游戏开发需要具备的知识
1、游戏本质分析,游戏产业概论、游戏开发流程及职业划分、玩家需求分析、构思创意及文档编写要求、游戏故事设计、游戏元素、规则、任务、系统、关卡设计、游戏平衡设定、界面与操作功能。
2、透视基础、构图基础、结构素描、明暗素描、艺用人体解剖基础、人物速写、Adobe PhotoshopCS3软件应用、PhotoshopCS3造型基础、游戏美术风格技法、色彩基础、游戏色彩练习、肖像绘制、质感表现。
3、3DMAX软件基础、游戏材质基础、游戏道具制作、作品渲染。
三、游戏场景制作技巧、场景材质制作、卡通角色制作、写实角色制作、怪物制作。简单分类的话就是:
1、扎实的算法知识。主要有:树或图的搜索算法、A*算法、碰撞检测算法、BSP树、人工智能。
2、相关图形处理知识。比如:Direct X编程、OpenGL编程、图形学的相关知识(三维图形的形体、纹理、贴图、照明,还有三维对象的消隐算法比如油画算法,Z缓存)和动画处理知识。如果想深入还要学会几种三维引擎比如OGRE。
3、扎实的程序语言功底,主要代表为VC、DELPHI和JAVA。其中VC使用最广,现在比较大的游戏也由此开发;DELPHI功能也很强,很多网游:比如网金、传奇都用到了DELPHI;JAVA用于开发手机游戏。
补充:
一、游戏开发需要学哪些
1、基础公共课:游戏概述 Photoshop平面软件及像素美术 3dsmax软件基础及效果图制作 游戏程序设计基础及游戏制作原理 游戏策划、制作、测试及运营实践 游戏行业规划及职业素质。
2、专业技能课:手机2D游戏开发 2D游戏开发技术实战 C++语言及算法基础 WIN32程序开发及MFC基础 2D游戏开发实践 行业规划及职业素质。2D网络游戏开发主要学习内容有网络游戏程序设计、网络游戏算法设计、2D网络游戏平台设计以及商业实战项目训练,包含C++、数据结构、算法基础、Windows API使用、MFC原理及其应用、2D图形渲染技术、界面设计与应用。
3、游戏程序方向: Direct 3D程序开发基础 3D游戏开发技术实战 游戏引擎的修改与使用网络通讯、数据库及游戏服务器、行业规划及职业素质、游戏综合项目实战训练、基地顶岗项目实训。
二、游戏开发常用软件
1、3dsMAX:大多数游戏开发公司美工使用,效率较高,可以独立制作游戏中所有美术相关资源。
2、Delphi:直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。
3、 Photoshop:PHOTOSHOP是一个很好的图像编辑软件,PHOTOSHOP的应用领域很广泛,在图像、图形、文字、视频、出版各方面都有涉及。
4、MAYA:跟3dsMAX差不多的软件,因个人喜好而定, MAYA在制作动作的方面较MAX稍差,不过在很多方面这两款软件都是可以兼容的。
5、其他:在个人计算机上,可以用目前流性的软件开发工具,比如:C,C++,VC++,Delphi,C++ Builder等。由于Windows操作系统的普及和其强大的多媒体功能,越来越多的游戏支持Windows操作系统。