Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
  • 0
ramza1337

Eventing a tactical game, few questions

Question

First off, Thankyou in advance. I did make this exact post somewhere else, but this forum seems a bit more active.

 

Hey! I have played around with rmxp off and on. I'm pretty serious about finishing my game now. I have been designing a tactical battle system, that is fairly straightforward. I'm eventing the whole thing, and it is a great learning experience. Only, of course I'm experiencing some frustrations. For example, when you choose move on a unit, you take control of that unit (I'm insistent on this point.) and move it around yourself. The game uses an action point system, which I'm sure I can get working by using variables that record, measure, and compare distances. For example, you might have 5 action points, and moving one tile costs 1 ap. An attack can cost anywhere from 1-onward.

 

The issues I'm having are this:

1. the player has to be invisible, and cant act as the animated cursor. because when I make a parallel event that uses (move event: change graphic, wait, change graphic, Wait...etc) The player can no longer move. Being the genius that I am, I used this to create a Halt Movement switch, because the game doesn't freeze, only the player can no longer move.

 

2. when the player moves a unit, I simply change the opacity of the unit to 0 and then back to 255 when the movement is complete. THe player takes on the graphic of the unit, renders the cursor invisible, and then they change back when done. However, I'm using the pixel movement script, so I cant do it the easy way and just have the cond branch: Arrow key(x) is pressed, subtract action point. Neither can I control the event ( instead of moving the player) via arrow keys, and scroll map, because when the unit hits a wall, the map continues to scroll. I think I can just use variables to calculate action points remaining.... But best yet I would like to be able to turn off pixel movement for the duration of the move action, via a switch (Moving...on)

 

3. The biggie. Instead of using events to animate the tiles when the unit starts to move, I want to use an animated grid graphic that shows potential range, however. I have no Idea what the calculation would be, to move the graphic, so that it will be precisely surrounding the unit tile.

 

I have many more questions, but I think that is enough for now. Excepting one.

 

This may seem more of a noob thing to you, but I took a look at this youtube video, and these map designs are amazing. I'm using the standard tilesets, and the Inquisitors all meshed together and get nowhere near these results. Perhaps someone by mere chance, can do me the kindness of directing me to more amazing tilesets such as these. I have spent hours and hours on maps, and will spend many more. So it is best if I start with this much potential from the get go.

 

Thanks so much in advance!This one also looks amazing: But it has the same tiles I have. http://www.youtube.com/watch?v=YYN50p-oHGE...feature=related

I assume they are using scripts of some kind, but I am clueless with scripts. Anything I can do with events would be preferable.

 

If I could make maps like this it would be way more fulfilling. They make me so jealous, my maps just seem paltry now. I'm going to use a dynamic light effects script and mess with the screen tone, and hope I get anywhere close to this. One step at a time I guess.

Share this post


Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 0

I am not entirely clear on what kind of combat system you are trying to develop here. Would you be able to generalize it a bit more? I think I may have some advice/input but I'm not sure if it's relative. Are you trying to make a turn based combat system using a pixel based movement?

Share this post


Link to post
Share on other sites
  • 0

Hey thanks for replying Jon Bon. I didn't even get a response on the other site, so I guess it may be a little nonsensical?

 

My system is simple, I'm just trying to create a rudimentary placeholder for now.

 

It is a pokemon Tbs. (Don't worry, It's a parody, I almost wonder if pokemon is a cussword in the rmxp community by now, I intend to do things differently.)

 

The initial commands are simple. You hold the cursor over your unit, it displays the graphic, if you push C, the menu opens.

Attack

Move

Wait

Status

Cancel.

 

I'm using an action point system. The higher a pokemons speed rating, the more action points you have availabe.

I.e. Moving 5 tiles costs 5AP, Moving 3 Costs 3AP. Attacking might cost 1 or more depending on the strength of the attack. Waiting without performing any other actions would add a little AP to the units pool for next turn.

 

Now, with movement I am wondering what would be the most effective way to handle the AP variable. Because I have a pixel movement script, I cannot program the Ap to be depleted by arrow presses. Because I want the player to move the character manually, rather then clicking on a destination.

 

