binary zoo
Welcome, Guest. Please login or register.
Did you miss your activation email?
January 23, 2018, 01:58:20 PM

Login with username, password and session length
Search:     Advanced search
30179 Posts in 1158 Topics by 195 Members
Latest Member: dianeanderson
* Home Help Search Login Register
+  binary zoo
|-+  Game Development
| |-+  Guest Dev Blogs (Moderator: JDog053)
| | |-+  TMC's Shoot Em Up Dev Diary
Pages: [1] 2 3 ... 35 Go Down Print
Author Topic: TMC's Shoot Em Up Dev Diary  (Read 112150 times)
T_M_C
1000 XP
*
Offline Offline

Posts: 3000

TMC


View Profile Email
« on: January 18, 2010, 09:45:29 AM »

Greetings.

This is the start of my new Dev Diary for my PC Shoot Em Up game.

As yet untitled.

I expect the game to take about a year to write and will be a commercial product available to buy.



The game concept.
-----------------

Heavily inspired by Fog's excellent game 'Echoes'.

The game will be a space based neon vector scrolling shoot em up with up to 4 players in multi player mode.  Along similar lines to old classics such as, R-Type, Gradius and Armalyte.
Using multi directional scrolling of the levels allowing the game to switch between horizontal and vertical scrolling, or in fact any direction in between.
But i expect only horizontal and vertical scrolling will be used.


The game will feature mid and end of level bosses to fight and the ability to upgrade weapons.

There will only be one pickup in game to collect, (to keep things simple).  And this will automatically add energy to the players ship and upgrade it's weaponry.

Controls will consist of seperate directional movement and auto fire shooting directions and the game will support single, twin joysticks, mouse and keyboard controls.

I would like the game to be played in a route mode.  Whereby players can choose one of several different start levels and then choose the next level to play, making progress towards several different end levels.
See attached example mockup, level select screen.
The player makes his way from one of the the Start levels on the left to any of the End levels on the right, choosing a route in between.
So the player doesn't get to play all of the levels in the game from start level to end level, but instead only a selection based on the route taken.
This adds the incentive for repeat plays, allowing the players to choose different routes each time they play and thus get to play different levels.
But that system involves alot of level design and simply may not be pratical.
In which case i suspect the game will progress in the traditional linear way, from level to level until the end is reached.
Have to wait and see how the development goes.

I also plan to use an energy system for each player.  With one life per player.
When the energy gets depleted the player dies and it's game over.
There will be no instant death on contact with enemies or scenery but instead the players energy gets depleted.
This will also allow the player the option to deliberately fly over scenery, in order to reach difficult areas or escape eneimes.  At the cost of losing energy.

I'll also probably increase the difficulty of each level, based on the number of players.  Maybe the hit counts for enemies can be multipled by the number of active players to maintain the challenge.

This is a game i've wanted to create for quite a while now.  Mostly because i can't find many decent old school style PC shoot em ups to play.  
So, i'll create the type of game i want to play instead.

Scrolling shoot em ups were amongst the earliest types of games i tried to create on the C64, back in the 80's.  When i was learning programming and the various games techniques involved.

I'm really quite excited and motivated starting this project and realy looking forward to the dev process.





Update
------

I'm currently putting together the game editor.

This is a stripped back modified version of my Genesis Platform Game Editor.
Using the background level and animations sub editors, image library sub editor and various other library routines such as the file handling code ect.


The current code i'm working on is the camera path sub editor.
This sub editor allows me to draw a path over the background level, using either curves ( splines ) or straight lines, which the camera tracks and thus scrolls the level.
Each path is made up of control points ( or waypoints ) and each point has data associated with it to tell the camera what to do.

The data consists of

Speed = Target speed for the camera to reach.  Allowing the camera to speed up and slow down as it moves.
Acceleration = Rate at which to speed up or slow down the camera in order to reach it's target speed.
Wait Flag = This flag can be either on or off and tells the camera to wait when the point is reached.  If it's ordered to wait, then it won't move until a global event flag is triggered.
Global Event Flag = This is the index into an array of global event flags.  This is the flag that gets checked if the camera is ordered to wait.
Global Event Description = A description of what the global event is.  For Dev purposes only.


