SpaceMerc first demo.
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
SpaceMerc first demo.
OK here is my first demo of SpaceMerc.
Do not comment on lack of enemies or how fast it goes.
But I am welcome to any other critizism.
Thank you and enjoy.
SpaceMerc
Do not comment on lack of enemies or how fast it goes.
But I am welcome to any other critizism.
Thank you and enjoy.
SpaceMerc
"But...It was so beutifully done"
-
- Veteran
- Posts: 1055
- Joined: Sun Jan 02, 2005 2:11 pm
- Location: At my computer
- Contact:
It is as I feared
When a said great (or good) QBer, um, I was wrong, your bloody briliant!!
The fxs,... the tag'a'long ships that sway to keep up, multi-direction particle system... the shaking of the ship when health is removed... *Passes out*
*Wakes up* Did I miss any thing?
d==b 'Two thumbs up, way up!
When a said great (or good) QBer, um, I was wrong, your bloody briliant!!
The fxs,... the tag'a'long ships that sway to keep up, multi-direction particle system... the shaking of the ship when health is removed... *Passes out*
*Wakes up* Did I miss any thing?
d==b 'Two thumbs up, way up!
-Kevin (aka:Rattra)
(x.t.r.GRAPHICS)
(x.t.r.GRAPHICS)
-
- Veteran
- Posts: 1055
- Joined: Sun Jan 02, 2005 2:11 pm
- Location: At my computer
- Contact:
Okay, umm,.. he is redusing the HP for the demo... to demostrate it!Z!re wrote:Meh...
It's too slow.
Why do I loose HP when I dont get hit by anything?
Whats wrong with the controlls?
And the trailing ships? You mean the ones that simply are drawn one frame behind your ship? Oh, ya, thoose...
The stars were nicely done though...
And the gfx is ok...
Its mouse control, slow pick up.. maybe not the best,. but it allows for a problem to overcome... great room for ship upgrades (write this down Mitth. ).. Slow, he said not to comment on that, he must be working on it..
-Kevin (aka:Rattra)
(x.t.r.GRAPHICS)
(x.t.r.GRAPHICS)
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
Right on, I was reducing it for the Demo Z!re, if you read the first page.
The slowness in Mouse control is on purpose. You don't want the ship to be a cursor now would ya?
Ummm Z!re just because something is simple doesn't mean it can't be good. The Lships just following 1 frame behind the Yship is simple but yet it works, so I don't see the problem when that was the intention. I thought great results with little and simplistic code was the goal of every programmer's program.
Just like the ammo fire. Or The shakeage. The shakage was easy just have a random value for a translation variable then set it to zero when your done shaking. Simple but adds a lot of depth and reality to the program.
Oh was it slow on your computer? It wasn't on mine.
When I said don't comment on how fast it goes I ment just that don't comment on how FAST it goes. It went a lot faster as an exe file then when I ran it in QB. I ment don't comment on its going superfast.
But I guess its going slow, eh?
As for the stars. Thanks Z!re. Another example on simple yet good.
Thanks for y'alls comments. Please elaborate on the speed thing and Ship upgrades Rattra?
The slowness in Mouse control is on purpose. You don't want the ship to be a cursor now would ya?
Ummm Z!re just because something is simple doesn't mean it can't be good. The Lships just following 1 frame behind the Yship is simple but yet it works, so I don't see the problem when that was the intention. I thought great results with little and simplistic code was the goal of every programmer's program.
Just like the ammo fire. Or The shakeage. The shakage was easy just have a random value for a translation variable then set it to zero when your done shaking. Simple but adds a lot of depth and reality to the program.
Oh was it slow on your computer? It wasn't on mine.
When I said don't comment on how fast it goes I ment just that don't comment on how FAST it goes. It went a lot faster as an exe file then when I ran it in QB. I ment don't comment on its going superfast.
But I guess its going slow, eh?
As for the stars. Thanks Z!re. Another example on simple yet good.
Thanks for y'alls comments. Please elaborate on the speed thing and Ship upgrades Rattra?
"But...It was so beutifully done"
I wonder if this ship update or upgrade is extras for weapon improvement or extras. Or maybe the changing from one enemy or hero ship to another. I'm not sure but I think that's what he was implying.
Tell me, what is the waiting length for missle fire? I mean you can only use them so often, I'm assuming this is to keep the user from wasting all of their missles in a few seconds.
Also, is this pure QB or a mixture with ASM or C? Seems really cool, reminds me of a program I made that moved a square around with the mouse. Using ASM of course. So I was just curious. It is an awesome demo. I can't wait till it's actually a game.
Tell me, what is the waiting length for missle fire? I mean you can only use them so often, I'm assuming this is to keep the user from wasting all of their missles in a few seconds.
Also, is this pure QB or a mixture with ASM or C? Seems really cool, reminds me of a program I made that moved a square around with the mouse. Using ASM of course. So I was just curious. It is an awesome demo. I can't wait till it's actually a game.
Later days,
Matthew
May those who love us love us
And those who don't
May the good Lord turn their hearts
And if he doesn't
May he turn their ankles
So we'll know them by their limping
-Irish prayer
Matthew
May those who love us love us
And those who don't
May the good Lord turn their hearts
And if he doesn't
May he turn their ankles
So we'll know them by their limping
-Irish prayer
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
Did it run fast on your computer?
Its mostly QB, and a few ASM for the mouse control and the SuperPut thing.
Yes there is a waiting length to simulate a reload of the missle tubes. When your in a fighterjet you don't necessary have rapid fire on the missles do you?
If I remember correctly the waiting length is INT(3.25 * 45) Game loops.
Ummm...whats on the demo is Ship Upgrade Level 7. That's the highest level I gotton to making. So there are upgrades, your just seeing the biggest one.
I can't wait till its a game either. Hehe...I should probally go make some enemies...
Its mostly QB, and a few ASM for the mouse control and the SuperPut thing.
Yes there is a waiting length to simulate a reload of the missle tubes. When your in a fighterjet you don't necessary have rapid fire on the missles do you?
If I remember correctly the waiting length is INT(3.25 * 45) Game loops.
Ummm...whats on the demo is Ship Upgrade Level 7. That's the highest level I gotton to making. So there are upgrades, your just seeing the biggest one.
I can't wait till its a game either. Hehe...I should probally go make some enemies...
"But...It was so beutifully done"
-
- Veteran
- Posts: 1055
- Joined: Sun Jan 02, 2005 2:11 pm
- Location: At my computer
- Contact:
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
Hmmm...EXCELLENT! I like it!
Another example with a lot for less.
Well I finished making/saving my basic-line-soldier-enemy ships. 4 in total. Plus 1 more which any person who plays my game will HATE for ever...he he...
I will now need to incorperate a Level system in my program complete with enemy loads....Then I'll focus on their weapons/health/collision detection. But navigation comes first in my mind.
BTW I really want this question answered:
How was the speed of the program on your computers? Rating: 1=Slower than a rock, 10 = Faster than light. Also please tell me the Processers/Processing speed your using. Thanks.
Another example with a lot for less.
Well I finished making/saving my basic-line-soldier-enemy ships. 4 in total. Plus 1 more which any person who plays my game will HATE for ever...he he...
I will now need to incorperate a Level system in my program complete with enemy loads....Then I'll focus on their weapons/health/collision detection. But navigation comes first in my mind.
BTW I really want this question answered:
How was the speed of the program on your computers? Rating: 1=Slower than a rock, 10 = Faster than light. Also please tell me the Processers/Processing speed your using. Thanks.
"But...It was so beutifully done"
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
Ok, once again I'm going to ask for the innovations of others cause I'm in a programming block.
How would you make a Level handler. I have a txt file of so many lines with 20 numbers in each line. Each number represents a ship. I want it so that the whole level is loaded into an array at the beginning of the level. I then want the program to calculate only 20 ships at a time but be flexable for the whole level. Do you see my block?
I just need an idea to get me going...
In the meantime how about answering my question in my last post ^.
How would you make a Level handler. I have a txt file of so many lines with 20 numbers in each line. Each number represents a ship. I want it so that the whole level is loaded into an array at the beginning of the level. I then want the program to calculate only 20 ships at a time but be flexable for the whole level. Do you see my block?
I just need an idea to get me going...
In the meantime how about answering my question in my last post ^.
"But...It was so beutifully done"
Eh...not a bad start.
As for level designing and objects...why are you limiting it to 20 enemies at once? Use a dynamic system instead, then you have no worries about things like lingering enemies who just hang around and taunt the player. Anyways, here's what you can do regarding level design...
You would keep track of the player's position in the level (just like you would in any tile engine, heh). You would have a single-dimensional array that would go along with each "block". This array would hold "triggers"...or values that would correlate with a set type of enemy swarm. For example:
1 = Three type 1 ships enter the screen from the left
2 = Five type 1 ships enter from random X positions and two type 2 ships enter from opposing sides of the screen, halfway down the view
3 = One type 6 ship enters from the left side of the screen
so on and so forth. Each ship would have a certain behavior pattern, like so:
Type 1 ships would fly down the screen, circle around the bottom, and fire at the player as they fly towards the top of the screen and go offscreen
Type 2 ships would fly in from a side of the screen, fire twice, and fly offscreen to the bottom
so on and so forth. Also, you could use the same ship graphic for multiple ship types.
This is just one way of doing it, there are plenty of other methods but this method seems to work pretty well. This is the technique I used when I developed my old shooter years ago.
As for level designing and objects...why are you limiting it to 20 enemies at once? Use a dynamic system instead, then you have no worries about things like lingering enemies who just hang around and taunt the player. Anyways, here's what you can do regarding level design...
You would keep track of the player's position in the level (just like you would in any tile engine, heh). You would have a single-dimensional array that would go along with each "block". This array would hold "triggers"...or values that would correlate with a set type of enemy swarm. For example:
1 = Three type 1 ships enter the screen from the left
2 = Five type 1 ships enter from random X positions and two type 2 ships enter from opposing sides of the screen, halfway down the view
3 = One type 6 ship enters from the left side of the screen
so on and so forth. Each ship would have a certain behavior pattern, like so:
Type 1 ships would fly down the screen, circle around the bottom, and fire at the player as they fly towards the top of the screen and go offscreen
Type 2 ships would fly in from a side of the screen, fire twice, and fly offscreen to the bottom
so on and so forth. Also, you could use the same ship graphic for multiple ship types.
This is just one way of doing it, there are plenty of other methods but this method seems to work pretty well. This is the technique I used when I developed my old shooter years ago.
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
-
- Veteran
- Posts: 1055
- Joined: Sun Jan 02, 2005 2:11 pm
- Location: At my computer
- Contact:
As for prossesing speed, that I don't know, but the lines:
WAIT &H3DA, 8
FOR i = 1 TO 1000:NEXT
Seems to hold my game at a resonable speed, and as far as I know only 1 speed complaint.. but he wasn't to clear, or never said any thing else on other releases,. hmm.. oh well..
I don't know any on loading files in such a way,. tho I might need to learn, I was going to use a varible that set off events as it conts off,. like a odometer telling my game where it is,. hmm,. oh well...
WAIT &H3DA, 8
FOR i = 1 TO 1000:NEXT
Seems to hold my game at a resonable speed, and as far as I know only 1 speed complaint.. but he wasn't to clear, or never said any thing else on other releases,. hmm.. oh well..
I don't know any on loading files in such a way,. tho I might need to learn, I was going to use a varible that set off events as it conts off,. like a odometer telling my game where it is,. hmm,. oh well...
-Kevin (aka:Rattra)
(x.t.r.GRAPHICS)
(x.t.r.GRAPHICS)
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
No, I think the length of my program will work good for slowing it down.
this is the best way to make your prgram:
IntStuff
Do
Drawstuff
StoreStuff
Wait &H3DA
Changestuff
Checkstuff
EraseStuff
LOOP
That way you are drawing right after you erase so there's little flicker and all the checking/changing thats in the middle will act like a FOR:LOOP delay.
this is the best way to make your prgram:
IntStuff
Do
Drawstuff
StoreStuff
Wait &H3DA
Changestuff
Checkstuff
EraseStuff
LOOP
That way you are drawing right after you erase so there's little flicker and all the checking/changing thats in the middle will act like a FOR:LOOP delay.
"But...It was so beutifully done"
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
Ya I know that feeling....Play Unreal Tournament 2004 for a while.
Well Since nobody else said anything, I've did more or less what you said...it took me 2hrs. to accually figure out what you ment, though. I don't know if it was me but your explaination was confusing. then I thought it was ingeneous!
But I understood in the end and I then spent the next hour coding non-stop untill I got mine to work (I modified to some to make it more efficient and compatable with my program). Well now I have the ships appearing due to those triggers and all I have to do now is make them move. That sould be np. I would do it now but I'm sick of coding for right now and need a break.
Thanks Nek.
Well Since nobody else said anything, I've did more or less what you said...it took me 2hrs. to accually figure out what you ment, though. I don't know if it was me but your explaination was confusing. then I thought it was ingeneous!
But I understood in the end and I then spent the next hour coding non-stop untill I got mine to work (I modified to some to make it more efficient and compatable with my program). Well now I have the ships appearing due to those triggers and all I have to do now is make them move. That sould be np. I would do it now but I'm sick of coding for right now and need a break.
Thanks Nek.
"But...It was so beutifully done"
Carrying out patterns is a bit tricky but if you know how to make "template" code then you should have no problems. Ever worked with state machines before?
Here's how I did this...
You have a TYPE which holds the position of the enemy, its current "state" along with its current "ticks" (a tick is like a state timer; when it expires, it changes states), its HP, etc. Its current "state" determines its action. For example: state 100 could be "move down 5 pixels". When the enemy enters this state, its "tick" counter is set to the number of times you want it to do this, say 10. For each frame, you execute its action and reduce its "tick" counter. When this counter reaches 0, you have to put it in a new "state". There's a few ways of doing this, depending on the situation. You could have a list of states that each enemy goes through (in which case, you just advance a "state counter" and activate the next state in its list), or the state function itself could set the next state. I used both methods in my shooter. A state function that is specific for a ship type could set another state at the end of its tick count.
It's not too easy for me to explain this all and writing a code example would take awhile, but you can equate it to something in real life. For example, washing a dish. The dish is in the sink. You're looking at it, contemplating washing it. That's your "initial state". You switch states: you pick up the sponge. Then, a new state: grabbing the dish. New state: washing the dish. New state: Rinsing the dish. New state: putting the dish in the dishrack. You've just done six independant actions which are chained to each other. There was a beginning and an end. Once the dish is in the rack, you're done with it; that would be similar to "removing" an object from your "queue".
Any of this make sense to you?
Here's how I did this...
You have a TYPE which holds the position of the enemy, its current "state" along with its current "ticks" (a tick is like a state timer; when it expires, it changes states), its HP, etc. Its current "state" determines its action. For example: state 100 could be "move down 5 pixels". When the enemy enters this state, its "tick" counter is set to the number of times you want it to do this, say 10. For each frame, you execute its action and reduce its "tick" counter. When this counter reaches 0, you have to put it in a new "state". There's a few ways of doing this, depending on the situation. You could have a list of states that each enemy goes through (in which case, you just advance a "state counter" and activate the next state in its list), or the state function itself could set the next state. I used both methods in my shooter. A state function that is specific for a ship type could set another state at the end of its tick count.
It's not too easy for me to explain this all and writing a code example would take awhile, but you can equate it to something in real life. For example, washing a dish. The dish is in the sink. You're looking at it, contemplating washing it. That's your "initial state". You switch states: you pick up the sponge. Then, a new state: grabbing the dish. New state: washing the dish. New state: Rinsing the dish. New state: putting the dish in the dishrack. You've just done six independant actions which are chained to each other. There was a beginning and an end. Once the dish is in the rack, you're done with it; that would be similar to "removing" an object from your "queue".
Any of this make sense to you?
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
I understood and thought of that originally, but I rejected it and I did it a simpler way.
In my shiptype, it have x as integer, y as integer for the coordinates of my pic. Then I have yslope, xslope.
All I do to move my Enemy Ships is to add the yslope to y and xslope to x.
I then Draw the Ship by doing Put(x,y), pic.
To change the direction of the ship all I have to do is just change the yslope and/or the xslope. Just simple Algebra.
Now to tell when I need to change something I just use some IFs to see where the ship is on the screen. And a flight path I get!
I have a counter that when it gets to 1 it increases your ship's position in the level. It then Activates the trigger at that postion and another element to the Enemy Ship Type: status as integer = 1. Which means its activated. 0 means it hasn't been activated. -1 means its gone off the screen or was destroyed and needs to be erased 1 last time. Then -2 means its dead and not coming back.
I'll give you the end result later.
In my shiptype, it have x as integer, y as integer for the coordinates of my pic. Then I have yslope, xslope.
All I do to move my Enemy Ships is to add the yslope to y and xslope to x.
I then Draw the Ship by doing Put(x,y), pic.
To change the direction of the ship all I have to do is just change the yslope and/or the xslope. Just simple Algebra.
Now to tell when I need to change something I just use some IFs to see where the ship is on the screen. And a flight path I get!
I have a counter that when it gets to 1 it increases your ship's position in the level. It then Activates the trigger at that postion and another element to the Enemy Ship Type: status as integer = 1. Which means its activated. 0 means it hasn't been activated. -1 means its gone off the screen or was destroyed and needs to be erased 1 last time. Then -2 means its dead and not coming back.
I'll give you the end result later.
"But...It was so beutifully done"
Re: SpaceMerc first demo.
Mouse worked fine for me. Screen blinked all the time.Mitth'raw'nuruodo wrote:OK here is my first demo of SpaceMerc.
Do not comment on lack of enemies or how fast it goes.
But I am welcome to any other critizism.
Thank you and enjoy.
SpaceMerc
Speed were good.
Looks good, keep up good work.
1.6Ghz/512mb ram/XP Prof.
- Mitth'raw'nuruodo
- Veteran
- Posts: 839
- Joined: Sat Jan 22, 2005 11:04 am
- Location: Eastern Coast of US
- Contact:
Really, the Screen blinked at you? That's a first did that happen to anyone else?
If it did then I'm going to put:
WAIT &H3DA, 8, 8 after WAIT &H3DA, 8 to make more of a delay. I specifically made my program's structure so that all my loops and calculations were done after the screen was drawn and before the erase so that it will have good speed but also to make the Delay of the calculations a good thing. I guess It doesn't work for you.
Tomarrow I should have my next update online.
If it did then I'm going to put:
WAIT &H3DA, 8, 8 after WAIT &H3DA, 8 to make more of a delay. I specifically made my program's structure so that all my loops and calculations were done after the screen was drawn and before the erase so that it will have good speed but also to make the Delay of the calculations a good thing. I guess It doesn't work for you.
Tomarrow I should have my next update online.
"But...It was so beutifully done"