Game Maker's Garage Forum

Game Creation => GameMaker => Topic started by: Silverwind on December 03, 2009, 01:48:04 PM

Title: Roguesoft RPG Engine?
Post by: Silverwind on December 03, 2009, 01:48:04 PM
Upon browsing the resources section on the GM homepage I came across a file entitled Roguesoft RPG Engine. Not ringing a bell I decided to download it and discovered it to be a very old, very incomplete engine I started long ago in an effort to make RPGs even easier to make than they are at present (what with all the tutorials and engines available nowadays) I was about to post "Whoops!" but have decided to finish the engine instead.

Here it is so far: http://www.mediafire.com/?zyomkmreqzz

It uses a scrolling background nav (or "player centred" nav), and will feature an immensely more complicated enemy location spawner than any I've ever seen in a GM/SC game. I'm quite proud of the random location spawner I wrote for ToF, but this will be greater again if I can pull it off. Can anyone guess what I'm talking about?
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on December 03, 2009, 03:18:05 PM
Very Interesting. I might try that but I probably won't. Very cool though. Now all you need is the bad guys to have some sort of movement AI for the monsters and a battle engine.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 03, 2009, 03:52:54 PM
Any guesses as to what's so special about the NPC spawner?
Title: Re: Roguesoft RPG Engine?
Post by: Al Staffieri on December 03, 2009, 05:04:02 PM
Great. I'll update it on my site as well.
Title: Re: Roguesoft RPG Engine?
Post by: Gan on December 03, 2009, 08:13:27 PM
Quote
Any guesses as to what's so special about the NPC spawner?
Hmmm, it spawns according to the stats of the player?
(This is a pretty neat engine, scrolling = awesome)

-Gandolf
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 03, 2009, 09:05:33 PM
Quote
Hmmm, it spawns according to the stats of the player?
-Gandolf
Nope, but good guess... ;D
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on December 03, 2009, 10:01:15 PM
Nothing seems to be too special about the NPC spawner. It designates where the npc will spawn directly. The scrolling is pretty awesome. I did notice though that the code gets kinda repetitive at points like

IF npc1Action = 1 THEN npc1Action$ = "Move Up"
IF npc1Action$ = "Move Up" THEN npc1NewGridY = npc1GridY - 1

It would be far more efficient to do

IF npc1Action = 1 THEN npc1NewGridY = npc1NewGridY - 1

But I understand the need to understand your code (I sometimes look at my code and have no idea what its doing)
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 04, 2009, 05:03:25 AM
Yeah, I like translating the raw number to a string so I can see at a glance all the collision classes. :) As for the NPC spawner, you haven't seen it yet (and I haven't finished it yet). The routine included is a work in progress, and mostly just a cleaned up version of ToF's.

No indeed, the NPC spawner will be far greater than that... *cackles madly*
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on December 04, 2009, 05:57:37 PM
My NPC spawner spawns the sprite anywhere.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 04, 2009, 06:02:21 PM
Oh indeed? Any chance of letting me see it? I'd love to see how you did it. ToF did it, but it took me ages to make it truly randomized.
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on December 04, 2009, 07:23:35 PM
Oh its very simple.

REPEAT
monsterX = RANDOM 7
monsterY = RANDOM 7
x = monsterY * 7
x = x - 7
x = x + monsterX
temp$ = MID$ Gridlayout$ x 1
IF temp$ <> "1" THEN EXIT REPEAT
END REPEAT
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 04, 2009, 07:35:00 PM
Ah, but what if the tile is a solid object? Does the spawn routine simply cancel? If so then the spawn frequency of NPCs will be influenced by the amount of non traversable tiles in the room.

These are the things I had to work out for ToF. ;)
Title: Re: Roguesoft RPG Engine?
Post by: Mystor on December 04, 2009, 10:06:14 PM
Quote
Ah, but what if the tile is a solid object? Does the spawn routine simply cancel? If so then the spawn frequency of NPCs will be influenced by the amount of non traversable tiles in the room.

These are the things I had to work out for ToF. ;)
Usually with functions if it fails it just calls itself again.
so it keeps on looping till it finds an empty space.

Mist
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on December 04, 2009, 10:06:44 PM
It continually repeats until it lands on a nonsolid object (I mark all of my solids as 1) Thats what the "IF temp$ <> "1" THEN EXIT REPEAT" is for to check if its on a solid or not if its on a solid it will go through the routine again hence the repeat.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 05, 2009, 01:54:16 AM
Ah, but then if you have a room with very few traversable tiles it's likely that the delay in spawning will be more noticeable, as it'll execute the repeat block more times on average. Also, there could at any time occur a sizeable delay of several seconds if the randomizer rolls successive bad odds.

Once again, a problem I spent a long time finding a workaround to.
Title: Re: Roguesoft RPG Engine?
Post by: Gan on December 05, 2009, 09:49:39 AM
I'd think the when you enered the map it would mark each open tile in a variable. Then when it sets to spawn, just pick a random number of how many open tiles are on that variable. That'd do it.


-Gandolf
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on December 05, 2009, 12:09:14 PM
how complex can enemy spawning get? i can only think of random placement with no delay? but you already did that
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 05, 2009, 01:19:05 PM
Quote
I'd think the when you enered the map it would mark each open tile in a variable. Then when it sets to spawn, just pick a random number of how many open tiles are on that variable. That'd do it.


-Gandolf
Exactly! :D And here's how I did it in ToF:

Code: [Select]
    IF NPCalive = 0 THEN
      NPCspawnchance = RANDOM 10
      IF NPCspawnchance = 1 THEN

        tilecheckXY = 0
        freetiles$ = ""
        freetiles = 0
        REPEAT
          tilecheckXY = tilecheckXY + 1
          freetilecheck$ = MID$ gridlayout$ tilecheckXY 1
          IF freetilecheck$ = "0" THEN
            tilecheckXY$ = STR$ tilecheckXY
            freetiles$ = freetiles$ + tilecheckXY$
            freetiles$ = freetiles$ + ""
            freetiles = freetiles + 1
          END IF
          IF tilecheckXY = 49 THEN EXIT REPEAT
        END REPEAT
        NPCspawnlocation = RANDOM freetiles
        NPCspawnlocation = NPCspawnlocation + 1
        NPCspawntile$ = WORD$ freetiles$ NPCspawnlocation
        NPCspawntile = VAL NPCspawntile$
        XYcalculator = 0
        NPCgridX = 0
        NPCgridY = 1
        REPEAT
          XYcalculator = XYcalculator + 1
          NPCgridX = NPCgridX + 1
          IF NPCgridX = 8 THEN NPCgridY = NPCgridY + 1
          IF NPCgridX = 8 THEN NPCgridX = 1
          IF XYcalculator = NPCspawntile THEN EXIT REPEAT
        END REPEAT

        NPCspriteY = NPCgridY * 44
        NPCspriteY = NPCspriteY - 39
        NPCspriteX = NPCgridX * 44
        NPCspriteX = NPCspriteX - 39
        NPCmoveY = NPCgridY
        NPCmoveX = NPCgridX
        SHOWBUTTON 3 $enemyname$$ $enemyHP$
        SPRITE 13 NPCspriteX NPCspriteY $NPCsprite$$
        NPCalive = 1
      END IF
    END IF

Quote
how complex can enemy spawning get? i can only think of random placement with no delay? but you already did that
Oh, it's better than that alright. Much better... *more mad cackling*
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on December 06, 2009, 01:39:52 PM
It looks like you have so it figures out how many tiles are able to be spawned at then it picks one randomly to spawn at. That is a strange way of doing things. It also is very bulky code. I just have it keep guessing until it picks a location that it is allowed to spawn at.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 09, 2009, 08:21:59 AM
Ok, because I'm so busy of late and mightn't finish this for a week or so, I'll reveal the awesomeness I have planned...

First the computer checks how many NPCs are alive in the current room, and if there are less than the allotted maximum (3) the spawn routine kicks in once the player makes a valid turn/action. The routine first rolls a spawn chance as customary, but here's where the magic comes in:

If the spawn roll is successful, the computer reads the collision classes of each node located at the edge of the player's visibility (-3xy to +3xy from the player's node), and stores the XY locations of any traversable nodes in a "spawnableTiles$" variable. A random node is then selected from the list and the NPC is spawned there. This ensures that NPCs won't spawn miles away from the player and fail to hinder them (for the new room size is quite large and there can only be 3 NPCs alive at once, not nearly enough to populate the square radius). Further more, when an NPC travels 5 spaces from the player's visibility it will disappear, allowing the spawn routine to kick in again. In this way it'll appear to the player that each room is thriving with NPCs! Preserving the danger element of exploration.

Cool huh?
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on December 09, 2009, 11:19:00 AM
NICE! The world will appear to be FILLED with monsters.
EDIT: However what will happen when you reach the edge of the screen?
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on December 09, 2009, 08:01:18 PM
nice, thats very similar to what i used in the gangwars ex mini game in stans world 2, also the suit cases of money (treasure chests) would only appear if in the screen radius too
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 10, 2009, 07:12:43 AM
Quote
NICE! The world will appear to be FILLED with monsters.
EDIT: However what will happen when you reach the edge of the screen?
Any nodes located at XY < 1 or > 25 return nullified. :) I have a rare hour to spare so I'm gonna hit the code now.

Quote
nice, thats very similar to what i used in the gangwars ex mini game in stans world 2, also the suit cases of money (treasure chests) would only appear if in the screen radius too
Nice! The mini games never worked for me. I think I had an incorrect file or something.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 11, 2009, 07:19:38 AM
The spawner is coming along well. Here's what I've got so far:

Code: [Select]
'----NPC SPAWN---------------------------------------------------------------------------------
    IF npcAlive = 0 THEN
      enemySpawnChance = RANDOM 5
      IF enemySpawnChance = 1 THEN

        ' --- Determine the player's sight radius.
        minCheckX = playerGridX - 4
        minCheckY = playerGridY - 4
        maxCheckX = playerGridY + 4
        maxCheckY = playerGridX + 4
        checkX = 0
        checkY = 0
        freeTileList$ = ""
        freeTileCount = 0

        REPEAT
          ' --- Determine which node to check.
          checkX = checkX + 1
          IF checkX > 25 THEN
            checkX = 1
            checkY = checkY + 1
            ' --- Determine the collision classes of the X row to be checked.
            IF checkY = 1 THEN gridRow$ = gridRow1$
            IF checkY = 2 THEN gridRow$ = gridRow2$
            IF checkY = 3 THEN gridRow$ = gridRow3$
            IF checkY = 4 THEN gridRow$ = gridRow4$
            IF checkY = 5 THEN gridRow$ = gridRow5$
            IF checkY = 6 THEN gridRow$ = gridRow6$
            IF checkY = 7 THEN gridRow$ = gridRow7$
            IF checkY = 8 THEN gridRow$ = gridRow8$
            IF checkY = 9 THEN gridRow$ = gridRow9$
            IF checkY = 10 THEN gridRow$ = gridRow10$
            IF checkY = 11 THEN gridRow$ = gridRow11$
            IF checkY = 12 THEN gridRow$ = gridRow12$
            IF checkY = 13 THEN gridRow$ = gridRow13$
            IF checkY = 14 THEN gridRow$ = gridRow14$
            IF checkY = 15 THEN gridRow$ = gridRow15$
            IF checkY = 16 THEN gridRow$ = gridRow16$
            IF checkY = 17 THEN gridRow$ = gridRow17$
            IF checkY = 18 THEN gridRow$ = gridRow18$
            IF checkY = 19 THEN gridRow$ = gridRow19$
            IF checkY = 20 THEN gridRow$ = gridRow20$
            IF checkY = 21 THEN gridRow$ = gridRow21$
            IF checkY = 22 THEN gridRow$ = gridRow22$
            IF checkY = 23 THEN gridRow$ = gridRow23$
            IF checkY = 24 THEN gridRow$ = gridRow24$
            IF checkY = 25 THEN gridRow$ = gridRow25$
          END IF

          ' --- Determine the XY coordinates of the checker based on the individual X and Y coordinates.
          checkXY = 25 * checkY
          checkXY = checkXY - 25
          checkXY = checkXY + checkX
          checkXY$ = STR$ checkXY

          ' --- Check if the tile is fit for spawning.
          tileToCheck$ = MID$ gridRow$ checkX 1
          IF tileToCheck$ = "0" THEN
            tileOnEdge$ = "No"
            IF checkX = minCheckX THEN tileOnEdge$ = "Yes"
            IF checkX = maxCheckX THEN tileOnEdge$ = "Yes"
            IF checkY = minCheckY THEN tileOnEdge$ = "Yes"
            IF checkY = maxCheckY THEN tileOnEdge$ = "Yes"

            ' --- If the tile is 1 node from the player's sight radius, add it to the list of spawnable tiles.
            IF tileOnEdge$ = "Yes" THEN
              freeTileList$ = freeTileList$ + checkXY$
              freeTileList$ = freeTileList$ + ""
              freeTileCount = freeTileCount + 1
            END IF
          END IF
          IF checkXY = 650 THEN EXIT REPEAT
        END REPEAT

        ' --- Select a tile from the list of spawnable tiles.
        IF freeTileList$ <> "" THEN
          chosenItemFromList = RANDOM freeTileCount
          chosenItemFromList = chosenItemFromList + 1
          spawnXY$ = WORD$ freeTileList$ chosenItemFromList
          spawnXY = VAL spawnXY$

          ' --- Determine the NPC's X and Y coordinates based on its XY coordinates.
          npcXY = 0
          npcGridX = 0
          npcGridY = 1
          REPEAT
            npcXY = npcXY + 1
            npcGridX = npcGridX + 1
            IF npcGridX = 26 THEN npcGridY = npcGridY + 1
            IF npcGridX = 26 THEN npcGridX = 1
            IF npcXY = spawnXY THEN EXIT REPEAT
          END REPEAT

          ' --- Determine the NPC's sprite coordinates based on its grid coordinates.
          npcSpriteY = npcGridY * 44
          npcSpriteY = npcSpriteY - 39
          npcSpriteX = npcGridX * 44
          npcSpriteX = npcSpriteX - 39
          npcNewGridX = npcGridX
          npcNewGridY = npcGridY
          npcAlive = 1

          ' --- Determine which type of enemy to spawn.
          enemyType = RANDOM enemyTypes
          IF enemyType = 1 THEN enemyName$ = enemyName1$
          IF enemyType = 1 THEN enemySprite$ = enemySprite1$
          IF enemyType = 2 THEN enemyName$ = enemyName2$
          IF enemyType = 2 THEN enemySprite$ = enemySprite2$
          IF enemyType = 3 THEN enemyName$ = enemyName3$
          IF enemyType = 3 THEN enemySprite$ = enemySprite3$
          IF enemyType = 4 THEN enemyName$ = enemyName4$
          IF enemyType = 4 THEN enemySprite$ = enemySprite4$
          IF enemyType = 5 THEN enemyName$ = enemyName5$
          IF enemyType = 5 THEN enemySprite$ = enemySprite5$
        END IF
      END IF
    END IF