The reason the wait option has been included is to stop the scrolling when a boss is reached.  Either mid or end of level.
I want the scrolling to stop when the boss appears, and to start again when the boss is defeated.  Or to load in a new level.
When a boss is defeated it will set the relevent global event flag and thus re enable the scrolling if needed.



TMC


* level_select.jpg (99.27 KB, 1024x768 - viewed 653 times.)
« Last Edit: January 20, 2010, 09:49:39 AM by The_Masked_Coder » Logged
TheKhakinator
Chiptune Wizard
Playtester
1000 XP
*
Offline Offline

Posts: 2888


Grav Corp, Moonfaker.


View Profile WWW
« Reply #1 on: January 19, 2010, 07:37:54 AM »

That's awesome! Also I never knew Alpha Centauri was a planet...
Logged

T_M_C
1000 XP
*
Offline Offline

Posts: 3000

TMC


View Profile Email
« Reply #2 on: January 19, 2010, 09:41:59 AM »

Quote
Also I never knew Alpha Centauri was a planet...

Thats called 'Artistic license.'   Grin

Quote
That's awesome!

Cheers.

TMC
Logged
fog
Zookeeper
1000 XP
*
Offline Offline

Posts: 13185



View Profile WWW Email
« Reply #3 on: January 19, 2010, 01:30:18 PM »

This sounds promising. 

I like the multiple routes idea.  Quite a few games now let you keep your levelled up player/ship once you've completed the game and play through again with it.  It might be cool if you did that so some of the planets might be really hard first time through, but easier second time through with your powered up ship.  Ultimately your aim would be to take the route that featured all the really hard planets.  Maybe the top row of planets are really tough and the bottom very easy?  That would add some nice re-playability.
Logged

JDog053
Moderator
1000 XP
*
Online Online

Posts: 2422


View Profile
« Reply #4 on: January 19, 2010, 01:38:22 PM »

TMC, this sounds like a very promising idea! and I know you have the drive to do it, great start!
Logged
T_M_C
1000 XP
*
Offline Offline

Posts: 3000

TMC


View Profile Email
« Reply #5 on: January 20, 2010, 09:46:06 AM »

Quote
I like the multiple routes idea.  Quite a few games now let you keep your levelled up player/ship once you've completed the game and play through again with it.  It might be cool if you did that so some of the planets might be really hard first time through, but easier second time through with your powered up ship.  Ultimately your aim would be to take the route that featured all the really hard planets.  Maybe the top row of planets are really tough and the bottom very easy?  That would add some nice re-playability.

Thats quite a nice idea.   Smiley

Giving some organisation to the overal difficulty.

My initial thoughts were to have the starting planets on the left easy, and then getting progressively harder the closer to the end planets on the right you got.

Giving the player the option to try different routes if one planet seemed too dificult.

Thats not a concern at the moment though, since it's early days.

But thanks for the suggestion.


Quote
TMC, this sounds like a very promising idea! and I know you have the drive to do it, great start!

Cheers Jdog.   Grin


Update.
----------

The camera path sub editor is just about complete now, with just the load and save routines to go in.

I was planning to use a second option of defining the path with straight lines, but messing about with splines shows that straight line paths are totally unnecessary.

The splines allow for the level design to go in any direction.  And my test level snakes it's way all over the place.  Pretty cool actually.
Straight line paths are also possible with splines too.

I can now speed up and slow down the camera whenever i need to and tell it to wait too.  I've also added the option to use constant or non constant speeds.
Can't have too many options.   Tongue

After i finish off the load save routines, i'll make a start on adding the players and player weapons.  So, i can actually start playing the levels.

Then the background collisions sub editor needs to go in.  But that will be a fairly straight port from my platformer.

TMC
Logged
fog
Zookeeper
1000 XP
*
Offline Offline

Posts: 13185



View Profile WWW Email
« Reply #6 on: January 20, 2010, 12:38:45 PM »

So by the sounds of that camera editor this is more of an R-Type on rails shmup as opposed to a more free roaming affair?  That sort of thing always frightens me as it means you need to carefully place every attack wave on every level.  As you might have noticed I favour the easier random spawning enemy approach because I'm a lazy sod. Smiley

