Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-13 Thread Per Inge Mathisen
I don't think reverting, re-reverting, re-commiting, re-implementing,
etc this 'feature' is doing us any good. Let's just keep it as it is
until we have know where the real problem is and have the time to fix
it properly.

  - Per

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-13 Thread Guangcong Luo
On Mon, Apr 12, 2010 at 9:13 PM, buginator buginato...@gmail.com wrote:
 Reading some tickets suggest that it makes things worse, like from
 this one. http://developer.wz2100.net/ticket/1360,

Erm, that ticket refers to a commit that was already reverted.

 besides the reports on the forums.

I don't think any report on the forum point to my commit specifically
as the problematic one. I believe it was committed between b9 and b10,
which is the same beta for which the template changes were committed,
and as mentioned earlier, logs from users complaining about sync seem
to point to the template changes being the problem.

We could backport it to beta 4, and get people to test that. :P That
might be better.

 With some local testing, I have to agree that the sync was worse than
 before, when I last tested.

But not why.

As I mentioned, I'm fine with reverting my commit, but as mentioned
before, my commit _does_ fix quite a few bugs, and so I'm not going to
do it myself unless I'm reasonably sure it's my specific commit that's
causing sync problems.

http://developer.wz2100.net/changeset/9942

 Most of the time you can't tell there are other sync issues if you
 don't do LAN games to notice the issues, and only play net games.

There've been sync problems since forever. The only question is if my
commit made it worse. :P

-Zarel

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-12 Thread buginator
On 4/4/10, Guangcong Luo za...@wz2100.net wrote:

  I think the bMultiMessages change I committed may have made the sync
  worse, so I guess it should be reverted once again. This is really
  frustrating, because it really does fix seven different bugs relating
  to bMultiPlayer having an unexpected value.

  (Background: Much of the code assumes bMultiPlayer is TRUE if in a
  multiplayer/skirmish game, and FALSE in campaign. However,
  bMultiPlayer can be FALSE in a multiplayer game because
  turnOffMultiMsg messes with it. I thought my code was the most
  reliable way to fix the problem, but apparently it was unsuccessful.)

This hasn't been reverted yet any reason why not?
If you don't have time, then specify which revisions need to be
reverted, and I can do it.

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-12 Thread Guangcong Luo
On Mon, Apr 12, 2010 at 8:21 PM, buginator buginato...@gmail.com wrote:
 This hasn't been reverted yet any reason why not?
 If you don't have time, then specify which revisions need to be
 reverted, and I can do it.

Because it's unclear whether or not it's actually caused any sync
problems - recent sync logs seem to point to the template code as the
problem. And it _does_ fix several bugs.

-Zarel

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-12 Thread buginator
On 4/12/10, Guangcong Luo  wrote:
 On Mon, Apr 12, 2010 at 8:21 PM, buginator  wrote:
   This hasn't been reverted yet any reason why not?
   If you don't have time, then specify which revisions need to be
   reverted, and I can do it.


 Because it's unclear whether or not it's actually caused any sync
  problems - recent sync logs seem to point to the template code as the
  problem. And it _does_ fix several bugs.


Reading some tickets suggest that it makes things worse, like from
this one. http://developer.wz2100.net/ticket/1360, besides the reports
on the forums.

With some local testing, I have to agree that the sync was worse than
before, when I last tested.

Most of the time you can't tell there are other sync issues if you
don't do LAN games to notice the issues, and only play net games.

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-09 Thread buginator
On 4/7/10, Safety0ff  wrote:
  For fire effects (not only oil well fires,) the _killEffect_ function
  retrieves the tile from the position (Vector3f,) and clears the fire bit
  of that tile. Effect times seem to use integers.
  If you don't believe me then look at the _killEffect_ function, it is
  very short.

  That clearing of the fire bit causes bug #1100 because there might be
  multiple fire effects whose position corresponds to a given tile. The
  first effect to die will clear the bit.

Right, if fire is on a tile, and the timer is set, and if another
projectile hits the same tile with fire, then it is set to that time
period.

Yes, it is a easy way to put out oil fires, or any other fire for
that matter. :)

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-07 Thread Safety0ff
C yp wrote:
 Think the main part is power, movement and experience. Think
 floating-point might be (mis)used a few other random places, but
 probably nowhere that isn't easy to fix. Think it's used all over the
 place in src/effects.c, but that file _shouldn't_ affect the game
 state (except that maybe it does, think Safety might have said
 something about oil well burning times depending on src/effects.c, not
 sure if I understood, since it's hard to believe there could be
 something hacky like that in a codebase like this).

 -Cyp
   
For fire effects (not only oil well fires,) the _killEffect_ function
retrieves the tile from the position (Vector3f,) and clears the fire bit
of that tile. Effect times seem to use integers.
If you don't believe me then look at the _killEffect_ function, it is
very short.

That clearing of the fire bit causes bug #1100 because there might be
multiple fire effects whose position corresponds to a given tile. The
first effect to die will clear the bit.

-Safety0ff



___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-05 Thread C yp
On Mon, Apr 5, 2010 at 2:52 AM, Guangcong Luo za...@wz2100.net wrote:
 Looks like the ML is back up.
 On Sat, Apr 3, 2010 at 2:27 PM, buginator buginato...@gmail.com wrote:
 ...
...
 The network code, AFAICT, we do not have any network related crashes anymore.
 Yes, we got sync issues, but the 2.3 series will always have them.
 Cyp's work with newnet should fix the sync issues, but, last I looked,
 that version will __NOT__ work with 32bit systems at this time.  This
 is both on MSVC  cross-compiled builds.

 What about newnet requires 64-bit support? That seem so weird...

I think (97.13% sure) that it was working on a 32-bit Linux system
with sse2, and was working on at least one mac.

If I remember right, then the only issue is it not working on w32,
even if cross-compiled with gcc. I couldn't cross-compile it myself,
and haven't seen the assembler output of fptest1() in main.c, so I
can't determine if it's a wrong-code generation, or if it's windows
messing with the floating point registers somehow. (I once had an
issue with a version of Linux failing to restore the floating point
state correctly, so something like that wouldn't surprise me too
much.)

The assembler output must contain sse instructions, not x87 fpu
instructions. And no fused-madd instructions.

As far as I understand, -msse -mfpmath=sse -mno-fused-madd should fix
32-bit floats - fptest1(), and -msse2 -mfpmath=sse -mno-fused-madd
should fix 64-bit floats - fptest2(). Since there aren't many doubles
used, it probably doesn't matter if fptest2() fails.

So, as far as I know, the status is:
Linux x86_32: works
Linux x86_64: works
Linux ARM/MIPS/Alpha/PPC/sparc/ia64/...: unknown
Mac Intel: works
Mac PPC: unknown
Windows x86_32: fails
Windows x86_64: unknown

3 possible solutions:
1. Get windows to do floating point correctly.
2. Convert everything to C++, and typedef float Float; on Linux/Mac,
and class Float { ... }; on windows.
3. Use integers only. (Fixed point, that is.)

 I think the bMultiMessages change I committed may have made the sync
 worse, so I guess it should be reverted once again. This is really
 frustrating, because it really does fix seven different bugs relating
 to bMultiPlayer having an unexpected value.

 (Background: Much of the code assumes bMultiPlayer is TRUE if in a
 multiplayer/skirmish game, and FALSE in campaign. However,
 bMultiPlayer can be FALSE in a multiplayer game because
 turnOffMultiMsg messes with it. I thought my code was the most
 reliable way to fix the problem, but apparently it was unsuccessful.)

For 2.3, I'm indifferent. Reverting that in trunk would probably cause
a few hundred merge conflicts with newnet.


No objections to Qt and newnet being merged as soon as possible.
I don't have any spare time at the moment. If squeezing a merge in, I
would at most be able to test if it compiles, not whether it runs.
(Should one expect 60fps via ssh X forwarding over a very unstable
network, or would it just be the usual 30fps as when running native?)

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-05 Thread Per Inge Mathisen
On Mon, Apr 5, 2010 at 9:17 AM, C yp cyp...@gmail.com wrote:
 3 possible solutions:
 1. Get windows to do floating point correctly.
 2. Convert everything to C++, and typedef float Float; on Linux/Mac,
 and class Float { ... }; on windows.
 3. Use integers only. (Fixed point, that is.)

What parts of the game state still relies on floating point? I can
think of experience, power, movement (though I have an almost complete
patch for changing that, just need someone to up the precision), and
not much else? I do not think this option should be so hard.

  - Per

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-05 Thread C yp
On Mon, Apr 5, 2010 at 2:50 PM, Per Inge Mathisen
per.mathi...@gmail.com wrote:
 On Mon, Apr 5, 2010 at 9:17 AM, C yp cyp...@gmail.com wrote:
 3 possible solutions:
 1. Get windows to do floating point correctly.
 2. Convert everything to C++, and typedef float Float; on Linux/Mac,
 and class Float { ... }; on windows.
 3. Use integers only. (Fixed point, that is.)

 What parts of the game state still relies on floating point? I can
 think of experience, power, movement (though I have an almost complete
 patch for changing that, just need someone to up the precision), and
 not much else? I do not think this option should be so hard.

Option 1 should be the easiest (trivial), except that maybe it's
completely impossible instead of completely trivial.

I had to mention option 2, just for the sake of it.

That leaves option 3:

Think the main part is power, movement and experience. Think
floating-point might be (mis)used a few other random places, but
probably nowhere that isn't easy to fix. Think it's used all over the
place in src/effects.c, but that file _shouldn't_ affect the game
state (except that maybe it does, think Safety might have said
something about oil well burning times depending on src/effects.c, not
sure if I understood, since it's hard to believe there could be
something hacky like that in a codebase like this).

