Author Topic: "Escheron: Twilight over Ragnoth" — progress updates and discussion  (Read 124773 times)

0 Members and 1 Guest are viewing this topic.

Offline Iambian

  • Coder Of Tomorrow
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 739
  • Rating: +216/-3
  • Cherry Flavoured Nommer of Fishies
    • View Profile
Additional work on the menu system was done. The routines that went into the equip/status screens involve stat calculations that border on battle system territory. Hopefully, all the really hard work with regards to battle system stat calculations have been done by extension. There's a few holes in the menu logic at this time, especially when equipping things, but what we have down works well enough for now and can be fixed later.


Proper camera panning and scripted camera motion (same thing!) is now in. An example of a cutscene I couldn't show earlier because this routine wasn't in place is demonstrated below:


Not shown is the fact that a few maps were updated and added, and more sprites were added too. I was recently told that the opening cutscenes are long, and are designed to really set the mood for immersive (or about as immersive as it gets on this platform) gameplay. That may take a while to hash out, but when it comes, it'll be a mad dash to throw together enough for a first chapter playable demo... or something akin to that.

TODO: Shops and loads of buying stuff, and a method of tracking flags. And maybe a script system for scripted events. Oh dear. That'll be two script systems so far if I go that route...
A Cherry-Flavored Iambian draws near... what do you do? ...

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Awesome updates, as usual ^.^

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline Iambian

  • Coder Of Tomorrow
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 739
  • Rating: +216/-3
  • Cherry Flavoured Nommer of Fishies
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #47 on: June 04, 2015, 07:33:27 pm »
Work was done trying to get the NPC to move on their own power, which wasn't a trivial fix due to how much of it wasn't yet implemented (and how much of what I did was hacked in). Here's a couple screenshots of some of the tests that were done.

Test #2: Catching the speeding (bugged) Dwarf.
Yes, this is running at actual speed. I just reduced delays since I hadn't figured out what was causing NPCs to move that way at the time



Test #3: Test Dwarf runs around in circles.
The code used to move the NPC in that manner is larger than I want to admit. Will need to address that.



Also, I forgot about last update's TODO list. None of the tasks that were mentioned last time were added as I wanted to delegate some cutscene programming off to Geekboy1011 as soon as possible... which still isn't doable since I don't have flags ready to be used.
A Cherry-Flavored Iambian draws near... what do you do? ...

Offline c4ooo

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 252
  • Rating: +10/-1
  • The impossible chemical compound.
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #48 on: June 04, 2015, 08:26:45 pm »

I lolled at this gif XD. But yea, RPGs are hard projects, hopefully I will be able to someday play a working version of this :)
-German Kuznetsov
The impossible chemical compound.

Offline Iambian

  • Coder Of Tomorrow
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 739
  • Rating: +216/-3
  • Cherry Flavoured Nommer of Fishies
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #49 on: June 06, 2015, 06:11:07 pm »
So I was working on flag implementations (both permanent and temporary) and setting up what is needed to run cutscene scripts.

Also, Urist McTesty drank far too many 5 Hour Energy drinks...

Geekboy suggested I shared this. It's his fault McTesty achieved Warp 10.
A Cherry-Flavored Iambian draws near... what do you do? ...

Offline Escheron

  • Project Author
  • LV3 Member (Next: 100)
  • ***
  • Posts: 52
  • Rating: +10/-0
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #50 on: June 07, 2015, 12:10:47 am »
I threw together an overview of the world map, for player reference. This outlines some of the game's major locations, some of which can't be reached until the party obtains a ship or airship.


(click thumbnail for full view)

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #51 on: June 07, 2015, 04:31:42 am »
So I was working on flag implementations (both permanent and temporary) and setting up what is needed to run cutscene scripts.

Also, Urist McTesty drank far too many 5 Hour Energy drinks...

Geekboy suggested I shared this. It's his fault McTesty achieved Warp 10.
Haahaa, the infinite circle walk!

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline Geekboy1011

  • The Oneironaut
  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #52 on: June 14, 2015, 03:28:11 am »
Lets have some cut-scene magic. Now this one is a little more complicated then just making a person run in circles, and besides maya really wanted those 5-Hour energies back.