Anyway it sounds like yo're making decent progress already.  One of the things I like about shmup development is the quick returns you can get.  It doesn't take long to get something playable up on screen and prove whether a concept works which is always satisfying and motivating.  Sure it might take you many more months to build the enemies and levels and put some proper structure in the game, but I'd rather that than the sort of project where you don't have anything really playable until development is well advanced.
Logged

JDog053
Moderator
1000 XP
*
Online Online

Posts: 2422


View Profile
« Reply #7 on: January 20, 2010, 04:46:42 PM »

Anyway it sounds like yo're making decent progress already.  One of the things I like about shmup development is the quick returns you can get.  It doesn't take long to get something playable up on screen and prove whether a concept works which is always satisfying and motivating.  Sure it might take you many more months to build the enemies and levels and put some proper structure in the game, but I'd rather that than the sort of project where you don't have anything really playable until development is well advanced.

Here here! Thats why i'm liking shmup development so much Wink.

As ever TMC your speed is impressive, and not just your speed, its what you're doing in your time spent, its not as if its super easy stuff! Good luck.

With the multiple routes in mind you could maybe have a begginer starting planet that the player can go to on the left, then have a formation of different planet rows, then from 1 planet to the next give the user full freedom until he/she gets to one of the end planets, then rinse and repeat.

Infact, i'll let you do all the hard work Wink
Logged
T_M_C
1000 XP
*
Offline Offline

Posts: 3000

TMC


View Profile Email
« Reply #8 on: January 21, 2010, 09:35:41 AM »

Update
------

I've now completed the load and save routines for the camera path sub editor.

All works well and is pretty intuitive to use.  Overall i'm quite pleased with it.



For a while now i've been really impressed with a game called 'Gravity Crash'.

It's basically an updated version of the old C64 game 'Thrust'.

It uses really cool vector graphics mixed with bitmaps to give a really neat updated feel to the vectors.

Screenshot below.


Well, for a few days i've been trying to figure out how the devs managed to create the background levels.  And i didn't really figure it out.
Then yesterday i managed to download a video of the game which showed a brief sequence of the level editor in action.

And as soon as i saw that i realised the technique they were using.  And it's really simple too.

It's a way to edit a large texture image, by placing various shapes over it, which has the effect of removing the image shape from the texture but also leaving behind a vector edge.

So, yesterday i coded my own little image editor to do exactly the same thing.


Screenshot sequence below.

My sequence uses a seascape texture image for demonstration purposes only. 


You can see, that by placing various shape images over the texture and repeating the process, results in a final vector image that can be used as a background graphic in game.


Although i think for Gravity Crash, the devs have used one large texture for the entire level, my system will use lots of smaller images which together will make up the level.



Next job to do is to put together some level graphics and create a test level.

The i can start coding the players.

TMC


* gravity_crash.jpg (68.85 KB, 1024x583 - viewed 606 times.)

* tmc_sequence.jpg (276.96 KB, 640x2014 - viewed 638 times.)
Logged
T_M_C
1000 XP
*
Offline Offline

Posts: 3000

TMC


View Profile Email
« Reply #9 on: January 21, 2010, 09:47:54 AM »

Quote
So by the sounds of that camera editor this is more of an R-Type on rails shmup as opposed to a more free roaming affair?  That sort of thing always frightens me as it means you need to carefully place every attack wave on every level.  As you might have noticed I favour the easier random spawning enemy approach because I'm a lazy sod.

Yes, thats right.

Each level will be played on rails.
Although the camera can snake it's way in any direction following the level.  I'm not restricted to one direction, as in R-Type for example.

And then i would like the player to choose his next destination level.  So, it's a mix of a bit of both worlds.


Quote
Anyway it sounds like yo're making decent progress already.  One of the things I like about shmup development is the quick returns you can get.  It doesn't take long to get something playable up on screen and prove whether a concept works which is always satisfying and motivating.  Sure it might take you many more months to build the enemies and levels and put some proper structure in the game, but I'd rather that than the sort of project where you don't have anything really playable until development is well advanced.

Yeh, it's horses for courses isn't it.

Both have their pro's and cons.