I think adding a // TODO Add more precision. line would probably be
sufficient for the movement patch to be committable (not that I've
tested it in any way, don't remember whether I read the patch or not).

If removing all floating point from the game state, then we can even
go the opposite way with the compile flags, and add -ffast-math...

-Cyp

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-05 Thread buginator
On 4/5/10, C yp  wrote:
 On Mon, Apr 5, 2010 at 2:52 AM, Guangcong Luo  wrote:
   Looks like the ML is back up.
   On Sat, Apr 3, 2010 at 2:27 PM, buginator  wrote:

  ...
  ...

  The network code, AFAICT, we do not have any network related crashes 
  anymore.
   Yes, we got sync issues, but the 2.3 series will always have them.
   Cyp's work with newnet should fix the sync issues, but, last I looked,
   that version will __NOT__ work with 32bit systems at this time.  This
   is both on MSVC  cross-compiled builds.
  
   What about newnet requires 64-bit support? That seem so weird...


 I think (97.13% sure) that it was working on a 32-bit Linux system
  with sse2, and was working on at least one mac.

  If I remember right, then the only issue is it not working on w32,
  even if cross-compiled with gcc. I couldn't cross-compile it myself,
  and haven't seen the assembler output of fptest1() in main.c, so I
  can't determine if it's a wrong-code generation, or if it's windows
  messing with the floating point registers somehow. (I once had an
  issue with a version of Linux failing to restore the floating point
  state correctly, so something like that wouldn't surprise me too
  much.)

Oh, right.  I forgot I got it working on linux 32bit OK.  At least, I
think it was OK.  It has been too long.

MSVC  the CC version on windows are the big thorns.

No objections to Qt and newnet being merged as soon as possible.
  I don't have any spare time at the moment. If squeezing a merge in, I
  would at most be able to test if it compiles, not whether it runs.
  (Should one expect 60fps via ssh X forwarding over a very unstable
  network, or would it just be the usual 30fps as when running native?)


Maybe i-Nod can chime in if he got Qt or newnet working or not.  For
now, both branches are in a hold pattern for me, until we can push 2.3
out the door.

We still have a fairly big crowd that uses MSVC, so I don't see us
dropping that anytime soon, if ever.

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


[warzone2100-dev] Warzone's direction for 2.3 series

2010-04-04 Thread buginator
Before I left, I was told there was going to be some balance changes,
and I haven't seen any for the beta 12 release, besides the
penetration fix for the cannons.  Is this still going to happen?

The autoload of mods.
This is still causing issues, as can be seen by trac tickets where
people forget about mods that are in that directory.
That was one of the main reasons why we disabled it in the first place.
If we want a stable 2.3, then we should either disable that again,
or someone needs to fix it.

The network code, AFAICT, we do not have any network related crashes anymore.
Yes, we got sync issues, but the 2.3 series will always have them.
Cyp's work with newnet should fix the sync issues, but, last I looked,
that version will __NOT__ work with 32bit systems at this time.  This
is both on MSVC  cross-compiled builds.

Other issues for 2.3, before a release is what exactly?
I know about the campaign issues with the visibility routines, and I
will revert the changes to the cleaning process as a temp fix for
this. (What is going on is, on certain campaign missions, the pointers
get swapped, and we end up freeing memory that shouldn't have been
freed yet.  (I have no clue why Pumpkin did the pointer swapping
tricks, I guess to save some memory for the PSX or something like
that).

Is there anything else that needs to be looked at?

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-04 Thread Guangcong Luo
Looks like the ML is back up.

On Sat, Apr 3, 2010 at 2:27 PM, buginator buginato...@gmail.com wrote:
 Before I left, I was told there was going to be some balance changes,
 and I haven't seen any for the beta 12 release, besides the
 penetration fix for the cannons.  Is this still going to happen?

Haven't had time to commit the balance changes (or finish them, for
that matter).

 The autoload of mods.
 This is still causing issues, as can be seen by trac tickets where
 people forget about mods that are in that directory.
 That was one of the main reasons why we disabled it in the first place.
 If we want a stable 2.3, then we should either disable that again,
 or someone needs to fix it.

Man, we had a long IRC debate over this.

My position is still:

- Most commercial games do it the same way - autoload all mods in the
mods folder, and do effectively no checking for compatibility when
loading savegames. Warzone has done this since 1.00, too, until we
removed it in 2.2 (a decision I still disagree with).
- Since they do it that way, it is clear that there are a significant
number of people who would rather have this mod system, however
flawed, than no mod system at all.
- The remaining people can simply _not use the system_.

Remember the 2.1 days? When like 60-80% of the hosted games would have
rebalance in their title? The mod thrived because the installation
instructions were simple and clear: Drag to autoload folder. Despite
the allegedly flawed mod system, it worked fine.

2.2 did not have any mod at that level of popularity, and I think part
of that was due to the fact that requiring someone to install and
learn a buggy mod loader, or mess with the command-line, is just too
much of a barrier to entry. Sure, most of the forumites could do it if
we provided detailed instructions. Or we could just provide the same
one-step process that we used to from 1.00 to 2.1.3.

When Buginator removed the autoload feature in the 2.2 betas, I was
under the impression that he would fix it and restore it. Now, a year
later, I've seen nothing from him to that end. Though I haven't
completely fixed the mod system, I've improved it a bit, and I was
under the impression that when I committed the autoload feature,
everyone agreed it was solidly into the net benefit side of the
benefit/harm spectrum.

Now. I propose a simple solution:

1. Fix the mod loading system.

Now, you can sit back and let me once again change the mod system to
suit the wills of its detractors, or you can actively work towards
making Warzone a worse game in the meantime. Is this really such a
difficult decision?

I've seen too much of removing features that have been with Warzone
since the 1.10 days, especially features that the detractors could
simply not use, and leave people who do use the feature alone.

 The network code, AFAICT, we do not have any network related crashes anymore.
 Yes, we got sync issues, but the 2.3 series will always have them.
 Cyp's work with newnet should fix the sync issues, but, last I looked,
 that version will __NOT__ work with 32bit systems at this time.  This
 is both on MSVC  cross-compiled builds.

What about newnet requires 64-bit support? That seem so weird...

I think the bMultiMessages change I committed may have made the sync
worse, so I guess it should be reverted once again. This is really
frustrating, because it really does fix seven different bugs relating
to bMultiPlayer having an unexpected value.

(Background: Much of the code assumes bMultiPlayer is TRUE if in a
multiplayer/skirmish game, and FALSE in campaign. However,
bMultiPlayer can be FALSE in a multiplayer game because
turnOffMultiMsg messes with it. I thought my code was the most
reliable way to fix the problem, but apparently it was unsuccessful.)

-Zarel

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-04 Thread buginator
On 4/4/10, Guangcong Luo za...@wz2100.net wrote:
 Looks like the ML is back up.

Better late then never...

 Man, we had a long IRC debate over this.

Yeah, this mail was before that conversation.

  When Buginator removed the autoload feature in the 2.2 betas, I was
  under the impression that he would fix it and restore it. Now, a year
  later, I've seen nothing from him to that end. Though I haven't
  completely fixed the mod system, I've improved it a bit, and I was
  under the impression that when I committed the autoload feature,
  everyone agreed it was solidly into the net benefit side of the
  benefit/harm spectrum.

Other things got in the way...time is still the biggest enemy.


  Now. I propose a simple solution:

  1. Fix the mod loading system.

  Now, you can sit back and let me once again change the mod system to
  suit the wills of its detractors, or you can actively work towards
  making Warzone a worse game in the meantime. Is this really such a
  difficult decision?

The problem isn't fixing it per se, it is getting the time to fix it correctly.

As it is now, it is broken, just like it was broken for 1.1.0, (but
they did have a way for mods to detect other mods that the mods relied
on), and like it was broken for the past releases we did.
Is it better than it was?  Yes.
Does it fix the issues it had before? No, not all of them.
The main issues left are, savegames made with mods fail if mods aren't
loaded, when hosting mods, we don't transfer them, and when mods
conflict (as in, they throw everything in autoload) then we get
undefined results.

To sum things up, I think 2.3.0 should have it disabled, and then have
a working version in 2.3.1 or 2.4.
The working version would need a new savegame format, and a way to
transfer mods to other players.
This is by no means trivial, and will require lots of time for someone
to implement.  I don't think holding up a release is in our best
interest.
We are *not* going to wait another 6-7 months before another release,
that is just insane, and we should never do that again.


  I think the bMultiMessages change I committed may have made the sync
  worse, so I guess it should be reverted once again. This is really
  frustrating, because it really does fix seven different bugs relating
  to bMultiPlayer having an unexpected value.

  (Background: Much of the code assumes bMultiPlayer is TRUE if in a
  multiplayer/skirmish game, and FALSE in campaign. However,
  bMultiPlayer can be FALSE in a multiplayer game because
  turnOffMultiMsg messes with it. I thought my code was the most
  reliable way to fix the problem, but apparently it was unsuccessful.)

Yes, last time I looked at (another one) of Pumpkin's hacks, it wasn't pretty...
For what it is worth, this was also on my TODO list, but that list
just got too big to manage.  Time is the enemy. :(

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [warzone2100-dev] Warzone's direction for 2.3 series

2010-04-04 Thread Stephen Swaney
On Sun, Apr 04, 2010 at 05:52:15PM -0700, Guangcong Luo wrote:
 
  The autoload of mods.
  This is still causing issues, as can be seen by trac tickets where
  people forget about mods that are in that directory.
  That was one of the main reasons why we disabled it in the first place.
  If we want a stable 2.3, then we should either disable that again,
  or someone needs to fix it.
 
 
 When Buginator removed the autoload feature in the 2.2 betas, I was
 under the impression that he would fix it and restore it. Now, a year
 later, I've seen nothing from him to that end. Though I haven't
 completely fixed the mod system, I've improved it a bit, and I was
 under the impression that when I committed the autoload feature,
 everyone agreed it was solidly into the net benefit side of the
 benefit/harm spectrum.

It was removed because it was causing problems.  I don't recall him
ever declaring intent to rewrite the mod system.  As for 'improving it
a bit', what we have now just breaks in different and hard to find
ways.

 Now. I propose a simple solution:
 
 1. Fix the mod loading system.

This is a great idea and a much better approach than trying to hack
something together piecemeal.  Since we are already wy too far
into betas for 2.3, I suggest it be a goal for 2.3.1.

A some requirements for a working mod loading system:

  Saved games need to know what mods they were running with so they
  can be loaded.
  
  An actual user interface to control what mods are being loaded -
  either an in-game interface to effectively take the place of the
  command line or perhaps a separate application to manage the
  autoload folder if we are retaining that.

  for multi-player, it would be ideal if the host could communicate
  what mods need to be loaded.  At the very least, clients without the
  necessary mods would be rejected.


In the meantime, the easiest fix is to turn off autoloading and end
the problems it causes.

-- 
Stephen Swaney  
sswa...@centurytel.net


___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev