UA 2008: Manta

Manta is an entry for the Unity Awards for 2008. It’s intended to be a simple arcade shooter. It should gain a bit it terms of functionality (the enemy “AI” code isn’t plugged in yet) and a lot of content before the final build.

Anyway, I hope you enjoy it and please be brutal with your comments!

Inconsequence – project homepage (for now)
Inconsequence – direct link to current beta

About the “Team”

I (Tonio Loewald) am responsible for the game design, all the current 3d content, the art direction such as it is, some of the sound effects, and all the 2d graphics (including particles, etc.) All the 3d content was created using Cheetah 3D and Silo 2, all the 2d stuff was done with Photoshop (and very occasionally Illustrator). The game development, obviously, was done using Unity Pro.

Levan Iordanishvili composed all the music, provided a lot of feedback and testing, and a lot of the sound effects.

Ian McPhee and Vincent Esche were going to contribute graphics but none have made it into the project yet. Some of Ian’s work should make it into the final (October 1) version.

We started this project pretty much from scratch – pencil sketches and a couple of ideas (Time Pilot 84 + Xevious in 3d) at the end of August. We’re reusing some code written over the preceding two months as a result of rewriting Project Weasel’s space combat engine, so arguably the project started before that.

Lessons Learned

It’s better to build up from gameplay than from graphics. It’s easy to be seduced by gorgeous 3d content which turns out not to be useful or actively counter-productive when trying to make a game fun. To quote Faulker – you must kill all your darlings, so it helps to start with as few as possible, especially if they’re expensive to produce. Project Weasel had assets before it had gameplay and we’ve wasted a year trying not to throw them out. This game started out with cubes and spheres and was immediately addictive.

Or to put it more bluntly: it’s the gameplay stupid.

Physics is your friend, but it’s your extremely fickle friend with bipolar disorder. You need to tweak tweak tweak your values to get the feel you want, and not just plug in values you think will work and leave the fine-tuning for later.

GTD works. I started using Things – a really nice GTD app – to manage my to do list for this project, and I’ll be damned if it doesn’t work. I haven’t read the cult literature, but the basic idea of capturing to-dos as soon as you think of them, sorting and prioritizing them ASAP, and then doing the stuff on top of the pile is very powerful. The list of items I’ve knocked off in the last month is frankly quite astounding… and I’m working full time and helping care for twin babies at the same time. Pity about sleep.

I have a feeling this section will expand as we go through the final crunch period and try to smooth out all the rough edges.

Finally, I’ve added some screenshots from the September 25 release.

93104--3693--$dogfighting_over_lunar_surface_187.jpg
93104--3694--$mayhem_173.jpg
93104--3695--$ocean_rig_115.jpg

Here’s a few screenshots of the current alpha… cough… beta.

Edit: these screenshots are from the initial, September 15, version.

Wow! Awesome game! The radar is really fancy. How did you manage that?

Nice. :slight_smile: I’d lock the mouse position if I were you.

I’ll hide the mouse but not sure about locking. It’s not a mouselook game, more of a virtual stick.

The Radar is actually fairly simple. I use relativePosition = transform.InverseTransformPoint( whatever.position ) to get its relative position, then normalize the vector. From there it’s fairly simple scaling.

Ohhh, that’d explain my control difficulties. In that case, I’d make the cursor into an arrow and have it rotate to face the direction it’s pointing.

I might do that as an option … the actual Manta gives you pretty good feedback too (its orientation reflects the mouse position).

Note that this game is intended to run on the iPhone so there won’t be a mouse…

Oh. >.> Well in that case, rock on brother. It’s looking and playing well.

New build with Mission support and various UI enhancements.

Same bat … I mean Manta … time, same URL:

I should have the fun stuff (proper enemy behavior, enemies that shoot back, and prettier stuff to kill) in shortly.

Love the music - curse the inverted mouse controls!!! :slight_smile:

Love it so far - great work and fast to load too.

IPete2.

I’ll have control options (included inverted Y-axis) in there soonish. Refining the controls a bit is high on my to do list.

Wow, shame on me i haven’t played this before!
Excellent piece of work…
But yeah, add one more vote for the “invert y-axis” thing.
I cannot get used to it at all. :wink:

Latest version posted has music and y-axis toggles. (And it should remember your settings.)

Awesome game! I love everything about it :)… I had the speakers up a bit to loud and when your title screen came on I almost jumped out of the chair!

You and your team, keep up the great work…

Jake

Manta has been updated.

The latest version includes a fairly full set of features, no placeholder models (although some explosions and wreckage are either missing or very rough) but there’s a lot of debugging and polishing left to do, and quite a bit more content to put in.

Enemies can shoot (and do, rather a lot).
Every enemy has its own “AI”, so stuff behaves more interestingly.
The spawn manager is a lot more dynamic (it has a spawn budget and a fill rate).
Objectives are more complex.

Love the music, really sets the mood. The 3D radar is also very clever and effective. Actually, the whole game is pretty darn good! Only a few minor things I think would improve the game: The mouse controls seemed a bit too “mechanical” to me, not “fluid” as I would expect for flying. Is there any way to add a bit of smoothing to the vehicle movement without making it feel too detached? Also, the highlights on your bubbles seem wrong, shouldn’t they be at the top?

Overall, a great game. Nice work!

Good catch on the bubbles, fixed in next build :slight_smile:

I will look into smoothing the apparent movement, but not much, because I don’t want to compromise apparent responsiveness. (Actually, the manta’s rotation is purely control feedback, actual motion is very smooth (all physics based, although NOT based on a real flight model).)

I love the concept and execution of this game. Simple but good. :smile: Very similar to Phoenix Strike. But I found one bug: on the second level, it doesn’t track how many enemies I killed. :x

I’ve been squashing bugs. I believe on the second level it was failing to detect the destruction of some secondary targets … if it’s caused by capitalization, it’s fixed. If it’s caused by some other problem (e.g. my typing in the name wrong) it will still not work :slight_smile:

Edit: hmm, playing the game outside the dev environment causes the bug to happen for me now… will fix it ASAP.

Adventures in Collision Detection

OK fixed the problem which had nothing to do with spelling or capitalization. The problem is that the ground is made of a very crude mesh so the drone (which is small and also uses a mesh collider) falls right through it without triggering OnCollisionEnter() most of the time.

My new spawn manager code detected the ship had fallen below ground and culled it before it exploded, so you got no credit. I fixed it by using the spawn manager’s “IsBelowGround()” test instead of looking for a collision with the ground. The spawn manager fires a ray from 10,000 units above an object down to it, and looks for anything tagged “ground”. (The ground is one-sided, so firing rays upwards from the original point didn’t work… that wasted a couple of hours.) I’m guessing this is an expensive way to do this kind of thing, so I’ll probably need to do something different (maybe just use a flat ground plane on the iPhone :-/ ) – mesh colliders are to be avoided too, I guess.