Hardcastle and Cromwell and other Chronicles

Ideas and games that are not yet publicly in production. This forum also contains the pre-2012 archives of the Works in Progress forum.
Message
Author
Counter Arts
Miko-Class Veteran
Posts: 649
Joined: Fri Dec 16, 2005 5:21 pm
Completed: Fading Hearts, Infinite Game Works
Projects: Don't Save the World
Organization: Sakura River
Location: Canada
Contact:

#46 Post by Counter Arts »

I decided maybe even the panties should be sentient
At least they don't explode on transformation.

User avatar
DaFool
Lemma-Class Veteran
Posts: 4171
Joined: Tue Aug 01, 2006 12:39 pm
Contact:

#47 Post by DaFool »

I've been trying to plan some more...

>> means 'dominates'

'Basics'

Water >> Fire >> Earth >> Wind >> Water (cycle continues)...

'Metaphysics'

Light >> Darkness >> Space >> Time >> Light (cycle continues)

An element from the 'Basics' group acts neutral towards an element from 'Metaphysics' group and vice versa. Also, an element within the same group but two domination stages away from another element is neutral towards it.

So is this okay as a rock-paper-scissors arrangement?

-----------------------------

Also, it would be nice if a battle can be invoked via parameterized call. Example (using my very meager experience pythonwise):

Code: Select all

$ Battle(
character1=hardcastle, panties1=light, glasses1=YES, exp=expert,
character2=cromwell, panties2=wind, glasses2=YES, exp=expert,
character3=elspeth, panties3=fire, glasses3=NO, exp=novice,
character4=NONE, panties4=NONE, glasses3=NO, exp=novice,
enemy1=MMDA, element=darkness, threat=minion,
enemy2=communist, element=fire, threat=minion,
enemy3=jazzdriver, element=light, threat=boss,
enemy4=NONE, element=darkness, threat=minion,
battletype=epic, taunts=taunts1
)
When character or enemy is defined =NONE, that means the battle will skip through that cycle and will ignore its corresponding parameters.

In this example its a 3 vs 3 battle, with Hardcastle, Cromwell, and Elspeth battling a boss and his 2 minions. Since the battletype is epic (versus short), after every round, before going back to the Action Select Screen for the next round, the label taunts1 is called which is a small little series of conversational dialogue scenes tailored for that specific battle. There should be a global variable defining the round so that taunts1 knows which dialogues to ignore in the meantime.

Hopefully this method will make it easier to configure 2 vs 2, boss battles, basically any battle with a single type of call.

To explain other parameters,

glasses=YES improves the accuracy or hit rate probability of the shot

exp=novice or expert are the 2 basic experience levels of the characters.

I figured rather than going full-fledged RPG with experience gained after every battle, why not just predefine two sets of stats and just tailor each specific battle for its difficulty. I don't expect there to be any more than 10-20 total battles in this game anyway.

threat=novice or boss works in a similar fashion, defining only two sets of monster stats for simplicity sake.

Monsters use shotguns and reload as well, but since they're mostly male, I decided not to have them wear panties (we couldn't have them changing in the middle of battle, can we?). But as for the playable characters, absolutely!

Revised Command List
Attack with Shotgun -- physical attack
Heal with Panty Power -- elemental spell
Magical Panty Attack -- elemental attack
Reload Shotgun -- refill 6 shells, forfeit turn
Swap Panties -- change elemental capabilities, forfeit turn

So how about this

MAtk = Atk +/- elemental influence of panties
MDef = Def +/- elemental influence of panties
Hit Probability = Dex + [glasses advantage] + [expert advantage]

Jake
Support Hero
Posts: 3826
Joined: Sat Jun 17, 2006 7:28 pm
Contact:

#48 Post by Jake »

DaFool wrote: Also, it would be nice if a battle can be invoked via parameterized call. Example (using my very meager experience pythonwise):
I'd suggest providing protagonists and enemies as lists of characters rather than numbered parameters, really. What if you want to fight a battle against more than four bad guys?
Server error: user 'Jake' not found

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

#49 Post by PyTom »

One thing about Ren'Py is that, in general, you can't call Ren'Py code from within python code while staying in the python code. So I think that you'd need to change the syntax of how you invoke battles, somewhat.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Counter Arts
Miko-Class Veteran
Posts: 649
Joined: Fri Dec 16, 2005 5:21 pm
Completed: Fading Hearts, Infinite Game Works
Projects: Don't Save the World
Organization: Sakura River
Location: Canada
Contact:

#50 Post by Counter Arts »

Jake wrote:
DaFool wrote: Also, it would be nice if a battle can be invoked via parameterized call. Example (using my very meager experience pythonwise):
I'd suggest providing protagonists and enemies as lists of characters rather than numbered parameters, really. What if you want to fight a battle against more than four bad guys?
I hear ya both. Just let me get out a prototype.

No worries about lists of enemies and teammates and such. All you'll have to do is just make a list of the good guys and bad guys in the battle and then call something like a "ALBS_Start_Battle" label.

As for my suggestion, why not go use a chrono cross system? Where opposites work well on each other and same elements don't have much of an effect. Then you can have stuff like elemental barriers.
One thing about Ren'Py is that, in general, you can't call Ren'Py code from within python code while staying in the python code. So I think that you'd need to change the syntax of how you invoke battles, somewhat.
Um, so I'm not supposed to use renpy.call_in_new_context just to let a non-programmer display some effects and return to battling python code? (Not that I need too much, my newer version of my battle system is in mostly ren'py)

User avatar
DaFool
Lemma-Class Veteran
Posts: 4171
Joined: Tue Aug 01, 2006 12:39 pm
Contact:

#51 Post by DaFool »

I'll leave it up to Counter Arts to decide the best measure.

Okay, this time I really need to set these in stone:
- Maximum 4 vs 4. Engine should theoretically be able to take Infinity vs Infinity (since once you program for dynamics of 3 vs 3 its just expanding it). Maybe even multiple bosses, but that configuration won't be used.
- Shotguns are sentient, since I already have written tons of conversations to that effect.
- Panties are NOT sentient, per monele's recommendation.

If I could just know easily where to plug scenes in or where to call for them, that's all I really need. There's really no need to display HP/MP except at the Action Select Screen. And when a character dies, there's really nothing special except the K.O. sequence, and if all characters go K.O. then it's just a flat-out GAME OVER.

The only equippable equipment are glasses and panties, so it shouldn't be too complicated...I hope.

-------------------------------------

Assuming I make action sequences that last 5 seconds each, and it takes the Player 5 seconds to make a selection in the Action Select Screen, a single round of battle may last up to around 1 minute. Assuming 10 rounds (that means no character can do plain shooting without one Reload), we have 10 minutes of gameplay per battle. Now I have 12 battles planned, that's 2 hours already just battling!

It's about time for me to rearrange my script given these new possibilities, so I'll be chopping and moving text around so the user experience is more uniform. Just to provide an overview of the game I provided an outline as follows. I will appreciate if veteran gamemakers give commentary regarding the overall balance so I can complete the resources with confidence that they will all fit into the framework:
Introductory Chapter 1 (Present day)
5 minutes straight text
One 2 vs 2 introductory battle (epic - tutorial is within the battle)
One 2 vs 2 simple battle

Chapter 2 Hardcastle background story
5 minutes straight text

Chapter 3 Cromwell background story
5 minutes straight text

Chapter 4 Elspeth background story
5 minutes straight text

Chapter 5 Alexandra background story
5 minutes straight text

Chapter 6 (Back to Present Day) Hell Week (Extra-Long Chapter)
5 minutes straight text
Two 3 vs 3 short battles (for Monday, Tuesday)
Two 3 vs 3 epic battles (with lots of fun taunting and harrassment) (for Wed , Thurs)
One 3 vs 3 boss battle (for Friday)(epic - this is formal introduction of arch-enemy)

Chapter 7 Hardcastle conflict description (Back to Past)
5 minutes straight text

Chapter 8 Cromwell conflict description (Back to Past)
5 minutes straight text

Chapter 9 Elspeth conflict description (Back to Past)
5 minutes straight text

Chapter 10 Alexandra conflict description (Back to Past)
5 minutes straight text

Chapter 11 Assembling the Team (Back to Past)
5 minutes straight text

