Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411423 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 18, 2024, 10:09:01 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsBoss Master[iPad] - The Shmup Boss Construction Kit
Pages: [1]
Print
Author Topic: Boss Master[iPad] - The Shmup Boss Construction Kit  (Read 5638 times)
longshot
Level 0
**


View Profile
« on: December 07, 2010, 05:28:32 AM »

Hi everyone, I've been working on this for the past 4 months, and figure the game has gotten close to the point where I should do a Dev Log.  Thanks for reading.

Boss Master

What is it?
In a nutshell, Boss Master is a game where you construct a boss out of hull parts and weapons, then have to fight through waves of enemies. Instead of having to do dodge through bullet hell, you create the bullet hell.

I really wanted to make a game that will take advantage of the iPad's large multitouch screen, and provide an experience that would only be possible on the iPad.  Therefore, the game is fully multitouch, and you can use various gestures to control the game.  For instance, you can control two turrets at the same time by using a twist gesture with each hand.

Right now the design is still somewhat in the air.  For sure, there will be very smart AI Ships that will take the place of the usual role the player plays in normal Shmups.  However, I'm going to experiment with adding waves of easy to shoot cannon fodder, since dealing with AI ships that can expertly dodge you bullets, all the time, can get a bit frustrating.

There will also be a two player mode, where one person can control the boss on one end of the iPad, and another person can control the fighter at the other.

Post-release, I may add an endless boss fight mode, where you can fight through bosses other players have created and uploaded.

Who is working on it?
Simon Besombes - Artist, doing boss parts and weapons - http://simonbesombes.blogspot.com/
Mikael Olsson - Artist, doing AI Fighter/Enemies, powerups, and weapons - http://www.mickeolsson.se/content/3dart.htm
Tapani Siirtola - Music, did music track for game. www.soundreel.com
The next two people working on it have day jobs with contracts, so I'm going to use fake names for them.
Love Kebab - Sound Design, doing sound effects and sound mastering.
Comrade Citizen - UI Design, doing 2D graphics for UI and menu.

Me, I don't have a website because I'm a hermit.  

What is currently done?
Not much is done at a 100% level of completion, but there are thing that are mostly complete.

Boss Editor
The player can buy parts from a tray, drag them out, and attach them to the boss. The player can also detach parts and move them to another place on the boss, or through the in the trash.

Saving, the boss that is created by the player is saved to the iPad fairly efficently, and it creates a screen shot of the boss, which can be used by the player to load previously created boss for 2 player mode.

Gameplay
AI Fighter
The general AI framework for the AI is done.  The AI uses a behavior tree to make decisions about what to do next.  Right now I only have single behavior tree, which represents the smartest possible AI.  In the future, there will be different behavior trees, so I can give the AI different personalities, and scale the difficulty.

Sensors have been created to help the AI dodge bullets, and the AI can also project bullets positions into the future to make sure he doesn't collide with them next frame. Right now the AI is almost too good at dodging bullets, but I can scale that back.

Weapons/Bullets
I've created an efficient way of dealing with tons of bullets, and have a framework that should allow me to be fairly flexible with creating bullet patterns.

