devolution

Author Topic: General Discussion  (Read 3789066 times)

0 Members and 9 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5355 on: July 31, 2015, 06:39:02 AM »
Just an idea:

It is (sadly) too late for these types of ideas with almost 100 000 lines of code and content written for the game (there are successful commercial games in Python with 50 000 - 80 000 lines for example). Ideas in regards to mechanics, require understanding of a current setup of characters and should built/expand that setup (we do not maintain a summary of mechanics, but plan to do so as time permits, right now those are scattered all over the forums without reference to whats old and whats new).

benefits:


benefits:

- open ended. If a class is defined as a collection of skills, that have to be at various levels before you can enter ( and maybe a few feats), creating new classes is easy and can be done in a pinch.

This is already the case.

- girls and the MC can use the same system.

This also is already the case, it is just not sensible at the moment, mostly because MC = Male and due to a lack of graphical and written content, cannot be used in a lot of jobs that are overwhelmingly aimed at female workers. There is little to none logical issues to allow multiple genders all over the game but there is noone to add the content and checks to account for male options in Interactions and the jobs.

- checking the prequisites allows you to call the same class different things. For a male, it would be escort, just as for the woman, but you could also implement that the class buttler, if selected for a girl, is called maid.

That can be done always, under any system imaginable.

- many funs.

We'll see how the current system holds up in that area and how it does after we expand it.

*****************

drawbacks:

- most likely lots of work

Not really.

- definition problems.

Like what?

- classes would have to be added via packs. not neccesarily a bad idea, but could be worked.

Not necessarily.


All and all, having stuff like: "Must serve as Guard for x days to be in the military" is a bad bet (not mentioning it is almost always other way around :D in rl and most stories). At the core it is a simulation game and mechanics need to be less restrictive as in a Job requires skills to be done properly, if a characters falls short, job is preformed poorly with all of the consequences.

Earning Traits, Updating them and their variations however is a VERY, VERY desirable feature. It is something that we should definitely consider at some point but building a tree, with a system as broad as ours before it takes coherent shape is not a good idea. We need a couple more releases before we can come up with a decent design for skill/stat/trait trees that can be properly executed by AI and players alike.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5356 on: July 31, 2015, 06:44:00 AM »
My vacation starts from tomorrow. That means I'll have even more free time than usual for the next month  :)
I'm going to make a main story, we have enough ideas and texts now. It WILL be based on the fact that MC can defend himself, either via battle class or with the help of his battle party.

I'll prolly have less time :(

So the focus should be on giving you as much dev tools as possible. I'll look into the new type thing for the show method and MC labels tonight/tomorrow morning instead of the jobs.

You can do the story as you see fit, we'll see how it plays/where it leads. We can call beta release Warriors Path or something like that to point out that we do not have other, well developed options (yet).

As for MC screen, even if we'll use labels, to make it work I will need to know:
- how to give MC main classes. I suppose it should be different from just adding traits.
- how to give him items AND equip them right after that when needed without access to gui
- how to add a character to MC's battle party without access to gui

It is in a small way, even if I explained you how on forum, I would still have to code in the system that calls the labels in a proper order. So I'll do everything in the code with extensive comments.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5357 on: July 31, 2015, 08:11:56 AM »
Hm. Characters have many portraits for various emotions. How to control which one is shown when they say something?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5358 on: July 31, 2015, 08:27:57 AM »
Hm. Characters have many portraits for various emotions. How to control which one is shown when they say something?

I'll have to take a look, it should happen automatically or have a force_mood="mood" option (when not desirable) but that predated modern tags system so I expect that to be broken for normal pics. However I don't think that was extended to portraits because that requires a more complicated code accessing Ren'Pys classes or maybe a variable we control instead (I'll prototype the best approach later).
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5359 on: July 31, 2015, 09:20:18 AM »
Well, the problem is they don't have a "mood" before the game begins, ie in cutscenes. Also during cutscenes I expect to show various portraits depending on situation when they say something. Thus, we need to control portraits freely during cutscenes when needed.
« Last Edit: July 31, 2015, 10:18:40 AM by DarkTl »

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5360 on: July 31, 2015, 10:30:58 AM »
I wonder how renpy will work on recently released windows 10...

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5361 on: July 31, 2015, 10:49:03 AM »
Hm, if you say so. I don't remember the code, so I might missed int as you assumed, but as far as I remember, I didn't. We'll see when I recode give gold to free girls option based on free input without using your examples for a start.

You said once that the images function tries all tags first, then first tag + one of each tags taken from the end of taglist. Is it still true? Because it's not the best algorithm for more than 3 tags.
If you have gm.set_img("2c vaginal", "indoors", "partnerhidden", "gay") and you don't have indoors, you at least should try to show 2c vaginal+partnerhidden+gay.

Ok... you'll have to clarify on how you want to handle this sh!t. I've misread this post and added an issue where we try all tags first and then keep trying while keep popping last tag until one remains. But now that I've read your post again, this is not what you've asked for at all. In this case you can put these tags in order of: "gay", "2c vaginal", "partnerhidden", "indoors" and get a very good match with the "reduce" type that I will push soon but it may still not be a very good bet in some cases.

I feel like we should a complex lookup order where:

1) We pick a main category to be a default of such exists at all (they usually do):

    # Main Tags:
    'nn': 'sfw',
    'nd': 'nude', # Nude Main Tag (Used to be subtag)
    'sx': 'sex',
    'bs': 'battle_sprite',
    'po': 'portrait',
    'qs': 'vnsprite', # Used to be quest

2) We should be able to provide a set of fitting location as a separate list (undesired locations are simply added to exclude):

    # Locations:
    'l1': 'no bg',
    'l2': 'simple bg',
    'l3': 'outdoors',
    'l4': 'indoors',
    'l5': 'beach',
    'l6': 'onsen',
    'l7': 'pool',
    'l8': 'stage',
    'l9': 'urban',
    'la': 'wildness',
    'lb': 'suburb',
    'lc': 'nature',
    'ld': 'dungeon',
    'le': 'living',
    'lf': 'public',

3) Auto-Mood/emotions to be handled similarly to how it is done now.

4) Desirable clothing tags to be picked from a separate field, just like in locations:

    # Clothes:
    'c9': 'lingerie',
    'c8': 'no clothes',
    'c3': 'indoor',
    'c2': 'formal',
    'c1': 'everyday',
    'c7': 'transformed',
    'c6': 'cosplay',
    'c5': 'ripped',
    'c4': 'revealing',
    'ca': 'armor',
    'ck': 'cow',
    'cj': 'cat',
    'ci': 'bunny',
    'ch': 'yukata',
    'cm': 'ninja',
    'cl': 'dog',
    'cc': 'maid',
    'cb': 'swimsuit',
    'cg': 'sportswear',
    'cf': 'schoolgirl',
    'ce': 'nurse',
    'cd': 'miko',

5) Desirable time/season to be picked in the same way:
    'z1': 'evening',
    'z4': 'winter',
    'z2': 'night',
    'z3': 'autumn'

6) And as tags in a normal sense, we just add the actions or sexual actions/positions to serve as a core for a choice together with the main category tag.

That would require a (very) complex lookup method but I think that is manageable. Maybe not right now, but once we discussed it and as time permits, something like this could work as an ultimate lookup type?
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5362 on: July 31, 2015, 10:50:07 AM »
I wonder how renpy will work on recently released windows 10...

Someone tested it to work perfectly without any modifications but I cannot confirm that myself...
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5363 on: July 31, 2015, 11:25:06 AM »
Yeah, I struggled a lot with the sex scene to make sure we have the best picture available, and it still has a chance to show not the best possible picture, though a slim one. And checks are really huge too.
We could use that system (main tag, location, clothes, other). However,

1) If there is no desirable location, we immediately go to simple bg/no bg. Because it's much better than showing something random.
Only when we don't have simple bg/no bg too, we try other stuff (like indoors if we don't have living).

2) Partnerhidden should have high priority. It's better to show not perfect bg or clothes than to show random guy when you do have a picture with a hidden guy.

3) After sex tag should be default tag for any sex actions. I mean, no hanjob at all -> after sex. No titsjob at all -> after sex. Etc.
« Last Edit: July 31, 2015, 11:28:11 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5364 on: July 31, 2015, 12:13:32 PM »
Ok, I've added a new long term issue referencing the posts. That will not be easy to code.

I've also pushed the "reduce" lookup type and generally improved tags lookup code. Also issue with huge images appearing when starting a gm is now fixed.

General ==> Chat looks absurd at the moment because it changes the image without a good reason, sometimes twice. You're at the beach, girl is giving a normal answer and for some reason changes clothing fitting to location to something else. Keep an eye on that when you troubleshoot the Interactions. I gtg for a couple of hours but I'll try to get something else done later tonight.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5365 on: July 31, 2015, 01:34:49 PM »
Yeah, I know. I'm still playing with interactions, they are not ready  :)
Ideally, if we want to show any emotions during the answer, we should change her portrait, not picture. But we don't have such an option yet (that really surprised me, it's one of the most common options in VNs).
« Last Edit: July 31, 2015, 01:36:52 PM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5366 on: July 31, 2015, 01:43:21 PM »
Yeah, I know. I'm still playing with interactions, they are not ready  :)
Ideally, if we want to show any emotions during the answer, we should change her portrait, not picture. But we don't have such an option yet (that really surprised me, it's one of the most common options in VNs).

Yeah, one of the reasons we don't is that "common" VNs have a fixed/known amount of images they use with a limited amount of characters. Ren'Pys equivalent is ConditionSwitch() displayable set up as a portrait image. I think it will be easy to do even in our case.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5367 on: July 31, 2015, 05:57:04 PM »
Ok.. so I took a stab at improving .show() method and the portraits tonight. It went slow for numerous reasons but I believe that there is a significant progress!

1) Auto-Mood finally works properly!!!

- It does no longer mess up jobs!
Problem here was a completely flawed approach, I tried just adding mood to the tags lookup but if that did not work with all tags and started removing them one by one, it would end up with just one or two tags and the correct mood tag, but that no longer reflected the job at all :( even when there was an exact match available (for example with neutral instead of happy).

- Now that is fixed and auto-tags are added like this:
- If mood tag is provided with normal tags request, auto-mood is disabled.
- add_mood=False also disables the auto-mood.
- When enabled, game will interpolate the mood from joy (and later a lot of other factors I expect) and try to do the following:
*Look for any tag and a mood tag before falling back to just any tag under "any" type
*Look for a perfect match of all tags + moodtag otherwise
*Look for the very last possible combination of tags adding moodtag there as well
*Final fallbacks such as "profile" and "last_default" will also be tried in combination with moodtag before falling back to just them

- Moods are now being updated in real time, in the past that could only happen after Next Day.

2) Auto-Mood has been added to Dialogue Window Portrait window, also to be updated in real time.
- In order to override the Portrait:

Code: [Select]
$ char.override_portrait("profile", "winter", exclude=["indoors"])
This should cause a tiny profile pic to appear instead of a portrait one.

Always remember to restore normal operations with:

Code: [Select]
$ char.restore_portrait()
Or it will be stuck :(

3) I've added a new check to the show method to weed out all calls without size parameters. When/if you get errors, I'll just need the first part to know what went wrong so don't post full traceback.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5368 on: July 31, 2015, 06:12:35 PM »
Hm, if you say so. I don't remember the code, so I might missed int as you assumed, but as far as I remember, I didn't. We'll see when I recode give gold to free girls option based on free input without using your examples for a start.

You said once that the images function tries all tags first, then first tag + one of each tags taken from the end of taglist. Is it still true? Because it's not the best algorithm for more than 3 tags.
If you have gm.set_img("2c vaginal", "indoors", "partnerhidden", "gay") and you don't have indoors, you at least should try to show 2c vaginal+partnerhidden+gay.

Ah, btw, I've started an issue on this but I want to add another idea to remember when I get around to that, mainly auto tags similar to mood for locations and clothing.

More often than not, clothing and location can be extrapolated from Action, Location, Last_Label and other factors if not specified from the get-go. I am sure that will not be easy to code but it may be worth it... especially when game code is more mature.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5369 on: August 01, 2015, 06:04:12 AM »
So basically when I need a sad portrait during scene, I write $ char.override_portrait("portrait", "sad")?

What about stuff like $ h = chars["Hinata"].say, when we tie char to letter and then write h "Now I can talk too!"?
« Last Edit: August 01, 2015, 06:10:41 AM by DarkTl »