And because why not here (some ;) ) of the code that orchestrates this! Yes, I know it needs commends I plan on adding them >.>
Code: [Select]
script_start()
 
  res show_player_sprite,(iy+baseflags)
 
  ld hl,xy(33,3)
  ld (camera_pos),hl
  ld a,%00000001
  ld (camera_subxy),a
  res camera_follows_player,(iy+baseflags)
 
  ld a,ragnoth_mapid
  rcall(LoadNewMapInA)
 
 push_sstate()
  ld a,:Maya_intro
  ld de,Maya_intro
  rcall(AddSpriteEntry)
  find_sprite(Maya_intro_NPC)
  script_delay(30)
  sp_move_sprite(dsk_up)
  script_delay(30)
  sp_move_sprite(dsk_up)
  script_delay(30)
  sp_change_facing(sp_down)
  script_delay(30)
  sp_change_facing(sp_up)
  script_delay(30)
  sp_move_sprite(dsk_up)
  script_delay(30)
  sp_move_sprite(dsk_up)
 
 
  script_delay(100)
  sp_change_facing(sp_down)
  script_delay(100)
  sp_change_facing(sp_up)
  script_delay(125)

 
  ld hl,xy(9,6)
  ld (camera_pos),hl
 
  SET_FLAG(RAGNOTH_ON_FIRE) ; Needs to be before map load
  ld a,ragnoth_mapid
  rcall(LoadNewMapInA)
 
  ld a,:Guard_1_dat
  ld de,Guard_1_dat
  rcall(AddSpriteEntry)
 
 pop_sstate()
  script_suspend(86)
 push_sstate()
  ld a,:Guard_Fire_1
  ld de,Guard_Fire_1
  rcall(AddSpriteEntry)
 pop_sstate()
 
 script_suspend(50)
 
 push_sstate()
  ld hl,xy(26,14)
  ld (camera_pos),hl
  ld a,%00000010
  ld (camera_subxy),a
  script_delay(1)
   
  ld a,:Guard_2_dat
  ld de,Guard_2_dat
  rcall(AddSpriteEntry)
 
 pop_sstate()
  script_suspend(86)
 push_sstate()
  ld a,:Guard_Fire_2
  ld de,Guard_Fire_2
  rcall(AddSpriteEntry)
 pop_sstate()
 
 script_suspend(50)
 
 ;Pan around village on fire and fixate on shadow lord
 ld a,17 ;rather long delay for Panning.
 ld (panvariabledelay),a

 push_sstate()
  pan_camera_to_NPC(ShadowLord_NPC)
  sp_change_facing(sp_down)
 pop_sstate()
  script_suspend(50)
  ld hl,text_hive(h00_shadowlord_1)
  call dispDialogAuto
 push_sstate()
  pan_camera_to_NPC(Guard_That_Runs)
 pop_sstate()
  script_suspend(25)
 
 ld hl,text_hive(h00_Guard_That_Runs_1)
 call dispDialogAuto

 call panbackToplayer
 RES_FLAG(RAGNOTH_ON_FIRE)
 ld a,ragnoth_mapid
 rcall(LoadNewMapInA)
 set is_cutscene_done,(iy+stateflags)
 set show_player_sprite,(iy+baseflags)
 set camera_follows_player,(iy+baseflags)
 xor a
 ld (camera_subxy),a

 SET_FLAG(NEW_GAME_INTRO_FINISHED) ;Quit we are done
 script_end()

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #53 on: June 14, 2015, 07:05:13 am »
That's looking amazing, though!
I love how you made it very easy to write your own cutscenes with such a general engine :)

Also it is so epic how those animated tiles all just work and stuff O.O


The more you tell me about it on IRC and the more i look through it i love it, how you like just say that the camera should move to that npc and stuff
« Last Edit: June 14, 2015, 11:35:50 am by Sorunome »

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline c4ooo

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 252
  • Rating: +10/-1
  • The impossible chemical compound.
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #54 on: June 14, 2015, 12:21:10 pm »
I have been forces by the evil serf lords @Geekboy1011 and @Sorunome to post a replay, so here I am :P  ;D

The only thing I really have to say is about that code, I know it's asm code, couse I see it's asm code, yet with all the macros and stuff, it realy does not feal like assembly code  :-\
it's still great thou, no matter how you make this game, I still will want to play it :)
-German Kuznetsov
The impossible chemical compound.

Offline Geekboy1011

  • The Oneironaut
  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #55 on: June 14, 2015, 02:48:39 pm »
I have been forces by the evil serf lords @Geekboy1011 and @Sorunome to post a replay, so here I am :P ;D

The only thing I really have to say is about that code, I know it's asm code, couse I see it's asm code, yet with all the macros and stuff, it realy does not feal like assembly code  :/
it's still great thou, no matter how you make this game, I still will want to play it :)

Good Keep posting!
And yeah the code is z80 but its filled with macros to make my life easier >.> SO much quicker to code stuff this way XD It does translate directly into assembly, Just takes the headache of having to remember things away.

@Sorunome. Yeah It allows me to have multiple things running at once. I can load a handful of NPC's and have them all move around with minimal effort. It's awesome!
Here is the remainder of this portion of the flashback cutscene. I am pretty happy with it. There are transitions missing. But they are not coded in yet soooooo yeah :P


