KAZESUI'S PROFILE

Doing Super Programming
on Super Computers
for Super Performance
The Curse of Cpt. Lovele...
Nautical-themed cephalopod-pirate-based action-shmup.

Search

Filter

Crystalis: Sonata of the Far-Away Sky

I'll tell you right away that you would probably want to avoid using "change event graphic" for most cases if you can avoid it. Using a switch for the projectile graphic would probably fix the problem, but a 0.0 wait would also suffice.

The problem is that a move command assigned to any event will overwrite any previous move events in progress, which leads to lot of bugs in ABS games unless special care is taken. This pretty much means that you should probably use switches for graphics rather than "change event graphic".

As for the problems with the counters, you should be doing them an entirely different way. Stuff like gems and mp only needs to be updated when using a spell or collecting a gem, so instead of using a million parallel process events, you should call the common events responsible for handling these things instead at the end of collecting a gem event or upon having performed a spell or level 3 charge.
This will more safely assure that things are done as they're supposed to, as well as minimizing lag.
Having many parallel processes which call "show picture" commands is generally bad and should be avoided whenever possible.

I can get the thing about wanting to polish player skills or so, but just mentioning since it was more annoying than anything, especially since the level 3 felt very useless itself. Maybe it would feel more worthwhile if you made it somewhat stronger somehow so that it wouldn't feel like such a waste.
(I'll admit that the level 3 fire charge also seemed inferior to it's first 2 tiers)

As for the game itself. I never played crystalis so I don't know if you're trying to be close to the source or something, but the story just doesn't feel any engaging at all. You do seem to make some attempts, and the dialog doesn't seem that bad in it's essence, but dunno.. maybe not executed well enough or so? I don't know. I'm no story expert.

I dig the music in the background, really reminds me of those good old games. It provides for some of that good old atmosphere (which might be mostly nostalgic).

While I didn't like the first boss battle too much (not intuitive enough), I think the boss battles are generally good. Problem is that it's very easy to die in them because it's not that easy to notice when you're about to die. Turning the hp red, or playing some "almost dead" sound effect when you have 25% health left might remedy that. A lot of the times I died was because or repetitive unavoidable attacks without time to notice just how fast my hp was dropping. Apart from that I like how you handle the bosses.
It's also good how you start variate with the normal enemy behaviours a bit later on.

Also, I hope you will do something with those snow tiles on the world map. They stick out a lot in a bad way, since they don't blend with the surrounding tiles. Other than that, I really like how the world map allows you to travel quickly from place to place while giving you a sense of where you're going.