'---/NPC SPAWN---------------------------------------------------------------------------------
I haven't tested it yet as I'm heading to work soon, but I'm fairly sure there's a few kinks I need to work out. It's coming along nicely though. :)
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on December 11, 2009, 08:35:41 AM
So this is like a rougelike? Interesting...
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on December 11, 2009, 10:35:12 AM
so this makes for an endless amount of enemies in a dungeon? if thats true thats kind of like just having random encounters, except theyre visible on the screen. i like the idea of haveing a fixed amount of enemies per floor so that clearing out a whole floor gives a sense of accomplishment.... and maybe randomly spawns the boss of that floor that gives a special item or gold when defeated
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on December 11, 2009, 10:46:21 AM
Quote
Nice! The mini games never worked for me. I think I had an incorrect file or something.
what?! why does noone tell me these things

i just went to download stans world 2 to see if thats true and its not even in the downloads! thats so aggrivating when one works so hard to make a game and then ghost doesnt even put any effort into making it available. its not hard to make a link, and it adds content to the site for new people looking to get into game design. the downloads is the best part of the site and the easiest to maintain. while im on this, what happened to haveing a screen shot for each game, that was a great feature
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 11, 2009, 12:46:50 PM
Quote
so this makes for an endless amount of enemies in a dungeon? if thats true thats kind of like just having random encounters, except theyre visible on the screen.
Yeah, that's a good way of looking at it. I suppose it adds an extra element to the gameplay, being able to avoid encounters.

Quote
i like the idea of haveing a fixed amount of enemies per floor so that clearing out a whole floor gives a sense of accomplishment.... and maybe randomly spawns the boss of that floor that gives a special item or gold when defeated
Yeah, the idea of clearing a floor is cool, especially if that were to initiate the boss spawn. I doubt I'd have enough room for all the NPC code though.

One of these days I should really write a new NPC AI routine which references the stats of NPC "slots" and thus handles multiple NPCs without using duplicate code. Anyone up for the challenge? (keeping in mind that GM doesn't have methods, or it'd be easy)

Quote
what?! why does noone tell me these things
They tell me, and I tell Kirk Douglas.

Quote
while im on this, what happened to haveing a screen shot for each game, that was a great feature
You can submit a screenshot via the Submit Content form and it'll be added when Ghost gets a free moment. Click the camera icon prefixing the game's title to view the screenshot. :)
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on December 11, 2009, 08:11:15 PM
does gm have a loop code? is the npc movment random? cause that wouldnt use that much code
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on December 11, 2009, 09:18:44 PM
GM has 3 ways of looping
(On Main Card Script)
You may click loop script.
You may use ON TIMER x and that will repeat the code in the ON TIMER
(anywhere)
x = 0
REPEAT numberoftimes
x = x + 1
do stuff
END REPEAT
I can't think of any other ways of looping script at the moment.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 10, 2010, 08:08:45 PM
Sorry for abandoning the engine. I wasn't on the computer much last month for several reasons, including a job change and the death of my Grandfather.

I've had allot of trouble getting the spawner to work but it's nearly finished now. I'll post a demo as soon as I get it working.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 17, 2010, 07:48:25 PM
Man this spawner's a doozy... but I've nearly almost kinda maybe got it working. I dare anyone else to try make it in GM, I dare you!
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on January 18, 2010, 09:53:13 AM
The objective is to make it so the spawner will spawn a new monster if you get it off the screen by moving away from it right?
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on January 18, 2010, 10:34:45 AM
yea what does the spawner do exacly
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 18, 2010, 10:57:21 AM
It only spawns enemies on nodes fulfilling the following conditions:
And of course, the NPCs disappear/despawn if they exist 8 nodes in any direction from the player.

EDIT:

And keep in mind that the grid dimensions are 25x25 nodes. ;)
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 19, 2010, 08:36:33 AM
Eureka! I've done it! Well, I think so anyway... I've tested it rigorously all morning and at last it seems bug free. Here's a beta: http://www.mediafire.com/?myyjizayygu

The finished engine will contain much more than a nav system, but the nav system is the primary feature. I'll write a readme explaining how to harness it's awesome power with minimal ease. Games will never be the same again!

EDIT:

I'm thinking of making QoM II with this. ;D
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on January 19, 2010, 11:39:25 AM
Interesting. I am not sure what it is doing that makes it so good. So could you explain to me why this is so useful?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 19, 2010, 01:13:55 PM
Sure, gather round and harken to my diagrams.

First the spawner locates all the nodes located four nodes plus and minus from the player's node in both X and Y directions. The said nodes are indicated by a shaded zone in the following screenshot:

(http://img522.imageshack.us/img522/6230/99758027.gif)

Next the spawner checks the collision class of each node in the shaded zone and eliminates any non traversable nodes:

(http://img211.imageshack.us/img211/6656/34111396.gif)

Then it chooses a random node from the remaining choices and spawns an enemy there.

Also, when an enemy exists six nodes in any direction from the player's node, the enemy despawns, freeing up the NPC slot for another enemy (which will spawn nearer to the player):

(http://img6.imageshack.us/img6/3715/45127060.gif)

In this way, enemies won't just spawn in a far away corner and make the room feel empty. Neat huh?
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on January 19, 2010, 02:29:16 PM
It seems to me that the monsters are unspawning when they are really far away wouldn't it be better if the containing area was smaller so you almost always see at least 2 monsters?
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on January 19, 2010, 04:13:06 PM
What about this was so difficult to write? It seems kind of straight forward to me...

That isn't meant to be condescending  ;)
Title: Re: Roguesoft RPG Engine?
Post by: Gan on January 19, 2010, 04:28:37 PM
Seems straight forward to me only because Sc has mutable arrays. I could code something similar in very few lines with those, they are life savers.


-Gandolf
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 19, 2010, 06:21:22 PM
It seemed straight forward to me too when I first thought it up, but it proved much more tedious than I imagined. It'd be easy to make in JS or SC, but keep in mind that GM doesn't have arrays and I'm working on a 25x25 grid.

I'd still love to see someone attempt it in Gm. :)
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on January 19, 2010, 08:24:55 PM
Well If I attempt to do such a feat I would have to put other projects aside for a while.
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on January 19, 2010, 09:42:32 PM
Ah.

Oh BTW, I just learned that "mutable arrays" are technically not even arrays, they're really lists. I was working on a project for my Java class and was very confused until I discovered the arrayList class.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 20, 2010, 05:51:44 PM
Quote
It seems to me that the monsters are unspawning when they are really far away wouldn't it be better if the containing area was smaller so you almost always see at least 2 monsters?
I could shorten the distance by one more node, but that would result in instant despawning if the NPC's first move is to walk in the opposite direction from the player. The current distance allows at least two moves and also means you can be "pursued" if you will, by an enemy offscreen.

"I wonder if that Hell Hound has given up the chase... CRAP! No he hasn't!"
Title: Re: Roguesoft RPG Engine?
Post by: Gan on January 20, 2010, 06:24:27 PM
Ahah, now I remember that... A lonely cleric near the Volcano, on his way back to the small fishing town. Only to get pursued by a fiery demon of a beast.


-Gandolf
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 20, 2010, 06:47:47 PM
lol! Have you ever been in the volcano though? It's a nightmare. I went when I was only level 4 on a 15 person (including Flingee and Shogun) dungeon raid and yet we all died, and many of us twice when the rescue mission failed. ;d

Best game ever.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 03, 2010, 06:35:26 PM
I've compressed the NPC AI down to a single routine which handles every NPC on the map, which saves allot of code, but before I can release the RSRPGE I've got to implement a battle engine. Does anyone have any suggestions as to what they'd like it to contain?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 06, 2010, 05:10:03 PM
Here's the latest beta: http://www.mediafire.com/?tkyg2wxnngw

Pretty snazzy eh? Entities have the following stats: Attack, Defence, Accuracy and Evasion, which allows a significantly more versatile battle engine than QoM or ToF, as you can incorporate entity characteristics (like the Pixie for example, who's quite weak but hard to hit). Once I get items , treasure chests, portals and levelling up out of the way I reckon It'll be ready for release. :)

EDIT:

Oh yeah, you can press spacebar to skip your turn and "s" to display your HP.

EDIT AGAIN:

Hmm... I'm having trouble saving the file after Running it in the editor. I get "Cannot access temporary data" or some such alert and then all the card and button scripts wipe clean along with the picture areas. Maybe it's because I'm running close to 1,000 LoC at a time.

Can anyone else confirm that the glitch isn't just occurring on my computer?

EDIT:

Here's a screencast for those who don't have GM: http://screencast.com/t/MjEzYjA0N
Title: Re: Roguesoft RPG Engine?
Post by: Teruri on February 07, 2010, 10:05:57 AM
Pure awesomeness (the battle system). Too bad it's GM and I use SC. =/
You inspired me to make a RPG. Do you mind if I somewhat copy your battle system?  ;D
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 07, 2010, 10:52:40 AM
THATS impressive, i cant belive it was done in gm, thats really something.  :o
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on February 07, 2010, 11:08:36 AM
Looks hot. How are you going to handle ranged combat?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 07, 2010, 12:42:59 PM
Quote
Pure awesomeness (the battle system). Too bad it's GM and I use SC. =/
You inspired me to make a RPG. Do you mind if I somewhat copy your battle system?  ;D
On the contrary, I'd be overjoyed if to see more games with battle engines like this. :)

Quote
THATS impressive, i cant belive it was done in gm, thats really something.  :o
Why thank you my fine feathered French fraudulent friend! I'm quite pleased with it as well. :)

Quote
Looks hot. How are you going to handle ranged combat?
It's not a question of how, it's a question of doushite, the Japanese word for how. I haven't really given it much thought, but it'll be easy. I'll probably just initiate the battle routine on sprite collision with a fireball. Eh? Eh?
Title: Re: Roguesoft RPG Engine?
Post by: Gan on February 07, 2010, 01:04:52 PM
Ah, wish I had my mac to view this...
Though for spells, instead of sprite collisions you could just detect what tile the fireball's position is on. Might save a bit of speed or CPU.


-Gan
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on February 07, 2010, 01:16:25 PM
Thats what I was thinking as well.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 07, 2010, 01:35:58 PM
I'll preform the check with my own routine in place of the SPRITECOLLIDE command if that's what you mean, (for visual reasons) but you know what I mean, it'll happen when an entity collides with the thing.

As for speed, the difference would hardly be humanly recognizable. Or so I'd imagine.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 07, 2010, 02:41:26 PM
i tryed to port this to sc, this is the best i can do, its not nearly as polished as silvers, i cant figure out how the enemy spawning works, i just have the enemies spawn from a fixed point. its 180lines total but with a whole lotta FOR loops.
http://www.mediafire.com/file/ngidhwdwztj/rpgenginesc.zip
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 07, 2010, 02:55:01 PM
I get "An exception occurred. Stability may decrease."

Do I need a newer version of SC? *goes to download latest version*

EDIT:

No, that didn't do it. Any ideas?
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 07, 2010, 03:11:36 PM
2.0a4?

heres a compiled version
http://www.mediafire.com/file/mox3ayy0mlz/rpgengineport.zip
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 07, 2010, 03:45:22 PM
Ah, I've only got 1.6b3. I'll get the latest one now...

EDIT:

That's really awesome! :D I love the way you can have so many NPCs alive at once. I'm kinda at the limit with 3, so no followers unfortunately.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 08, 2010, 11:15:21 AM
 silver , i have a request, can you finish designing the upper half of that map? ide like to use it
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 08, 2010, 02:56:53 PM
Sure. I wasn't gonna finish it what with progress resuming on the new tile set, but a single room isn't much work. What's it for?

EDIT:

Here you go:

(http://img22.imageshack.us/img22/8351/room1.gif)
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 08, 2010, 08:27:34 PM
nice, im adding a few extra features to that engine
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 09, 2010, 05:06:41 PM
i added some more features and added that map

http://www.silvercreator.net/cgi-bin/yabb2/YaBB.pl?num=1265756421/0#0
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 09, 2010, 07:45:28 PM
WOH!!! Eq, you've taken what I merely conceptualised and turned it into a commercial quality engine. If you spend some time concocting a decent stat development system, prepare a few high quality sprite sheets and write an immersive storyline, I reckon you could make some money from that there engine. Well done indeed!

EDIT:

In the meantime: you must make a game as is! NEO 2 would be awesome with this engine!  :D
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on February 10, 2010, 09:54:26 AM
tats a nîc3 lukin m4p i wud üs3 it 1f My m4p wusnt a1re4dy dun
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 10, 2010, 01:15:24 PM
maybe we could turn this into a group project? if someone wants to make maps i can program them in
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on February 10, 2010, 01:49:28 PM
w3 wud st1ll n33d a st0®y f0r teh m4ps to r3v0lv3 ar0ünd
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 10, 2010, 02:04:49 PM
yea we would need someone to write a story, and do the sprite sheets
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 10, 2010, 02:21:06 PM
I'd absolutely love to work on a game with that engine, but I'm juts too busy at the moment. I'm trying to get full time work out of web design.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 20, 2010, 09:24:52 AM
woah, check this out

http://www.mediafire.com/file/ddxnoo0lnn2/rpgfull.zip
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on February 21, 2010, 09:36:52 AM
Quote
woah, check this out

http://www.mediafire.com/file/ddxnoo0lnn2/rpgfull.zip
That is AWESOME if you actually made a full blown rpg with that engine it would go down as one of the greatest Silver Creator games ever made
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 22, 2010, 04:27:49 PM
Quote
In the meantime: you must make a game as is! NEO 2 would be awesome with this engine!  :D
i forgot about neo 2, im surprised to you mentioned it, i havent worked on that in years,  but it was in production for a while, i dug it up, i figure i'll post it sinse i have no interest in finishing it, so here it is

http://www.mediafire.com/file/w3xxoizzuxn/neo2.zip

the coding is ancient and buggy, i refined this engine over the years and just ported to 2.0 so this version is crazy outdated, check out the inventory, also only the first attacks are animated
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on February 23, 2010, 09:49:24 AM
If you had continued working on that it could have been an awesome game. (right now not so much because of all the bugs)
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on February 23, 2010, 09:53:02 AM
Quote
woah, check this out

http://www.mediafire.com/file/ddxnoo0lnn2/rpgfull.zip
Woh! :o

Quote
i forgot about neo 2, im surprised to you mentioned it, i havent worked on that in years,  but it was in production for a while, i dug it up, i figure i'll post it sinse i have to interest in finishing it, so here it is
Wow, I didn't know it was so far developed. I don't think I've ever played that demo before.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 23, 2010, 10:22:03 AM
i dropped neo 2 but i continued to develop the engine here and there, ive been busy the past couple years, and now with sc2.0 ive really been able to bring it back to life.
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on February 23, 2010, 10:40:09 AM
Quote
i forgot about neo 2, im surprised to you mentioned it, i havent worked on that in years,  but it was in production for a while, i dug it up, i figure i'll post it sinse i have to interest in finishing it, so here it is
I thought "to" was a typo that was intended to mean "no"
Title: Re: Roguesoft RPG Engine?
Post by: Gan on February 23, 2010, 10:47:14 AM
Same here.


-Gan
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on March 09, 2010, 06:04:14 PM
Here's a slight update:

http://www.mediafire.com/?ljuijroigdj

It's mainly just an example of a complete room with treasure chests, NPCs and whatnot. I've decided to package all of my entity sprites with the engine too, as well as a basic stat table and a few music tracks. Making RPG's will be easier than ever before! Yippee! :D
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on March 09, 2010, 06:21:13 PM
Really laggy, but that might just be me.

The death sound was awesome :D
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on March 09, 2010, 06:29:48 PM
Quote
Really laggy, but that might just be me.
Nah, unfortunately it's noticeably laggy for me too. I don't mind the slowed movement much myself, but it keeps track of key input two turns in advance, meaning if you double tap by mistake it'll cost you a turn.

Quote
The death sound was awesome :D
Yeah, it took ages to get that right. ;D You should check out the SFX library: http://www.gamemakersgarage.com/cgi-bin/yabb/YaBB.cgi?board=gametime;action=display;num=1265119690
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on March 10, 2010, 10:25:12 AM
It is laggy but In GM 4 (which is gonna come out in 2013) it will run fine.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on March 17, 2010, 12:51:27 PM
I've got "events" working now, so you can pause gameplay for dialogue cutscenes and whatnot. I'll post an update soon, I'm nearly ready to officially release it.
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on March 17, 2010, 01:08:50 PM
What would you need pausing for? Isn't it turn based?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on March 17, 2010, 04:27:09 PM
Yeah, but it prevents the player from walking around with the arrow keys and whatnot while there's a cutscene. That's just one example mind you, you can do all sorts of things with an event. Events are a way to call completely custom routines, which normally wouldn't be possible with my global engine structure (not enough LoC space).

EDIT:

Here's a screencast example: http://screencast.com/t/Njg3ZmVkNmQ
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on March 17, 2010, 07:20:43 PM
Err are you actually turning keydown off to do your events? If you are it isn't necessary. You just have to modify the keydown code to be off when event is in place for example

ON KEYDOWN
  IF event = 0 THEN
   do awesome engine
  ELSE
    IF keydown$ = " " THEN event = event + 1
  END IF
END KEYDOWN
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on March 17, 2010, 07:39:42 PM
thats a great idea, (im not sure how gm works) could you also store the code of an event on a seperate card and just goto that card when you want to call on that code like a method.(do sprites stay on the screen when you change cards?) and store the card number in a variable like let stats=5  //card 5,  so you can just say "gotocard stats" then "gotocard recentcard" to go back? how do events work?
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on March 17, 2010, 08:02:58 PM
Well Theoretically you could put the events on another card. The problem with that is sprites don't stay on the screen so you would have to make them reappear wouldn't be hard I think you can use

x = 0
REPEAT 20
x = x + 1
SPRITE x
END REPEAT

I haven't tried this so I am not sure that would work.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on March 18, 2010, 03:13:20 AM
Quote
Err are you actually turning keydown off to do your events? If you are it isn't necessary. You just have to modify the keydown code to be off when event is in place
Certainly, but you'd quickly hit the LoC per routine limit. This method allows you to execute code from another card without interrupting the keydown and timer routines (in my example I actually do interrupt the keydown and timer routines, but that's because I didn't want them active during the dialogue).

Quote
thats a great idea, (im not sure how gm works) could you also store the code of an event on a seperate card and just goto that card when you want to call on that code like a method.(do sprites stay on the screen when you change cards?) and store the card number in a variable like let stats=5  //card 5,  so you can just say "gotocard stats" then "gotocard recentcard" to go back? how do events work?
Yup, that's how global events work, which can initiate from any card/room. A local/room event only initiates if you're in a specified room. The code for a local event is stored in the specified room's card script, and to call it you simply reload the card with the variable triggerRoomEvent set to x, x being the event you want to trigger.

It's a nifty workaround for want of methods. :)
Title: Re: Roguesoft RPG Engine?
Post by: Al Staffieri on March 18, 2010, 10:58:33 AM
Looks great.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 24, 2010, 05:32:22 PM
I'm making progress again on the RSRPGE, but the Readme is taking ages to write. I fixed a bug whereby dead NPCs would prevent other NPCs from traversing the grid node they died on until another NPC was spawned in its slot, but now I've discovered an even stranger glitch.

Occasionally the first enemy I attack becomes a ghost on a successful hit, its sprite remaining visible but floating at the coordinates it died at rather than scrolling with the map when the player moves. Furthermore it seems to disappear after a round is completed (after each existing entity makes a move). I've tried to recreate the glitch and capture it on Jing but I haven't been able to as it occurs rarely.

Here's the latest build: link removed

I'd be grateful to hear any feedback on bizarre behaviour such as this glitch or any others you find.
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on April 24, 2010, 08:40:26 PM
Can you compile it for those of us without GM?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 25, 2010, 02:45:34 AM
Whoops! Sorry about that: http://www.mediafire.com/?0lmdae1onwz

btw Hammy, you should download the GM demo. It can run source files without any limitations. :)
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 28, 2010, 05:21:18 PM
Just thought I'd post a picture of the inventory engine I'm working on:

(http://img27.imageshack.us/img27/8761/screenshotno.png)

btw, did anyone encounter that glitch?
Title: Re: Roguesoft RPG Engine?
Post by: Gan on April 28, 2010, 06:10:50 PM
Oooh!!! This is lookin good. :)



-Gan
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 28, 2010, 06:31:36 PM
Thanks. :) I originally thought it would look well to the right of the room area, but PICT stretches the image to fit the canvas after GETPICTURE. I could load the sprites into position again, but it's unpleasantly noticeable so I think I'll stick with the current workaround.
Title: Re: Roguesoft RPG Engine?
Post by: Charlo on April 28, 2010, 10:23:25 PM
Quote
Just thought I'd post a picture of the inventory engine I'm working on:

(http://img27.imageshack.us/img27/8761/screenshotno.png)

btw, did anyone encounter that glitch?
That looks really cool Silver.  I haven't downloaded the source, are you just drawing sprites to the screen, using GETPICT/PICT, and then drawing more to the screen?  I can't think of any other way to use that many sprites.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 29, 2010, 03:26:17 AM
Yup, I'm using sprites for the room background and entities and IMAGEFILE for the items and the item window. Because the inventory screen is on another card I thought there'd be some kind of noticeable transition, but I've got it working seamlessly gong to the card now. Coming back causes the sprites to blink.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 29, 2010, 06:38:35 PM
Here's a sneak peek: http://screencast.com/t/MDFhMWViYW

It's monstrously heavy on the code due to the amount of times I need to repeat things, but I reckon I can squeeze it all in. So far only the Move and Drop buttons work, and not on equipment.

I'm really pleased with the engine now. It's by far my greatest work yet! :D
Title: Re: Roguesoft RPG Engine?
Post by: Gan on April 29, 2010, 06:49:45 PM
Ahahahah! At what the Doppelganger said...

This is fantastic! I love how it's set up. Inventory is great, the sound effects are great...  wow. It's looking more advanced than the iRpg with it's world, talking characters, and sound.


-Gan
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 29, 2010, 07:19:14 PM
;D Hehehe... yeah, I like Sid the Singing Slime King too. Gandolf the Grey also makes an appearance:

(http://img200.imageshack.us/img200/786/screenshotjf.png)

EDIT:

I originally wanted to bring back King Brenith, but his role in the story has been filled by another character so now I'm not sure whether I will or not. I'm borrowing the storyline from one of my earliest ever paper RPGs involving three friends and a wishing star, so there'll be three playable characters. I want to wrap up the RSRPGE before resuming work on the game though.
Title: Re: Roguesoft RPG Engine?
Post by: Mystor on April 29, 2010, 09:09:36 PM
Damn, I like this.
Can you copy me the code? or do I have to find a mac and open it up.
I want to adapt this MUAHAHAHA (what?)

EDIT: Y'see I have been trying to make a good RPG engine for a while now. I have just never really tried hard enough.
Now I get a shortcut and I can write the real story :D
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:18:17 AM
Hurrah, hurray!
Callooh! Callay!
A brand new RPG to play!
Now take my code,
(there's quite a load)
And get it finished by today!

I cant post it all because the engine is massive, but here's the two primary routines:

Main Keydown
Code: [Select]
ON KEYDOWN
  SPRITE -20
  keydownASC = ASC keydown$
  IF gameState$ = "Player's Turn" THEN
    checkHP = 0

    '--- Change Sprite
    IF keydown$ = "z" THEN
      IF playerSprite$ = "humanM1.gif" THEN
         playerSprite$ = "humanM0.gif"
      ELSE
         playerSprite$ = "humanM1.gif"
      END IF
      SPRITE playerSpriteNumber playerSpriteX playerSpriteY $playerSprite$$
    END IF

    '--- Display Menu (ESC key)
    IF keydownASC = 27 THEN
      GETPICTURE
      GOTOCARD 245
    END IF

    '--- Display Stats
    IF keydown$ = "s" THEN checkHP = 1

    '--- Drink Potion
    IF keydown$ = "d" THEN
      checkHP = 1
      playerHP = playerHP + 135
      IF playerHP > playerMaxHP THEN playerHP = playerMaxHP
    END IF

    IF checkHP = 1 THEN
      '--- Display HP.
      tenPercent = playerMaxHP / 10
      entityHPSprite$ = "HP-90%.gif"
      percentCheck = tenPercent * 9
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-80%.gif"
      percentCheck = tenPercent * 8
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-70%.gif"
      percentCheck = tenPercent * 7
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-60%.gif"
      percentCheck = tenPercent * 6
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-50%.gif"
      percentCheck = tenPercent * 5
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-40%.gif"
      percentCheck = tenPercent * 4
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-30%.gif"
      percentCheck = tenPercent * 3
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-20%.gif"
      percentCheck = tenPercent * 2
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-10%.gif"
      percentCheck = tenPercent * 1
      IF playerHP < percentCheck THEN entityHPSprite$ = "HP-0%.gif"
      IF playerHP => playerMaxHP THEN entityHPSprite$ = "HP-100%.gif"
      IF playerHP =< 0 THEN entityHPSprite$ = "HP-None%.gif"
    END IF

    '--- Display Stats (continued)
    IF keydown$ = "s" THEN
      CLEAR TEXT
      PRINT $playerName$$
      PRINT
      PRINT Lvl: $playerLvl$
      PRINT Experience needed to level up: $playerExp$
      PRINT Gold: $playerGold$
      PRINT Attribute Points: $playerAttributePoints$
      PRINT
      PRINT Weapon: $playerWeapon$$
      PRINT Armor: $playerArmor$$
      PRINT Trinket: $playerTrinket$$
      PRINT
      PRINT Strength: $playerStrength$
      PRINT Endurance: $playerEndurance$
      PRINT Dexterity: $playerDexterity$
      PRINT
      PRINT Attack: $playerAttack$
      PRINT Defence: $playerDefence$
      PRINT Accuracy: $playerAccuracy$
      PRINT Evasion: $playerEvasion$
      SPRITE entityHpSpriteNumber playerSpriteX playerSpriteY $entityHPSprite$$
      DELAY attackHitDisplayTime
      SPRITE entityHpSpriteNumber -1000 -1000
    END IF

    '--- Drink Potion (continued)
    IF keydown$ = "d" THEN
      SOUND Drink Potion
      spriteX = playerSpriteX
      spriteY = playerSpriteY - 44
      SPRITE -actionEffectSpriteNumber playerSpriteX playerSpriteY Heal-Icon.gif
      SPRITE entityHpSpriteNumber playerSpriteX playerSpriteY $entityHPSprite$$
      SPRITEPATH actionEffectSpriteNumber spriteX spriteY 8
      SPRITE -actionEffectSpriteNumber -1000 -1000
      SPRITE entityHpSpriteNumber -1000 -1000
      gameState$ = "NPC's Turn"
    END IF

    '--- Pass Turn
    IF keydown$ = " " THEN gameState$ = "NPC's Turn"

    '---ITEMS-------------------------------------------------------------------------------------
    itemKeys$ = "123456789"
    IF itemKeys$ CONTAINS keydown$ THEN ALERT Item Test Successful!
    '----------------------------------------------------------------------------------------------
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:21:28 AM
Main Keydown (continued)
Code: [Select]
    playerTile$ = "Empty"
    playerNewGridX = playerGridX
    playerNewGridY = playerGridY
    IF keydown$ = "UPARROW" THEN playerNewGridY = playerGridY - 1
    IF keydown$ = "DOWNARROW" THEN playerNewGridY = playerGridY + 1
    IF keydown$ = "LEFTARROW" THEN playerNewGridX = playerGridX - 1
    IF keydown$ = "RIGHTARROW" THEN playerNewGridX = playerGridX + 1
    
    '--- Get collision classes of Y row.
    IF playerNewGridY = 1 THEN gridRow$ = gridRow1$
    IF playerNewGridY = 2 THEN gridRow$ = gridRow2$
    IF playerNewGridY = 3 THEN gridRow$ = gridRow3$
    IF playerNewGridY = 4 THEN gridRow$ = gridRow4$
    IF playerNewGridY = 5 THEN gridRow$ = gridRow5$
    IF playerNewGridY = 6 THEN gridRow$ = gridRow6$
    IF playerNewGridY = 7 THEN gridRow$ = gridRow7$
    IF playerNewGridY = 8 THEN gridRow$ = gridRow8$
    IF playerNewGridY = 9 THEN gridRow$ = gridRow9$
    IF playerNewGridY = 10 THEN gridRow$ = gridRow10$
    IF playerNewGridY = 11 THEN gridRow$ = gridRow11$
    IF playerNewGridY = 12 THEN gridRow$ = gridRow12$
    IF playerNewGridY = 13 THEN gridRow$ = gridRow13$
    IF playerNewGridY = 14 THEN gridRow$ = gridRow14$
    IF playerNewGridY = 15 THEN gridRow$ = gridRow15$
    IF playerNewGridY = 16 THEN gridRow$ = gridRow16$
    IF playerNewGridY = 17 THEN gridRow$ = gridRow17$
    IF playerNewGridY = 18 THEN gridRow$ = gridRow18$
    IF playerNewGridY = 19 THEN gridRow$ = gridRow19$
    IF playerNewGridY = 20 THEN gridRow$ = gridRow20$
    IF playerNewGridY = 21 THEN gridRow$ = gridRow21$
    IF playerNewGridY = 22 THEN gridRow$ = gridRow22$
    IF playerNewGridY = 23 THEN gridRow$ = gridRow23$
    IF playerNewGridY = 24 THEN gridRow$ = gridRow24$
    IF playerNewGridY = 25 THEN gridRow$ = gridRow25$

    '--- Get collision class of new tile.
    playerTile$ = MID$ gridRow$ playerNewGridX 1
    IF playerTile$ = "" THEN playerTile$ = "Empty"
    IF playerTile$ = " " THEN playerTile$ = "Empty"
    IF playerTile$ = "0" THEN playerTile$ = "Empty"
    IF playerTile$ = "1" THEN playerTile$ = "Wall"
    IF playerTile$ = "2" THEN playerTile$ = "Signpost"
    IF playerTile$ = "3" THEN playerTile$ = "Treasure Chest"
    IF playerTile$ = "9" THEN playerTile$ = "Empty"

    '--- This checks for collision with other entities.
    IF npc1Alive = 1 THEN
      IF playerNewGridX = npc1GridX THEN
        IF playerNewGridY = npc1GridY THEN
          playerTile$ = "Wall"
          enterBattle = 1
          activeNpc = 1
          npc0Name$ = npc1Name$
          npc0GridX = npc1GridX
          npc0GridY = npc1GridY
          npc0SpriteX = npc1SpriteX
          npc0SpriteY = npc1SpriteY
          npc0HP = npc1HP
          npc0MaxHP = npc1MaxHP
          npc0Attack = npc1Attack
          npc0Defence = npc1Defence
          npc0Accuracy = npc1Accuracy
          npc0Evasion = npc1Evasion
        END IF
      END IF
    END IF
    IF npc2Alive = 1 THEN
      IF playerNewGridX = npc2GridX THEN
        IF playerNewGridY = npc2GridY THEN
          playerTile$ = "Wall"
          enterBattle = 1
          activeNpc = 2
          npc0Name$ = npc2Name$
          npc0GridX = npc2GridX
          npc0GridY = npc2GridY
          npc0SpriteX = npc2SpriteX
          npc0SpriteY = npc2SpriteY
          npc0HP = npc2HP
          npc0MaxHP = npc2MaxHP
          npc0Attack = npc2Attack
          npc0Defence = npc2Defence
          npc0Accuracy = npc2Accuracy
          npc0Evasion = npc2Evasion
        END IF
      END IF
    END IF
    IF npc3Alive = 1 THEN
      IF playerNewGridX = npc3GridX THEN
        IF playerNewGridY = npc3GridY THEN
          playerTile$ = "Wall"
          enterBattle = 1
          activeNpc = 3
          npc0Name$ = npc3Name$
          npc0GridX = npc3GridX
          npc0GridY = npc3GridY
          npc0SpriteX = npc3SpriteX
          npc0SpriteY = npc3SpriteY
          npc0HP = npc3HP
          npc0MaxHP = npc3MaxHP
          npc0Attack = npc3Attack
          npc0Defence = npc3Defence
          npc0Accuracy = npc3Accuracy
          npc0Evasion = npc3Evasion
        END IF
      END IF
    END IF
    
    '--- Check if the player is trying to leave the room.
    IF playerNewGridY < 1 THEN
      npc1Alive = 0
      npc2Alive = 0
      npc3Alive = 0
      playerGridY = roomSize
      GOTOCARD northCard
    END IF
    IF playerNewGridY > roomSize THEN
      npc1Alive = 0
      npc2Alive = 0
      npc3Alive = 0
      playerGridY = 1
      GOTOCARD southCard
    END IF
    IF playerNewGridX < 1 THEN
      npc1Alive = 0
      npc2Alive = 0
      npc3Alive = 0
      playerGridX = roomSize
      GOTOCARD westCard
    END IF
    IF playerNewGridX > roomSize THEN
      npc1Alive = 0
      npc2Alive = 0
      npc3Alive = 0
      playerGridX = 1
      GOTOCARD eastCard
    END IF
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:24:25 AM
Main Keydown (continued)
Code: [Select]
    IF playerTile$ = "Signpost" THEN
      '--- Determine the player's XY coordinates.
      playerNewGridX$ = STR$ playerNewGridX
      playerNewGridY$ = STR$ playerNewGridY
      playerNewGridXY$ = playerNewGridX$ + " x"
      playerNewGridXY$ = playerNewGridXY$ + playerNewGridY$
      IF playerNewGridXY$ = signpost1XY$ THEN signpostText$ = signpost1Text$
      IF playerNewGridXY$ = signpost2XY$ THEN signpostText$ = signpost2Text$
      IF playerNewGridXY$ = signpost3XY$ THEN signpostText$ = signpost3Text$
      IF playerNewGridXY$ = signpost4XY$ THEN signpostText$ = signpost4Text$
      IF playerNewGridXY$ = signpost5XY$ THEN signpostText$ = signpost5Text$
      IF playerNewGridXY$ = signpost6XY$ THEN signpostText$ = signpost6Text$
      IF playerNewGridXY$ = signpost7XY$ THEN signpostText$ = signpost7Text$
      IF playerNewGridXY$ = signpost8XY$ THEN signpostText$ = signpost8Text$
      IF playerNewGridXY$ = signpost9XY$ THEN signpostText$ = signpost9Text$
      IF playerNewGridXY$ = signpost10XY$ THEN signpostText$ = signpost10Text$
      IF playerNewGridXY$ = signpost1XY$ THEN signpostSound$ = signpost1Sound$
      IF playerNewGridXY$ = signpost2XY$ THEN signpostSound$ = signpost2Sound$
      IF playerNewGridXY$ = signpost3XY$ THEN signpostSound$ = signpost3Sound$
      IF playerNewGridXY$ = signpost4XY$ THEN signpostSound$ = signpost4Sound$
      IF playerNewGridXY$ = signpost5XY$ THEN signpostSound$ = signpost5Sound$
      IF playerNewGridXY$ = signpost6XY$ THEN signpostSound$ = signpost6Sound$
      IF playerNewGridXY$ = signpost7XY$ THEN signpostSound$ = signpost7Sound$
      IF playerNewGridXY$ = signpost8XY$ THEN signpostSound$ = signpost8Sound$
      IF playerNewGridXY$ = signpost9XY$ THEN signpostSound$ = signpost9Sound$
      IF playerNewGridXY$ = signpost10XY$ THEN signpostSound$ = signpost10Sound$
      IF signpostSound$ <> "" THEN SOUND $signpostSound$$
      CLEAR TEXT
      PRINT $signpostText$$
      playerTile$ = "Wall"
    END IF

    IF playerTile$ = "Treasure Chest" THEN
      SOUND Treasure Chest
      '--- Determine the player's XY coordinates.
      playerNewGridX$ = STR$ playerNewGridX
      playerNewGridY$ = STR$ playerNewGridY
      playerNewGridXY$ = playerNewGridX$ + " x"
      playerNewGridXY$ = playerNewGridXY$ + playerNewGridY$
      '--- Determine the treasure chest's ID.
      prefix = roomNumber * 10
      prefix = prefix - 10
      treasureChest1ID = prefix + 1
      treasureChest2ID = prefix + 2
      treasureChest3ID = prefix + 3
      treasureChest4ID = prefix + 4
      treasureChest5ID = prefix + 5
      treasureChest6ID = prefix + 6
      treasureChest7ID = prefix + 7
      treasureChest8ID = prefix + 8
      treasureChest9ID = prefix + 9
      treasureChest10ID = prefix + 10
      IF playerNewGridXY$ = treasureChest1XY$ THEN treasureChestID = treasureChest1ID
      IF playerNewGridXY$ = treasureChest2XY$ THEN treasureChestID = treasureChest2ID
      IF playerNewGridXY$ = treasureChest3XY$ THEN treasureChestID = treasureChest3ID
      IF playerNewGridXY$ = treasureChest4XY$ THEN treasureChestID = treasureChest4ID
      IF playerNewGridXY$ = treasureChest5XY$ THEN treasureChestID = treasureChest5ID
      IF playerNewGridXY$ = treasureChest6XY$ THEN treasureChestID = treasureChest6ID
      IF playerNewGridXY$ = treasureChest7XY$ THEN treasureChestID = treasureChest7ID
      IF playerNewGridXY$ = treasureChest8XY$ THEN treasureChestID = treasureChest8ID
      IF playerNewGridXY$ = treasureChest9XY$ THEN treasureChestID = treasureChest9ID
      IF playerNewGridXY$ = treasureChest10XY$ THEN treasureChestID = treasureChest10ID
      '--- Check whether or not the chest has been opened.
      itemValue$ = mid$ treasureChests$ treasureChestID 1
      IF itemValue$ = "1" THEN
        CLEAR TEXT
        PRINT This chest is empty.
      ELSE
        '--- If the chest is full, set its value empty.
        itemToLeft = treasureChestID - 1
        itemToRight = treasureChestID + 1
        itemsToLeft$ = left$ treasureChests$ itemToLeft
        IF treasureChestID =< 1 THEN itemsToLeft$ = ""
        itemsToLeft$ = itemsToLeft$ + "1"
        itemsToRight$ = mid$ treasureChests$ itemToRight
        newArrayValue$ = itemsToLeft$ + itemsToRight$
        treasureChests$ = newArrayValue$
        '--- Award gold.
        treasureChestGold$ = WORD$ goldTable$ roomLVL
        treasureChestGold = VAL treasureChestGold$
        treasureChestGoldPlus = RANDOM treasureChestGold
        treasureChestGold = treasureChestGold * 4
        treasureChestGold = treasureChestGold + treasureChestGoldPlus
        playerGold = playerGold + treasureChestGold
        if playerGold > maxGold THEN playerGold = maxGold
        CLEAR TEXT
        PRINT This treasure chest contains $treasureChestGold$ gold!
      END IF
      playerTile$ = "Wall"
    END IF
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:27:04 AM
Main Keydown (continued)
Code: [Select]
    IF playerTile$ = "Wall" THEN
      playerNewGridX = playerGridX
      playerNewGridY = playerGridY
    END IF
    IF playerTile$ = "Empty" THEN
      playerGridX = playerNewGridX
      playerGridY = playerNewGridY
      REPEAT 2
        '--- Position background sprite.
        IF keydown$ = "UPARROW" THEN roomSpriteY = roomSpriteY + 22
        IF keydown$ = "DOWNARROW" THEN roomSpriteY = roomSpriteY - 22
        IF keydown$ = "LEFTARROW" THEN roomSpriteX = roomSpriteX + 22
        IF keydown$ = "RIGHTARROW" THEN roomSpriteX = roomSpriteX - 22
        '--- Position NPC1sprite.
        npc1spriteY = npc1gridY * 44
        npc1spriteY = npc1spriteY - 44
        npc1spriteY = npc1spriteY + roomSpriteY
        npc1spriteX = npc1gridX * 44
        npc1spriteX = npc1spriteX - 44
        npc1spriteX = npc1spriteX + roomSpriteX
        '--- Position NPC2sprite.
        npc2spriteY = npc2gridY * 44
        npc2spriteY = npc2spriteY - 44
        npc2spriteY = npc2spriteY + roomSpriteY
        npc2spriteX = npc2gridX * 44
        npc2spriteX = npc2spriteX - 44
        npc2spriteX = npc2spriteX + roomSpriteX
        '--- Position NPC3sprite.
        npc3spriteY = npc3gridY * 44
        npc3spriteY = npc3spriteY - 44
        npc3spriteY = npc3spriteY + roomSpriteY
        npc3spriteX = npc3gridX * 44
        npc3spriteX = npc3spriteX - 44
        npc3spriteX = npc3spriteX + roomSpriteX
        '--- Check which NPCs are alive and draw the sprites of the living ones.
        IF npc1alive = 1 THEN SPRITE -npc1SpriteNumber npc1spriteX npc1spriteY $npc1sprite$$
        IF npc2alive = 1 THEN SPRITE -npc2SpriteNumber npc2spriteX npc2spriteY $npc2sprite$$
        IF npc3alive = 1 THEN SPRITE -npc3SpriteNumber npc3spriteX npc3spriteY $npc3sprite$$
        SPRITE roomSpriteNumber roomSpriteX roomSpriteY
      END REPEAT
    END IF

    '---Battle Engine-------------------------------------------------------------------------------
    '--- Enter battle routine.
    IF enterBattle = 1 THEN
      enterBattle = 0
      results$ = ""
      SOUND $playerAttackSound$$
      IF npc0GridY < playerGridY THEN playerAttackIcon$ = "attackIconUp.gif"
      IF npc0GridY > playerGridY THEN playerAttackIcon$ = "attackIconDown.gif"
      IF npc0GridX < playerGridX THEN playerAttackIcon$ = "attackIconLeft.gif"
      IF npc0GridX > playerGridX THEN playerAttackIcon$ = "attackIconRight.gif"
      SPRITE actionEffectSpriteNumber playerSpriteX playerSpriteY $playerAttackIcon$$
      SPRITEPATH actionEffectSpriteNumber npc0SpriteX npc0SpriteY attackIconMoveSpeed

      '--- Determine the chance of the attack hitting.
      hitWindow = baseHitChance
      hitWindow = hitWindow + playerAccuracy
      hitWindow = hitWindow - npc0Evasion
      IF hitWindow > maxHitChance THEN hitWindow = maxHitChance
      IF hitWindow < minHitChance THEN hitWindow = minHitChance
      hitRoll = RANDOM 100

      '--- If the attack hits, deal damage.
      IF hitRoll =< hitWindow THEN
        results$ = results$ + "AttackHit "
        damageRoll = RANDOM baseRandomDamage
        damageRoll = damageRoll + baseDamage
        damageRoll = damageRoll + playerAttack
        damageRoll = damageRoll - npc0Defense
        IF damageRoll < minDamage THEN damageRoll = minDamage
        IF damageRoll > maxDamage THEN damageRoll = maxDamage
        npc0HP = npc0HP - damageRoll
      ELSE
        results$ = results$ + "AttackMiss "
      END IF
      IF npc0HP < 1 THEN results$ = results$ + "EnemyDied "

      '--- Calculate HP status.
      tenPercent = npc0MaxHP / 10
      entityHPSprite$ = "HP-90%.gif"
      percentCheck = tenPercent * 9
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-80%.gif"
      percentCheck = tenPercent * 8
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-70%.gif"
      percentCheck = tenPercent * 7
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-60%.gif"
      percentCheck = tenPercent * 6
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-50%.gif"
      percentCheck = tenPercent * 5
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-40%.gif"
      percentCheck = tenPercent * 4
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-30%.gif"
      percentCheck = tenPercent * 3
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-20%.gif"
      percentCheck = tenPercent * 2
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-10%.gif"
      percentCheck = tenPercent * 1
      IF npc0HP < percentCheck THEN entityHPSprite$ = "HP-0%.gif"
      IF npc0HP => npc0MaxHP THEN entityHPSprite$ = "HP-100%.gif"
      IF npc0HP =< 0 THEN entityHPSprite$ = "HP-None.gif"
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:27:57 AM
Main Keydown (continued)
Code: [Select]
      IF results$ CONTAINS "AttackHit" THEN
        SOUND $playerAttackHitSound$$
        SPRITE actionEffectSpriteNumber npc0SpriteX npc0SpriteY Attack-Hit-Icon.gif
        SPRITE entityHpSpriteNumber npc0SpriteX npc0SpriteY $entityHPSprite$$
        DELAY attackHitDisplayTime
        SPRITE -actionEffectSpriteNumber -1000 -1000
        SPRITE entityHpSpriteNumber -1000 -1000
      END IF
      IF results$ CONTAINS "AttackMiss" THEN
        SOUND $playerAttackMissSound$$
        SPRITE actionEffectSpriteNumber npc0SpriteX npc0SpriteY Attack-Miss-Icon.gif
        DELAY attackMissDisplayTime
        SPRITE actionEffectSpriteNumber -1000 -1000
      END IF
      IF results$ CONTAINS "EnemyDied" THEN
        SOUND Enemy Death
        npc0Alive = 0
        npc0GridX = 0
        npc0GridY = 0
        IF activeNpc = 1 THEN SPRITE -npc1SpriteNumber
        IF activeNpc = 2 THEN SPRITE -npc2SpriteNumber
        IF activeNpc = 3 THEN SPRITE -npc3SpriteNumber
        '--- Calculate the enemy's EXP.
        enemyLvlDifference = npc0Lvl - playerLvl
        enemyExpAdjustment = 50 * enemyLvlDifference
        enemyExp = 100
        IF enemyLvlDifference <> 0 THEN enemyExp = enemyExp + enemyExpAdjustment
        IF enemyExp < 5 THEN enemyExp = 5
        '--- Award EXP.
        playerExp = playerExp - enemyExp
        IF playerExp < 0 THEN playerExp = 0

        CLEAR TEXT
        PRINT You slay the $npc0Name$$
        PRINT + $enemyExp$ EXP
        '--- Check if the player has enough EXP to LVL up.
        IF playerExp =< 0 THEN
          IF playerLvl < playerMaxLvl THEN
            playerExp = expNeededToLvlUp
            playerLvl = playerLvl + 1
            playerAttributePoints = playerAttributePoints + 20
            IF playerAttributePoints > playerMaxAttributePoints THEN playerAttributePoints = playerMaxAttributePoints
          END IF
        END IF
      END IF

      '--- Write the updated stats of the active NPC into the appropriate vars.
      IF activeNpc = 1 THEN
        npc1Alive = npc0Alive
        npc1GridX = npc0GridX
        npc1GridY = npc0GridY
        npc1SpriteX = npc0SpriteX
        npc1SpriteY = npc0SpriteY
        npc1HP = npc0HP
      END IF
      IF activeNpc = 2 THEN
        npc2Alive = npc0Alive
        npc2GridX = npc0GridX
        npc2GridY = npc0GridY
        npc2SpriteX = npc0SpriteX
        npc2SpriteY = npc0SpriteY
        npc2HP = npc0HP
      END IF
      IF activeNpc = 3 THEN
        npc3Alive = npc0Alive
        npc3GridX = npc0GridX
        npc3GridY = npc0GridY
        npc3SpriteX = npc0SpriteX
        npc3SpriteY = npc0SpriteY
        npc3HP = npc0HP
      END IF
    END IF
    '----------------------------------------------------------------------------------------------
    IF keydown$ CONTAINS "ARROW" THEN gameState$ = "NPC's Turn"
  END IF

END KEYDOWN
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:30:20 AM
Main Timer
Code: [Select]
ON TIMER -10
  IF gameState$ = "NPC's Turn" THEN
    gameState$ = "Player's Turn"
    npc1Turn$ = "Available"
    npc2Turn$ = "Available"
    npc3Turn$ = "Available"
    REPEAT

    '--- Check which NPCs have taken their turn.
    activeNpc = 0
    IF npc3Alive = 1 THEN
      IF npc3Turn$ = "Available" THEN
        activeNpc = 3
        npc0Alive = npc3Alive
        npc0Type$ = npc3Type$
        npc0Name$ = npc3Name$
        npc0Sprite$ = npc3Sprite$
        npc0SpriteNumber = npc3SpriteNumber
        npc0GridX = npc3GridX
        npc0GridY = npc3GridY
        npc0SpriteX = npc3SpriteX
        npc0SpriteY = npc3SpriteY
        npc0Lvl = npc3Lvl
        npc0HP = npc3HP
        npc0MaxHP = npc3MaxHP
        npc0Attack = npc3Attack
        npc0Defence = npc3Defence
        npc0Accuracy = npc3Accuracy
        npc0Evasion = npc3Evasion
      END IF
    END IF
    IF npc2Alive = 1 THEN
      IF npc2Turn$ = "Available" THEN
        activeNpc = 2
        npc0Alive = npc2Alive
        npc0Type$ = npc2Type$
        npc0Name$ = npc2Name$
        npc0Sprite$ = npc2Sprite$
        npc0SpriteNumber = npc2SpriteNumber
        npc0GridX = npc2GridX
        npc0GridY = npc2GridY
        npc0SpriteX = npc2SpriteX
        npc0SpriteY = npc2SpriteY
        npc0Lvl = npc2Lvl
        npc0HP = npc2HP
        npc0MaxHP = npc2MaxHP
        npc0Attack = npc2Attack
        npc0Defence = npc2Defence
        npc0Accuracy = npc2Accuracy
        npc0Evasion = npc2Evasion
      END IF
    END IF
    IF npc1Alive = 1 THEN
      IF npc1Turn$ = "Available" THEN
        activeNpc = 1
        npc0Alive = npc1Alive
        npc0Type$ = npc1Type$
        npc0Name$ = npc1Name$
        npc0Sprite$ = npc1Sprite$
        npc0SpriteNumber = npc1SpriteNumber
        npc0GridX = npc1GridX
        npc0GridY = npc1GridY
        npc0SpriteX = npc1SpriteX
        npc0SpriteY = npc1SpriteY
        npc0Lvl = npc1Lvl
        npc0HP = npc1HP
        npc0MaxHP = npc1MaxHP
        npc0Attack = npc1Attack
        npc0Defence = npc1Defence
        npc0Accuracy = npc1Accuracy
        npc0Evasion = npc1Evasion
      END IF
    END IF

    '--- If an NPC is due a turn, enter the Active NPC routine.
    IF activeNpc > 0 THEN
      IF activeNpc = 1 THEN npc1Turn$ = "Passed"
      IF activeNpc = 2 THEN npc2Turn$ = "Passed"
      IF activeNpc = 3 THEN npc3Turn$ = "Passed"
      npc0NewGridX = npc0GridX
      npc0NewGridY = npc0GridY

      '--- NPC AI.
      npc0AI$ = "Roam"
      IF npc0Type$ = "Enemy" THEN
        npc0Action = random 10
        IF npc0Action > 1 THEN npc0AI$ = "Follow Player"
      END IF

      IF npc0AI$ = "Roam" THEN
        npc0Action = RANDOM 4
        IF npc0Action = 1 THEN npc0Action$ = "moveup"
        IF npc0Action = 2 THEN npc0Action$ = "movedown"
        IF npc0Action = 3 THEN npc0Action$ = "moveleft"
        IF npc0Action = 4 THEN npc0Action$ = "moveright"
      END IF

      IF npc0AI$ = "Follow Player" THEN
        npc0ActionList$ = ""
        npc0ActionChoices = 0
        IF playerGridY < npc0GridY THEN
          npc0ActionList$ = npc0ActionList$ + "moveUp "
          npc0ActionChoices = npc0ActionChoices + 1
        END IF
        IF playerGridY > npc0GridY THEN
          npc0ActionList$ = npc0ActionList$ + "moveDown "
          npc0ActionChoices = npc0ActionChoices + 1
        END IF
        IF playerGridX < npc0GridX THEN
          npc0ActionList$ = npc0ActionList$ + "moveLeft "
          npc0ActionChoices = npc0ActionChoices + 1
        END IF
        IF playerGridX > npc0GridX THEN
          npc0ActionList$ = npc0ActionList$ + "moveRight "
          npc0ActionChoices = npc0ActionChoices + 1
        END IF
        chosenItemFromList = RANDOM npc0ActionChoices
        npc0Action$ = WORD$ npc0ActionList$ chosenItemFromList
      END IF
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:33:37 AM
Main Timer (continued)
Code: [Select]
      '--- Check which direction the NPC wants to move in.
      IF npc0Action$ = "moveUp" THEN npc0NewGridY = npc0GridY - 1
      IF npc0Action$ = "moveDown" THEN npc0NewGridY = npc0GridY + 1
      IF npc0Action$ = "moveLeft" THEN npc0NewGridX = npc0GridX - 1
      IF npc0Action$ = "moveRight" THEN npc0NewGridX = npc0GridX + 1

      '--- Check what kind of tile the NPC is trying to move onto. (check if it's traversable or not)
      IF npc0NewGridY = 1 THEN gridRow$ = gridRow1$
      IF npc0NewGridY = 2 THEN gridRow$ = gridRow2$
      IF npc0NewGridY = 3 THEN gridRow$ = gridRow3$
      IF npc0NewGridY = 4 THEN gridRow$ = gridRow4$
      IF npc0NewGridY = 5 THEN gridRow$ = gridRow5$
      IF npc0NewGridY = 6 THEN gridRow$ = gridRow6$
      IF npc0NewGridY = 7 THEN gridRow$ = gridRow7$
      IF npc0NewGridY = 8 THEN gridRow$ = gridRow8$
      IF npc0NewGridY = 9 THEN gridRow$ = gridRow9$
      IF npc0NewGridY = 10 THEN gridRow$ = gridRow10$
      IF npc0NewGridY = 11 THEN gridRow$ = gridRow11$
      IF npc0NewGridY = 12 THEN gridRow$ = gridRow12$
      IF npc0NewGridY = 13 THEN gridRow$ = gridRow13$
      IF npc0NewGridY = 14 THEN gridRow$ = gridRow14$
      IF npc0NewGridY = 15 THEN gridRow$ = gridRow15$
      IF npc0NewGridY = 16 THEN gridRow$ = gridRow16$
      IF npc0NewGridY = 17 THEN gridRow$ = gridRow17$
      IF npc0NewGridY = 18 THEN gridRow$ = gridRow18$
      IF npc0NewGridY = 19 THEN gridRow$ = gridRow19$
      IF npc0NewGridY = 20 THEN gridRow$ = gridRow20$
      IF npc0NewGridY = 21 THEN gridRow$ = gridRow21$
      IF npc0NewGridY = 22 THEN gridRow$ = gridRow22$
      IF npc0NewGridY = 23 THEN gridRow$ = gridRow23$
      IF npc0NewGridY = 24 THEN gridRow$ = gridRow24$
      IF npc0NewGridY = 25 THEN gridRow$ = gridRow25$

      npc0Tile$ = MID$ gridRow$ npc0NewGridX 1
      IF npc0Tile$ = "0" THEN npc0Tile$ = "Empty"
      IF npc0Tile$ = "1" THEN npc0Tile$ = "Wall "
      IF npc0NewGridX < 1 THEN npc0Tile$ = "Wall"
      IF npc0NewGridX > roomSize THEN npc0Tile$ = "Wall"
      IF npc0NewGridY < 1 THEN npc0Tile$ = "Wall"
      IF npc0NewGridY > roomSize THEN npc0Tile$ = "Wall"

      '--- This prevents the NPC from walking over other entities.
      IF npc0NewGridX = playerGridX THEN
        IF npc0NewGridY = playerGridY THEN
          npc0Tile$ = "Wall"
          enterBattle = 1
        END IF
      END IF
      IF npc0NewGridX = npc1GridX THEN
        IF npc0NewGridY = npc1GridY THEN npc0Tile$ = "Wall"
      END IF
      IF npc0NewGridX = npc2GridX THEN
        IF npc0NewGridY = npc2GridY THEN npc0Tile$ = "Wall"
      END IF
      IF npc0NewGridX = npc3GridX THEN
        IF npc0NewGridY = npc3GridY THEN npc0Tile$ = "Wall"
      END IF

      IF npc0Tile$ = "Empty" THEN
        npc0GridX = npc0NewGridX
        npc0GridY = npc0NewGridY
        IF npc0Action$ = "moveUp" THEN npc0SpriteY = npc0SpriteY - 44
        IF npc0Action$ = "moveDown" THEN npc0SpriteY = npc0SpriteY + 44
        IF npc0Action$ = "moveLeft" THEN npc0SpriteX = npc0SpriteX - 44
        IF npc0Action$ = "moveRight" THEN npc0SpriteX = npc0SpriteX + 44
        SPRITEPATH npc0SpriteNumber npc0SpriteX npc0SpriteY 2
      END IF
      '---Battle Engine------------------------------------------------------------------------------
      '--- Enter battle routine.
      IF enterBattle = 1 THEN
        enterBattle = 0
        results$ = ""
        SOUND $npc0AttackSound$$
        IF playerGridY < npc0GridY THEN npc0AttackIcon$ = "attackIconUp.gif"
        IF playerGridY > npc0GridY THEN npc0AttackIcon$ = "attackIconDown.gif"
        IF playerGridX < npc0GridX THEN npc0AttackIcon$ = "attackIconLeft.gif"
        IF playerGridX > npc0GridX THEN npc0AttackIcon$ = "attackIconRight.gif"
        SPRITE actionEffectSpriteNumber npc0SpriteX npc0SpriteY $npc0AttackIcon$$
        SPRITEPATH actionEffectSpriteNumber playerSpriteX playerSpriteY attackIconMoveSpeed
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:35:09 AM
Main Timer (continued)
Code: [Select]
        '--- Determine the chance of the attack hitting.
        hitWindow = baseHitChance
        hitWindow = hitWindow + npc0Accuracy
        hitWindow = hitWindow - playerEvasion
        IF hitWindow > maxHitChance THEN hitWindow = maxHitChance
        IF hitWindow < minHitChance THEN hitWindow = minHitChance
        hitRoll = RANDOM 100

        '--- If the attack hits, deal damage.
        IF hitRoll =< hitWindow THEN
          results$ = results$ + "AttackHit "
          damageRoll = RANDOM baseRandomDamage
          damageRoll = damageRoll + baseDamage
          damageRoll = damageRoll + npc0Attack
          damageRoll = damageRoll - playerDefense
          IF damageRoll < minDamage THEN damageRoll = minDamage
          IF damageRoll > maxDamage THEN damageRoll = maxDamage
          playerHP = playerHP - damageRoll
        ELSE
          results$ = results$ + "AttackMiss "
        END IF
        IF playerHP < 1 THEN results$ = results$ + "PlayerDied "

        '--- Calculate HP status.
        tenPercent = playerMaxHP / 10
        entityHPSprite$ = "HP-90%.gif"
        percentCheck = tenPercent * 9
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-80%.gif"
        percentCheck = tenPercent * 8
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-70%.gif"
        percentCheck = tenPercent * 7
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-60%.gif"
        percentCheck = tenPercent * 6
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-50%.gif"
        percentCheck = tenPercent * 5
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-40%.gif"
        percentCheck = tenPercent * 4
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-30%.gif"
        percentCheck = tenPercent * 3
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-20%.gif"
        percentCheck = tenPercent * 2
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-10%.gif"
        percentCheck = tenPercent * 1
        IF playerHP < percentCheck THEN entityHPSprite$ = "HP-0%.gif"
        IF playerHP => playerMaxHP THEN entityHPSprite$ = "HP-100%.gif"
        IF playerHP =< 0 THEN entityHPSprite$ = "HP-None.gif"

        IF results$ CONTAINS "AttackHit" THEN
          SOUND $npc0AttackHitSound$$
          SPRITE actionEffectSpriteNumber playerSpriteX playerSpriteY Attack-Hit-Icon.gif
          SPRITE entityHpSpriteNumber playerSpriteX playerSpriteY $entityHPSprite$$
          DELAY attackHitDisplayTime
          SPRITE -actionEffectSpriteNumber -1000 -1000
          SPRITE entityHpSpriteNumber -1000 -1000
        END IF
        IF results$ CONTAINS "AttackMiss" THEN
          SOUND $npc0AttackMissSound$$
          SPRITE actionEffectSpriteNumber playerSpriteX playerSpriteY Attack-Miss-Icon.gif
          DELAY attackMissDisplayTime
          SPRITE actionEffectSpriteNumber -1000 -1000
        END IF
        IF results$ CONTAINS "PlayerDied" THEN
          DELAY 1
          SOUND Player Death
          ALERT You have been defeated...
          GOTOCARD 246
        END IF

'---Check for event triggers-----------------------------------------------------------------------
IF roomNumber = 1 THEN
  IF room1Event2 = 0 THEN
    triggerRoomEvent = 2
    GETPICTURE
    GOTOCARD 5
  END IF
END IF
'------------------------------------------------------------------------------------------------

      END IF

      '--- Check whether or not the NPC is far enough away from the player to despawn.
      despawn = 0
      target = playerGridX + 7
      IF npc0GridX => target THEN despawn = 1
      target = playerGridX - 7
      IF npc0GridX =< target THEN despawn = 1
      target = playerGridY + 7
      IF npc0GridY => target THEN despawn = 1
      target = playerGridY - 7
      IF npc0GridY =< target THEN despawn = 1
      IF despawn = 1 THEN
        npc0Alive = 0
        SPRITE -npc0SpriteNumber -1000 -1000
      END IF
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:36:57 AM
Main Timer (continued)
Code: [Select]
      '--- Write the updated stats of the active NPC into the appropriate vars.
      IF activeNpc = 1 THEN
        npc1Alive = npc0Alive
        npc1GridX = npc0GridX
        npc1GridY = npc0GridY
        npc1SpriteX = npc0SpriteX
        npc1SpriteY = npc0SpriteY
        npc1HP = npc0HP
      END IF
      IF activeNpc = 2 THEN
        npc2Alive = npc0Alive
        npc2GridX = npc0GridX
        npc2GridY = npc0GridY
        npc2SpriteX = npc0SpriteX
        npc2SpriteY = npc0SpriteY
        npc2HP = npc0HP
      END IF
      IF activeNpc = 3 THEN
        npc3Alive = npc0Alive
        npc3GridX = npc0GridX
        npc3GridY = npc0GridY
        npc3SpriteX = npc0SpriteX
        npc3SpriteY = npc0SpriteY
        npc3HP = npc0HP
      END IF

    '--- Exit the Active NPC routine once each NPC has taken a turn.
    ELSE
      EXIT REPEAT
    END IF
    END REPEAT

    '----NPC SPAWN-------------------------------------------------------------------------------
    '--- Check which NPCs are alive.
    npcToSpawn = 0
    IF npc3alive = 0 THEN npcToSpawn = 3
    IF npc2alive = 0 THEN npcToSpawn = 2
    IF npc1alive = 0 THEN npcToSpawn = 1
    IF npcToSpawn > 0 THEN
      enemySpawnChance = RANDOM 5
      IF enemySpawnChance = 1 THEN

        '--- Determine the player's sight radius.
        minCheckX = playerGridX - 4
        minCheckY = playerGridY - 4
        maxCheckX = playerGridX + 4
        maxCheckY = playerGridY + 4

        '--- Prepare variables required for node checking.
        checkX = maxCheckX
        checkY = minCheckY - 1
        IF checkY < 1 THEN checkY = 0
        freeTileList$ = ""
        freeTileCount = 0

        '--- Determine which node to check.
        REPEAT
          dropY$ = "No"
          checkX = checkX + 1
          IF checkX < 1 THEN checkX = 1
          IF checkX > roomSize THEN dropY$ = "Yes"
          IF checkX > maxCheckX THEN dropY$ = "Yes"
          IF dropY$ = "Yes" THEN
            checkY = checkY + 1
            checkX = minCheckX
            IF checkX < 1 THEN checkX = 1

            '--- Determine the collision classes of the X row to be checked.
            IF checkY = 1 THEN gridRow$ = gridRow1$
            IF checkY = 2 THEN gridRow$ = gridRow2$
            IF checkY = 3 THEN gridRow$ = gridRow3$
            IF checkY = 4 THEN gridRow$ = gridRow4$
            IF checkY = 5 THEN gridRow$ = gridRow5$
            IF checkY = 6 THEN gridRow$ = gridRow6$
            IF checkY = 7 THEN gridRow$ = gridRow7$
            IF checkY = 8 THEN gridRow$ = gridRow8$
            IF checkY = 9 THEN gridRow$ = gridRow9$
            IF checkY = 10 THEN gridRow$ = gridRow10$
            IF checkY = 11 THEN gridRow$ = gridRow11$
            IF checkY = 12 THEN gridRow$ = gridRow12$
            IF checkY = 13 THEN gridRow$ = gridRow13$
            IF checkY = 14 THEN gridRow$ = gridRow14$
            IF checkY = 15 THEN gridRow$ = gridRow15$
            IF checkY = 16 THEN gridRow$ = gridRow16$
            IF checkY = 17 THEN gridRow$ = gridRow17$
            IF checkY = 18 THEN gridRow$ = gridRow18$
            IF checkY = 19 THEN gridRow$ = gridRow19$
            IF checkY = 20 THEN gridRow$ = gridRow20$
            IF checkY = 21 THEN gridRow$ = gridRow21$
            IF checkY = 22 THEN gridRow$ = gridRow22$
            IF checkY = 23 THEN gridRow$ = gridRow23$
            IF checkY = 24 THEN gridRow$ = gridRow24$
            IF checkY = 25 THEN gridRow$ = gridRow25$
          END IF
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:37:40 AM
Main Timer (continued)
Code: [Select]
          '--- Determine the XY coordinates of the checker based on the individual X and Y coordinates.
          checkXY = roomSize * checkY
          checkXY = checkXY - roomSize
          checkXY = checkXY + checkX
          checkXY$ = STR$ checkXY

          '--- Check if the tile is fit for spawning.
          tileToCheck$ = MID$ gridRow$ checkX 1
          tileOnEdge$ = "No"
          IF tileToCheck$ = "0" THEN
            IF checkX = minCheckX THEN tileOnEdge$ = "Yes"
            IF checkX = maxCheckX THEN tileOnEdge$ = "Yes"
            IF checkY = minCheckY THEN tileOnEdge$ = "Yes"
            IF checkY = maxCheckY THEN tileOnEdge$ = "Yes"

            '--- If the tile is 1 node from the player's sight radius, add it to the list of spawnable tiles.
            IF tileOnEdge$ = "Yes" THEN
              freeTileList$ = freeTileList$ + checkXY$
              freeTileList$ = freeTileList$ + ""
              freeTileCount = freeTileCount + 1
            END IF
          END IF

          '--- End the routine when every tile has been checked.
          endRoutine = 0
          IF checkX => maxCheckX THEN
            IF checkY => maxCheckY THEN endRoutine = 1
            IF checkY => roomSize THEN endRoutine = 1
          END IF
          IF checkX => roomSize THEN
            IF checkY => maxCheckY THEN endRoutine = 1
            IF checkY => roomSize THEN endRoutine = 1
          END IF
          IF endRoutine = 1 THEN EXIT REPEAT
        END REPEAT

        '--- Select a tile from the list of spawnable tiles.
        IF freeTileList$ <> "" THEN
          chosenItemFromList = RANDOM freeTileCount
          chosenItemFromList = chosenItemFromList + 1
          spawnXY$ = WORD$ freeTileList$ chosenItemFromList
          spawnXY = VAL spawnXY$

          '--- Determine the NPC's X and Y coordinates based on its XY coordinates.
          npc0XY = 0
          npc0GridX = 0
          npc0GridY = 1
          nodesToCalculate = spawnXY
          REPEAT
            IF nodesToCalculate > roomSize THEN
              npc0GridY = npc0GridY + 1
              npc0XY = npc0XY + roomSize
              nodesToCalculate = nodesToCalculate - roomSize
            ELSE
              npc0GridX = npc0GridX + nodesToCalculate
              npc0XY = npc0XY + nodesToCalculate
              EXIT REPEAT
            END IF
          END REPEAT

          '--- Determine the NPC's sprite coordinates based on its grid coordinates.
          npc0SpriteY = npc0GridY * 44
          npc0SpriteY = npc0SpriteY - 44
          npc0SpriteY = npc0SpriteY + roomSpriteY
          npc0SpriteX = npc0GridX * 44
          npc0SpriteX = npc0SpriteX - 44
          npc0SpriteX = npc0SpriteX + roomSpriteX
          npc0NewGridX = npc0GridX
          npc0NewGridY = npc0GridY

          '--- Determine which type of enemy to spawn.
          npc0Type$ = "Enemy"
          newEnemyType = RANDOM enemyTypesInRoom
          IF newEnemyType = 1 THEN
            npc0Name$ = enemy1Name$
            npc0Sprite$ = enemy1Sprite$
            npc0Lvl = enemy1Lvl
            npc0HP = enemy1HP
            npc0MaxHP = enemy1HP
            npc0Attack = enemy1Attack
            npc0Defence = enemy1Defence
            npc0Accuracy = enemy1Accuracy
            npc0Evasion = enemy1Evasion
          END IF
          IF newEnemyType = 2 THEN
            npc0Name$ = enemy2Name$
            npc0Sprite$ = enemy2Sprite$
            npc0Lvl = enemy2Lvl
            npc0HP = enemy2HP
            npc0MaxHP = enemy2HP
            npc0Attack = enemy2Attack
            npc0Defence = enemy2Defence
            npc0Accuracy = enemy2Accuracy
            npc0Evasion = enemy2Evasion
          END IF
          IF newEnemyType = 3 THEN
            npc0Name$ = enemy3Name$
            npc0Sprite$ = enemy3Sprite$
            npc0Lvl = enemy3Lvl
            npc0HP = enemy3HP
            npc0MaxHP = enemy3HP
            npc0Attack = enemy3Attack
            npc0Defence = enemy3Defence
            npc0Accuracy = enemy3Accuracy
            npc0Evasion = enemy3Evasion
          END IF
          IF newEnemyType = 4 THEN
            npc0Name$ = enemy4Name$
            npc0Sprite$ = enemy4Sprite$
            npc0Lvl = enemy4Lvl
            npc0HP = enemy4HP
            npc0MaxHP = enemy4HP
            npc0Attack = enemy4Attack
            npc0Defence = enemy4Defence
            npc0Accuracy = enemy4Accuracy
            npc0Evasion = enemy4Evasion
          END IF
          IF newEnemyType = 5 THEN
            npc0Name$ = enemy5Name$
            npc0Sprite$ = enemy5Sprite$
            npc0Lvl = enemy5Lvl
            npc0HP = enemy5HP
            npc0MaxHP = enemy5HP
            npc0Attack = enemy5Attack
            npc0Defence = enemy5Defence
            npc0Accuracy = enemy5Accuracy
            npc0Evasion = enemy5Evasion
          END IF
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 04:39:08 AM
Main Timer (continued)
Code: [Select]
          '--- Determine which NPC to spawn.
          IF npcToSpawn = 1 THEN
            npc1Type$ = npc0Type$
            npc1Name$ = npc0Name$
            npc1Sprite$ = npc0Sprite$
            npc1GridX = npc0GridX
            npc1GridY = npc0GridY
            npc1SpriteX = npc0SpriteX
            npc1SpriteY = npc0SpriteY
            npc1Lvl = npc0Lvl
            npc1HP = npc0HP
            npc1MaxHP = npc0MaxHP
            npc1Attack = npc0Attack
            npc1Defence = npc0Defence
            npc1Accuracy = npc0Accuracy
            npc1Evasion = npc0Evasion
          END IF
          IF npcToSpawn = 2 THEN
            npc2Type$ = npc0Type$
            npc2Name$ = npc0Name$
            npc2Sprite$ = npc0Sprite$
            npc2GridX = npc0GridX
            npc2GridY = npc0GridY
            npc2SpriteX = npc0SpriteX
            npc2SpriteY = npc0SpriteY
            npc2Lvl = npc0Lvl
            npc2HP = npc0HP
            npc2MaxHP = npc0MaxHP
            npc2Attack = npc0Attack
            npc2Defence = npc0Defence
            npc2Accuracy = npc0Accuracy
            npc2Evasion = npc0Evasion
          END IF
          IF npcToSpawn = 3 THEN
            npc3Type$ = npc0Type$
            npc3Name$ = npc0Name$
            npc3Sprite$ = npc0Sprite$
            npc3GridX = npc0GridX
            npc3GridY = npc0GridY
            npc3SpriteX = npc0SpriteX
            npc3SpriteY = npc0SpriteY
            npc3Lvl = npc0Lvl
            npc3HP = npc0HP
            npc3MaxHP = npc0MaxHP
            npc3Attack = npc0Attack
            npc3Defence = npc0Defence
            npc3Accuracy = npc0Accuracy
            npc3Evasion = npc0Evasion
          END IF

          IF npcToSpawn = 1 THEN npc1Alive = 1
          IF npcToSpawn = 1 THEN SPRITE npc1SpriteNumber npc1SpriteX npc1SpriteY $npc1Sprite$$
          IF npcToSpawn = 2 THEN npc2Alive = 1
          IF npcToSpawn = 2 THEN SPRITE npc2SpriteNumber npc2SpriteX npc2SpriteY $npc2Sprite$$
          IF npcToSpawn = 3 THEN npc3Alive = 1
          IF npcToSpawn = 3 THEN SPRITE npc3SpriteNumber npc3SpriteX npc3SpriteY $npc3Sprite$$

        END IF
      END IF
    END IF
  END IF
END TIMER

GOTOCARD roomCard
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 07:51:09 AM
I've got everything working now except for the Use/Equip button. I'm nearly at 500 lines too, but I think I'll manage.
Title: Re: Roguesoft RPG Engine?
Post by: Gnome on April 30, 2010, 09:37:08 AM
The best part bout silvers codes is the fact that I can read it ;)
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 30, 2010, 03:34:21 PM
Aye, we must all become well versed in "the Way of the Tab".

I'm getting better at giving variables explanatory names too. :)
Title: Re: Roguesoft RPG Engine?
Post by: Mystor on May 02, 2010, 01:24:29 PM
Woah, isn't there a 500LOC limit or something? (Or is that 500LOC and I suck at guesstimating)
I have a load of homework ATM, but I may get started on a RPG soon with some of that stuffs :P

EDIT: also, this code deserves it's own topic.
Title: Re: Roguesoft RPG Engine?
Post by: Al Staffieri on May 02, 2010, 04:20:13 PM
Quote
Woah, isn't there a 500LOC limit or something?

The current limit for lines of code in GameMaker is 750 lines per script.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on May 02, 2010, 04:59:19 PM
Yup, although 1,500 is required to make a room work. I'm using the cross card natures of KEYDOWN and TIMER events to great effect. :)
Title: Re: Roguesoft RPG Engine?
Post by: Mystor on May 02, 2010, 05:39:52 PM
haha, ok
Just checking, because it LOOKED like you were a BIT over 500LOC there :P
Title: Re: Roguesoft RPG Engine?
Post by: GMG Mike on May 02, 2010, 11:28:46 PM
More accurately, the limit is 32767 characters of code. Al has it set as a line limit though because that's easier to track. He could change it to 32767 characters per script, if you had mostly short lines.

The limit has to do with the length limit for an old style Carbon text field which used a signed 16-bit integer. GM 4.0 will use newer-style stuff and won't have the limitation anymore.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on May 05, 2010, 07:21:00 AM
Hurrah, hurray! The inventory system is complete (almost; I still have to write a routine for available slot checking when un-equiping an item, but that won't take long). Anyways, here's a new beta: http://www.mediafire.com/?yrgj1m0hmy3

Once again I recorded all of the sounds myself using only my voice, with the exception of the Unequip Item sound, for which I squeezed a box of paper clips and the Treasure Chest sound, which is my office door opening.

Yippeeeee! Can't wait to make Epicus II! ;D
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on May 07, 2010, 10:25:24 AM
This is awesome I wish I had done it. I wonder how it would look in rokeno? Hmm. Nevermind.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on May 07, 2010, 12:54:28 PM
By all means use it. :) The code is very clunky and uncommented because I forgot most of it as I wrote it, but you're free to use it.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on May 07, 2010, 08:12:33 PM
thats amazing, my head just exploded. to me, the inventory system is the most covetted feature in homebrew games, now i have to catch up and update my rpg engine
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on May 12, 2010, 12:44:57 PM
I've decided to do the readme in the form of video tutorials. They'll cover everything involved in making a game from start to finish.

Once I've recorded them I'll be ready to release the engine! ;D
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on May 12, 2010, 04:18:11 PM
That will help me understand it. I find actually going through all that code too much to do so I don't even start. Making a video tutorial will allow me to manipulate the code to do what I want it to. BTW have you inserted things such as moving on to another screen or entering houses?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on May 12, 2010, 05:55:57 PM
Gasp! You can travel to adjacent rooms by walking off the map, but I completely forgot about portals! :o I'll cram it in somehow.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on June 16, 2010, 01:01:16 PM
i cant use items?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on June 16, 2010, 04:08:45 PM
Alas no, I only got around to equipment. Although that's completely finished. :)

I actually did add a rough healing item routine before I last halted work, but I've just revisited it now and I don't like the way it displays the heal amount via percentages. :P Far too textish, I'll go back and do it with sprites or something later.

Here's the update though if you're interested (only a slight update): http://www.mediafire.com/?sharekey=41bf6bec539742b77069484bded33bcd62405dbebf88b2f6

I really have to get back to it.

EDIT:

Oh wait, I actually did it with sprites and text. That's odd.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on June 16, 2010, 05:08:57 PM
Quote

I actually did add a rough healing item routine before I last halted work, but I've just revisited it now and I don't like the way it displays the heal amount via percentages. :P Far too textish, I'll go back and do it with sprites or something later.
why do you insist on torchoring yourself? its a great system but its laggy, to make a comparison: its laggier than v7 on my g5 and thats pushing 150 sprites every movement. the screen is so small and your struggleing just to show stats! why not just play around with sc and see what happens? it seems like a waste of time to keep working with gm when theres better tools available
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on June 17, 2010, 04:00:17 PM
Yeah, I've got a relentless urge to finish something great in GM before moving on tough. I don't want the fruit of my labor to be a pile of unfinished projects, but a phenomenal game. I will move on eventually though.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on June 17, 2010, 08:59:01 PM
well just remember without methods and arrays for dealing with enemies its gonna require alot more tedious WORK and production time which takes the fun out of makeing a game (which i assume is why you havent released anything in a while?). i dont see why not just make this "phenominal game" in sc, itll be even better and youll finish it sooner with less aggrivation, your gm skills wont go to waste, its virtually the same thing. thats my final point i wont harrass you about this anymore..... (come to the dark side young silverwind, you shall be my apprentice)

can gm even return fields? i use that for everything

you know how your struggleing to display stats with all these sprites and print commands, let me give you a little taste

to display stats:

drawstring stats$, 10,10, "chicago", 18

there you go, one line, feel free to use my code sample, but make sure you give me credit ;D
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on June 18, 2010, 05:59:34 AM
Quote
well just remember without methods and arrays for dealing with enemies its gonna require alot more tedious WORK and production time which takes the fun out of makeing a game (which i assume is why you havent released anything in a while?).
That's certainly a contributing factor, but it's mainly due to my family going through a rough time at the moment, resulting in less hours to devote to programming. I've got stacks of notes and ideas for Elanthondréoth though, and it really will be a great game once I get back to it. :)

Quote
i wont harrass you about this anymore..... (come to the dark side young silverwind, you shall be my apprentice)
lol! ;D I take your harassment in good humour. I'm really impressed with SC and definitely will check it out, although you'll have to teach me the syntax.

Quote
can gm even return fields? i use that for everything
Only on certain built in methods/commands such as dialogue prompts and whatnot.

Quote
you know how your struggleing to display stats with all these sprites and print commands, let me give you a little taste

to display stats:

drawstring stats$, 10,10, "chicago", 18
Nice! Does it flatten the text on the same layer as the background image or is it editable?
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on June 20, 2010, 09:39:58 PM
Quote
Only on certain built in methods/commands such as dialogue prompts and whatnot.
how do you survive without nthfield$

Quote
Nice! Does it flatten the text on the same layer as the background image or is it editable?
paint events update automatically every time the screen is updated so all you do is let hp=hp-damage and bam, there it is
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on October 28, 2010, 01:27:00 AM
Just thought I'd post a beta that uses the new graphics: http://www.mediafire.com/?0xphbw7zj0jdutq

I didn't add portals, treasure chests or NPCs to the new room (download the previous beta to see those in action: http://www.mediafire.com/?gtiitmymhz0), it's just to demonstrate the new room size and graphics.

Hopefully I'll get some time to wrap this up soon. It's practically finished.
Title: Re: Roguesoft RPG Engine?
Post by: Tireas Dragon on October 29, 2010, 08:22:04 PM
You have been working on this all this time?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on October 30, 2010, 04:50:53 AM
Alas no, I haven't had time to work on it in ages. I just thought I'd post the most recent version to demonstrate the new tiles.
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on October 30, 2010, 12:31:12 PM
Looking good!

I think you can fix the lag issue by ignoring key presses while the player sprite is moving or while it isn't your turn during battle. I keep hitting the forward key during battles and the key presses all add up, so after the battle my character runs away for a while.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on October 30, 2010, 05:09:05 PM
Yeah, that's an extremely annoying side effect of the keydown structure, but I've attempted several solutions without success. Unfortunately the only remaining fix I can think of requires a large reconstruction of the timer routine, which I don't dare attempt for fear it would mess up several NPC related routines.

EDIT:

I had a quick play with the map editor earlier on and now my head's buzzing with landscape ideas. :) I'd just love to release something, so I'm keeping simplicity in mind.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 01, 2011, 09:04:26 PM
I pulled a muscle in my chest due to a coughing fit I had over Christmas, but the result is being confined to bed and having more time to program.

I just added weakness and resistance to entity properties. :) I'm thinking of adding immunity as well, that way ethereal enemies can be immune to physical attacks and so on.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on January 02, 2011, 08:45:05 AM
how many lines total is the rpg engine at this point?
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 02, 2011, 09:59:54 AM
A single room requires approximately 1500 lines to work, not including the vars set at the start of the game. There's still so much I wanna add, but I'm down the last 100 lines in both the keydown and the timer routines. At least that will force me to stop working on the engine soon and just finish a game! ;D
Title: Re: Roguesoft RPG Engine?
Post by: x on January 02, 2011, 08:20:13 PM
Quote
A single room requires approximately 1500 lines to work, not including the vars set at the start of the game. There's still so much I wanna add, but I'm down the last 100 lines in both the keydown and the timer routines. At least that will force me to stop working on the engine soon and just finish a game! ;D

Doesn't GM have a limit of 500 lines?
Title: Re: Roguesoft RPG Engine?
Post by: Connors on January 02, 2011, 09:34:45 PM
Hey X, how long have you known about Game Maker?
I'm curious if you've made any games or anything...

EDIT: I feel dumb now because I forgot I actually read a while back that you used to be called Alias. My bad. ::)
Title: Re: Roguesoft RPG Engine?
Post by: Al Staffieri on January 03, 2011, 07:24:50 AM
Quote

Doesn't GM have a limit of 500 lines?


It was increased to 750 lines of code per script.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 03, 2011, 09:15:26 AM
Yup, and I'm using the global behaviour of keydown and timer events to great affect. ;)
Title: Re: Roguesoft RPG Engine?
Post by: GMG Kurt on March 06, 2011, 08:20:29 PM
How do you make all of the awesome backgrounds using only the Terrain Tiles.gif!
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on March 07, 2011, 02:24:41 AM
Quote
How do you make all of the awesome backgrounds using only the Terrain Tiles.gif!
Pardon?
Title: Re: Roguesoft RPG Engine?
Post by: GMG Kurt on March 08, 2011, 03:50:17 PM
Sorry if I get this wrong, but looking at the file it looks as if the only document you used to create the background was the terrain tiles.gif
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on March 08, 2011, 04:00:39 PM
Using a graphic editing application like Photoshop, you can copy and paste the tiles from the sprite sheet into new documents and design your own rooms.
Title: Re: Roguesoft RPG Engine?
Post by: GMG Kurt on March 08, 2011, 04:03:02 PM
Quote
Using a graphic editing application like Photoshop, you can copy and paste the tiles from the sprite sheet into new documents and design your own rooms.

Oh I get it, thanks.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on June 27, 2012, 03:59:29 PM
Just thought I'd post a link to the up-to-date working progress of the Roguesoft RPG Engine:
http://www.mediafire.com/?foi1x9b5mi217s2

I was re-familiarising myself with its structure last week and got around to implementing a much needed feature: dialogue routines now automatically pause the game until the player presses spacebar, preventing them from disappearing almost immediately if an NPC's action prompts another dialogue to generate.

Here's a link to the up-to-date (yet still very much incomplete) map editor as well:
http://www.mediafire.com/i/?acrlh8f2511ngcb
Title: Re: Roguesoft RPG Engine?
Post by: Zoo on June 28, 2012, 12:33:21 PM
I wish GM was not an obsolete program. I wish it worked on lion, and the games could be for PC. Because then I could actually keep making games, rather than being a lazy person who does nothing.
Title: Re: Roguesoft RPG Engine?
Post by: Gan on June 28, 2012, 01:41:47 PM
Pretty epic. Do I spot some new awesome underground tiles and characters?

RSRPGE is looking pretty rad too. How exactly does the PBT system work?
Title: Re: Roguesoft RPG Engine?
Post by: Connors on June 28, 2012, 10:40:18 PM
i posted with a link to the Percentile System thread in which the fourth(i think?) post has a whole video tutorial that pretty much reiterates the explanation but in a way that's easier to understand. You'll need to understand 5th grade math skills though.

PS: If making rooms involves pasting into Photoshop to go with the grid couldn't you outline where things go and draw unique pictures for every room?
Title: Re: Roguesoft RPG Engine?
Post by: Zoo on June 29, 2012, 04:28:02 PM
Silverwind, your games inspire me. I hadn't tried this before, because I didn't want to wish again that GM was back in its prime. You make GM look like professional software. This engine looks and sounds great. Music is wonderful, and sprites are the best I've ever seen in a GM game.
Title: Re: Roguesoft RPG Engine?
Post by: Connors on June 29, 2012, 04:59:27 PM
And I can't play the game ;A;
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on August 14, 2012, 02:29:20 AM
Pretty epic. Do I spot some new awesome underground tiles and characters?
Do you? I honestly can't remember ;D The underground textures were taking the longest when I was working on them.

RSRPGE is looking pretty rad too. How exactly does the PBT system work?
Was the above link helpful or will I explain in detail?

PS: If making rooms involves pasting into Photoshop to go with the grid couldn't you outline where things go and draw unique pictures for every room?
Yup. I once started a chalkboard universe game where the grid maps for every room were going to be hand drawn :)