And i'm doing both.

I want to keep the dev time for this project relatively short though.  Fingers crossed.    Roll Eyes


Quote
As ever TMC your speed is impressive, and not just your speed, its what you're doing in your time spent, its not as if its super easy stuff! Good luck.

Cheers.   Grin

I'm really enjoying coding at the moment.  And thats half the battle.  The dev time flies by when it's not a chore.

Quote
With the multiple routes in mind you could maybe have a begginer starting planet that the player can go to on the left, then have a formation of different planet rows, then from 1 planet to the next give the user full freedom until he/she gets to one of the end planets, then rinse and repeat.

Yep. thats a possibility too.

In fact the idea lends itself to several different approaches.

I also like the idea of having a circular ring of starting planets and the player chooses the next planet inside the outer ring, making his way towards the centre, final planet.

Either way, i would like to have a fairly large selection of levels.  Dev time permitting.

Quote
Infact, i'll let you do all the hard work
   Grin

TMC


Logged
JDog053
Moderator
1000 XP
*
Online Online

Posts: 2422


View Profile
« Reply #10 on: January 21, 2010, 01:53:59 PM »

Thats a great system which gives some excelent results in the end, afterall nobody sees the iffy stuff on the lead up! I've always been fond of the look of the game gravity crash, but I didn't know its name, so thanks!

you have so much freedom when it comes to levels with your engine its unreal. As I said before, this is definately on my ToWatch("you"); list!
Logged
T_M_C
1000 XP
*
Offline Offline

Posts: 3000

TMC


View Profile Email
« Reply #11 on: January 22, 2010, 09:50:28 AM »

Quote
you have so much freedom when it comes to levels with your engine its unreal. As I said before, this is definately on my ToWatch("you"); list!

Yeh, thanks.  Thats very true.

As i've said previously, my engine lends itself very well to a wide variety of game styles.   Grin

Makes prototyping a concept a pretty quick process.



Update.
-----------

Yeh, i know i'm on an update fest at the moment.  Tongue

I spent alot of time yesterday messing around with my mini image editor i posted about above.

I tried alot of different textures, shapes , background images and colors to try and get close to what the dev's have done in Gravity Crash.

Which wasn't entirely succesful.   Sad

The main difference between my method and that used in Gravity Crash, is that i was using lots of smaller level images to make up the level.  Whereas Gravity Crash Uses just the one large texture.

I can get pretty close results to Gravity Crash using one large texture too, which gives a nice unbroken terrain  ( 4096 x 4096 pixels is pretty large ) but my smaller images system doesn't work or look nearly as good.   Roll Eyes

The one large texture approach is totaly unpratical for PC's.  The game wouldn't work on basic systems.
I had problems with AutoCross Racing when i used just a 1024 x 1024 sized image ( let alone 4096 x 4096 ).  With users reporting back corrupted displays.
A 4096 x 4096 sized image level would be far too small anyway for my game.

So, after a frustrating day i came to the conclusion that the system isn't really suitable for my type of game.  Boo.  Undecided


So, i've decided to go more down the Geometry Wars / Echoes style of simplistic neon graphics.

I've coded a nice background grid ( similar to Geometry Wars ) and am using neon glow jaggy lines to make up the terrain.  Oh, also with a nice parallax star scroll in the background too.

It's much closer to the style i'm after and i'm happy with the way it's looking now.

Now to design some levels.

TMC


Footnote.

Oh yeh, i also thought of an idea for my game ( probably been done before ) of energy sharing in multiplayer co op mode.

Where two or more players can place their ships close or on top of each other to equally share the total energy between them.

This would mean players with high energy can help to keep players with low energy alive.  Albeit at the cost of reducing their own energy.
Perhaps energy sharing can be enabled by pressing a fire button to allow consent from both players.  Otherwise i could see energy stealing an issue.   Tongue

I quite like the idea of players helping each other though.

I might make that a selectable co op mode option.   Grin

« Last Edit: January 22, 2010, 10:19:22 AM by The_Masked_Coder » Logged
prince caro 19
100 XP
*
Offline Offline

Posts: 161



View Profile
« Reply #12 on: January 22, 2010, 04:36:13 PM »

