Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

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

edited April 2015 in General Posts: 2,020

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:




  • IgnatzIgnatz Mod
    Posts: 5,396

    Nice! B-)

  • edited April 2015 Posts: 2,020

    @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.

  • dave1707dave1707 Mod
    Posts: 9,286

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

  • Posts: 31

    So jelly right now. Nice work ^:)^

  • edited April 2015 Posts: 300

    Awesome game!

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

  • Posts: 216

    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!

  • Posts: 2,020

    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....

  • IgnatzIgnatz Mod
    Posts: 5,396

    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.

  • Posts: 418

    @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.

  • Posts: 2,020

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

  • Jmv38Jmv38 Mod
    Posts: 3,297

    wow! Very pro. =D>

  • Posts: 688

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

  • Posts: 398

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

  • Posts: 289

    marvel at game screen

  • Posts: 2,020

    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)

  • Posts: 688

    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).

  • Posts: 2,020

    @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.

  • edited April 2015 Posts: 300

    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.

  • edited April 2015 Posts: 2,265

    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.



  • COOL

  • Posts: 878

    @yojimbo2000 Really impressive stuff! Looking forward to seeing where you take it. Really like the arcade feel.

  • edited April 2015 Posts: 154

    @yojimbo2000, very impressive! Gotta get it finished now :) May i suggest adding a subtle background music track with a space theme? Other than that it's pretty much ready for AppStore

  • Posts: 2,020

    Thanks again guys.

    One other thing I wanted to ask about was pricing models (this isn't Codea specific of course, but it's something that forum members have experience of).

    On the gamer sites recently there's been a couple of trends regarding criticism of pricing models that are quite interesting I think. One is "free to play done right", ie something like Crossy Road, where the IAP don't affect the gameplay in any way, they're just for cosmetic reskinnings, or to cut ads (the developer Mediocre has an interesting model on their last two games Does not commute is the most recent, where a single IAP unlocks the ability to restart from one of your checkpoints).

    The other trend is the old fashioned "pay once only, NO IAP" line. Actually Apple had a recent section in the app store just for no-IAP games.

    On the one hand, this game is procedurally generated (but will have checkpoints). It will need to have integration with Game Center, achievements etc for people to keep playing. So that kind of "endless flyer" aspect seems to suggest a Crossy Road style model.

    On the other hand, IAP could be tricky to implement, and this is a one-person, indy, (ahem) hand-crafted title, so maybe a "pay once, no IAP" model is better (probably at the lowest possible price point)

    Any pointers from people who have experience of this would be incredibly helpful.

    I'm not expecting to be minting it or anything like that. I just wouldn't mind trying to get back my Apple dev fee (is even that too ambitious??

  • Posts: 878

    @yojimbo2000 pricing is one thing, but marketing is also incredibly important to get the downloads (even if it is free) - this means website, press kit, reviews (if you can get them) from the popular gaming sites, videos of gameplay and a social media presence (twitter, Facebook, etc)

    Here are the details of both my releases to the App store.

    Pachinkoos was my first game developed from the first codea cook off ( Free with no ads. I released it more to see the whole process through, rather than anything else. Little advertising and has been downloaded a handful of times.

    Anagramal ( is a word game loosely based on a TV show in the UK called Countdown. Pay once, no IAP, lowest price point. About 30 downloads. Though I put a website together I didn't advertise beyond this forum and my friends. I've also an updated version in the pipeline, but haven't got round to releasing it. I also made a mess of my first update - introducing a critical bug which caused an immediate crash - big lesson learnt!

    It sounds like you've done your research - the pay once, no ads seems like the best option, but then the biggest hurdle is getting people to part with the cash in the first place. The honesty box type approach/cosmetic reskinning approach is a good alternative, where there is less reliance on the customer taking a punt, but the risk lies in them stumping up the cash once they've played the game.

    Also, here are a few older threads discussing app release which you may not have seen:

  • edited April 2015 Posts: 398

    Good set of threads there @West. The bottom line is that without a decent social media presence to drum up interest from customers, some exposure from review sites/blogs and a bit of luck it doesn't matter how you price it - your App will probably sink in the depths of the App-Store within weeks.

    Theres a few interesting articles (I'll try and dig them out) about app-store optimisation tricks which are pretty much to do with selecting appropriate keywords in your description when you submit it to Apple. Theres a whole science behind this apparently and can make a large difference to the sort of exposure you get and the number of downloads.

    Interestingly, do not underestimate the importance of a good well designed icon. A lot of app-store marketing articles reference the fact that this can often be a huge driver in getting noticed - especially as its the first thing a potential customer will see when they are browsing the app-store, irrespective of whether the app is any good or not. Sad but true.

    Finally, the reason why 'free' apps became popular in the first place is that a lot of people (especially kids!) dont have a credit-card - hence the popularity of downloading things for free. You instantly cut off potentially a large number of customers if you make them pay - hence their popularity. Just a thought. :-D

  • edited April 2015 Posts: 2,020

    @West thanks for those links and suggestions, and for giving us the break down of your experiences so far. There's lots there that I need to dig in to.

    It looks like I won't be giving up the day job just yet! I think even making back the dev fee is probably over-ambitious.

    I should probably also do a dry run with something I'm not so invested in, before I release the main project...

    @andymac3d thanks for the tip about optimization. That was something I was only vaguely aware of, but googling it I see that it's a huge industry. If there are any articles in particular that you recommend that would be really helpful. (EDIT: I just saw the ASO beginner's guide link that you posted on the page that @West links to above)

    Is anyone close personal friends with Pew-die Pie or whatever that dude's name is??

  • Posts: 2,048

    @yojimbo2000, pay once probably your best bet.

    For example, a breakdown of my released apps:

    1) Free with in-app purchases - Mediocre downloads - $1.40

    2) Free with ads - Pretty good downloads (a couple thousand) - $3.97

    3) Pay once no gimmicks ($0.99) - Mediocre downloads - $145.58

    My next game will definitely be taking the pay once approach, likely at the second price tier ($1.99)

    With regards to marketing.. I've no luck so far. I've made websites, press kits, contacted sites for reviews, etc. No one has ever responded to my review requests outside of an automated response.. Though I did get AppAdvice to host a giveaway for me. YMMV here.

  • edited April 2015 Posts: 300

    Most of my games in the future will be pay once. iAds takes a stupid amount of downloads to earn $. The only games I will use iAds for are games/utilities that I can put the advert on screen 100% of the time, especially during gameplay. The problem is when ads refresh there is a slight hiccup in the gameplay, which can cause players to die and get upset, so I always just put them on the main menu and try again screen.

    For keywords you just want to think of words that relate to your game, then search for that word in the app store and see how many results you get. I like to choose words with less that 100 results if possible. Have to get creative because all the popular words have thousands of results. You get 100? characters, separated by commas with no spaces between.

    I really need to start marketing my apps when I release them... a lot of random blogs post quick reviews of new apps, just have to send them all a press release. Easier said than done.

  • Posts: 398

    @Crumble - I think the trick is to market your app 'before' you release them. Most successful indie gamedevs have their marketing strategy in place way before things go into beta. I also wouldn't underestimate how useful a game trailer is in getting noticed pre-launch. There are many social media outlets and YouTube channels that simply promote game trailers and have a wide reach.

  • Posts: 2,020

    I don't know how the keywords optimization is supposed to work. I got a free App Annie account, but I don't know how I'm supposed to use the keywords section. Initially I thought the idea was to try to cynically work as many of the trending keywords into your description as possible regardless of how tenuous the connection ;-) But I guess that if you end up mis-describing the app (or using a trademarked term), that doesn't get you anywhere. So @Crumble you're suggesting the opposite, try to find underused keywords?

  • edited April 2015 Posts: 300

    @andymac3d Yeah that is also something I need to work on. Marketing in general I pretty much don't do...

    @yojimbo2000 Well the way keywords work, if you use something like Flappy (tried it) and there are 5,000 results with yours ranking 4,000... the person searching for the word flappy would have to scroll down through 4,000 games until they finally see yours.

    I like to do a little research and find keywords that I can rank higher, like at least in the top 50, or even better in the top 10. A thesaurus will be your best friend for this.

  • Posts: 1,186

    Wow, that's something special there.

  • Posts: 1,255

    Very, very nice.

    You need to be able to land and check out downed craft for those of us old enough to remember Rescue on Fractalus (a Lucasfilm Games, flyer from 1984 that was the first game I saw to employ a procedurally-generated landscape).

  • Posts: 2,020

    Thanks! This has been on the back-burner for a bit unfortunately. I wasn't happy with the 2.5D nature of it - it just seemed weird that you couldn't fly over mountains, and getting the AI to fly around mountains is really hard. So I changed it to a full 3D environment, which involved rebuilding it from the ground up, essentially. I've got the auto-generating terrain back up and running, which is the hard part, and the player's craft and bullets. I have to say, full 3D flight does feel amazing. I need to add the enemy AI back. But then I got distracted by another project. I need a longer attention span.

  • IgnatzIgnatz Mod
    Posts: 5,396

    Finishing games is the boring part....

  • Posts: 160

    Wow! Thats an amazing project! I wish I could do anything close to that.

Sign In or Register to comment.