Silverwind, your games inspire me. I hadn't tried this before, because I didn't want to wish again that GM was back in its prime. You make GM look like professional software. This engine looks and sounds great. Music is wonderful, and sprites are the best I've ever seen in a GM game.
Thank you! That's extremely encouraging. I still love GM and I've never found a app better suited for the level of game developing I do, I just don't have the time these days. One day though...
Title: Re: Roguesoft RPG Engine?
Post by: Gan on August 14, 2012, 02:28:52 PM
I think I'm starting to understand this percentile based system but it'll require more research.

Quote
Thank you! That's extremely encouraging. I still love GM and I've never found a app better suited for the level of game developing I do, I just don't have the time these days. One day though...
One day.  :D
Title: Re: Roguesoft RPG Engine?
Post by: Connors on August 15, 2012, 10:50:51 AM
Silverwind, your games inspire me. I hadn't tried this before, because I didn't want to wish again that GM was back in its prime. You make GM look like professional software. This engine looks and sounds great. Music is wonderful, and sprites are the best I've ever seen in a GM game.
I've been noticing more and more that sometimes with these programs it's not the tool, but how you use it.
Title: Re: Roguesoft RPG Engine?
Post by: Zoo on August 15, 2012, 10:56:28 AM
yup...
Title: Re: Roguesoft RPG Engine?
Post by: Charlo on August 19, 2012, 07:34:36 PM
While making Winterban, I found "hand-drawing" maps using a graphics editor to be extremely painstaking and not much fun.  That's why I like SilverCreator's unlimited sprites, so I can generate the map on the fly.
Title: Re: Roguesoft RPG Engine?
Post by: Gan on August 19, 2012, 08:18:00 PM
Yeah I feel the same way.
I like using Map editors.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on August 22, 2012, 04:57:09 AM
Wowzers, just reread the whole topic. We really had a great thing going some years back. Look how inspired and immersed we were in making our ideas a practical reality. It's so lovely to see, and I wish I had more time for it now. I'm very tempted to start making a game with my old tiles too, as I find working on the new set while making a game with them drains motivation.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 22, 2013, 04:22:13 PM
Dug out the old code yet again and added two new entity behaviours as well as locks to treasure chests: http://www.mediafire.com/?nqd8ia9xz98jcc8

