SpaceMerc first demo.

Announce and discuss the progress of your various programming-related projects...programs, games, websites, tutorials, libraries...anything!

Moderators: Pete, Mods

User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

SpaceMerc first demo.

Post by Mitth'raw'nuruodo »

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
"But...It was so beutifully done"
Rattrapmax6
Veteran
Posts: 1055
Joined: Sun Jan 02, 2005 2:11 pm
Location: At my computer
Contact:

Post by Rattrapmax6 »

:shock: It is as I feared :shock:

When a said great (or good) QBer, um, I was wrong, your bloody briliant!! :shock:

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... :shock: *Passes out*

*Wakes up* Did I miss any thing? :shock:

d=:D=b 'Two thumbs up, way up!
-Kevin (aka:Rattra)
(x.t.r.GRAPHICS)
Z!re
Veteran
Posts: 887
Joined: Wed Aug 04, 2004 11:15 am

Post by Z!re »

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...
I have left this dump.
Rattrapmax6
Veteran
Posts: 1055
Joined: Sun Jan 02, 2005 2:11 pm
Location: At my computer
Contact:

Post by Rattrapmax6 »

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...
Okay, umm,.. he is redusing the HP for the demo... to demostrate it!

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. :wink: ).. Slow, he said not to comment on that, he must be working on it.. :)
-Kevin (aka:Rattra)
(x.t.r.GRAPHICS)
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

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. :wink:

Thanks for y'alls comments. Please elaborate on the speed thing and Ship upgrades Rattra?
"But...It was so beutifully done"
User avatar
Levi
Veteran
Posts: 79
Joined: Tue Jul 27, 2004 11:44 pm
Location: Alone and forgotten
Contact:

Post by Levi »

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.
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
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

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... :wink:
"But...It was so beutifully done"
Rattrapmax6
Veteran
Posts: 1055
Joined: Sun Jan 02, 2005 2:11 pm
Location: At my computer
Contact:

Post by Rattrapmax6 »

:) Heh heh, I ment upgrades as power and agility of the the ship,. Starts off slow to reponse, then it can upgrade to a little faster pick up... :wink: Thats what I ment..
-Kevin (aka:Rattra)
(x.t.r.GRAPHICS)
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

Hmmm...EXCELLENT! I like it!

Another example with a lot for less. :D

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. :D

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"
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

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? :D

I just need an idea to get me going...

In the meantime how about answering my question in my last post ^. :D
"But...It was so beutifully done"
Nodtveidt
Veteran
Posts: 826
Joined: Sun Jul 25, 2004 4:24 am
Location: Quebradillas, PR
Contact:

Post by Nodtveidt »

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.
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

Interesting thought thanks Nek.

Anyone else have a suggestion too?

NOTE: I'm not abandoning your idea Nek, I already have a few of my own but I asked the question to get a hold on what other people do to see what could work best with what. BTW I loved your idea.... :D
"But...It was so beutifully done"
Rattrapmax6
Veteran
Posts: 1055
Joined: Sun Jan 02, 2005 2:11 pm
Location: At my computer
Contact:

Post by Rattrapmax6 »

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... :wink:
-Kevin (aka:Rattra)
(x.t.r.GRAPHICS)
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

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. :D
"But...It was so beutifully done"
Nodtveidt
Veteran
Posts: 826
Joined: Sun Jul 25, 2004 4:24 am
Location: Quebradillas, PR
Contact:

Post by Nodtveidt »

This topic makes me want to revive my old shooter, perhaps recode it in FB. I probably would if I didn't feel sick to death of coding right now.
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

Ya I know that feeling....Play Unreal Tournament 2004 for a while. :D

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. :wink:

Thanks Nek. :D
"But...It was so beutifully done"
Nodtveidt
Veteran
Posts: 826
Joined: Sun Jul 25, 2004 4:24 am
Location: Quebradillas, PR
Contact:

Post by Nodtveidt »

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". :D

Any of this make sense to you? :D
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

I understood and thought of that originally, but I rejected it and I did it a simpler way. :D

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. :wink:
"But...It was so beutifully done"
User avatar
lurah-
Veteran
Posts: 206
Joined: Mon Nov 01, 2004 10:47 am
Location: Finland
Contact:

Re: SpaceMerc first demo.

Post by lurah- »

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
Mouse worked fine for me. Screen blinked all the time.
Speed were good.

Looks good, keep up good work.

1.6Ghz/512mb ram/XP Prof.
User avatar
Mitth'raw'nuruodo
Veteran
Posts: 839
Joined: Sat Jan 22, 2005 11:04 am
Location: Eastern Coast of US
Contact:

Post by Mitth'raw'nuruodo »

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.
"But...It was so beutifully done"
Post Reply