Be a X-Wing pilot!
Take a seat in the most advanced fighter of the galaxy. Fight against the evil empire!
Use proton torpedo to quickly dismiss enemy forces or your 4 blasters (aiming skill required).
Go through 4 epic missions, from space to Deathstar and back.
Flight Manual
Copyright Notice
Starwars logo/music/... credits to their respective owners. Don't sue me :/
Dev Log
This is a demake of the X68000 Attack of the Deathstar game, (kind of) complete with space/ground/trench missions.
This version departs from the original with a less arcade/grinding gameplay.
The un-minified version can be found (as usual) on my Github page (includes all 3d assets).
Tie Fighters
All flying NPCs are following boids behavior (seek, avoid, follow) and are really a blast to watch in pack (imho)!
Baddies will try to get on your six to fry good old r2d2 :/
Proton Torpedo
Proton flight path is following Proportional Navigation rules. Gives a nice interception path (and the math is cool :)
3d Engine
Engine is a edge renderer (wireframe only as you certainly noticed!). It supports faces with an arbitrary number of edges to reduce visual cluter and achieve good performance.
Face culling is using object-space culling, the normal.point constant is pre-calculated when model is loaded.
Quaternions functions ported from ThreeJS.
3d Sound
(sort of...) Sound volume is changed at runtime according to sound emitter location, using the PICO-8 "feature" that sfx can be modified without impacting currently playing sound.
Note: sfx 63 is reserved for that use.
Software Pipeline
3d assets are modeled in Blender, exported in sprite/map format using a Python exporter .
Models are unpacked from spritesheet/map memory at startup and made available in a global table.
All game data are expressed as JSON strings, supporting references to global functions. Ex:
_g.update_player=function(self) self.x+=1 self.y+=0.5 end() local player=json_parse('{"x":0,"y":0,"update":"update_player"}') -- works! player:update() |
Mini json parser from Tyler Neylon: lua JSON parser
Code is minified using picotool.
Music lifted from "public" MIDI files, simplified and converted with midi2pico.
Changelog
1.0:
- Initial public version
- Bug: not able to restart after gameover (will be fixed soon)
1.1:
- change: redone control scheme (flat turn, optional roll)
- change: removed boost
- change: laser auto lock
- change: difficulty curve
- fixed: NPC flight AI
- fixed: torpedo aiming
1.2:
- added: menu to switch view
- changed: turret & tie fire lead (+ random chance to miss)
- changed: tie fighter difficulty ramp up
- fixed: random hit on NPC (distance function overflow)
- fixed: reworked trench to keep 60 fps
- removed: in-game help
1.3:
- changed: reduced tie hit points
- changed: increased tie damage
Strewth this is rad, zooming in and out of the ship is the best thing ever
Lots of fun, can't wait to see how this progresses :D
It feels next to impossible to get the TIE fighters in front of me to shoot them...
Point taken - I wanted a dogfight style game but lasers might feel under powered.
Note: boost gives also a turn speed advantage. Use that to out maneuver TIEs.
Even with boost it feels ridiculously difficult to get TIEs in front of me. Like, last-level-of-the-entire-game difficult.
Have you sat a fresh player down with this and watched them play it, without giving them advice? You might not be your own best focus group due to familiarity and practice.
Looks really good, btw. It's just balance I think is off.
Really love those 3D models!
Game looks great but I too couldn't manage to get the TIE into the crosshair...
I'd also consider playing around with some slight control inertia to improve the "feel".
Yeah I really wanted to see more because the GIFs and graphics look amazing but after like 10 minutes I glimpsed at the first ti-fighter like twice, let alone actually get the thing in the crosshairs. Tried just ignoring it and flying straight to the deathstar but it didn't get any closer :(
Just tried again, for the heck of it.
Honestly, I have a hard time believing that even you, as the dev who knows the code inside and out, can consistently and successfully get the TIEs on screen long enough to shoot them.
I wonder if it's a web player thing. Have you played it on the BBS? I'm telling you, I know my reflexes are poor, but I also know it's nigh impossible even if I account for that.
It seems like either you're pulling our leg or there's something amiss between your dev environment and our experience if you think you have to dumb down the TIE fighters all the way to "fresh out of flight school" mode to make it playable for us. Something seems off about that, like we're not playing the same game.
I'd love to see a video of you playing it as it is right now.
I'm afraid I have to second this - I got, like, one hit successfully on a TIE and couldn't destroy any! They're just too fast and are not within my view cone long enough to hit.
Whilst the left/right rolling is neat and is nice to have, I think you might be better served by having left/right linked to yaw rather than roll as roll in conjunction with pitch is nigh-on impossible to keep the TIEs within your view long enough to hit even if you can anticipate where they're going.
Just a thought - gameplay issues aside, it's a tremendous technical achievement.
This is so cool! I love the little dialogue/avatars at the top of the screen! :>
I agree with what others have said about the difficulty in the first part. I did get to the second part a couple times (only to get shot down pretty quickly by the turrets), but only by mostly using proton torpedoes since I could rarely get the TIEs in front of me long enough to hit them with lasers, which felt wrong to me, someone who plays a lot of the Starfighter Assault mode in Star Wars Battlefront II and is usually pretty good at hitting ships with lasers, based on the match scoreboards :) Maybe it would be easier if they flew in straight lines more often...?
It also helped a bit when I read what you wrote in a response about boost making you turn faster, but that's not at all what I would expect from a "boost" button, i.e. usually ships turn more slowly if they are going faster (which is what I would expect "boost" to do) so I didn't find that intuitive without explicitly reading that it does that.
Another thing that would be nice is if the exterior/interior view could be changed via a menu entry, so you can still control that (albeit requiring a pause) while using a gamepad. This is especially important because it's easier (I find) to track/chase the TIEs in the third-person camera mode because you get a wider field of view, so if you don't have a way to enter that view, it effectively makes the game more difficult.
WOW! Awesome! Great music too! This is a very neat game/simulation. I saw some people complaining about the tie fighters being hard to hit but I think that they need to see the movies. They weren't too hard for me to hit either.
This looks really cool, but I wish I understood better how to play at all. Every time I try to play, I have a game over in roughly 10 seconds and haven't seen a single tie fighter. Haha.
I can't even begin to fathom the maths behind this! Very impressive, well done.
Sweet. I'd been looking forward to update to this. You've done a good job of improving an already great game.
I like the new control scheme, it's surprising how such a small thing really changes the feel of the game. Just generally with all the tweaks you've made, I think you've got it to a good point where it's easy to jump in and start playing for the first time, but the difficulty ramp keeps it fun.
I could just be the visual of seeing the reticle jump to the target, but the aiming lock-on seems like it happens from bit too far away to me. Then again, I didn't find the tie fighters that hard to hit in the first version.
Just had a quick shot but v 1.1 plays sooo much better!! Very exciting when you see the lock on occur. Great improvement.
i hadnt logged in in months, but i saw this on twitter and i had to just to star/heart this. its amazing
Thanks guys!
note: I cannot check right now but 3d sound is likely broken.
@Davbo: the lock signals you can launch a proton torpedo - dunno if you find out, the lock time is rather short (and difficult to keep)
@paranoid: I was initially aiming for a simulator kind of game, hence the initial pitch/roll flight control.
Can't find the alternate ending yet... But I love the improvements to the controls. I wish the friendly NPC fighters would at least try to evade enemy fire.
I found a bug, where if you fire in any direction other than at the tie fighters they sometimes blow up/self destruct.
As in this image.
Thanks for the bug report - certainly linked to overflow.
Other known bug: during the last mission,no spoil tie might escape before you can do anything.
I’ll publish a new version pbly next week and call the game complete.
I'm not sure if it's updated yet or not, but it was okay for me to destroy TIEs. It was challenging, yes. It wouldnt be fun enough it was easier.
I died when trying to destroy the shield generators, navigation was a bit tricky at that point.
Point taken about it's difficult to get the Tie-Fighter in the target area.
Consider this classic game. Note that once the Tie-Fighter is in the target, "LOCKED!" they stay there until shot.
@dw187: not sure I want to reproduce such cheesy gameplay :/ The initial game that triggered that demake is already bad enough gameplay wise.
The lock is temporary on purpose as the proton torpedo won’t miss (the maths behind are >> tie AI!!).
@Mustafa the Deathstar part is now much more challenging. Turret have a 80% chance of direct hit - keep moving!!
I just finished the game (hadn't tried since 1.0; I like the control changes!) and it was very cool! Nice job! I love the surprise fourth mission :>
I think I found a bug though :O There was a point during I think the third mission where my proton torpedoes stopped working. I had four green circles (which seems to be the torpedo count?) but I couldn't get them to fire at all, for the rest of the game. (I know you can only fire them during lock-on, and it was working properly in the first two missions). I was still able to roll when holding O though, so I know the button on my gamepad was working. I was afraid the lack of torpedoes would be a big problem for the exhaust port, but it turns out lasers still work there apparently :D so I was still able to finish the game.
Well, not the graphics, Freds. Keep the awesome 3D, no just the target lock - I thought it was pretty neat to find that in a shooter. Maybe an option for it, so purists can still do it the hard way. :)
EASY TARGETING ? [Y/N] |
I had the "cannot fire" bug happen too, during the second mission(spent too much time trying to blow up defenses I guess)
re-torpedo bug: sounds possible the way I handle timers. I’ll have a look. Tks
@All: I can easily allow torpedoes to be fired as soon as lock is acquired, in exchange of a longer refill time :] I’ll playtest that.
I've had the "Cannot fire" bug happen 3 times in the middle of picking off turrits and green things (are those the shield generators) while on the surface of the death star. The first two times I thought I had been taking damage, so maybe it was caused by some strange death state, like being deader than 0 life, but the last time that happened I was at full shield, full heath, my guns just shut off.
Could it be a problem with playing in Chrome?
@joe The green thing are just Deathstar junk. You probably missed the 'entry' waypoint that unlocks the actual mission generators (a trick required as the Deathstar is not really at scale!).
Note: most players are shooting turrets even if it is not a mission objective :)
Edit: this is indeed a timer bug - you have 32767 frames to finish the game (e.g. ~9 minutes) !!
haha that explains it; I indeed took a really long time flying around the death star :)
Does anyone know why you get a ton of the friendly fighters sometimes? Usually there is just one or two, but sometimes I get five friendly fighters in a row and then they just annihilate the few TIE fighters that spawn in. Does this have something to do with the alternate ending?
ahah never had this situation! You get something like a 60% chance of friendly X-Wing spawn per wave.
Well, at least you are not alone in space :)
note: there is no more an alternate ending - token count shot him in the back. nasty.
Absolutely incredible, the last fight took me a while. The camera is incredible. In this cart we have a incredible Star Wars game (I repeat myself too much)
Thanks - the last Tie is indeed quite beefy, but you are not alone ;)
Good job!!!
I try to add mouse support:
At line 1243 in "function _init()" add
poke(0x5f2d, 1)
At line 977 modify:
if(btn(0)) roll=1 input=true
if(btn(1)) roll=-1 input=true
if(btn(2)) pitch=-1
if(btn(3)) pitch=1
with:
if (stat(32)<= 50) roll=1 input=true
if (stat(32)>= 80) roll=-1 input=true
if (stat(33)<=50 ) pitch=1
if (stat(33)>=80 ) pitch=-1
Work but with button is better.
Neat but given I cannot capture the mouse, very rapidly the mouse is outside pico8 window (and player is lost!).
This is excellent. Would love to see a scoring system / hi-score table added to it at some point.
I'm a huge fan of Star Wars and am super proud of this! Once I got a hang of the controls, I felt like Luke Skywalker in Episode 4!
BIG FAN! i'd like a full game on this (like star wars squadrons just more in this style).
after 10 minutes I got the controls and now it is definitely one of my favorite pico-8 games if not even the best.
LOVE IT!!! amazing. not done yet tho. Hitting the TIEs seems fine to me, once you see what direction they're going in...
[Please log in to post a comment]