Added some more comments and included some data that you can see how I can move characters around Guard_1_Move is a good example.
Code: [Select]
;New game cutscene script is here.
NEW_GAME_CUTSCENE:
 script_start()
 
  res show_player_sprite,(iy+baseflags)      ;Hide player from View
 
  ld hl,xy(33,3)
  ld (camera_pos),hl
  ld a,%00000001
  ld (camera_subxy),a
  res camera_follows_player,(iy+baseflags)   ;Set Camera to Look cenetered on
                                                ;Graveyard
 
  ld a,ragnoth_mapid
  rcall(LoadNewMapInA)                       ;Load Ragnoth
 
 push_sstate()
  ld a,:Maya_intro
  ld de,Maya_intro
  rcall(AddSpriteEntry)
  find_sprite(Maya_intro_NPC)                ;Load a Maya Sprite
  script_delay(30)
  sp_move_sprite(dsk_up)
  script_delay(30)
  sp_move_sprite(dsk_up)                     ;Move her half way
  script_delay(30)
  sp_change_facing(sp_down)                  ;Make her turn around and "sigh"
  script_delay(30)
  sp_change_facing(sp_up)
  script_delay(30)
  sp_move_sprite(dsk_up)
  script_delay(30)
  sp_move_sprite(dsk_up)                     ;Have her stand by the grave Stone
 
 
  script_delay(100)
  sp_change_facing(sp_down)
  script_delay(100)
  sp_change_facing(sp_up)
  script_delay(125)                          ;Do a jig for cinematics. (Turn around again)


  ld hl,xy(9,6)
  ld (camera_pos),hl                         ;Set Camera to First Guard
 
  SET_FLAG(RAGNOTH_ON_FIRE)                  ;Light Ragnoth on fire.
  ld a,ragnoth_mapid
  rcall(LoadNewMapInA)                       ;Load map on fire.

  ld a,:Guard_1_dat
  ld de,Guard_1_dat
  rcall(AddSpriteEntry)                      ;Add first guard.
 
 pop_sstate()
  script_suspend(86)                         ;Delay long enough for Guard Move
 push_sstate()                                 
  ld a,:Guard_Fire_1
  ld de,Guard_Fire_1
  rcall(AddSpriteEntry)                      ;Have guard light a fire
 pop_sstate()
 
 script_suspend(65)                          ;Delay for effect.
 
 push_sstate()                               ;Repeat above for second guard.
  ld hl,xy(26,14)                            ;Literal copy paste with coordinates
  ld (camera_pos),hl                         ;changed.
  ld a,%00000010
  ld (camera_subxy),a
  script_delay(1)
   
  ld a,:Guard_2_dat
  ld de,Guard_2_dat
  rcall(AddSpriteEntry)
 
 pop_sstate()
  script_suspend(86)
 push_sstate()
  ld a,:Guard_Fire_2
  ld de,Guard_Fire_2
  rcall(AddSpriteEntry)
 pop_sstate()
 
 script_suspend(65)
 .asm
 ld hl,xy(32,7)                             
 ld (camera_pos),hl                         
 ld a,%00000011
 ld (camera_subxy),a
 script_suspend(50)                          ;Set Camera shadow Lord and refresh
 
 push_sstate()
  find_sprite(ShadowLord_NPC)
  sp_change_facing(sp_down)                  ;Turn to player
 pop_sstate()
 
  script_suspend(50)
  ld hl,text_hive(h00_shadowlord_1)          ;Have him order people
  call dispDialogAuto
 
 push_sstate()
  pan_camera_to_NPC(Guard_That_Runs)         ;Move to guard to Right
 pop_sstate()
 
 script_suspend(25)
 
 ld hl,text_hive(h00_Guard_That_Runs_1)
 call dispDialogAuto

 
 push_sstate()
  pan_camera_to_NPC(ShadowLord_NPC)          ;Turn to guard
  sp_change_facing(sp_left)
 pop_sstate()
 
 script_suspend(5)
 ld hl,text_hive(h00_shadowlord_2)
 call dispDialogAuto
 
 push_sstate()
  pan_camera_to_NPC(Guard_That_Runs)
 pop_sstate()

 script_suspend(5)
 ld hl,text_hive(h00_Guard_That_Runs_2)
 call dispDialogAuto
 
 script_suspend(5)
 push_sstate()
  find_sprite(Guard_That_Runs)
  sp_move_sprite(dsk_left)                  ;change this later to make guard run down
  sp_change_facing(sp_right)
  script_delay(20)
  sp_move_sprite(dsk_left)                  ;change this later to make guard run down
  sp_change_facing(sp_right)
  script_delay(20)
  sp_change_facing(sp_right)
  setup_script_loop(6)
