Thursday, July 17, 2008

9-4-07 3306 Rows

Hello. Actually did work yesterday, but the computer got turned off before I could save the entry. Yesterday I added the basis of the combat roll and a duck/dash roll. The standing roll also got tweaked so it can go under low hanging Death Rectangles, which is kind of the point. I also tested the hell out of it both in and out of combat and it works out nice.

Today the plan is to finish what I started yesterday and install the frame lock.

-While I was poking around, I realized that I absolutely hate taking damage from a medium fall. It’s stupid, you should be alive or not alive and the environment should be safe or lethal. A middle ground in this case is retarded and only serves to induce a “What the hell? I took damage from that?” kind of thought. So, it’s out and I’m happy with it. The statuses still change though, which looks nice.

-Now that the falling code is almost finalized, I installed it into the Moving Collision function, so now when you fall onto a moving platform you can die too. That’s right, now they are moving platforms, not moving pillows.

-That last joke kinda sucked.

-The frames are locked at 30 FPS now. Why not 60 you ask? Because the game, all of the systems, animations and physics were written to update in 40 milliseconds or 25 frames per second. 30 is a little faster but that’s okay since now I have an easy to use frame rate for the animations and stuff. Besides, 60 is the goal but it may not run for everybody, and 30 is good enough for Zelda.

Other than that, installing the code went well, although I have a preference for the Wait Timer command over the Wait Event Command. It seemed that the WaitEvent command did odd stuff to the system, like make it accelerate, which is not what I was going for at all. So an easy install that didn’t break anything. For the next project, I’ll get the frame rate locked down early so I can tie all the system to it instead of having to tweak them afterwards.

-Random thought, the DrawBlockRect command would be great for the life and Dash bars after making a slight mod to the code. That way I could use a real image of something shiny instead of trying to line draw it and make it look all crappy.

-Finally, small adjustments and the frame rate looks great at 30. All good for now.

8-30-07 - 3229 Rows

Back again. Had a good week not programming and playing MGS3 which I may finally finish. Today I added a “Doomed” status, which is what happens when you fall from a high distance. So know if you fall a little you’re good, a medium distance and you take some damage and from a high distance you go into the Doomed status, flail around like a spaz and die when you hit the ground. It’s a little bit of a Candy effect and the regular Fall Status could’ve worked fine, but it looks good and the keys get flushed when you do it, so it has some semblance of an actual gameplay element. So code and a slightly modified Zero sprite, ah a good days work.

8-21-07 – 3176 Rows

No actual coding recently but there was thinking about things. I believe that the issue is caused by the Images/Rect Collide function seeing the Mask color as part of the image – which makes it collide. So, the solution is to make the ducking animations be a different size and draw them in a slightly different place. Bingo bango, it should work. Stay tuned.

-Boom, easiest, debug, ever.

-Finally made the go ded thing work. Otherwise it ran the Dead thing everytime the loop ran, which killed you 4 times when you hit the Doom loop. Talk about getting killed so bad it kills your grandkids. Anyway.

-It’s called Regression Testing, and I’ve decided that I hate it. Somehow, after starting to tweak the movement for single screen, now Akuma crashes the program when he kicks. I don’t have the words for how that makes me feel. So I will express my emotions in interpretive dance. Since you can’t see that, an emoticon will suffice.

>;( )

-To illustrate, Regression Testing is going back to recheck stuff that worked before when you add new things. It’s like making sure the fuel injector still works after you install the turbo. It’s a weird thing, as a ton of weird crap can happen between when you install a piece of code and when you finish. In the meantime a bunch of stuff may have changed. It’s this reason why most bugs that happen in published games, since features were added right up until it goes gold…and nobody Regression Tests them. Now you see why I hate it.

-In other news, I squished the bug and Akuma works again. By works I mean fight until I kill him so hard it hurts me to do it.

-I so lie.

-Today, since I had a minute I adjusted the movement and jumping for a little better measurements for a single screen. I also installed a system that hurts you when you fall down and kills you outright if you fall too far. I plan to use this to install a new state –“Boned” like when you fall off a 10 story building. You’re not jumping, you’re not falling, you’re boned. Also installed the basis of what will be a cute death animation which makes the screen go all black when you die. Good day overall.

8-14-07 - 3142 Rows

Yep, a second update on the same day. Sorta. You see the last update was at around 1 AM, so technically it was 8-14. Now it later, but still the same date. Anyway, had some breakthroughs. I screwed around and worked out a quick mock up of what the Level Editor will look like and it looks good. Easy (ish) to code and seems easy to use as I play around with the GUI in PSP. I think I’ll call the editor “ThiefEd” (pronounced Th-ee-f-d as opposed to theived).

Another breakthrough was in the image format. As I whined before about Lossy Jpeg crap and giant BMP files I considered converting the code to using GIF images. The problem with that is that Blitz only displays them as movies, so I would have to rewrite the display code, and screw that. Instead I found another alternative – PNG images. They are compressed like GIF – I think they have 256 colors, but Blitz can display them as normal pictures. That means I won’t have to convert my display code, which is good news.

Also, the Row count was wrong yesterday, 756 was the row I was working on. The one now is correct.

Today the plan is to install the Death Rectangle collision loop. Not correct and debug it mind you, I’m running 2 hours sleep. But at least get it working.

- Gods Dammit. It’s installed but I can’t duck under it. The Death Rect is supposed to work if – and only if- the sprite is overlapping it. Hence, if it’s eye height it should hurt you when you stand and leave you alone when you duck. But it doesn’t and I’m too tired to fix it.

- Shite. When you run the code it automatically saves it, so I overwrote yesterdays archive. Now I know better and I should only do it another dozen times before I stop.

Random Thought: I don’t write fancy code. I don’t use complex tricks and almost everything uses the most basic of commands (if is there at least 400 times and I had to look up if else). I’m not sure if that means my code runs fast or anything – since it runs fast on my system and I don’t play it elsewhere. I do know that my code is very easy to debug. Everything is modular and easily broken into pieces and I write lengthy comments on everything. Just a note for actual programmers out there to remember – Bulletproof code beats the hell out of Shiny code.

8-14-07 – 756 Rows

No update in 5 days? What’s going on now? Well, stuff that I won’t bother anybody with. Remember, it’s okay to stop when life happens, just remember to come back so you don’t end up with a half finished thing. Tonight I’m up to the wee hours because of handful of Excedrin and a tummy ache (damn you delicious Mexican food, damn you to Hell) and I’m working on the Death Rectangles thing, which will be the collisions that determine if you are dead. So spikes and flames and stuff like that.

-Grrr. The animation system is set up a little stupid. Each individual frame has its own variable so I need to set the current frame variable to the test variable – one at a time. If I used a system that kept track of where on an animation page something is drawn instead it would be better for this, but slower overall and then I would have to deal with Losse Jpeg crap. It’s faster and cleaner the way it is, but it’s irritating when I need to do something like this. Oh well.

-Went through and set up the gCurrentImageTest variable, so I have something to detect collision with.

-Squished an Event Handling Bug I noticed. Now if you duck and try to Run, the Run overrides the duck instead of the other way around.

-Now there is a real Dash Animation to the left instead of a placeholder. Rather, it’s a different placeholder.

-Now I’m saving the file as the current date, so now I’ll have a running demo for each of these entries. I’m also keeping track of the total number of rows when I’m done for the day. Today it’s 756 rows.

8-9-07

Smallish update, did a quick correction of the Akuma attacks so they line up better with each other. Stop the floating punches and kicks. Woot. Eventually there will be real animations (done by a real animator) and I can fix these things with an email instead of some minutes in PSP. *sigh*

Since I was in there, I added the UnLoad() function, which gives the picture spots back to memory. Now I get a weird crash, but the crash happens faster than ending the program, so I’m OK with it until I can figure out WTF. At least I don’t play and then exit and have to wait a few minutes to fix something.

-Here’s a random thought I had: A custom built engine will be more flexible by default yet will be more expensive to produce. I would think that I’d like to always build a new engine, or use an engine that I (or my Team) had previously produced. Given the option, flexibility is better than trying to force something to work.

8-8-07

I’ve added the Death() function so Zero isn’t immortal anymore. Now it keeps track of what happens when you lose all of your HP or otherwise get made dead. I also figured out a cute way to set up a Checkpoint that the character gets reset to when they do die. So now I can set up the final collision detector – the Death Rectangles and begin to think about the level editor.

Also started a Game Over type thing and got some ideas for what happens when you die (Hint: it has nothing to do with going to heaven).