Quote
you have so much freedom when it comes to levels with your engine its unreal. As I said before, this is definately on my ToWatch("you"); list!

Yeh, thanks.  Thats very true.

As i've said previously, my engine lends itself very well to a wide variety of game styles.   Grin

Makes prototyping a concept a pretty quick process.



Update.
-----------

Yeh, i know i'm on an update fest at the moment.  Tongue

I spent alot of time yesterday messing around with my mini image editor i posted about above.

I tried alot of different textures, shapes , background images and colors to try and get close to what the dev's have done in Gravity Crash.

Which wasn't entirely succesful.   Sad

The main difference between my method and that used in Gravity Crash, is that i was using lots of smaller level images to make up the level.  Whereas Gravity Crash Uses just the one large texture.

I can get pretty close results to Gravity Crash using one large texture too, which gives a nice unbroken terrain  ( 4096 x 4096 pixels is pretty large ) but my smaller images system doesn't work or look nearly as good.   Roll Eyes

The one large texture approach is totaly unpratical for PC's.  The game wouldn't work on basic systems.
I had problems with AutoCross Racing when i used just a 1024 x 1024 sized image ( let alone 4096 x 4096 ).  With users reporting back corrupted displays.
A 4096 x 4096 sized image level would be far too small anyway for my game.

So, after a frustrating day i came to the conclusion that the system isn't really suitable for my type of game.  Boo.  Undecided


So, i've decided to go more down the Geometry Wars / Echoes style of simplistic neon graphics.

I've coded a nice background grid ( similar to Geometry Wars ) and am using neon glow jaggy lines to make up the terrain.  Oh, also with a nice parallax star scroll in the background too.

It's much closer to the style i'm after and i'm happy with the way it's looking now.

Now to design some levels.

TMC


Footnote.

Oh yeh, i also thought of an idea for my game ( probably been done before ) of energy sharing in multiplayer co op mode.

Where two or more players can place their ships close or on top of each other to equally share the total energy between them.

This would mean players with high energy can help to keep players with low energy alive.  Albeit at the cost of reducing their own energy.
Perhaps energy sharing can be enabled by pressing a fire button to allow consent from both players.  Otherwise i could see energy stealing an issue.   Tongue

I quite like the idea of players helping each other though.

I might make that a selectable co op mode option.   Grin


that reminds me of the coop on aero fighters, its basically the same thing only with lives (and no consent), and im sure thats not the only game that uses that.

