Original Post

I’ve decided that since I have absolutely no experience whatsoever playing RPGs, that I am not a good candidate of programming one, so instead, I’m going to work on a fighting game (while I also have no experience playing a fighting game, I’d figure it’d be a lot easier programming one than an RPG.) So here’s my latest brainchild: Insect Combat. Right now, it’s just a warning screen and a title screen. The only two characters I’ve thought of so far are Gi-Ant and Behe-Moth. Any other punny names you guys can think of would also be appreciated.

Attachments:
399 Replies

Since the Mario’s Tennis fiasco, I’ve decided to put both an easy mode and hard mode in this game. So I’ve added an Options menu accessible from the title screen. Of course, easy and hard won’t do anything yet since the AI is far from beginning to being worked on. From the options menu, you can also access the Credits. Whoopee. You’d think such a subtle thing as adding an options menu wouldn’t take very long, but I’ve devoted about 2.5 hours to just this.
Also, is there a way in C to say “if (SomeVariable doesn’t equal 7)…

Attachments:

VirtualChris wrote:
Also, is there a way in C to say “if (SomeVariable doesn’t equal 7)…

if (SomeVariable != 7){}

DogP

Brain flexing time.
Melee-dybug, Superfly and Panzer Dragonfly still don’t have special moves yet. Anyone have any ideas?

Lady bugs bite, flies use a acidic vomit to dissolve their food, and possibly fire breath for the dragonfly?

So I’m trying to insert speech. I did, but the volume is low, and the music stops to play the sound then starts back up again. Since I’m using the Soviet sound engine thingy, I was just wondering if there was a way to force music to NOT use channel 0 so I can save that exclusively for speech (or will that even solve the problem of the music stopping to play the speech?) To hear the speech, select Melee-dybug as your fighter, get close to your opponent, and press the special moves button.

VirtualChris wrote:
Since I’m using the Soviet sound engine thingy, I was just wondering if there was a way to force music to NOT use channel 0 so I can save that exclusively for speech (or will that even solve the problem of the music stopping to play the speech?)

There’s no need to reserve channel 0. You can’t play music and speech at the same time, because DogP’s wavplay function doesn’t allow it.

If you want to play speech in the background (possibly in stereo and/or in higher quality), wait until I fix my PCM player to work on hardware…

Coming in last place in the coding competition hasn’t stopped me from working on this. I’ve added Meleedy-Bug’s special move, the Bite. It took me a few hours because I wasn’t understanding the code for reflecting sprites, so it wasn’t working right. Finally, I think I made it work OK. Let me know if you see any glitches.

Attachments:

Added in Superfly’s acidic vomit move. It took about 4 hours of fine tuning to get it the way I wanted it. Let me know what you think.

Attachments:

Don’t get to caught up in coming in ‘last place’ in the coding compo. The entries were REALLY good this year and your entry was very good and inspired 🙂 It wouldn’t have come in last place in previous years (in my opinion).

-Eric

It took at least 12 hours (not straight though) to put in Killipede’s special move. Part of the problem was the legs not aligning with the body. So I gave up on it. But then an idea hit me. Why not get Killipede’s legs in the same level as the body? So when I did that, I had another lengthy problem to solve: Killipede facing the right way when the special move was done. I think I might have solved it, so I’ll post it here. I haven’t tested it on real hardware yet, that’s the next step.

Attachments:

OK, so my monthly visit to this game only took about one hour to implement and perfect instead of a couple. I have not tested it on real hardware yet, though. I’ll do that later and report back if I see anything that needs to be fixed. Anyway, I added fire breath for Panzer Dragonfly. Seems a little ridiculous, but let’s remember this isn’t really supposed to be based in reality. The year in the game is 2047, though, so dragonflies may be able to breathe fire by then if they hurry up and start mutating that trait. And they are, after all, “dragon”flies. Since this is the special move, you have to be near the foe to do this, just like all the other special moves. To do next is the last special move, Slaying Mantis’s head chomp.

  • This reply was modified 9 years, 11 months ago by VirtualChris.
