4DRL Success: Chronophase
Fresh out of the oven, my first entry into an nDRL challenge (a 4DRL, no less), Chronophase!
These last four days have been really intense. Tough choices could not be awarded the luxury of a night’s sleep, as I normally prefer; they had to be resolved within the minute. It really gets down to the core of what game design and development is all about.
The feature from whence I drew the inspiration for the name, being able to tweak the granularity of your turns, didn’t make the cut; it did not end up adding much to the experience, so rather than refine it, I made the tough call to axe it along with shields, energy costs to fire weapons, and other such nonessential items. In any case, the game is all the better for it, and I am extremely pleased with the result.
The largest downside to the fast-paced development process is the lack of time for thorough iterative testing. There are some known, intermittent bugs in the release that I could not track down, and had to make the executive decision to ignore.
Many lessons to be learned from this process. I shall mediate on it, right after I get some sleep!
If you happen to be in the final hours of your 4DRL, get back to work (and best of luck ;))! Otherwise, feedback is, as always, very much appreciated.
what is the difference between the lasers bullets and missiles?
Nice. I ran into a glitch where I took out the midsection of a green ship and couldn’t kill it, but still. It’s very impressive for four days.
@HI The different projectiles move at different speeds. They can be used to line up shots more precisely, although the Ion projectile is the safest choice to win the game!
Initially, I had an energy meter which the weapons would deplete, and planned to balance it out that way, as well as have certain weapons damage shields and some only hull. However, the tight time constraint of 4 days meant I had to drop these features.
@James Thanks! You have to shoot out 5 sections of a ship, not only the midsection.
Awesome game, and in Flash no less. I really dig it – quite the results for 4 days of work. : )
Beat it on ion then played it through again with other weapons… found that after spamming a HUGE field of missiles I froze the game. I’m sure it’s just me. : P
Because of the tight timeline, two major bugs made it into the release:
Ships are sometimes removed from the TurnManager priority queue that handles who gets to act and when; this results in the ships being frozen in space, not shooting or moving.
The second, crash-inducing bug, which you came across, is also TurnManager-related. For some bizarre reason, an entry in the priority queue gets set to null, causing a fatal null reference error. What is particularly odd is that there is no line of code that sets the priority queue elements to null; they are either added, removed, or sorted. My money is on Flash’s Array.sort() function (passing in a custom comparator function) being the culprit.
I could not find any logic errors in the time that I spent debugging these issues, and the bugs happen so intermittently that you could play several games without encountering them. I am going to switch the Arrays to Vectors and see if that does the trick.
Thanks for your feedback!