Author Topic: Escheron: Presage of Darkness  (Read 39978 times)

0 Members and 1 Guest are viewing this topic.

Offline Gale

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 115
  • Rating: +1/-0
  • Ti-84+ Silver Edition
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #60 on: March 19, 2010, 04:05:37 pm »
you made that game? (the video thumbnail)
what's the title? that's pretty high quality for BASIC!!
« Last Edit: March 19, 2010, 04:05:56 pm by Gale »
remember me as a time of day...

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #61 on: March 19, 2010, 04:07:03 pm »
There was so much detail in Shadow over Ragnoth that I actually had to use multiple menu pages just to cover character status. I even left mHP and mana out of the menus because: 1.) Not enough room without bumping essential statistics off the screen; and 2.) This is displayed in the character selection menu just prior to entering the status menu. That worked out fine in the end, though.

There isn't a whole lot of detail in PoD, but there's just enough that it couldn't merit having multiple pages. There would be nothing else to put in the empty space; so I have to cram what detail there actually is on a single page. I added a view of currently-equipped items to actually fill some of the empty space that was originally there. The window borders remain an awkward element because of how I decided to draw them. Basically, the main font is in 4x4 px blocks. In order to maintain spacing between rows, (so the pixels don't connect) It was necessary to draw them in a manner that's more like 4x8 blocks. This was also necessary to render enough space for icons. (which are more like 8x8 blocks) To have the font space properly with the window border intact, I had to create a duplicate font and blend the top part of the border. A consequence of this is the spacing and alignment outside of window borders. Any text I place outside of them is going to have an extra gap just between it and any neighboring windows. (i.e., the gap below "ANAXIMANDER" in the current status screen) This means I have to waste that space, since I can't reasonably cram any text there.



(the red lines represent a 4x4 grid)

On an off-topic note: I was surprised to find out that some people actually use MSPaint to render their tiles. I'm not sure how robust newer versions are, but I don't recall it having any grid or snap-to-grid features. I use Paint Shop Pro 9, which does have this feature. It's easy to define a grid for specific tile sizes, and snap them when dragging and dropping.

Quote
you made that game? (the video thumbnail)
what's the title? that's pretty high quality for BASIC!!

I couldn't code my way out of a paper-bag. :(

It's still a design in progress. I just enjoy putting ideas on paper, though I don't necessarily have the technical skills to program and fully produce them.
« Last Edit: March 19, 2010, 04:09:59 pm by Zera »

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Escheron: Presage of Darkness
« Reply #62 on: March 19, 2010, 04:15:38 pm »
@Gale yeah I did, altough unfortunately, xLIB APP didn't exist back then. had I used it the game would have been much smaller and faster D:. Thanks, though ^^

@Zera I love these fonts. I really hope someone can find a good way to write a custom font displaying routine in BASIC  or an ASM one. If the fonts are displayed with xLIB, though, each letters will require to be placed at 8 pixels intervals horizontally, because xLIB/Celtic sprites width are multiples of 8

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #63 on: March 19, 2010, 04:27:10 pm »
Oops. I thought Gale was talking to me. Didn't even notice the video in DJ's post.

So much for Internet context. :P

Nice video, by the way. That's certainly a lot of detail for one screen.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Escheron: Presage of Darkness
« Reply #64 on: March 19, 2010, 05:40:36 pm »
Well one thing is that some topics here goes so fast now so it can be easy to miss posts (altough fortunately the red warning about new replies while posting helps missing as less as possible)

Thanks btw. This game used the ancestor of xLIB APP: xLIB v0.1a, a 8xp program that just did tilemaps and was slow, plus Omnicalc for the grayscale. I wish xLIB APP came out before I started this game because it would have ran 2x faster and be much smaller in size

Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #65 on: March 19, 2010, 08:23:10 pm »
Nice as always Zera! ;D

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #66 on: April 06, 2010, 02:35:50 pm »
I'm curious about some possibilities with the data structure. I was working on ways to handle enemy data, and I created a proposal using fractions for attack probabilities, and flags to handle various other properties:

--------------------------------------------------------------------------------
Name (bitmap)

{Spell / special ability}