Upgradable weapon framework is also done.  The AI fighter uses this to upgrade his weapon after grabbing a powerup.  The Boss weapons will use this in the future to upgrade after the boss falls under a certain amount of health( the Boss's weapons become more powerful the less health he has ).

Powerups are done, when a part of the boss is destroyed, the boss will drop one.

Todo in the near future
Add scrolling to weapon part and hull part trays in the boss editor.
Add a "flip" button to the boss editor, which will let the player mirror a piece. Flipping currently works, but it messes with the normals.
Optimize Normal+Spec shader.
Debug Diffuse+Spec shader, since it isn't lighting correctly.
Finish integrating final boss hull part meshes into the game.
Finish refactoring editor code.

Screenshots
The hull set, what I'm currently working on integrating.


Older screenshot of gameplay, with Logo, ignore the thumb pad at the bottom, it was a failed experiment.









« Last Edit: April 08, 2011, 11:03:57 AM by longshot » Logged
CiroContinisio
Level 3
***


Eat this!


View Profile WWW
« Reply #1 on: December 07, 2010, 05:49:04 AM »

Man, this is cool! The graphics are good looking, if your AI works fine you have a small gem in your hands.

One thing that worries me is if the game is replayable several times, but you have some good ideas with that powerup dropping feature. The parts could be 'strategic', meaning that some are deadlier or more resistant, but when they are destroyed they drop a powerup, others are just scrap metal (no defense, but no drawback when they are destroyed).
Logged

longshot
Level 0
**


View Profile
« Reply #2 on: December 07, 2010, 04:50:39 PM »

@CiroContinisio
Thanks for the kind words, and suggestion.  For pieces dropping power ups at different rates, that's definitely something I can do. Right now most of the strategy in building the boss is in protecting the core, while being able to provide your guns with good angles.  In the future I will probably try having the hull pieces affect the bosses speed, less hull = more speed.

I'm guessing that most of the replayability will come form the scoring system, which I haven't started experimenting with yet.

Log

Finished
Added scrolling to part trays
Added flip button, now possible to mirror pieces horizontally
Integrated boss hull meshes into the game(yay!)

Todo
Normals are messed up on mirrored pieces( I think ), screwing up the lighting.
Editor is still partly broken, finish refactoring
Optimize shaders

« Last Edit: December 08, 2010, 04:18:16 PM by longshot » Logged
longshot
Level 0
**


View Profile
« Reply #3 on: December 08, 2010, 04:22:04 PM »

Log

Finished

Fixed problem with flipped pieces not lighting correctly.  Ended up being a problem with both normals and tangents on the vertices. 

Made a utility to mirror meshes, instead of doing it with negative scale at runtime.



Todo
Optimize Shaders
Add flipped meshes to objects, and switch between them at runtime instead of calculating a bunch of stuff.
Combine all boss part textures into one or two materials
Fix editor
Logged
Chris Pavia
Guest
« Reply #4 on: December 08, 2010, 10:21:01 PM »

Those models look SO delicious, the texturing is great! Looking forward to seeing more!
Logged
longshot
Level 0
**


View Profile
« Reply #5 on: December 10, 2010, 07:50:23 PM »

Thanks!

Log

Worked on adding hue masks to the game, so the player can choose the color of the boss pieces. Can currently select color in an editor utility, but it's a little weird since the base color is orange.


Worked on optimizing shaders.

Installed XCode 4 Preview 5.  Ran the OpenGL ES analyzer instrument to see if I could get a better grip on why the game is running at 12 fps.  Was surprised when I turned off fragment processing and the game was still running at 12 fps.  Went and ran the profiler in Unity, and realized that the game is spending a huge amount of time doing collision, and is CPU bound. 

Currently each boss piece has a hierarchy of convex hulls that are being used for collision.  I did it this way so that connecting pieces to the boss would be accurate, as well as bullet impacts.  Unfortunately, it is also way too slow.

Thankfully, for connecting parts, I don't use mesh to mesh collision.  I draw a series of line segments around each boss piece, then test every line segment in one piece against every line segment in another, to find the shortest vector between both pieces, and the connection point.  However, this test only happens when a player lifts his finger(s) to drop a piece, so it only happens once, and it assumes that the two pieces are not colliding.

So I have to come up with a new scheme for collision, which will not cause the frame rate to commit suicide.

Todo
Completely redo the way game handles collision... 
Logged
CiroContinisio
Level 3
***


Eat this!


View Profile WWW
« Reply #6 on: December 12, 2010, 10:54:16 AM »

Other (very personal) suggestions: the model looks sweet, but the interface and most of all the font need improvement!!
Logged

longshot
Level 0
**


View Profile
« Reply #7 on: December 13, 2010, 01:45:07 AM »

Oh, I should have mentioned that everything except the hull models and fighter is placeholder art.  UI will be one of the last areas to get finalized art, since I'm still experimenting with what kind of interface will work well for the builder.

The font and all of the UI elements will be replaced with something better.
« Last Edit: December 13, 2010, 03:07:21 AM by longshot » Logged
longshot
Level 0
**


View Profile
« Reply #8 on: December 28, 2010, 11:03:25 PM »

Hope everyone had good holidays.  Got sidetracked a bit due to having to mess with getting a new Visa in China, and the holidays.

Finished
Redid collision for the game, drastically cutting down on CPU usage, at the expense of not having polygon perfect collision on the boss pieces anymore.
Did various other optimizations, the game now runs at a smooth 30fps on the iPad with one directional light. Runs at about 20fps, with dips, with two directional lights.

Started work on a faster normal+spec shader.  The shader will do two lights in one pass, which hopefully will let the game have a smooth 30fps frame rate with two directional lights.

Todo
Finish shader
Unbreak all of the things that have been broken in the boss builder due to refactoring.
Logged
longshot
Level 0
**


View Profile
« Reply #9 on: January 07, 2011, 11:31:39 AM »

Finished
Decided to just keep the game to one directional light for now, doesn't look that much worse, and there is a ton of other stuff to work on.
Boss Editor is now fixed, with the exception of a bug that I just found.

Todo
Design and add UI for health on the boss parts during gameplay.
Do first pass on boss part balancing.
Expand number of levels from two to five.
Do finger path drawing code( like flight control ), for the fighter bays, and for moving the boss.
Add "cannon fodder" enemy type.
Integrate the rest of the sounds I have.

Logged
tesselode
Level 5
*****



View Profile WWW
« Reply #10 on: January 07, 2011, 11:57:30 AM »

I like the graphical style. I can see this being a very satisfying game to play since you get to shoot a lot. Smiley
Logged
dongle
Level 0
***



View Profile WWW
« Reply #11 on: January 14, 2011, 07:57:03 PM »

I will pay money for this. LMK if you uh need any testers.
Logged

longshot
Level 0
**


View Profile
« Reply #12 on: January 27, 2011, 12:35:26 PM »

@dongle, thanks!  If I need anyone I will let you know.



Done
Ditched retarded joystick.  Added flight control style boss movement.
Boss now rolls and pitches as he goes along the path.
Ditched plane deformed background for time being, will go with an ikuraga style 3D background.
Touching and controlling a turret now increases its rate of fire.
Added scripted for doing various animations on the light.
Integrated sounds where appropriate.
Added health bars for the boss pieces.  Was a good idea on paper, but having a health bar on every piece just looked messy.  Will have one health bar for the boss, might try only having a health bar pop up on individual pieces if they are actively being damaged.

Todo
Focus on gameplay, so far about 80% of my time has been sucked up by the boss builder.
Instead of expanding to 5 levels, I'm going to focus on just getting one level up to being really fun.
The game needs more particles, especially for impacts and muzzle flashes.
Make cooler explosions.
Add missile launcher.  Instead of having homing missiles, think I'm going to try having the player draw paths with his finger.



Logged
Chris Pavia
Guest
« Reply #13 on: January 27, 2011, 01:06:55 PM »

I want to see this in motion!
Logged
longshot
Level 0
**


View Profile
« Reply #14 on: February 14, 2011, 01:17:19 PM »

@Chris Thanks!  It will be a while before I put up a movie for public consumption though,  Once I have at least a level finished with final/close to final assets, I will put something up.

Done
Migrated project over to Unity 3.2.  The new mobile shaders in 3.2 give a nice frame rate improvement.  The game is now CPU bound again, which is good, since it's easier for me to optimize C# than it is to optimize shaders.

Worked on AI a bunch today. 

Added 3x3 sensor array to the level for the AI.  Helps the AI figure out what sections of the screen have the fewest, and most, amount of bullets.

The AI for the fighter is handled by a behavior tree.  AI now detects when he is in trouble, and finds a safe spot to run to using the sensor array.  Makes it much harder to trap the AI with bullets.  With the original placeholder weapon, the AI was beating me every time. Until...

Added boss spread weapon.  Shoots out a spread of bullets, which move fairly slowy.  AI seems to have a bit of a difficult time with this.  Counter-intuitively, the AI has an easier time dodging bullets that are moving fast, than it does slow moving bullets.

Added rotating bullets.

Ripped placeholder bullets from DoDonPachi, until I have final assets.

Turrets only fire when touched now.  Decided to go with the player having fewer, but cooler, turrets to place, instead of a mess of turrets that only fire one shot constantly.

Upgraded my 8 year old 20" monitor to a 27" one.  Makes a world of difference. For some reason upgrading caused my Mac to stop constantly beach-balling, don't ask me why.

Todo
UI artist gave me the first draft of the UI graphics for the builder, so it's time to integrate them.

The way weapons are currently handled is a little weird, and will be tough to do cool patterns with.  Need to do some refactoring there.

Boss pieces are currently being connected at their bottom edges.  Looks fine until the boss moves, and then it looks odd.  Draw new line boundaries around the top rim of each pieces, and connect the top edges( to snap the pieces together I get the shortest line segment between two line segments, each pieces has a line drawn vert to vert around it. )

Thanks for reading!
 
Logged
longshot
Level 0
**


View Profile
« Reply #15 on: February 15, 2011, 09:52:21 AM »

Done
Started integrating new UI assets for the builder.  The layout is a bit different now, only one tray at the bottom of the screen, with buttons to switch between hull pieces and weapons. Implemented functionality for the tray, and flip button, still need to make the rest of the UI functional.



Todo
Pretty much the same as last post. 
Logged
longshot
Level 0
**


View Profile
« Reply #16 on: February 17, 2011, 06:59:53 AM »

Done
Working on boring stuff

Did a texture atlas + UI mesh creation utility.  Takes in a bunch of input textures, combines them into one texture atlas, then creates a bunch of properly proportioned UI meshes with the correct UVs. Spending a bit more time on this, since I think it's something that will be useful for future projects.

ACTION SCREENSHOT



Todo
Same as before, plus reimplement the UI with the new meshes.
Logged
longshot
Level 0
**


View Profile
« Reply #17 on: April 08, 2011, 11:11:57 AM »

Haven't updated this thread in a while, so I thought I would now Smiley

Done

A lot of stuff. A good portion of it being boring stuff that needed to be done to have the game run at an acceptable frame rate on the iPad, like caching all spawns in the level.  Game was running at 60fps a few weeks ago, but recent additions have brought it back down into the 30fps range.

Today was the second day I worked on drones, which are little ships that swarm your boss during single player.  I will work on them again tomorrow, and try to get rid of a few rough edges.  After that I have 8 more ships to do the logic for Smiley



Todo
I'll just grab this straight from my task manager -
Integrate new bullets
Optimize drones
Get rid of black bars when rotating iPad
Add orientation support to game
Redo hull placement lines
Do hull line hitpoints
Fix line rendering
Integrate UI sounds
Check which sounds needs to be integrated, and add them to project
Make tab buttons play sound
Scoring
Design scoring system
Make texture out of fonts from comrade citizen
Do big score texture
Do first small score texture
Do second small score texture
Do bullet pattern recording
Detect when X number of shots have occured within X seconds
Write action recorder
Clean up project
Do 2 player mode
Do main menus
Get particle FX done
Do 5 levels for game
Implement new AI for aces
destroy placementObject on boss hull parts at start of gameplay
Add debris to explosions
Bullet canceling
Write waittilltick function
Do backgrounds
Remove money
fix background to be right dimensions
Do point in polygon
Remove coroutines from weapon volleys
Move aifighter to aifighter layer
And much more...
Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #18 on: April 08, 2011, 11:53:14 AM »

 Shocked Kiss
Logged

subsystems   subsystems   subsystems
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic