Sneak preview of upcoming 3D blast-em-up (video)

After a month in my Blender dungeon, here’s a sneak preview of my 3D arcade blaster!

The terrain auto generates as you fly using perlin noise. I’m pretty proud of the texture blending on the terrain, it adds a lot of “production value”.

Thanks to @Ignatz for the OBJ importer code, and @spacemonkey for the Codea port of the plasma explosion shader . I changed it to pre-multiplied alpha.

I’m currently working on skinning more worlds (I have a volcanic planet in the works which is shaping up very nicely), and I need to add more ship models, weapons etc. It’s procedurally generated, but I also want to structure it with mid-level baddies etc.

It was originally much more arcade-y than this (the camera always pointed forwards, and the ship just rolled from side to side), now it’s in a somewhat inbetween space, in that the camera points in the direction of the ship, but still very arcadey in feel.

[edit] some images:



Nice! B-)

@Ignatz I was interested that you said that you clip the draw distance at 100 pixels in your first person shooter (but you have a sky dome, that must be more than 100 pixels away?). Here, the fog has a radius of 5000, the sky diorama is a constant 6000 pixels away. I was clipping at 6000 (in the perspective command). Even at 5000 pixels, when you go fast, big mountains can seem to pop out of nowhere sometimes. Maybe a flying game just needs a much further draw distance than a first person shooter?

On the iPad Air, the above runs at a pretty smooth 60 fps, but I worry a little how it will handle the end-of-level baddies I have planned.

@yojimbo2000 I don’t play games, but this one looks really interesting. Great job

So jelly right now. Nice work ^:)^

Awesome game!

Out of curiosity, roughly how many lines of code is this?

I normally don’t comment on program preview threads, but this app looks truly amazing, everything from the lighting to the terrain generation. Just wow!

Thanks guys! Can anyone think of a good name for it? That loading screen is looking a little bare…

@Crumble , at present, 3192 lines! (not counting all of the object models, which are loaded into global data). Love how concise you can be in Codea…

I clipped at 100 pixels in my dungeon, not my outdoor FPS shooter.

If stuff pops out of nowhere, one thing to watch for is that the perspective far plane (the furthest point that OpenGL will draw) is set to the maximum depth of your scene, because I think it defaults to 2000.

So you probably need to set it explicitly in the perspective command. I think it is the last parameter.

@yojimbo2000 How did you do the loading screen? Is that for the project loading up or is it after the project has statarted being ran and its the progress of it ‘preparing’ 3D stuff.

@Goatboy76 the asset loader is a coroutine, and inbetween loading each model I have a coroutine.yield(progress) call

wow! Very pro. =D>

Looks fantastic - can’t wait to see it finished.

Great work @yojimbo2000 ! Really interesting to see the quality of what people are doing with Codea these days is becoming really quite impressive!

marvel at game screen

Thanks again to everyone. I just hope I can get it finished. I’m a serial non-finisher I’m afraid when it comes to my own projects. I don’t know what it is about the final hurdle.

I should also say, thanks to @juce for providing the source control.

(And of course, thanks to @Simeon @John and everyone at 2LivesLeft. Every time a Codea update comes out, I republish my 5 star review. Codea is the only app I do this for)

My first thought when I saw it was the PC game by Rage called “Incoming” which was a mix of a third person fly / drive shooter interspersed with cannon sections like a first person missile command.

@yojimbo2000 - I know what you mean about being a serial non-finisher but I think this one could be really impressive.

If you don’t want to go the full roaming landscape route, then it would look equally good as an on rails shooter with limited freedom - a bit like the rework of AfterBurner on the XBox 360.

Lastly - one trick I did learn from working on a similar style of game many years ago was to have three different models for your ship, start with the same mesh and then move the vertices back to have the wings have a slightly swept back look and then as you do your boost interpolate the vertices to create a smooth speed up anim (and you could do a similar thing if you had an airbrake to slow down).

@TechDojo regarding the roaming landscape, it autogenerates in one direction only (North). Having it autogenerate in 360 degrees is beyond my competencies just now (maybe for the sequel)! Originally it was a canyon. Then I decided it would be fun to open the world up a bit more, by making the world wrap round in the x dimension. So you are now free to roam, but only in a 170 degree arc (represented by the radar screen in the bottom right). If it was 180 degrees, you’d be able to fly directly along the x axis, and you would probably begin to notice the same mountain wrapping around! But at a 10 degree angle, there’s enough “forward” (North-ward) motion that the wrapping is more or less disguised. It does feel a bit weird though that you can’t turn to face backwards (that’s partly what the radar is for, to indicate where North is).

yeah, I need to think about how to animate the boost. I have a few models with a moving part (the turret on the tower in the top screenshot rotates), but I’ve never deformed a mesh on the fly within Codea. I’m actually thinking about changing the player’s craft to a glider, and going for a Ghibli-esque feel to the world. The wings would then be a separate mesh from the body, which should give me quite a few options for animation.

This would also help to “motivate” the 180 degree freedom of movement thang - I could have an explanatory blurb on screen saying you can’t fly upwind, and that the radar is showing you the direction of the wind currents.

The other thing that eagle-eyed viewers of the video might have spotted is that the action more-or-less all takes place in one plane. This is obviously way easier to code than a full 3D world, but it’s also worth pointing out that restricting the action in this way makes for a much more intense, arcadey feel. i.e. with a lot of full simulators, there’s the problem of there just being too much empty space, and you’re chasing a tiny speck on the horizon which suddenly whooshes past you, and you hardly get to see the painstakingly crafted model. Again, if the craft was a glider, it would help to explain why you can’t fly over the mountains and have to fly round them instead.

Could add a smoke trail behind your ship and say “Your ship is damaged, you must make it to home base!”. Then if they try to turn around, display a message saying “Home isn’t that way!”.

When I watch the video, I think of a 3D version of Tyrian, which was one of my favorite games back in the day. There is a port of Tyrian on iOS, but a 3D one would be awesome! The boss fights and weapon customizations are what made the game awesome.

Hi @yojimobo2000,

One word - WOW!!!

I’ve been trying to do something similar for months but I’m way down on the capability list. Thanks for the hints on how you’ve built this. A little demo on some features would help us drag ourselves nearer your level - later.

Suggestion for name - ‘Skimmer’ or ‘Canyon Skimmer’.

Keep up the good work and, don’t be like me, finish it!!!.

Thanks again.