HP 255  |- Physical attack toggle  [ ]  Undead type        [ ]
AT 255  |- Counterattack           [ ]  Dragon type        [ ]
DF 255  |- Cause poison            [ ]  Explode upon kill  [ ]
Mov 16  |- Hold target             [ ]  Weak to fire       [ ]
Act 16  |- Cause death             [ ]  Weak to lightning  [ ]
        |- Drain HP                [ ]  Resist fire        [ ]
Crit.   |- Destroy equipment       [ ]  Resist lightning   [ ]
01/08   |- 25% chance of 2x hit    [ ]  Resist poison      [ ]
        |- 50% chance of 2x hit    [ ]  Resist hold        [ ]
Evade                                   Resist death       [ ]
01/08                                   Flying             [ ]
                                        Can see invisible  [ ]
 GP: 255 / Spoils: -------- [01/01]     Celibrax defence   [ ]
--------------------------------------------------------------------------------


Each enemy has a single spell or special ability it can use. The A.I. would simply choose (in some random fashion) whether the enemy unleashes a standard attack, (if the attack toggle is active) or it unleashes its spell / ability.

To the left are the basic statistics of the enemy. Critical hit and evasion probabilities are simple fractions. There is no hit probability that has to be compared to evasion in order to determine the total accuracy of an attack - there's merely evasion by itself.

The first column of flags (starting with "Physical attack toggle") describes flags that are directly linked to physical attacks. Anything checked in this column will occur when the enemy unleashes a standard attack. The second column describes all other (attack-independent) properties.