During the duration of the movement, the units graphic opacity turns 0 and is set to always exist at the players coordinates. Afterwards, it turns back. Likewise, the player takes on the Units graphic for the duration. (It had to be this way, because I could control the unit without all the graphical fuss, but the Scroll Map function isn't ideal for locking on to the unit being moved.)

 

I thought I might use variables for recording and comparing....

This I almost consider to be the least of my challenges.

Share this post


Link to post
Share on other sites
  • 0

Now my other question is this.

I have the variables Cursor X, CursorY= Players XY,

I also keep track of the Pokemons XY.

 

When Cursorxy=pokemonxy I want to display a face graphic

the else handler would delete the picture (2)

 

now my problem is, I want this to occur for every unit on the map,

but the else handler always deletes the picture, excepting one. (the last one in the list, at the end of the cond branches.)

 

Do i really need to have a separate picture number for each, or a switch for each. Or is there a less tedious, and more flexible option?

Share this post


Link to post
Share on other sites
  • 0

I'll answer your second question first. It appears you are trying to achieve high customization with eventing, in my personal opinion as an eventer, it may be best for you to start to learn scripting and attempt the same things through scripts as you won't have as many limitations. I know that really isn't a suggestion, but to be honest eventing systems generally slow things down more than scripts, and they take way more setup and configure time as well.

 

As for your first question, I can only really answer it from a development point, rather then a technical one. I would think that you would some how be able to make it so that the as the intended player moves 'X' amount of pixels 'X' amount of ability points are taken. So lets say 32 pixels= 1AP. This would of course mean you would be able to 'waste' your points by running in circles/inefficiently, but you would need to add some sort of confirmation window asking "Confirm movement?" so you could cancel your previous movement, return to where you were and start again.

 

From a technical stand point, I have little to no experience with the pixel script, but I believe what I described above is definitely possible.

Share this post


Link to post
Share on other sites
  • 0

Hey thanks again. Actually I would prefer to do tile movement. I just would like to be able to turn off pixel movement for the duration of the action. Also, to move the event rather then have the player take on the events graphic. (not a big deal though really.)

 

I figured some things out. But it may be that I will have to learn to script, I mean, what is the difficulty level and the timespan for being able to create these things? You see, I am enjoying making the event engine, I am learning alot, I enjoy the riddles. I don't entirely understand what I'm doing though, or all the event commands in general. which is why I suspect that ruby will be that much more difficult.

 

So for now I mean to event everything. But I plan on learning ruby, basic, etc. in the future.

 

I have another question. I have been trying to event a jumping system. (I don't want to use the jumping script.) However, I get this annoying repeating jump. I've tried to use the wait commands, but it wont stop. Simply, I want him to jump once, even if the key is held down. Then if it is released you can press it again...Do I need a script for this?

Share this post


Link to post
Share on other sites
  • 0

So I solved the face graphic problem.

 

I had this:

 

If cursorxy equals unit xy

display picture001

else: Erase Pic001

 

however, this would only work for one unit, as it would erase pic 1 if cursorxy didnt equal unit(1)xy, so if I hovered over unit2xy the else handler would erase it anyways.

 

The answer was hilariously simple.

 

if cursorxy equals unitxy

show pic1

condbranch: Arrow key pressed Erase pic 1.

 

Lol

Share this post


Link to post
Share on other sites
  • 0

Learning scripting is essentially the same as learning eventing, in a sense. Your first step would be to learn the language, then learn the methods. I have heard that the eventing skills will directly translate as you will be achieving the same things, just with scripts.

 

I would think that it should be easy to use a tile system since the game is already based on a 32x32 tile system, although I don't know if the pixel movement script effects this. From what you are saying it seems like you have things well underhand, by best advice would be to keep trial and erroring, that is the best way I have found to learn the eventing system. Seems like you have things under control.

Share this post


Link to post
Share on other sites
  • 0

Yeah, I have to test play every two lines! Lol

 

Anyways, I'm trying to develop a jumping system. Essentially I have it set so you push jump and right, you can jump from one ledge to another. the event is layered on to the tiles so when you move there it turns on a switch: Ledge, which cancels the normal jump common event, and replaces it with a customized consequence. If you are near the ledge, and you jump, it moves you right, locks facing move down move down. To imitate a 3d miss and fall.

 

The problem is, I either put an event on each ledge tile, or determine it by xy.

 

A software engineer thought I might just use one or to events to construct a closed region, by comparing xy's.

 

Or best yet, I could create a gravity variable, and an elevation variable....ugh. Which is going to puzzle me for awhile.

 

Ideally, what I seek is sort of a topdown semiplatformer, where you can jump from cliff to cliff, get to hidden places in this manner... I may be ignorant (or not)thinking this would be easier in 3d (because elevation is automatically determined by a z coordinate.)

 

which is why I might ultimately have to learn to script.

 

Yeah, rmxp is ideal for a tile system. But the player is not moving by tile, so it kind of removes some of my options for depleting ap. I cant just use an arrow press, I have to go a roundabout way using xy coords..

Share this post


Link to post
Share on other sites
  • 0

Actually, I think that using an event for manipulating an elevation variable would work...It would construct and imaginary square over multiple tiles based on its location, and if the player walks into that region it changes your elevation, depending on the value you give it. It could vary in the area it covers, and I wouldn't have to make dozens of touch events on every map. What do you think?

I could make ones that cover the entire y1 region, or x(1-?) region. Or possibly it could cover the entire map, but is overruled by another event. and I could layer them.

 

It would be some much easier then calculating xy's all the time, you just copy paste these events and it does it for you! Whats your opinion?

 

I guess all this would do is keep track of elevation, but that's a start.

Edited by ramza1337

Share this post


Link to post
Share on other sites
  • 0

I think the element you are missing is the terrain tag? In the tileset section of your database you should see a terrain tag button on the lower right side. Using this you can set certain tiles on any map to trigger a specific terrain tag from 0-7. You can then tell a conditional branch to do something based on when that terrain tag is triggered. Using a common event, you should be able to set certain terrain to certain numbers, then have the common event act based on which number is currently active. Then you just remember which number does what (write it down), and put the correct number assigned to the correct tile. If some tiles will do it and some wont, just duplicate the tile on your tileset graphic, and use one for the terrain tag jump motion and the other for normal floor/non jump ledge etc. Remembering that anything that is set to 0 should be considered as 'normal', so you only need duplicate tiles if you plan to use the same tile without jumping.

For multiple maps where the terrain tags do something different, have the entire common event controlled by a switch which turns on when in a/the correct jumping map. Make a new common event and new switch for each map that has different jumping parameters if any.

 

I believe this would fill your need?

Share this post


Link to post
Share on other sites
  • 0

I understood most of that I think. I've always wondered what the terrain tag was for. To be honest, I will have to investigate the options in my conditional branches further, as I am using Postality Knights version. I intend to purchase the standard version eventually....But yeah, that would work I think, if each terrain number equaled an elevation. Is that what you mean? But I would have to duplicate the same graphics several times, and would be limited to an elevation of 7.

 

Anyways, in the mean time I have a pretty decent system worked out I think, haven't fully fleshed it out yet. But it goes like this:

Completed part:

A common event in which you set 2 variables. Elevation and Area. You put it in the top left corner of the square you want to flesh out. It subtracts the player coords from its coords to see if its within the area. And if it is, sets a variable: player elevation.

Incomplete part:

When you jump, a variable: Jump height is set to 1 and then added to player elevation. You then have a conditional branch which acts as gravity. If jump height is greater then player elevation subtract 1 and move down. (Lock facing etc.)

 

So, if you jump right from say 555 to 333 you are jumping from one imaginary square to another, the jump height will equal 6

555 333

555 333

and when you cross into the area with 3 elevation while jumping you will move down until jump height = 3, that is twice, giving the illusion of a z axis.

 

After I get this worked out I'll just copy paste these tiles everywhere. the only issue is I don't think you can localize variables, so I have to make a common event for every imaginary square.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...