Attachments:

OK, so I came back to this sooner than I thought I would. Slaying Mantis’s head chomp is now in the game. And do you know what that means? All 8 special moves are in the game now. And you know what else that means? I’m at the point where I need help with opponent AI, which I have no idea how to even think about doing. But not right now, though. I need to take a break. I spent 6 hours working on this. Started at 4am and it’s almost 10am.

EDIT: Fixed a glitch that showed up on real hardware.

  • This reply was modified 9 years, 11 months ago by VirtualChris.
  • This reply was modified 9 years, 11 months ago by VirtualChris.
Attachments:

OK, I guess the next step is to have the health bars be removed once a fighter gets struck. For the bars, I have written “QQQQQQQQQQQQQQQQ” with a Q being a block (I don’t use the letter Q anywhere else in the game, so it’s only fitting.) I am wondering if I could use something easy to erase letter Qs at both ends (since the player on the right would need to have the health bar diminish on the other side from the player on the left.)

Anyone? I want to work on this game some more.

VirtualChris wrote:
Anyone? I want to work on this game some more.

Probably super uninformed thought, but: Could you write a “Black Q” in the place of the Q you want to overwrite to denote lowered health?

Alternatively, erase the bar and re-draw it, but shorter? Back in my (very limited) C++ days, doing something like that with page-flipping didn’t cause it to flicker, but I don’t know if there’s something like that on the VB.

I was laying on the couch when an idea hit me. Why not make the end of the bar be a variable, so when the opponent gets hit, a chunk (a character block) of his health meter can be subtracted. So now whenever the opponent gets hit by a special move, his health bar will decrement by 1.

endhealthbaropponent--, vbTextOut(3, endhealthbaropponent-1, 1, " ");	

Thankfully, writing spaces in code erases what was on screen (if anything) and puts a space in its place. I also changed Killipede’s strike zone since he’s longer than the other fighters.

Right now, when you hit your opponent 16 times with a special move, it will just loop back to the title screen. Obviously, I will replace this with some sort of victory sequence.

I just had another thought. All the code in the fighting sequence will have to be doubled for the opponent and his AI. That’s going to be a tough job getting all that correct. But I’ll cross that bridge when I get to it.

Attachments:

I worked on this for a couple more hours. I successfully re made the opponent walk back and forth over and over. The only thing that stops them in their tracks is a special move or a punch. I don’t know why I did this, I guess just to see if I could. Since the zip files are getting too big and I don’t want to use up PVB’s server, all future ROMS will be available at the official Insecticide website, which is
http://www.atari2600land.com/banana/ic.html

So go there to get the ROM.

I was thinking how to make a “random” number appear. What I’m going to do is start adding a number at the warning screen and continue adding a number throughout the intro and fighter selection screens. My thoughts are: how fast does the Virtual Boy add? Would this be fast enough to make a “random” number? And I also need to think up of things for the opponent to do when the value reaches certain numbers. I was thinking once it got to five, reset to 0 and do that over and over again. Then I could do that if the value is zero, then do this, if it’s one, do something else, etc. on up to four (or however many numbers I need.) Also, if I made a random number Void statement and put a “Random();” that in every single game loop, it would continue adding over and over again, right?

According to the manual for the processor, the VB should be able to add a full int to another within approximately one cycle, though this can depend on exactly how often the code is called of course. 😉

To help add more ‘randomness’ to it too, here’s an idea I had a bit back. Do your original idea of constantly adding to a value. Then, save this value into the save ram, and then reuse it every time you do this. That way even if they leave that screen at the same time each time, you’ll end with a different value.

Taking a step further, you can use this number as an index into a lookup table of random values. That way when you call your Random() it won’t be so linear in return value.

DOOM used a similar lookup table technique actually for random values… uh, as a random fact-of-the-day I guess. 😛

How do I save into the RAM?

 

Write a reply

You must be logged in to reply to this topic.