Refactoring Avalanche And Modeling Start
Posted by hermitCAug 12
Upgrade Triggered Refactoring Avalanche
After collecting all feedback from version 0.1 the first point on the todo list became including upgrades in the arcade mode. That sounded simple. I added a new upgrade object type and integrated it into the collision detection system. Here the first problem popped up: Physical shapes were still represented as polygons, upgrade icons were going to be circular. There was a big “TODO: replace polygons with circles” in the code. OK, let’s replace the polygons with circles. I will have to do it anyway. The avalanche started sliding.
While refactoring the collision code and adapting file formats the latter became painful work. The data formats were simple sequences of numeric values. E.g. a 2D vector was just a pair of numbers and a circle was a 2D vector followed by the circle its radius. The lack of meta data within the files, declaring the meanings of the values, forced me to always reference the corresponding loading source code. That was cumbersome so it was time for the next refactoring step: replacing the old file formats with XML. Next job in the refactoring queue.
The newly integrated upgrades had to load their data from files. They needed sprites, animations and body shapes. The third refactoring The Game The Face Of L.A. job accelerated the avalanche. Hey, I just wanted to upgrade my guns! Oh, wait a minute… equipment needs new upgrade definitions, weapons will have different shoot layouts. Dammit! Next job enqueued!
After two weeks refactoring the hell out of the game all viral tasks were finished. It’s a good feeling that the Nordenfelt engine now has proper data formats, a faster collision detection and upgradable equipment. Now I can go on with the funnier things.
For example modelling the player ship.
The Arcade Player Ship
The poll for your favourite player ship design sketches elected concept G as winner:
Today I’ve made this 3D model from the sketch above. It is not finished yet. Details like plates, frames or rivets are still missing:
IMO concept G is a good choice. It meets the shmup guidelines (AFAIK them), looks steampunky enough and has two Gatling guns! What would our world be without Gatling guns? 😉
Thanks four your votes!
Cheers,
Thomas
4 comments
Comment by Guntha on August 12, 2010 at 5:50 pm
All of this is lovely, looking forward to 0.2 .
But there was something I didn’t notice while voting for G, how can it fly? I don’t see any sort of wing or rotor…
Comment by hermitC on August 13, 2010 at 1:24 pm
Good point, didn’t think about this.
Wings would be the wrong choice concerning realism because that would force the ship to fly as fast as a plane or jet. Rotors underneath the ship body may be a solution. I’m pondering if the hover mechanism will be visible at all.
Comment by tehlexx on August 13, 2010 at 3:07 pm
it looks like both guns point outward. I personally would want to put as much metal slugs directly in front of me, where my enemies are, not to their right and left.
on a more subjective note, I think the refined and aerodynamically looking body of the ship conflicts a bit with the minimalistic look of the engines.
why would I bother building a aerodynamically sophisticated body and then stop and just bolt some engines to it which happen to lie around in the workshop?
another idea regarding the guns: will there be a mouse/keyboard input mode comparable to 3d shooters (wasd keys to fly the ship, mouse arrow for aiming)?
keep up the great work,
lexx
Comment by hermitC on August 13, 2010 at 6:50 pm
The final sprite will occupy 1-2% of the whole playfield size. Details like the guns therefore won’t count as much as they do in the 3D rendering above. There will be different muzzle layouts according to the new weapon upgrade feature – well, not new to shmups but new to Nordenfelt 🙂 These layouts will have different shot spread angles and firepower. You will be able to config your weapon as you like, depending on the upgrades you collect.
Concerning aerodynamics: Sharp eye, man!
The “lack of speed” in the game (< 100mph) renders aerodynamics less important. You are right, the engines are rather chunky. But that's something I really like about steampunk design: brute force technology combined with organic shapes. The mouse/keyboard combo is already included in version 0.2 (WASD = steering, mouse buttons = fire, bombs, etc.). Mouse aiming is a possible feature. I'll have to test if it fits into the gameplay. Anyway, it sounds promising. Thanks for the idea.