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:
OK, I think maybe I know why I kept getting a 2D image. Left was on Map0 and Right was on Map1, so Map1 kept Map0 out of view by covering it up? So I combined the two into one image (like the VB test screen picture.) So now both L and R are on the same map. Maybe that does it?
Attachments:
Sped the game up and reduced arena size. The main reason I reduced the arena size is so the VB doesn’t have to work as hard. I also doubled the insects’ speed, it doesn’t look too much faster, but there is IMO a noticeable difference.
Attachments:
This is definately an improvement, but I still like the larger battle arena. But that’s just me. However I do like it that the arena stops and the player is’nt just blocked from going any further.
Duh, I just now realized I can do bass as well as treble parts with the Soviet Sound Engine. So I’m working on adding bass parts to the all-treble songs. I’ve done the intro, title screen and Gi-Ant’s theme. I don’t think I’ll add bass to the Rumblebee theme as it doesn’t really need it.
Attachments:
Just tried out the latest version on the Virtual Boy using the FlashBoy Plus. I like the progress that you’ve made with this game.
Thanks.
There were a few undecided special moves for a few insects, so I sat down and researched the three insects looking for special abilities that can be used in the game.
LADYBUG – known to cause allergies in humans. That’s about all I can figure. They eat aphids, but there are no aphids in the game, so I can guess I’ll take liberties and make it so the ladybug can cause allergies in other insects, stunning them.
FLY – Flies poop a lot, also causing diseases in humans. Again I’ll have to take liberties and make the fly poop make other insects sick.
DRAGONFLY – Dragonflies are one of the fastest insects, so all I can figure is a speedy bump, more speedy than normal walking. The fly will also be fast since they’re almost impossible to swat (to humans.)
I found this information about ladybugs:
“When a ladybug is attacked by a predator, it defends itself by “reflex bleeding.” This is when the ladybug oozes blood from its leg joints. The blood contains a special substance that repels ants…”
Here are some thoughts I’ve had: If you wanted to make this a special move in your game, you could do it in such a way that when the special move is performed, the ladybug character spills this substance from its legs onto the ground beneath it and the substance remains in that spot on the ground for a short time. If the other enemy character steps on the substance, he is stunned for a little bit due to the fowl smell and, therefore, is open to an attack from the ladybug. The reflex bleeding special move would probably have to be an attack that must be charged for 2 seconds before it can be performed, so that the player using the ladybug doesn’t just quickly fill the whole stage with the substance.
OK, cool! Thanks, I’ll use that info.
Also, I’ve asked this before, and I got a reply saying that it’s incredibly difficult, but I’d really like some help with zooming in on stuff (like the Nintendo logo at the beginning of Nester’s Funky Bowling).
Also, I’m toying with the idea of making the fighters smaller. That would make the game run faster in the fighting part I think. Here’s what it would look like if I were to do this.
Attachments:
I like the smaller characters the only problem is that fighting games (and that’s what this is) they tend to have large sprites for the characters. If you want it to look more like a fighting game I recommend larger sprites.
I’ve decided to keep the bigger characters in. But one thing I’m wondering is why does the game run faster in Mednafen than on real hardware? I’d like the game to be faster, like as fast as it runs on Mednafen.
It is hard to tell what is slowing down your game without looking into your code. I guess it runs fast in the emulator as the processor of your PC is faster then the processor of your VB. However, I had issues like that in GameHero. The problem there was that I used to set the WORLD parameters for every sprite in every frame even though it wasn’t necessary.
If you or anyone else would like to look at my code, I have a zip file of the game ROM and its c code in the link at my signature.
I’m looking at the Wiki, and I’ve noticed that it’s all gibberish. It’s like I’m illiterate. I can’t understand any of it. Especially the page about Affine Mode. How would I tell the VB to use it instead of the normal mode? I learn best by looking at example code.
Well, I think I managed to change the “instruments” while still using the “Soviet” sound engine. I haven’t tested on real hardware yet, but will do so right now.
Attachments:
Hey, I just look through your code as you said you had problems with your game being to slow.
I just had a very brief look into it. Please don’t get this wrong but your code is pretty hard to read as you write everything into the main method and don’t format it correctly. I know it’s no necessary but for a complex project like yours it would make it much easier to keep track of what is going on.
One thing that cached my attention is how you handle your animations. Every time you switch a sprite you copy the new one to memory and thereby replace the old one like this:
switch (animframe2) {
case 1:
copymem((void*)CharSeg2, (void*)GIANTCRAWL1CHAR, 512*16);
copymem((void*)BGMap(2), (void*)GIANTCRAWL1MAP, 512*16);;
break;
}
This actually takes allot of time. I usually copy as many sprites to memory as possible an then only change the mx and my of the BGMAP like this:
WORLD_MSET(ani_objects.bgMap,ani_objects.mx,ani_objects.mp,ani_objects.my);
That’s much faster. If you use repeating 8×8 blocks in your sprites you can actually handle allot of Sprites this way.
Another fast way would be to modify where the memory is pointing instead of copying new sprites to the memory. I have never done this though.
If all of this doesn’t make sense to you I probably didn’t understand what happens in your code. In that case just ignore this.
I believe what you say, but I think the problem of me not understanding what you say lies in me not understanding very much about VB (and C) coding. Perhaps you can give me some sample code that will help me with this. I put all of them into memory like so:
copymem((void*)CharSeg2, (void*)GIANTCRAWL1CHAR, 512*16); copymem((void*)BGMap(2), (void*)GIANTCRAWL1MAP, 512*16); copymem((void*)CharSeg2, (void*)GIANTCRAWL2CHAR, 512*16); copymem((void*)BGMap(2), (void*)GIANTCRAWL2MAP, 512*16); copymem((void*)CharSeg2, (void*)GIANTCRAWL3CHAR, 512*16); copymem((void*)BGMap(2), (void*)GIANTCRAWL3MAP, 512*16); copymem((void*)CharSeg2, (void*)GIANTCRAWL4CHAR, 512*16); copymem((void*)BGMap(2), (void*)GIANTCRAWL4MAP, 512*16); copymem((void*)CharSeg2, (void*)GIANTCRAWL5CHAR, 512*16); copymem((void*)BGMap(2), (void*)GIANTCRAWL5MAP, 512*16); copymem((void*)CharSeg2, (void*)GIANTCRAWL6CHAR, 512*16); copymem((void*)BGMap(2), (void*)GIANTCRAWL6MAP, 512*16); copymem((void*)CharSeg2, (void*)GIANTCRAWL7CHAR, 512*16); copymem((void*)BGMap(2), (void*)GIANTCRAWL7MAP, 512*16);
So how would I call different ones on the fly like you said?
OK, I assume you convert your sprites using VIDE. Right now you have one image for each sprite and convert each of them to header files using vide. If you want to change a Sprite you copy the respective header file to the memory.
Copying the content of header file to the memory takes allot of time. I guess that’s why your game is slow.
I usually do it this way: I draw one image (512×512 px) that contains as many Sprites as possible. If you have reoccurring 8×8 blocks in your sprites you can actually put allot of sprites into one of these images. I then convert this image (that contains multiple sprites) to one header file. As soon as the game starts I copy the content to the memory. This is only done once! When I want to switch from one Sprite to another I simply change the mx and my values of the respective sprite.
void vbSetWorld (s16 nw, u16 header, u16 gx, s16 gp, u16 gy, u16 mx, s16 mp, u16 my, u16 width, u16 height)
I would provide some code samples but as I said, I really have problems understanding your code.
OK, I get what you’re trying to say. I put in a file for each action (punch, jump, walking) and then switched between them. Didn’t really help much in the way of speed. Could it be because there’s too many levels displaying at once?
Attachments:
I often use all of the “levels” at once and it has never been a problem. I will have a deeper look into your code when I have some time. This won’t happen any time soon though.
For now you could just try to reduce the “copymem” statements to a minimum, this should eventually speed up your game.