- 浏览: 314891 次
- 性别:
- 来自: 益阳
文章分类
最新评论
-
duckbit:
楼主是否能把共享layout的例子发给我,有点没明白 谢谢额! ...
Android换肤apk -
天涯海角262253:
...
Androidpn里的Xmpp的理解 -
lbstudy:
Activity之间的切换动画 -
dumbnesslys:
楼主可不可以给个源码 ,就build.xml的 772774 ...
Ant自动打包 -
finaljava:
build.xml 这么复杂,看看这个吧http://angr ...
Ant自动打包
The main mode of movement in Replica Island is flying. The Android robot has thrusters in his feet, and while he can also slide upon the ground, most of the game is spent maneuvering through the air. Enemies are dispatched by dropping on them from above and the collision and physics systems make it easy to glide off of a ramp and into the air. I don't think this is a common approach for side scrolling platformers.
The reason that the Android flies is that many Android devices ship with a trackball. Some (like the Samsung Galaxy) have a d-pad, which works fine as well, but the devices from HTC (which include the G1, myTouch, and Hero) all sport a trackball. The great thing about a trackball is that it's an analog interface with a pretty high resolution. The bad thing about it is that you can't hold a single direction down like you can with a d-pad; to keep sending input events in a specific direction, you have to keep rolling in that direction.
When I started working on Replica Island, I knew that I'd have to do something different with the player controls to afford trackball use. Letting the Android robot fly seemed like a good solution: the player gets going in a certain direction and then only has to make minor adjustments in heading to steer rather than constantly depressing a button indicating the direction that they wish to travel. This sort control scheme is a bit like a car steering wheel--given velocity that you already have you just need to worry about turning left and right. Indeed, in early prototypes it was clear that the trackball would work very well for this sort of analog maneuvering, but I also quickly learned that it's hard to make precise movements with a trackball.
My initial implementation let the player move left, right, and up by rolling the ball, and while it worked and was playable, people had a really hard time moving in only one direction. It was too easy to accidentally roll up a little when trying to go left or right, which made the controls feel unwieldy and arbitrary. After experimenting with dead zones and other input filters, I finally reduced the trackball to horizontal movement and put a jump/fly button at the lower-left hand corner of the screen. This is a much better solution because it allows players to manage their horizontal and vertical velocity independently, much like they can with a d-pad or other traditional game input device. Furthermore, by ignoring vertical movement on the trackball the control scheme became a lot more forgiving to minor input mistakes.
Replica Island is playable with three inputs: the jump/fly button, left and right controls, and a drop/attack button. These three inputs were decided upon to allow the trackball to feel good, but they map well to other input systems (like a hardware keyboard or d-pad) too, so Replica Island is playable on a wide range of hardware.
Once I settled on the trackball-based steering approach for movement, many other aspects of the core game design fell out. I posted earlier about the collision detection system I wrote to support slopes and angles; this system was necessary to allow for ramp and bounce physics. The Android robot can slide across the ground but it's a lot more fun when he's in the air, so I needed to have a collision and physics system that allows him to take flight easily. Sliding down hills or going off ramps feels good and works well with the control scheme.
This approach also simplified animation: if the Android robot is going to fly with thrusters in his feet, he doesn't need a walk cycle, a run cycle, a turn animation, a skid to stop animation, a jump windup or a jump peak or a jump fall animation. His motion system is more complicated than most of the side scrollers I've made in the past but his animation system is extremely simple; the control scheme afforded this simplicity.
As awesome as Android is for games, the devices it runs on are not generally designed explicitly for gaming. To make a fun game, especially one that is part of an established console-oriented genre, you need to come up with a control scheme that works well for the hardware, even if there's not a lot of precedent for it. In the case of Replica Island, I started with the control scheme and the rest of the game design flowed out from there; as a result, I think that it's a quite playable platformer despite its rather unconventional controls.
When making games for this type of system, it's important to consider exactly how the available inputs are going to make the game fun; if you try to just glue controls from some other hardware paradigm onto a game running on a phone the results are almost guaranteed to suck. Getting the controls right is probably the single most important task you have as a game developer, and if you can nail them down early enough, a huge part of your game design will pretty much write itself.
发表评论
-
Want to Change the Game Industry? Support the Xperia PLAY.
2011-12-07 21:05 0The problems with the console g ... -
Replica Island Updated
2011-12-07 21:04 0Yesterday I uploaded the first ... -
Hot Failure
2011-12-07 21:04 0An article I originally wrote f ... -
Building a Reflective Object System in C++
2011-12-07 21:03 0Every game engine I've worked w ... -
Leveraging Java and C++ for Hybrid Games
2011-12-07 21:02 0I've been thinking a lot lately ... -
Game Object Construction Rabbit Hole
2011-12-07 21:01 0Today I want to write a little ... -
Long Time, No See
2011-12-07 21:00 0I haven't written anything here ... -
Replica Island Passes a Million Installs
2011-12-07 20:59 0Holy crap!Replica Island passed ... -
Control Configuration and Abstraction
2011-12-07 20:58 0The #1 thing that I've learn ... -
Design Post-Mortem: Three Mistakes
2011-12-07 20:58 0While I'm pretty happy with Rep ... -
Replica Island: One Month On
2011-12-07 20:57 0As of today, Replica Island ... -
My New Favorite User Feedback
2011-12-07 20:56 0You can't write this stuff ... -
Replica Island User Comments Are Hilarious
2011-12-07 20:55 0Update: Blogger apparently isn' ... -
Design Post-Mortem: The Possession Orb
2011-12-07 20:55 0Rather than write a big lo ... -
Replica Island Released!
2011-12-07 20:54 0I released Replica Island almos ... -
Fragmentation? More like Fragmentawesome.
2011-12-07 20:53 0I'm lucky enough to have occasi ... -
The Elusive Perfect Platformer Camera
2011-12-07 20:52 0I've come to believe that platf ... -
Game Play Video
2011-12-07 20:51 0Here's some footage of an early ... -
Tuning With Metrics Redux
2011-12-07 20:50 0A while back I posted about the ... -
Some Screenshots
2011-12-07 20:49 0I've posted some screenshots of ...
相关推荐
Dll-Flies免费破解完整版,无需付费可使用全部功能
在本项目"week01_flies77y_processing_"中,我们主要关注的是利用数字艺术技术,特别是图像处理软件,来创作一个具有社会意义的视觉海报。这个海报以"flies77y processing"为主题,旨在唤起人们对保护动物的关注,...
标题 "The Seroplane Flies High" 和描述中并没有直接提到 IT 知识点,但根据提供的标签 "字体",我们可以推断出这个压缩包可能包含一个与飞行或航空主题相关的定制字体。在这个场景下,我们可以深入探讨字体设计、...
标题中的“dct0_dct_flies1zi_transform_”可能指的是一个关于离散余弦变换的项目或程序,而“flies1zi”可能是对某种特定实现或者版本的命名。这里,我们主要讨论离散余弦变换的基本概念、原理以及其在实际应用中的...
《鸟撞分析:深入理解flies_鸟撞k文件与源代码》 在航空领域,鸟撞问题是一个不可忽视的安全隐患,对于飞行器的设计和飞行安全具有重要意义。本篇将围绕"flies_鸟撞k文件_鸟撞分析源代码_鸟撞_K."这一主题,深入...
标题中的"NHCotname_to_JQCotname_flies7og_南华指数合约_期货分钟k线_期货_聚宽_"表明这是一个与金融期货市场相关的程序,特别关注南华指数合约的分钟级K线数据。"flies7og"可能是这个程序的特定版本或者功能标识。...
2015春三年级英语下册 Module 8 Unit 2 Daming flies a kite in the park教案 外研版(三起)
modelica 语言建模国际会议论文集
【标题】"Super Flies-crx插件"是一款专为英文环境设计的浏览器扩展程序,其主要功能是在用户浏览网页时模拟一只苍蝇飞入并随后消失的效果,为上网体验增添一丝趣味性。 【描述】这款插件的独特之处在于它的互动性...
初级入门吉他谱 guitar tab
A tiny RGBLED library I wrote. Someone might find this useful. It contains HSB to RGB code that I wrote (and am proud of)
Chromosome elimination in sciarid flies Chromosome elimination in sciarid flies Clara Goday* and M. Rosario Esteban Summary The programmed elimination of part of the genome through chromosome loss ...
I wanted to take this opportunity to reach out to you and ask you how your application has gone. Could you please take a minute to click one of the links below to tell me? That will help me make sure ...
多方法实现音频信号处理短时傅里叶变换%逆STFT%CQT核-常数Q变换(CQT)核%使用CQT内核的CQT谱图%使用CQT内核的CQT chromagram-CQT chromagram%mfcc-Mel频率倒谱系数(MFCCs)%使用快速傅立叶变换(FFT)的离散余弦...
初级新手入门吉他谱 guitar tab
time-flies Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minifies for production npm run build Lints and fixes files npm run lint Customize ...
这是一个基于VB6(Visual Basic 6)的源代码项目,主要功能是生成VB工程的文档。这个工具对于VB开发者来说非常实用,因为它可以帮助他们自动生成技术文档,减轻编写文档的工作负担,提高开发效率。...
在"Class-1 : Lecture's Flies"中,讲师可能会引导你使用MatLab来模拟苍蝇的飞行路径,或者分析它们的运动模式,以此来展示如何构建数学模型并进行仿真。 在实际操作中,你可能首先会学习如何导入数据,这可能涉及...
在MatLab的视频讲座系列中,Class-4主要聚焦于"Class-4 : Lecture's Flies"的主题,这个部分深入探讨了如何使用MatLab进行软件开发。MatLab是一款强大的数值计算和可视化工具,广泛应用于科学计算、工程分析以及数据...
青蛙和苍蝇! 2位玩家pos p2 = pos p1.offset(x) 运动抛物线有“响”声吗? 青蛙方向/跳跃或坐姿图像。 舌头遍历长度数组。 当舌头重叠时得分飞动= 从左到右或从r到l的恒定运动,每个渲染都有随机的上/下速度变化...