I really hope I finish a game with this awesome engine sometime.
Title: Re: Roguesoft RPG Engine?
Post by: Connors on April 22, 2013, 07:46:05 PM
I really wish it wasn't using Game Maker because I can't look, and won't it be unable to run on newer macs and such?
Title: Re: Roguesoft RPG Engine?
Post by: Gan on April 23, 2013, 01:14:11 AM
It could easily be ported to Processing or Javascript.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 24, 2013, 05:28:18 AM
I got somewhat ported to Javascript last year, but Im so slow at learning things and was frustrated several times during the process. I recall being particularly stumped at trying to port GM's DELAY command.

One day I'll have another whack at it, as it would solve so many problems, interface and code-wise. That being said, I'd love to finish a game with the engine in GM too, to go down in history as GM's most advanced game! ;D
Title: Re: Roguesoft RPG Engine?
Post by: Gan on April 24, 2013, 12:21:01 PM
Easiest way to do a Delay command would probably be to use the settimeout function.

Lets say here's psuedo GM code:
Code: [Select]
print "Bomb goes off in:"
delay 0.5
print "3"

Sorta javascript pseudo:
Code: [Select]
print("Bomb goes off in:");
var stuffToDelay = function() {
    print("3");
};
setTimeout(stuffToDelay,500);

