Alright, I think I like the idea of a top-down "space shooter" with local multiplayer. I'll stick to 2-player for now. I'm sure 3 or 4 players would be interesting, but I won't realistically have time to test those modes as easily in a month.
So the idea is: square-ish stage where each player controls a ship. I'm thinking Geometry Wars style controls - left stick moves, right stick shoots. Let's stick with that for now - other buttons can drop bombs / fire rockets/lasers/whatever. Not important at this point, I want to get the core working first.
The stage should have walls, maybe more dynamic obstacles later (some kind of 'doors'). I'm not sure if the stage should be small enough that the entire field is visible at all times, or if I need to do split-screen with bigger levels (so there's some amount of not knowing where the enemy is). I'm going to implement the non-splitscreen version first even though I suspect the splitscreen version will be better. The engine already supports multiple viewports so there's no tech issue there.
Alright, so initial todo list:
- model a simple level in maya
- I think I have a cube in the engine Primitives library, so that will represent the ship/bullets. If not, add one.
- implement a PrimitiveMesh controller that acts like StaticMesh but exposes the engine primitive geometry
- implement a ShipController.
-- Attach a prim cube to a GO (GameObject)
-- left stick moves the ship GO
-- implement collision checks. This needs more thought to see what I can get away with. I already have ray vs mesh working for editor picking, need to extend it to return the intersection normal (which is just triangle normal). First pass just use raycasting to move the ship - this will mean we clip into walls for now (unless we dilate the mesh?)
-- right stick should fire little cube bullets - use the same ray vs mesh test to see when I hit something. I'll need a way for the raycast to return the GO hit so I can know when a bullet hits a wall vs another ship or bullet.
No camera work for now as I'll just use a fixed camera that can see the whole level.
That should keep me busy for a bit, and afterwards I'll have a little level I can fly around and shoot in.
Sounds like a game!
No comments:
Post a Comment