Author Topic: General Discussion  (Read 3821521 times)

0 Members and 63 Guests are viewing this topic.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8895 on: November 10, 2016, 12:43:17 PM »
What logic are you talking about? SimPy?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8896 on: November 10, 2016, 02:42:42 PM »
No...

I've explained it in bits over many posts but it prolly lacked context... some history:

Originally, jobs were functions. I watched this: https://www.youtube.com/watch?v=o9pEzgHorH0 just before writing them :D

Rudi turned them into classes (without asking). They didn't do anything more, they just looked differently...

Later Thewlis did that weird thing to the WhoreJob that added a whore series of confusing classes which created confusing data-structure for different iterations of the job... it was close to impossible to work with and keep updated so I refactored it out of the game (until better days).


When I first started to work on the SE, I tried to write a special kind of loop for it but it took too much time so I dropped that project and wrote it as a slightly more complicated building/job combo (we did have a completely working SE version until Gismo destroyed it).


At some point SimPy was suggested as an option and it did exactly the same as I tried to code in for SE (practically to the letter).

After studying the module, I've explained the possible benefits and we've decided that it was worth to implement it.

The problem is, that simpy completely takes over the logic and execution of all workers, client handling, client matching, jobs logic, waiting and redirecting of workflow and etc. Now our Job classes looks really stupid because they are sort of used as markers that are bound to characters actions, do weird shit like setting up internal attributes in arbitrary methods in order to pass them to other methods just to be reset milliseconds later and etc. Most of that is so just because it was faster to use with simpy without completely refactoring jobs out of the game.

Problem is that we're loosing a good bit of flexibility that simpy offers for free (just because it's simpy) and most importantly, all of that is really difficult to keep straight in the head...

So yeah... logic and code structure is a mess, my plan is to refactor the whole thing after beta release and to hope that this added confusion due to mixed code structure doesn't take too much off the development time before then.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8897 on: November 11, 2016, 02:25:19 AM »
If you think it's worth it, we can leave SE for post beta and focus on jobs and businesses instead, refactoring them right now.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8898 on: November 11, 2016, 02:30:44 AM »
If you think it's worth it, we can leave SE for post beta and focus on jobs and businesses instead, refactoring them right now.

It's not the best option because SE is the first "job" that will be coded fully in SimPy. So experience with that is import for refactoring the rest.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8899 on: November 11, 2016, 02:51:27 AM »
Btw special fields for traits and items that work inside SE, like the ones for BE, will be welcomed. For better MC setups too.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8900 on: November 11, 2016, 04:23:07 AM »
Btw special fields for traits and items that work inside SE, like the ones for BE, will be welcomed. For better MC setups too.

Wouldn't that be an overkill? We're working with huge amount of data already. In either case, I am focusing on these things at the moment:

- Exploration based off effectiveness and points. Points will be the AP converted and effectiveness will be how well the team is at exploring.
- Traveling: travel_points: Getting there and back.
- Camping/Overnight to heal/restore.
- And fighting obviously combat.

I think I can make something like that work without too much fuss, maybe even preserving a good deal of the old logic.

There is still shitloads to do... for once, the succinct, most important events in a special format of the guild itself which we never had need to be arranged and interface for them created. More data to make exploration more unique and meaningful. Special events in/out that you asked for.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8901 on: November 11, 2016, 09:41:40 AM »
We only have one exploration skill. It doesn't give much place for imagination - or MC setups.

I mean stuff like skill/field which helps to avoid traps. These things basically affect only those special events I asked for. Ie we have a trap event (because traps are events). Base chance to get into trap is 50. But there is a skill/field which can reduce it for all traps.

I suppose I can just check for some trait instead, like Trap Master. But then I need means to do so, ie check the whole team inside SE for this trait when the trap event begins. It's probably the best bet in order to avoid complexity with new fields.
« Last Edit: November 11, 2016, 09:50:22 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8902 on: November 11, 2016, 11:18:03 AM »
I mean stuff like skill/field which helps to avoid traps. These things basically affect only those special events I asked for. Ie we have a trap event (because traps are events). Base chance to get into trap is 50. But there is a skill/field which can reduce it for all traps.

Traps in the old design are not events, it's more like a terrain modifier. We can add more check... and more if/else forks :D

We only have one exploration skill. It doesn't give much place for imagination - or MC setups.

Leaves plenty of room, we didn't even start with casanova or manager mp setups yet.

I suppose I can just check for some trait instead, like Trap Master. But then I need means to do so, ie check the whole team inside SE for this trait when the trap event begins. It's probably the best bet in order to avoid complexity with new fields.

You'll have to figure out at least in general how we're using simpy. Then, after I am done with the general logic, we can slowly add event/traits checks and make the whole thing meaningful and well integrated into the rest of the game.


It'll have to wait till I have more dev time anyway, all I can do right now is to write 5 - 6 lines per day and getting back into "Jobs/Businesses" mode from BE/GUI mode :D
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8903 on: November 11, 2016, 11:23:16 AM »
Old design? You mean that time when you wanted to build maps from tiles? Is it still legit for simpy?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8904 on: November 11, 2016, 11:25:45 AM »
Leaves plenty of room, we didn't even start with casanova or manager mp setups yet.
Not for explorer class. If you only can have high exploration skill to be good in exploration, you can't have different brunches in MC setup. They all will have high exploration -> meaningless to make brunches in the first place.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8905 on: November 11, 2016, 01:58:41 PM »
Old design? You mean that time when you wanted to build maps from tiles? Is it still legit for simpy?

Did you read the post with explanations I wrote? We did have a fully functioning SE, as in Simulated Exploration. Same as I am working on now only with less advanced main loop. CW wrote a lot of content for it which I am using to load into the current version.

Map from tiles was never meant to serve as simulated anything, it was player controlled.

Not for explorer class. If you only can have high exploration skill to be good in exploration, you can't have different brunches in MC setup. They all will have high exploration -> meaningless to make brunches in the first place.

MC will not parttake in SE before beta anyway. So only exploration oriented manager position is useful for MC at this stage.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8906 on: November 11, 2016, 02:19:01 PM »
I don't recall terrain modifiers newer than that. Where is this code? I only see tiles in the library/exploration folder.
« Last Edit: November 11, 2016, 02:28:05 PM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8907 on: November 12, 2016, 05:50:26 AM »
I don't recall terrain modifiers newer than that. Where is this code? I only see tiles in the library/exploration folder.

It's called hazard I think...
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8908 on: November 12, 2016, 05:51:22 AM »
Hm. I only found one mention about hazards, from 2014. This can't be right, we had to discuss it somewhere before you added it, but there is nothing even in google.
Not much in the code either. I see old exploration code, but not actual content.

Anyway, I don't remember much about the old SE, since I wasn't aware about the game code as much as now  ::)

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8909 on: November 12, 2016, 07:01:00 AM »
Lets talk. We didn't discuss cause when I wrote original SE I was in "full out" mode. So I had like 8 hours dev time per day and focused on code so it was done really fast and without too much chatter. What do you have in mind for the new system?
Like what we're doing?