Jetpack has finally reached an important milestone: gameplay is now “feature complete!” This means all features are in place but there’s still room for tweaking and minor enhancements. The game overall still has quite a bit of work remaining, primarily UI. The graphics definitely need more continuity. I’d say it’s 2 months out, but every time I estimate I’m way off, so I won’t. Try out the new release below!
The game is up to 755 tiles, compared to 120 in the original. The source is currently 1.8mb (1mb for the project and 800k of library code) of Actionscript, compared to 270k of C for the original Jetpack. The full package is about 10mb uncompressed, compared to 1.5mb for the original.
So tiles, source, and build size are all roughly 7x larger than the original, but what about the time invested? The original took me about 4-5 months of 72 hour weeks to complete (est 1400 man hours). If this project has taken 7x that effort, that would be 9800 hours, or 5 years of full time work. Fortunately for my family and my sanity, this one has taken only 3 years of part time work that I’d estimate to average 30 hours a week, minus several blank periods (est 4000 man hours). Although this seems like an endless project, judging on code size per hour I’m coding 2.2x more efficiently than 18 years ago, and creating code that is 45% reusable for future projects.
The big question remains: Is this game 7x better than the original? Although there are some big improvements (my favorite is the automatic level sharing), I would have to say no, at this point. However, the project is positioned well and I believe that much more can be added in sequels, and without too much extra effort. In the future, it may meet that potential. And I now have an excellent Actionscript game engine for future projects, as long as Flash remains a viable platform.
Attention Level Contributors
You can now design levels with a pretty good feel for how they will work in the release. If you have levels going in the final game please update them now! There is now a tag called “finished”, set that when a level is ready for release. This will probably be the final editor-focused blog post.
Don’t forget these level design rules:
- Need exactly 1 idol per level
- Need some treasure, all gettable (this will be an achievement)
- Use the extra 2 rows
- Don’t mix themes (much)
- For performance, minimize the number of moving objects simultaneously colliding
- Please set Theme, Difficulty, & Tags to aid in my sorting & ordering (these are informational only)
- Par times should always include getting all treasure + the idol
- Set 1-3 custom achievements for your level
- Set “finished” tag when complete
Updated: Friday May 27th, 11am EST
Controls
ENTER – Playtest Level
SPACE – Tile Picker (or HOLD to pick from the level)
Press/hold 0-6 to edit each grid.
HOLD CTRL – Delete from current grid
HOLD SHIFT – Free range mode
CTRL+Z – undo, CTRL+SHIFT+Z – redo
|
|
< > – Rotate current tile
PAGE UP/DOWN – Switch themes
SHIFT+T – Convert level to current theme
SHIFT+ARROWS – Shift entire level
JDGIFBLTS – Quick select tiles
See the in-game help for more!
|
Usage Notes
- Tiles can overlap – if they are on different grids. You can place any tile off-grid by holding SHIFT
- Level settings: choose a background & music for your level, and set par times
- All levels are saved to jetpackhq.com, with automatic revisioning.
- Some folders are shared, but you can only edit your own levels.
- IE doesn’t support CTRL shortcuts – use SHIFT instead.
- Block cut/paste is coming soon. Soon is a relative term…
News
What’s New
I’ve had to redesign several internals recently, so there may be some new bugs and repeat bugs in this version. Let me know if you spot anything.
I’ve revamped the state system to handle multiple simultaneous effects & effect priority. Now visual effects can now be combined, ie shield + fuel sapper, and states (like shielded, immobilized, opacity) won’t be forgotten. This of course caused a bunch of existing stuff to break. Hopefully I’ve caught it all. This feature was blocking the invincibility suit & stunner tile, so those are both available now.
Marble worms now stay together pretty well without breaking apart. In the original, this took no effort because everything used exact settings. Since I’m using a real physics engine now, all sorts of miscellaneous things cause the balls to get out of alignment. The fix was to add a type of flocking: each ball looks for another ball to track and keep itself aligned with. This has to work through teleporters, and also if a marble worm gets split. This was a real pain and took 5x longer than I thought it would – but its finally out of the way. A ball will track another ball up to 2 spaces away.
Changes
- Trackbot! New abilities: can drift L/R when falling, can drop through ladder cover
- Suit of Armor (Castle theme) Half the speed of the trackbot, small tracking range
- You can now set initial facing/motion for enemies & Jetman. For enemies with AI, this is only a visual effect.
- Placeable invincibility suit – 10 second shield
- Stunner works – 10 second stun
- Greatly improved spring behavior
- Balls now auto-align
- Heavy movable objects now kill jetman – only on high velocity head impact, ie falling from above
- Fixed sludge & ice again
- Phase effect now continues while bricks are phased
- You can now view level properties on read-only levels
- Fixed many bugs, probably created many new bugs
The only gameplay element missing that I can think of at the moment is editable text for info tiles. Let me know you think there are any other gameplay elements this release really needs.
Weights & Measures
I’ve realized we need some sort of rules defined, so editors can rely on their levels working correctly. We also need a test level to quickly verify these. I’ve come up with a few; do you have any to add?
- jetman: can push 3 steel boxes
- spring: 1 can lift 5+ styrofoam
- spring: 2 can lift 1 steel box+jetman
What’s Coming
Since Jetpack will be my first web integrated release, I’m looking into doing a small game as a trial run, to avoid making business mistakes with Jetpack. Many of the elements for this new project are things that Jetpack still needs, so work on it will not significantly take away time from Jetpack. In short, I estimate it will take about 4-6 weeks but only 2 of those will be subtracted from Jetpack.
The tasks shared with Jetpack will include:
- 3rd party api integration – high scores/achievements/ads/social networking
- Code improvements & optimization
- More UI features
- Downloadable build & installer for Win/Mac/Linux
- Business operations: distribution & marketing
More info on this small project coming soon.
Features reserved for sequels
I’m saving many new feature ideas for sequels, to avoid slowing down the initial release any more. If you have a level that could really use one of the following features, please go ahead and update it, but don’t mark it “finished” and I’ll save it for a sequel. If you have specific plans or suggestions for a level you can put them in “Editor Notes” (notes are visible to other editors, but not to the player).
- Oversized levels + scrolling, parallax
- Themes: space/future, alien planet, jungle
- Concealed areas – parts of a level that are blacked out, fade in/out via switch
- Light which reveals hidden passages in a radius around jetman
- More physics elements, like trampoline, fan
- More enemies
Questions
Q1: When the stunner is activated, should enemies be intangible, pushable, or complete immobile? Should they still hurt you? (original = intangible+harmless, current = same)
Q2: When an enemy is trapped in a wall but sticking out, should it be intangible or solid? Should it still hurt you? (original = not sure, current = intangible+harmless)
Q3: When shielded, should jetman be intangible or solid to enemies? to movable blocks? (current = intangible to enemies, solid to blocks)
Q4: Should trackbots push movable blocks? Currently they are viewed as obstacles.
Q5: Should trackbots choose whether to use teleporters or not?
Q6: Editors, which of these features would you like to see next?
#1: info tile with editable text
#2: block copy
#3: gameplay tweaks & fixes
#4: add missing sounds, death sequences, etc