All in all, it didn't feel like a bad game, but it didn't quite captivate me either. This could change if "dungeons" (or whatever you'd call them) and enemies get even more interesting later on though. Gameplay wise it's "heading" in the right direction.

Crystalis: Sonata of the Far-Away Sky

Finished the demo. Some stuff I noticed:

Bugs:
- When using a charged attack, the projectile animation will show in the top left corner. You should move the event before activating it's graphics.
- On some occasions (which I can't systematically reproduce), the enemy sprite will remain even though having been killed. Has happened with several enemies I've killed so it doesn't seem to be enemy specific, though rare.
- Sometime upon collecting gems, the gem counter won't update (for whatever reason).
Same happened when I gave Alex money.
- Sometimes when I release the charge at level 1 or 2, it won't generate any projectiles.

I also think that you should find a way to allow for items to be used during boss battles. The way it is now you're basically telling the player to use items in the field to save mp for the potential boss battle looming since the only way to restore mp seems to be at the inn (apart from the single save crystal which happened to restore mp as well).
This is bad considering it's very easy to lose mp by accidently charging for too long (which also makes the charging process more difficult since you generally want to save mp for heals).

There are several times where a brief moment of invincibility would also have helped a lot. If you happen to stand under the last boss while it's moving to it's stationary position on the bridge, it's quickly going to cost you around 30 to 50 hp since you can't move away while being hurt. Also for narrow spaces you can quickly end up dying through the typical "corner of death" found in several rm2k3 abs games.

It would also be good if you simply disabled the charge up meter for the default sword, since it doesn't do anything anyway except causing confusion.

Path Finding

Yes, you can implement binary search trees and minimum spanning tree algorithms as well (which are similar but not the structures used in the tutorial) and also even linked lists of int if needed.

There's a lot you can do with basic variable operations + option of pointing to variables and a little creativity

Crystalis: Sonata of the Far-Away Sky

"The file FX-Container-Sack-01 cannot be opened"

Marie Goes to Space

I actually enjoyed this. You should remove the possibility to resize the window if you can though.

Do you kill bugs?

Any bug that annoys me will generally be fried (I'm armed with an electric flyswatter for extra attack bonus).
Wasps and flies are generally killed on sight if I have my weapon nearby.
Spiders aren't bugs though and they eat flies and stuff, so I normally don't kill them. If bothersome I simply move them, and sometimes I will feed them flies I kill.

I don't give it too much thought when I kill them, but enough to avoid stepping on them when I'm walking outside or to make them any trouble if they're just minding their own business (i.e. not flying in my face or constantly following me)

Tactical Battle System Movement

The f(n) = 2n(n+1)+1 formula is only to determine how many events you'll need to move a maximum of of n steps, which is important to know upfront since you can't create new events at runtime, so you need to create them at the maps first, and with consecutive ID's, meaning it could get tricky to try an add more right afterwards if you figure you don't have enough.

if you want a unit which can move the furthest of all units in the game, and it should be able to move 10 steps, then you can use the formula to figure out that you need 221 events to be able to fully represent a move field for that event, in case of it walking in a totally obstacle free area.

As for the algorithm I'm using for actually generating the field, it's basically like this:
1. Place first event at hero
2. Check if there's the range steps has all been used up, if yes terminate algorithm.
3. Check above event for free space to place new move event
4. Check to the right + same as above
5. Check below + same
6. Check to the left
7. Check if the ID of the current event created at last for that "step iteration", and if so, reduce range by 1.
8. Point to the next ID of the next move event and go back to 2.

This is principle of how the basic algorithm works. For the second one, you add a set of pointers which tell you how many steps you have left at the different event ID's, which you store into some variable as soon as you switch event you're working with (i.e. once you point to another event ID)

Sneak system

Odds are that trying to pull apart the code from another game is going to be even harder than understanding the first tutorial.
Most likely you'd be better off trying to reread it until you get it, or find specifically what you don't understand in it and ask about it(i.e. not simply I don't understand this tutorial), or look for other tutorials (like this one link, which isn't directly related to how to make a stealth system, but a more generic detection system which you could integrate into your own system once you understand it)

Recursively make map events

There is only one way to do it. Decide on a maximum amount of units for the player (and any enemy as well), and create an event ahead of time which shows the graphics of the different kind of units that event can represent (as well as some event pages to represent functions to be executed by the specific event).

You leave all events "inactive" initially and then summon them with "change event location", switches/variables and what not when needed.

Of course, choosing another program to create the game, like game maker or scirra construct would also make a lot of sense when making games like that.

Pointers in Rpg Maker 2k(3)

author=supremewarrior
I don't know why but I cannot grasp how to make a pointer in RPG Maker 2003, I understand what a pointer is and does outside of RPG Maker in the programming realm. I understand that a pointer points to a variable and uses the value in that variable, E.g. *ptr = &number; But I cannot grasp how to make a pointer in RPG maker...


In rpgmaker pointers are just regular variables which gets used differently. Since you're familiar with programming, you could think of them as indexing the array of variables. say you have one variable which you simply call "ptr" with some arbitrary value. Basically you're just using it as:


Variables[ptr] = value;
or
value = Variables[ptr];
or
Variables[ptr_1] = Variables[ptr_2];


Where ptr is simply the value of the index in the array you want to access, and Variables is the array of all variables.

author=chana
I really can't say I undersood the whole thing, I get it MORE OR LESS globally, I would certainly be absolutely unable to reproduce this sequence.
Could you tell me what "Tmp" and Tpr" stand for, it would probably help a bit (I would, If I could, make 4 interesting minigames, for my game, but I'm TOTALLY stuck there, at worse I can do quizz type of stuff... bah!)


Tmp is just short for temporary, meaning that the value of the variable is used for calculations, and once the calculations is done it may contain some arbitrary value which is of no interest.
Ptr is short for Pointer, and this is the variable which contains the ID of a variable we want to access.

Step Ptr is used to point to the variables Step 1 to Step 6, and in the first code segment the Step tmp is used to get the value which was set randomly, so that it can be used to trigger the switch with equal ID. this only works if the ID of the switches is equal to the values you've chosen to represent the different switches.

in the second piece of code, Step tmp is again used to get the value stored in the variable with same ID as Step Ptr, so that we can compare that value with the one representing that very switch.

I hope this helped a little, and if not you could keep asking. You could also ask more specific questions related to one of the minigames you want to make which involves use of pointers, and I could possibly give you more specific help how to do it, i.e. how to apply the pointers, unless it's too complex or so.