At the bottom, we have the amount of GP awarded for defeating the enemy, and the item (if any) with its probability of being dropped.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Escheron: Presage of Darkness
« Reply #67 on: April 06, 2010, 02:53:07 pm »
I generally store them into list format. Let me grab Illusiat 13 enemy data (well, parts of it. There are over 70 monsters and I didn't want to post too many spoilers :P):

Quote
:If R=69:Then:"/[yhat]O→Str4
:"CERBERUZ→Str2
:{13050,1000,10,3000,145,0,1,1,0,1,2300,4681,1,9,0,0,8,0,13050:End
:If R=70:Then:"φK→Str4
:"TRIMAG→Str2
:{16000,1300,10,4000,280,1,2,.5,0,2,2750,6250,1,9,9,9,9,0,16000:End
:If R=71:Then:"Ω→Str4
:"MIME→Str2
:{L3(3),500+L3(13),5+int(L3(14)/20),3000+3L3(15),L3(16),2-.5L3(17),2-.5L3(18),2-.5L3(19),2-.5L3(20),0,1500+5L3(1),4500+10L3(1),1,int(L3(7)),int(L3(8)),int(L3(9)),int(L3(10)),0,L3(3:End



:If R=40:Then:"φK┼→Str4
:"PSY→Str2
:{20000,1,4000,200,100,999,0,0,0,0,2750,2750,3,0,6,6,0,1,20000
:End
:If R=39:Then:"φKo→Str4
:"HOLY→Str2
:{18000,1,10,400,50,1,1,1,1,1,5000,4000,0,8,0,0,9,1,18000:End
:If R=28:Then:"/X-→Str4
:"WARLOCK→Str2
:{20000,666,4,33333,1000,1,1,0,1,1,5000,0,1,1,1,2,1,1,20000:End
:If R=38:Then:"φK[[LastToken]]→Str4
:"BLITZ→Str2
:{16000,120,10,115,80,1,2,0,1,1,2700,2000,1,2,2,7,3,1,16000:End
:If R=37:Then:"φK∟→Str4
:"ICE→Str2
:{15000,115,12,130,30,3,0,1,0,1,2500,1750,1,0,5,2,0,1,15000:End
:If R=36:Then:"φKw→Str4
:"PYRO→Str2
:{10000,90,7,110,25,0,4,1,0,3,2000,1500,1,5,0,2,3,1,10000:End
:If R=31:Then:"T→Str4
:"IMP MAGI→Str2
:{3000,1,3,100,70,0,0,0,0,0,400,355,0,5,5,5,5,0,3000:End
:If R=30:Then:"Ò→Str4
:"EVIL BOMB→Str2
:{1200,105,5,105,55,2,1,2,0,0,300,325,1,9,0,0,0,0,1200:End
:If R=29:Then:"Ʃ=→Str4
:"HUNTER→Str2
:{1000,140,10,1,65,0,1,2,1,0,350,350,1,0,0,0,0,0,1000:End
:If R=50:Then:"^>→Str4
:"WYVERN→Str2
:{2000,150,6,150,75,0,1,1,1,1,450,403,1,6,4,0,0,0,2000:End
:If R=51:Then:"^X^→Str4
:"GARGOYLE→Str2
:{2500,200,5,1,100,2,2,2,2,2,500,352,1,0,0,0,0,0,2500:End
:If R=52:Then:"r→Str4
:"ALERT→Str2
:{1500,115,20,100,90,1,2,4,1,0,480,305,1,0,0,8,0,0,1500:End
:If R=53:Then:"ΔK*Δ→Str4
:"WALL MAGE→Str2
:{10000,250,20,250,50,0,0,0,0,0,2500,2500,1,9,6,8,7,0,10000:End


:If R=24:Then:"><→Str4
:"METALUX→Str2
:{800,80,8,80,40,1,1,3,1,1,300,350,1,2,2,2,2,0,800:End
:If R=23:Then:"θ→Str4
:"FAKE ORB→Str2
:{528,53,6,25,27,1,1,1,1,1,120,152,1,0,0,0,0,0,528:End
:If R=22:Then:"[M]→Str4
:"ICE MAGE→Str2
:{600,1,10,55,30,2,0,1,1,0,135,200,0,0,2,0,0,0,600:End
:If R=21:Then:"000→Str4
:"ICE WALL→Str2
:{200,55,99,55,30,30,0,5,0,5,200,259,1,0,2,0,0,0,200:End
:If R=20:Then:"Q→Str4
:"ICE MAN→Str2
:{900,75,13,1,25,2,0,1,1,1,200,400,1,0,0,0,0,0,900:End


:If R=5:Then:"}→Str4
:"MIRAGE→Str2
:{70,9,3,7,10,0,1,1,1,1,20,11,1,1,0,0,0,0,70:End
:If R=4:Then:"Q→Str4
:"BRUTE→Str2
:{30,5,1,1,4,1,2,1,1,1,13,5,1,0,0,0,0,0,30:End
:If R=3:Then:"T→Str4
:"IMP→Str2
:{20,4,1,1,6,1,1,1,1,1,11,3,1,0,0,0,0,0,20:End
:If R=2:Then:"X→Str4
:"ZOMBIE→Str2
:{8000,590,8,1,110,2,0,1,2,0,1392,1320,1,0,0,0,0,0,8000:End
:If R=1:Then:"*→Str4
:"SPIRIT→Str2
:{4325,220,9,888,104,2,0,1,0,1,1065,1230,1,5,0,0,0,0,4325
:End
:Ans→L4
:If .1=L3(29:1→L4(18

{Current HP,Attack,Defense,Magic,Speed,Fire protection,Ice protection,Bolt protection,Holy protection,Dark protection,Experience,Gold,Can use regular attacks?,Can use fire and at which LV?,Can use ice and at which LV?,Can use blitz and at which LV?,Can use aura and at which LV?,Is escaping possible?,Max HP

Each var didn't really have minimum and maximums, except that atk, def and mag had to be positive and not equal to zero. If speed was in the 2500s, the enemy did not even have any delay between attacks. The attack flag had no level, except if it was 3 instead of 1, it caused the boss to change elemental weakness that turn (only used during two or three super high defense boss fights). For magic at 0 the enemy wouldn't be able to use that magic, and from 1 to 9 he casted the spell at that level. If escape flag was 0, you could escape with 50% chance. At 1, escaping was impossible (boss fights). Max HP did not have much use, except for enemies with protection against one-hit-kills (hard-coded in the battle code, but no enemy had this yet). one-hit-kill is when you deal more damage against a monster than his max HP. It caused OVERKILL to show up over him. If an enemy had anti-overkill protection, if his HP was at maximum, the attack will leave him with 1 HP. Experience could range from 0 to 99999 and gold 0 to 999999.

EDIT: For Illusiat 12 random encounter stats looked like this:

Quote
If R≤9:Then:Repeat L5(R+1)=1:randInt(0,9)→R:End:End
If R=0:Then:"^X^"→Str1:{10+O2,2,3O,1,1,1,.5O2,.3O2+20,1,1,0,0,1,0,0,0,0,0,1→L4:End
If R=1:Then:"Q"→Str1:{15+2O2,3,2O,.5,.5,.5,.7O2,.2O2+20,1,0,0,0,0,0,1,0,0,0,2→L4:End
If R=2:Then:"K>"→Str1:{3O2+5,3,2O,.5,1,2,.3O2,.8O2+15,1,0,1,1,0,0,1,0,0,1,3→L4:End
If R=3:Then:"β"→Str1:{10+int(.5O2),1,9O,.5,4,.5,.2O2,O2,0,1,1,1,0,0,0,1,1,1,5→L4:End
If R=4:Then:"Ç"→Str1:{5O2,1,O,4,4,4,.9O2,2O2,0,1,1,1,0,0,0,0,0,0,7→L4:End
If R=5:Then:"w3"→Str1:{10+2O2,3,O,3,.5,1,.6O2,.2O2+10,0,1,0,0,1,0,0,1,0,0,6→L4:End
If R=6:Then:"δ"→Str1:{O2+20,2,2O,2,1,2,.4O2,.3O2+25,1,1,1,0,1,0,1,0,0,0,0→L4:End
If R=7:Then:"0"→Str1:{12+(2O)2,1,9O,.2,5,2,O2+1,O2+15,1,0,1,0,0,0,0,0,0,0,4→L4:End
If R=8:Then:"V"→Str1:{17+4O2,2,2O,2,2,2,O2,O2+17,1,0,1,1,0,1,1,0,1,0,0→L4:End
If R=9:Then:"."→Str1:{O2,1,O,3,3,3,.5O2,.3O2+20,1,0,0,1,0,1,0,1,0,0,1→L4:End

Where O was the current area enemy LV.
« Last Edit: April 06, 2010, 02:56:31 pm by DJ Omnimaga »

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #68 on: April 06, 2010, 03:26:12 pm »
I have a ton of more flags in mine, but it's a whole different kind of engine. (tactical RPG) There also has to be flags that define the type of movement enemies have. (such as whether or not they can move across objects that obstruct the paths of normal units) Battle sequences are just short action scenes where one or two attacks are exchanged, and the units are brought back to the map screen.

I thought it was kind of curious how your enemies have such a limit amount of abilities, unless there's something I overlooked. Do any bosses have any kind of special attacks? In PoD, enemies can be given a single spell (from a list of standard spells the player can learn) or a special enemy ability, which - of course - is something that only enemies have access to. (i.e., a dragon's breath attack)

Offline jsj795

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1105
  • Rating: +84/-3
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #69 on: April 06, 2010, 03:32:04 pm »
Wow, Zera. I was planning to do the exact same battle as you for TLM -_-;; I got inspired from some of the games that I played long time ago, but don't remember their names.


Spoiler For funny life mathematics:
1. ROMANCE MATHEMATICS
Smart man + smart woman = romance
Smart man + dumb woman = affair
Dumb man + smart woman = marriage
Dumb man + dumb woman = pregnancy
2. OFFICE ARITHMETIC
Smart boss + smart employee = profit
Smart boss + dumb employee = production
Dumb boss + smart employee = promotion
Dumb boss + dumb employee = overtime
3. SHOPPING MATH
A man will pay $2 for a $1 item he needs.
A woman will pay $1 for a $2 item that she doesn't need.
4. GENERAL EQUATIONS & STATISTICS
A woman worries about the future until she gets a husband.
A man never worries about the future until he gets a wife.
A successful man is one who makes more money than his wife can spend.
A successful woman is one who can find such a man.
5. HAPPINESS
To be happy with a man, you must understand him a lot and love him a little.
To be happy with a woman, you must love her a lot and not try to understand her at all.
6. LONGEVITY
Married men live longer than single men do, but married men are a lot more willing to die.
7. PROPENSITY TO CHANGE
A woman marries a man expecting he will change, but he doesn't.
A man marries a woman expecting that she won't change, and she does.
8. DISCUSSION TECHNIQUE
A woman has the last word in any argument.
Anything a man says after that is the beginning of a new argument.

Girls = Time * Money (Girls are a combination of time and money)
Time = Money (Time is money)
Girls = Money squared (So, girls are money squared)
Money = sqrt(Evil) (Money is also the root of all evil)
Girls = sqrt(Evil) squared (So, girls are the root of all evil squared)
Girls = Evil (Thus, girls are evil)
*Girls=Evil credit goes to Compynerd255*

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Escheron: Presage of Darkness
« Reply #70 on: April 06, 2010, 03:41:33 pm »
I have a ton of more flags in mine, but it's a whole different kind of engine. (tactical RPG) There also has to be flags that define the type of movement enemies have. (such as whether or not they can move across objects that obstruct the paths of normal units) Battle sequences are just short action scenes where one or two attacks are exchanged, and the units are brought back to the map screen.

I thought it was kind of curious how your enemies have such a limit amount of abilities, unless there's something I overlooked. Do any bosses have any kind of special attacks? In PoD, enemies can be given a single spell (from a list of standard spells the player can learn) or a special enemy ability, which - of course - is something that only enemies have access to. (i.e., a dragon's breath attack)
That was mostly because the game had a massive overworld/amount of dungeons to explore, very complex storyline compared to any other RPG I made (about 800 maps and 30000-40000 characters of NPC convos), so I tried to keep the battle system as small as possible. Certain bosses in particular got special abilities, though, and some requires different strategy to be killed. The worst one gotta be the enemy that requires that ring equipment that protects against OVERKILL's and spam Psy magic on him (which absorbs enemy HP) and have 3 regen rings equipped (restoring HP every turn) because the anti overkill ring is hard to get near the end of the game
« Last Edit: April 06, 2010, 03:42:25 pm by DJ Omnimaga »

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #71 on: April 06, 2010, 04:08:14 pm »
Ah. PoD has a much smaller world. The maximum map size is only 16x16 tiles. (both battle maps, and exploration maps) The overworld is just a ubiquitous map that lists the various regions and locations you can select. Although that limits the potential for ships and other transportation, there might be battle maps that place you on a ship during events where you're traveling across a sea to reach a distant region.

Quote
Wow, Zera. I was planning to do the exact same battle as you for TLM -_-;; I got inspired from some of the games that I played long time ago, but don't remember their names.

Feel free to borrow any ideas from PoD. I have some of the statistical information listed a page or so back.

Offline Iambian

  • Coder Of Tomorrow
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 739
  • Rating: +216/-3
  • Cherry Flavoured Nommer of Fishies
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #72 on: April 06, 2010, 06:32:37 pm »
I have a ton of more flags in mine, but it's a whole different kind of engine. (tactical RPG) There also has to be flags that define the type of movement enemies have. (such as whether or not they can move across objects that obstruct the paths of normal units) Battle sequences are just short action scenes where one or two attacks are exchanged, and the units are brought back to the map screen.

[...]
That kinda reminds me of this old SNES game that I've played a while back. "Bahamut Lagoon" I'm thinking of. I think other games did it that way, too. Except you could choose to either directly engage the enemy or throw attacks on the map itself. It would be interesting if E:PoD supported this feature if, say, there was some dragon on the field and you didn't want to go face-to-face with it at that very moment and bombard it with whatever you've got from afar. Of course, enemies could do the exact same stunt and I guess it wouldn't work over very well if there was a zillion enemies on the field and ...

Nevermind. That kind of thing would work better with parties where you could do things like healing while still being able to attack or something.

Just throwing something out.
A Cherry-Flavored Iambian draws near... what do you do? ...

Offline Zera

  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 737
  • Rating: +82/-7
  • Monochrome Artisan
    • View Profile
Re: Escheron: Presage of Darkness
« Reply #73 on: April 06, 2010, 06:40:14 pm »
I'm not quite sure what you mean. Target a square on the map, and if anything incidentally moves into that square, it's hit by the attack? FFTactics handles targeting this way. Archers and Dragoons had to "charge" an attack. If the targeted unit moved away from that square while the attack was still charging, then they wouldn't be hit by the time it got executed.

PoD only handles direct targeting of units that are within your range. Some abilities will target a square on the map, however. For instance: Palisade's Fire creates a trap on a designated map square. When an enemy unit touches the trap, they suffer fire damage. Many other spells are ranged, but you must be able to target something in order to cast them.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Escheron: Presage of Darkness
« Reply #74 on: April 06, 2010, 10:45:02 pm »
If the game is really FFT-style, my suggestion would be that you make sure that battles are much more fast-paced than FFT, because i looked at someone playing it before and just seeing how each battle lasted over 10 minutes made me not want to play FFT series. More fast-paced tactic battles would be nice. I guess if the menus aren't too hard/long to navigate it should fix it, though.