Or a more linear approach:

Code: [Select]
function setBombOff() {
    print("Bomb goes off in:");
    setTimeout(bombPart2,500);
}
function bombPart2() {
    print("3");
}
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on April 26, 2013, 03:29:07 AM
But won't it continue to execute code that comes after the timer call line while it's waiting for the timer to trigger?
Title: Re: Roguesoft RPG Engine?
Post by: Gan on April 26, 2013, 08:21:29 AM
Yeah, so any code you want to delay has to be separate.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 29, 2013, 07:54:59 PM
Due to being bed-bound with a mild fever, I dug out the old engine to pass time and implemented a day/night feature. Suffice to say it's absolutely awesome, supporting time-cycle specific graphics, event conditions and enemy spawns.

Just thought I'd share my excitement! ;D Anyone else up to much these days?
Title: Re: Roguesoft RPG Engine?
Post by: Gan on December 29, 2013, 10:29:10 PM
Hey Silver! I'm excited to see what you've made.

The GMG has been mostly quiet on the progress side. I'm sure most of the members are doing epic things in secret.

I've been working on an online space game. The engine is proving a challenge to program. So far people can destroy each other. Planet docking and ship customization is next on the list.
(http://cl.ly/image/453R2w2X0E0d/Screen%20Shot%202013-12-29%20at%2010.15.47%20PM.png)

I hope you get better.
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 30, 2013, 08:46:20 AM
Hey Silver! I'm excited to see what you've made.

Well then, here's a screencast old boy: http://screencast.com/t/s0f329eth

The GMG has been mostly quiet on the progress side. I'm sure most of the members are doing epic things in secret.
Yeah, it sure sleeps in comparison to the glory days. Can you believe it's been almost a decade since we joined?

I've been working on an online space game. The engine is proving a challenge to program. So far people can destroy each other. Planet docking and ship customization is next on the list.
Coolabool! :D What languages are you using these days? You must have pretty much all of them under your belt now, hehe ;D
Title: Re: Roguesoft RPG Engine?
Post by: Gan on December 30, 2013, 11:31:02 AM
Well then, here's a screencast old boy: http://screencast.com/t/s0f329eth
Seriously impressive! I especially like the inventory. Easy, good looking, non-cluttery and useful.
You might want to get your hard drive backed up, does sound pretty bad.
I'm really interested in your music. Your games seem so much better cause the musical atmosphere. If you had time, could you make a screencast showing how you make your music?

Yeah, it sure sleeps in comparison to the glory days. Can you believe it's been almost a decade since we joined?
I wish I could go back to the first day I joined. Those were good times.

Coolabool! :D What languages are you using these days? You must have pretty much all of them under your belt now, hehe ;D
I'm using Google Dart for this current project. It's like a mix of Java and Javascript made easier. Also natively runs in the browser.
I got sick of Javascript. Too little structure, hard to catch bugs and no auto-complete. Dart fixes all of that.
You can make anything from games to full web pages using Dart.

I was thinking of remaking the chat box in dart and putting it back up. I'm not sure this place has enough activity to use a chat box though.
Actually I was thinking of re-designing the entire website, including forum in Dart. That'd be a big and entertaining project. It'd definitely kick the look of this place into 2014.

I fear our main problem is that the technologies backing this place are obsolete and that's why we aren't as popular. (GameMaker and SilverCreator)

Edit I'd be so willing to help Al and Mike bring their game makers up to date. I need find a way to communicate with them and convince them I can help.
Title: Re: Roguesoft RPG Engine?
Post by: WarHampster on December 30, 2013, 11:57:55 AM
Ahhh Silver this really takes me back. Looks great! Make moreeeee
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on December 30, 2013, 04:43:13 PM
I'm really interested in your music. Your games seem so much better cause the musical atmosphere. If you had time, could you make a screencast showing how you make your music?
Sure, I'll try to put something together by the end of the week. Give me a poke if I forget.

I'm using Google Dart for this current project. It's like a mix of Java and Javascript made easier. Also natively runs in the browser.
I got sick of Javascript. Too little structure, hard to catch bugs and no auto-complete. Dart fixes all of that.
You can make anything from games to full web pages using Dart.
Dart sounds great. Is the syntax easy to pick up?

Edit I'd be so willing to help Al and Mike bring their game makers up to date. I need find a way to communicate with them and convince them I can help.
Yeah, I started work on RogueScript way back when, trying to port GM's scripting language into JavaScript, but I didn't get very far with it. I'd still like to resume work sometime.

Ahhh Silver this really takes me back. Looks great! Make moreeeee
Glad to spread the nostalgia. They don't make games like we used to. Or rather, they don't make games like we used to start making and never finish. ;D
Title: Re: Roguesoft RPG Engine?
Post by: Gan on December 30, 2013, 06:31:27 PM
I'm using Google Dart for this current project. It's like a mix of Java and Javascript made easier. Also natively runs in the browser.
I got sick of Javascript. Too little structure, hard to catch bugs and no auto-complete. Dart fixes all of that.
You can make anything from games to full web pages using Dart.
Dart sounds great. Is the syntax easy to pick up?
Practically identical, minus some of the confusing Javascript stuff like prototypes.

If you're thinking of continuing the GM to Javascript port, you might consider GM to Dart instead. Dart runs in the browser, same as Javascript and also can be packaged into a Desktop application/game.
Title: Re: Roguesoft RPG Engine?
Post by: Connors on December 30, 2013, 06:44:42 PM
Well the engine looks like it's coming along amazingly well! It's always good to hear from you, Silverwind. I hope you can get it working on newer computers, I was so bummed out when our eMac died and I couldn't use all these programs. I never even finished Quest of Magic.

I'm still occasionally working on the platform game I made with Processing, but Gan was saying it ought to be easy to port to Dart. I might if I have the time, but... I'm probably going to stick with what I'm comfortable with for now.

The other project I have going is a very, very silly Cave Story mod. Normally modding games is difficult, however there's a program called Cave Editor which I picked up right away after looking over Noxid's excellent tutorial/reference and it's incredibly easy to alter the game, there are even total conversion mods out there. I'll probably post that when either make some kind of ending, or if get tired of working on it and I just want to show people my mod.

My current dilemma is reworking my game a bit so it will save and load levels more easily.
Title: Re: Roguesoft RPG Engine?
Post by: Charlo on December 31, 2013, 11:04:20 AM
It hurts to reminisce.   :(  That engine looks great Silver, I still can't believe you achieved all that in GM.  A completed game with that engine would definitely be the pinnacle of GM games.

I still have a SC puzzle game I need to finish.  All it needs is the third and final cutscene, and it's been two years.   ::)
Title: Re: Roguesoft RPG Engine?
Post by: Silverwind on January 01, 2014, 02:07:18 PM
That engine looks great Silver, I still can't believe you achieved all that in GM.  A completed game with that engine would definitely be the pinnacle of GM games.
Thanks Charlo, that's exactly the thought that motivates me. I started making computer games with GM; I'd love to leave it having produced the best fruit it's capable of yielding.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 03, 2014, 06:14:33 PM
It hurts to reminisce.   :(  That engine looks great Silver, I still can't believe you achieved all that in GM.  A completed game with that engine would definitely be the pinnacle of GM games.

I still have a SC puzzle game I need to finish.  All it needs is the third and final cutscene, and it's been two years.   ::)
Agreed, the rougesoft rpg engine itself is a gm marvel, silver had a lot of influence on my games
Title: Re: Roguesoft RPG Engine?
Post by: Charlo on February 03, 2014, 08:21:12 PM
EqwanoX!  You're back! 
Title: Re: Roguesoft RPG Engine?
Post by: Circuit on February 03, 2014, 11:14:19 PM
Wow Eq, this is weird, I was just thinking about you earlier today.  How's life treating you, man?
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 06, 2014, 10:45:34 AM
Doing good, been busy with work, so its hard to keep up with the gmg. But I was able to do some work on mystic legend 2 a while back, I'm gonna post an update soon
Title: Re: Roguesoft RPG Engine?
Post by: Connors on February 07, 2014, 12:59:11 AM
Oh yeah, cool, so that's still a thing? (you making games I mean. Your game-making never stopped being a thing)...
Epic.
Title: Re: Roguesoft RPG Engine?
Post by: EqwanoX on February 08, 2014, 10:26:42 AM
I just love creating, weather its levels or enemies or weapons. And it took years for me to get that rpg game engine to where it is, and its user friendly enough that all I have to do is import graphics and stats to it to make a game. But still, game design is sooo time consuming. It takes me like 15 hours to do a 5 second attack animation, that's like 3 days. Enforcers rpg took 3 solid months, and i was only able to do that because I was unemployed at the time. The best projects are short simple ones, but its so much fun to go back and play my own games
Title: Re: Roguesoft RPG Engine?
Post by: Circuit on February 08, 2014, 01:03:41 PM
Enforcers RPG is my favorite SC game ever.  I think I've beaten it at least 3 times.  You could probably sell it as shareware if you wanted to.