-:
  sp_move_sprite(dsk_left)                  ;change this later to make guard run down
  script_delay(6)
  script_djnz({-})
  pan_camera_to_NPC(ShadowLord_NPC)
  script_delay(15)
  sp_change_facing(sp_down)
 pop_sstate()

 script_suspend(30)
 
 ld hl,text_hive(h00_shadowlord_3)
 call dispDialogAuto
 
 script_suspend(50)
 
 ld hl,text_hive(h00_girl_1)
 call dispDialogAuto
 
 push_sstate()
  pan_camera_continue(17,14)
  script_delay(30)                           ;Pan camera to Maya's Mother
 pop_sstate()
 
 ld a,:Maya_Child
 ld de,Maya_Child
 rcall(AddSpriteEntry)
 
 script_suspend(96)                          ;Delay for child maya to move
 
 pan_camera_continue(17,15)                  ;Move so we can see text box
 
 ld hl,text_hive(h00_girl_2)
 call dispDialogAuto
 push_sstate()
  find_sprite(mayas_mother_npc)
  script_delay(30)
  sp_change_facing(sp_left)
  script_delay(20)
  sp_change_facing(sp_down)
  script_delay(10)
  sp_change_facing(sp_left)
  script_delay(25)
 pop_sstate()
 ld hl,text_hive(h00_girl_3)
 call dispDialogAuto


 
 call panbackToplayer
 RES_FLAG(RAGNOTH_ON_FIRE)
 ld a,ragnoth_mapid
 rcall(LoadNewMapInA)
 set is_cutscene_done,(iy+stateflags)
 set show_player_sprite,(iy+baseflags)
 set camera_follows_player,(iy+baseflags)
 xor a
 ld (camera_subxy),a

 SET_FLAG(NEW_GAME_INTRO_FINISHED) ;Quit we are done
 script_end()
 
Guard_1_Move:
  setup_script_loop(4)
-:
  sp_move_sprite(dsk_left)
  script_suspend(14)
  script_djnz({-})
  sp_change_facing(sp_up)
  ret

Maya_Child_Move:
;need to move down 3 tiles
 setup_script_loop(6)
-:
 sp_move_sprite(dsk_down)
 script_suspend(14)
 script_djnz({-})
 ret

Maya_intro:
 sp_pos(33,4,sp_up,maya_sprbase,Maya_intro_NPC) sp_scr(doNothing,doNothing)
Guard_1_dat:
 sp_pos(10,6,sp_down,guard_sprbase,guard_1) sp_scr(Guard_1_Move,doNothing)
Guard_Fire_1:
 sp_pos(8,5,sp_down,flame_sprbase) sp_scr(FireAnimator,doNothing)
guard_2_dat:
 sp_pos(27,14,sp_up,guard_sprbase,guard_2) sp_scr(Guard_1_Move,doNothing)
Guard_Fire_2:
 sp_pos(25,13,sp_down,flame_sprbase) sp_scr(FireAnimator,doNothing)
 
Maya_Child:
 sp_pos(17,11,sp_down,mayachild_sprbase,maya_child_NPC) sp_scr(Maya_Child_Move,doNothing)

 
 

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #56 on: June 14, 2015, 04:36:11 pm »
Wow, that is looking pretty nice! I'd suggest trying to make the character movements a bit more smooth though. They seem a bit off somehow? I think it's because they are jumping 8 spaces at a time.

Offline Escheron

  • Project Author
  • LV3 Member (Next: 100)
  • ***
  • Posts: 52
  • Rating: +10/-0
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #57 on: June 25, 2015, 11:05:27 pm »
Although it's quite a ways off, I thought it would be worth mentioning that we do plan to produce a direct sequel to Escheron using the game game engine. I mean, we'll have a flexible game engine at our disposal, so why not use it to its full potential? I'm sure Iambian will likewise want to use the engine in future projects of his own.



Offline Iambian

  • Coder Of Tomorrow
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 739
  • Rating: +216/-3
  • Cherry Flavoured Nommer of Fishies
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #58 on: July 28, 2015, 07:57:22 pm »
Shops sorta work now, for both buying magic and items. What isn't done is the ability to sell items, or to display descriptions for consumables instead of nonexistent stats sourced from overrunning the equipment table.

Demonstrated in the screenshot attached is buying (free) items from the primary weapon shop in Ragnoth, then walking across town to the primary magic shop, then buying things (also for free) there too.



I thought about entering the Pub to get to the shops in the Resistance base, but it's too long of a walk. Also, you can catch a glimpse of McTesty as he runs off at warp 10.
A Cherry-Flavored Iambian draws near... what do you do? ...

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: "Escheron: Twilight over Ragnoth" — progress updates and discussion
« Reply #59 on: July 28, 2015, 09:11:12 pm »
Saw this in IRC yesterday. Looking great! :D