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:
I found that when I turned the system off during fighting and turning it back on made the fighters’ names and health be on the first warning screen. This has never happened before. What might be causing this?
OK, I think I might have everything solved. For now, anyway. There’s one thing I don’t get though. When you turn the Virtual Boy off, why doesn’t everything reset to 0 and not have to worry about text showing up that was there when you turned the system off?
The “why” is irrelevant. Your job as a programmer, upon finding out that your assumption about the behavior of the system was false, is to change your program so that it produces your desired output without relying on said non-existent behavior.
tl;dr: Write a startup routine that clears everything.
I did, but I was just wondering why it does that. Shouldn’t everything be reset when the Virtual Boy is turned off?
RunnerPack wrote:
The “why” is irrelevant. Your job as a programmer, upon finding out that your assumption about the behavior of the system was false, is to change your program so that it produces your desired output without relying on said non-existent behavior.tl;dr: Write a startup routine that clears everything.
Actually, a good software developer will always investigate the “why”. Fixing problems by curing the symptoms is a very sloppy way of doing things and will eventually backfire. You can only develop robust software if you know what you are doing.
It’s actually not a stupid question, so I’ll try to explain it.
So, to actually answer the “why” (understanding the system is never irrelevant):
When you power the VB off, some amount of voltage stays in the system capacitors for a couple of seconds. Sometimes it’s enough to keep your old data in the VIP/RAM. If you turn it back on again too quickly, before it has time to “die” and go completely powerless, you will see the data still being there.
The VB doesn’t have built-in routines to guarantee that all memory will be 0 at startup (even though it most often is) so you should never assume that it is. You should consider the memory to be undefined, and the only way to guarantee a desired behaviour of memory that you use, is to clear it in your own code at startup.
Maybe the gccVB startup code should clear the VIP RAM. While I like to keep things minimalistic (so in my opinion it shouldn’t initialize the column table; that’s vbSetColTable’s job), it does clear the WRAM and forgetting to clear the VIP RAM is a really easy bug to make. In fact, I’ve never cleared it in any of my projects (even though I’ve encountered the bug) because I always forget to.
thunderstruck wrote:
Actually, a good software developer will always investigate the “why”. Fixing problems by curing the symptoms is a very sloppy way of doing things and will eventually backfire. You can only develop robust software if you know what you are doing.
I agree completely, and I didn’t really mean to be so flippant, but going by VirtualChris’s track record, I genuinely didn’t think he would care about a technical description of the problem. Since it seems that is not the case, I apologize.
Thankfully, Dan stepped up and wrote a succinct explanation of the situation.
Thanks for the explanation. In the most recent version, I fixed a few glitches I saw involving Gi-Ant and Behe-Moth’s special moves. Earlier today, I also put in an opponent jumping sound. I also tried to put in some AI so the opponent’s moves are not reliant on your left or right button presses. But the opponent does go back and forth. It’s your job to damage his health while blocking his moves with the left or right shoulder button (or jumping.)
I would like some feedback on the game. What do I need to do next? Is it anywhere close to being finished? I want to finish this by August, so any feedback would be greatly appreciated. Man I wish there were signatures here so I don’t have to keep putting the link to the latest builds.
http://www.atari2600land.com/insecticide/
VirtualChris wrote:
I would like some feedback on the game. What do I need to do next? Is it anywhere close to being finished? I want to finish this by August, so any feedback would be greatly appreciated. Man I wish there were signatures here so I don’t have to keep putting the link to the latest builds.
http://www.atari2600land.com/insecticide/
I just gave it a good shot. First of all: I’m impressed how far you’ve got already. It’s been a while since I played it the last time and I think you are actually very close to completing the game.
I love the music per fighter and the individual stage designs. Even though the music loops are relatively short they fit well to the fighters and the stages.
There are some minor things I noticed throughout the game. Some of the screens (for example the fighter select screen and on the kitchen stage) hurt my brain. That’s because the depth is arranged in the wrong order. Basically, something that is in the foreground is displayed further away then the background.
Another minor problem is that there is no option to go back after you picked a fighter. At least I didn’t find any. I also couldn’t continue after I won/lost. But I guess those things are just not implemented yet.
I think the part that needs most improvement is the enemy AI though. Basically, I would hunt after the opponent all of the time and attack him when he passed by. That got a bit frustrating after a while. Sometimes he sneaked up on me from the back. That was cool.
A nice thing to have would be a bit more depth in the single stages. I noticed the kitchen had quite some depth but the other stages I played looked quite flat.
After all it is already a quite fun game. Good job.
Great to hear the compliments. I’ll work on changing the depth of the game. Somehow the 3D effect of the Virtual Boy doesn’t really work for me, yet I can sense the 3D effect on the 3DS. I wasn’t really going to put a way to pick a fighter after you pick one. As for winning and losing, I haven’t got that far yet. I am going to put in code that requires a button press after the win/lose screen in order to go back to the title screen. Also, I don’t know very much on how to put enemy AI in. I am hoping someone can help me on how fighting games (like Mortal Kombat) work on that, since I don’t really like fighting games all that much. The only fighting games I have are on the game.com. I would play those, but I fear there are not many people like me who enjoy the handheld.
I fixed a few things. I added the ability to press start on the win or lose screen to go back to the title screen. Also, I reversed the background depths like Thunderstruck suggested I do.
Your game was one of the many reasons I invested in a FlashBoy. Looking forward to playing this game! Thank You!!
It’s been longer than usual, but I have an update. I think I fixed a few things. Glitches. One of the things I am going to do next is add a magnifying glass to the fighter/opponent selection screen, something that I have been wanting to do for a while now. Download the latest rom, as always, at http://www.atari2600land.com/insecticide/
I hope not to go a whole other two months for another update. In fact, I plan to work on this tomorrow.
It took me about two hours to figure out, but I like it. How about you?
Attachments:
Thanks. Now if there was only a way to make sprites appear bigger when they are under it. That would be really cool.
I worked on making the intro more readable. I updated the Insecticide website so you can look at it as well as the new magnifying glass I put in.
Attachments:
VirtualChris wrote:
Thanks. Now if there was only a way to make sprites appear bigger when they are under it. That would be really cool.
That’s what Affine mode is for, but it’s pretty tricky to use. As an alternative, you could just as well replace the fighter’s sprite with a pre-drawn magnified version when under the magnifying glass.
BTW, should you ever consider to make me a hidden character in the game, I want the magnifying glass to be my fatality, please! 😉