Chapter 12 Main Conflict description - (Back to Present) Hell Week 2 (Extra-Long chapter)
5 minutes straight text
Two 4 vs 4 short battles (for Monday, Tuesday)
Two 4 vs 4 epic battles (with lots of fun taunting and harrassment) (for Wed, Thurs)
One 4 vs 4 boss battle (for Friday) (epic dialogue exposing ultimate boss's motives)

Chapter 13 Resolution and major Revelations
5 minutes straight text
Oh, and in case you haven't noticed already, battling is how the girls earn a living, that's why it's Monday to Friday only ^_^. (But I won't bother with currency system, purchasing goods *ahem* panties, inventory, etc. Assume they're just given at some point in the game.)

Total Gametime: 65 minutes text, maximum 120 minutes battling.

That's hitting Broken Hearted territory, the longest Ren'Py game besides Gakuen Redux (which in my opinion is near impossible to hit in terms of length).

Now with Alessio's help I pick the ~6 or so best tracks (~15 mb), give 5mb for Ren'Py engine proper, 10 mb for images, then that's 30 mb for a 3 hour experience. It puts Piece of Wonder (>400mb for 45 minutes trial) to shame. Yeah no wonder I haven't released anything. I'm not satisfied with just creating simple stories and releasing them, I always have the aim of putting commercial releases to shame :? I'm really counting on myself to pull this one off, though. And many thanks to the ones I roped in with me (Alessio, Counter Arts).

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

#52 Post by PyTom »

You can use call_in_new_context if you want. The thing is, you can't save in call_in_new_context*, which is probably bad if you want people to go back to where they were in the middle of a battle.


* More precisely, people are brought back to the start of the current statement in the top-level Ren'Py context. And that's only if you use renpy.checkpoint... see the reference manual for that sort of thing.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Counter Arts
Miko-Class Veteran
Posts: 649
Joined: Fri Dec 16, 2005 5:21 pm
Completed: Fading Hearts, Infinite Game Works
Projects: Don't Save the World
Organization: Sakura River
Location: Canada
Contact:

#53 Post by Counter Arts »

PyTom wrote:You can use call_in_new_context if you want. The thing is, you can't save in call_in_new_context*, which is probably bad if you want people to go back to where they were in the middle of a battle.
Yeah, I don't think I would want people to save in the middle of battle. Then people could practically do luck manipulation. (I know someone who does tool-assisted timeattacks)

Yeah, I know exactly how to thwart them from luck manipulation. Use a deterministic pseudo-random generator that you probably have put in and make sure that I don't use it for something like a menu that the user can repeatedly cycle through. (i.e FF8 limit break trick and in FF3/6 getting the auto-win on a slot ablitily EVERYTIME!) Then to prevent people from memorizing an exact sequence that always works, create a new random number generatator every battle.

Well, I suppose using the same random number generator used in my particle effects could be random enough though.

In anycase, I don't think saving in the middle of battle should be permitted.

monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

#54 Post by monele »

Actually, the way Ren'Py and its rollback works, you'd actually have to pick *different* choices for it to churn out different numbers. Saving before an attack, and reloading if it fails... will yield the same result if you keep attacking through the same "path".
Py'Tom, correct me if I'm wrong but that's something I noticed back in MagBou :)

Recca Phoenix
Veteran
Posts: 230
Joined: Tue Jan 23, 2007 3:39 pm

#55 Post by Recca Phoenix »

This sounds like a kickass game >:)

Counter Arts
Miko-Class Veteran
Posts: 649
Joined: Fri Dec 16, 2005 5:21 pm
Completed: Fading Hearts, Infinite Game Works
Projects: Don't Save the World
Organization: Sakura River
Location: Canada
Contact:

#56 Post by Counter Arts »

monele wrote:Actually, the way Ren'Py and its rollback works, you'd actually have to pick *different* choices for it to churn out different numbers. Saving before an attack, and reloading if it fails... will yield the same result if you keep attacking through the same "path".
Py'Tom, correct me if I'm wrong but that's something I noticed back in MagBou :)
Hmm... while that is true, I still don't want people to try that. Probably a few people would undoubtly try that and notice it. If people notice that then I guess that brings them into a metagame mindframe which I don't think is desired. I don't want the average player noticing something like that espically when it's so easy to do.

After all, how did you feel when you noticed that thing about your battle system?

But enough talk! Programming time!

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

#57 Post by PyTom »

Actually, the random number generator will generate the same numbers if you roll back and try again... regardless of which path you take. It's just that those numbers may have totally different meanings depending on how they are used.

Saving and loading again will clear out the RNG buffer, as I figure that is the best behavior for this sort of thing.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

#58 Post by monele »

Saving and loading again will clear out the RNG buffer, as I figure that is the best behavior for this sort of thing.
Oh... So you'll actually get new numbers?

I'm not so much concerned by people cheating than by people getting stuck in a bad situation because of "random" number never changing :)

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

#59 Post by PyTom »

That's right. Only by saving/loading, not by rolling back.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

#60 Post by monele »

Great news for the more random games out there then ^.^

Post Reply

Who is online

Users browsing this forum: No registered users