i think it would be cool if you did it so the player pushes a button (button 2 if its not being used for some sort of special) to give the other player your energy, the player who needs it doesnt request it (at least, not in game), you just go ahead,
you could complicate things however you want, but i think it might be cool if whoever is transferring their energy cant shoot while doing so, but the energy transferred restores 5% more, so players can take turns transferring each others energy as a substitute for health powerups when they need to (well, it's one of those techniqes that the players would have to figure out on their own),
its one of those videogame things that doesnt make sense realistically, but works for good gameplay.
Logged
fog
Zookeeper
1000 XP
*
Offline Offline

Posts: 13185



View Profile WWW Email
« Reply #13 on: January 22, 2010, 09:41:46 PM »

I can get pretty close results to Gravity Crash using one large texture too, which gives a nice unbroken terrain  ( 4096 x 4096 pixels is pretty large ) but my smaller images system doesn't work or look nearly as good.   Roll Eyes

The one large texture approach is totaly unpratical for PC's.  The game wouldn't work on basic systems.
I had problems with AutoCross Racing when i used just a 1024 x 1024 sized image ( let alone 4096 x 4096 ).  With users reporting back corrupted displays.
A 4096 x 4096 sized image level would be far too small anyway for my game.

So, after a frustrating day i came to the conclusion that the system isn't really suitable for my type of game.  Boo.  Undecided
If you've got an editor for this then couldn't you just have that break up the large single image into a number of smaller tiles complete with "cut-outs" and then just display those in game giving the illusion of a single imgae but without the performance overhead?

Footnote.

Oh yeh, i also thought of an idea for my game ( probably been done before ) of energy sharing in multiplayer co op mode.

Where two or more players can place their ships close or on top of each other to equally share the total energy between them.

This would mean players with high energy can help to keep players with low energy alive.  Albeit at the cost of reducing their own energy.
Perhaps energy sharing can be enabled by pressing a fire button to allow consent from both players.  Otherwise i could see energy stealing an issue.   Tongue

I quite like the idea of players helping each other though.

I might make that a selectable co op mode option.   Grin
I like that.  It had me thinking of the completely unrelated 2 player mode in Bubble Bobble.  In that it's never specified whether it's co-op or versus and you can really play it either way.  It helps to work together to reach the higher levels but that doesn't stop the mad dash for those fruits at the end of a level.  Smiley

I kind of like that balance between co-op and versus.  It would be kind of cool if the weaker player maybe couldn't steal the other players energy, but could take shelter under their ship so they take any hits.
Logged

T_M_C
1000 XP
*
Offline Offline

Posts: 3000

TMC


View Profile Email
« Reply #14 on: January 23, 2010, 10:01:23 AM »

First Off.

My appologies to anyone who might have recieved some SPAM from me.  Looks like i've opend some infected mail by mistake and it's sent off aload of junk to everyone in my contacts list.

DON'T OPEN ANY MAIL FROM ME.  

It's SPAM and probably infected.

Sorry.   Tongue



Quote
that reminds me of the coop on aero fighters, its basically the same thing only with lives (and no consent), and im sure thats not the only game that uses that.

i think it would be cool if you did it so the player pushes a button (button 2 if its not being used for some sort of special) to give the other player your energy, the player who needs it doesnt request it (at least, not in game), you just go ahead,
you could complicate things however you want, but i think it might be cool if whoever is transferring their energy cant shoot while doing so, but the energy transferred restores 5% more, so players can take turns transferring each others energy as a substitute for health powerups when they need to (well, it's one of those techniqes that the players would have to figure out on their own),
its one of those videogame things that doesnt make sense realistically, but works for good gameplay.

Yeh, thats a possibility too.

I think i could have several different energy share systems.  And the players choose which system they'd like to use before the game starts.


Quote
If you've got an editor for this then couldn't you just have that break up the large single image into a number of smaller tiles complete with "cut-outs" and then just display those in game giving the illusion of a single imgae but without the performance overhead?

Yeh, true, thats doable.

The drawback is, that i want my levels to be pretty big.  Maybe take a good 5 - 10 minutes to play through.  So that would require alot of images.  probably far too many to hold in memory at once.  So, i'd have to use an image streaming system.  Which would probably cause all sorts of headaches and game stutters.

It's a good idea, just that i don't think it's really pratical.

Anyway, i'm quite happy with the system i'm using now.  It's alot more basic, using just glowing vector lines but has huge advantages, in memory savings and performance.


Quote
I like that.  It had me thinking of the completely unrelated 2 player mode in Bubble Bobble.  In that it's never specified whether it's co-op or versus and you can really play it either way.  It helps to work together to reach the higher levels but that doesn't stop the mad dash for those fruits at the end of a level.

Oh, Bubble Bobble was one of my all time favourite arcade games.  I even used to know the cheat mode for the arcade machine.  Combination of joystick directions and button presses before the game starts.  Long since forgotten now though.

Quote
I kind of like that balance between co-op and versus.  It would be kind of cool if the weaker player maybe couldn't steal the other players energy, but could take shelter under their ship so they take any hits.

Yeh, thats another good point.  In bubble bobble it worked really well.

I don't really see this game as having a versus mode though.  As i don't plan on having more than one pickup in game.

Maybe that will change if i come up with some new ideas.

I'd like players to be able to complete the game, and a co op mode seems a sensible multi player approach.


I also came up with another idea.

A smart bomb which blows up everything on screen ( except bosses ).

These smart bombs can be used anytime by any player, at the expense of trading energy for the bomb.

If the player has enough energy reserves then they can trade a good chunk of that for a bomb.

Should make for some interesting tactics.   Grin

TMC
« Last Edit: January 23, 2010, 10:05:29 AM by The_Masked_Coder » Logged
Pages: [1] 2 3 ... 35 Go Up Print 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines
Simple Audio Video Embedder
Valid XHTML 1.0! Valid CSS!