Author Topic: Glest Advanced Engine  (Read 147253 times)

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #325 on: 7 November 2008, 10:15:22 »
Thanks, I keep forgetting about this one (even though I see it when testing).  I think this was in the original Glest as well, I'm not 100% certain now.  It seems that sometimes when you issue the order, units will immediately leave, I think this is when you go from mining to harvesting or visa versa.  But when they are mining rock and you tell them to mine gold, I think they stay until they are done with their current load.  However, I've also seen them stay there and mine the current node until it's gone, collecting hundreds of units of that resource!

Omega

  • MegaGlest Team
  • Dragon
  • ********
  • Posts: 6,167
  • Professional bug writer
    • View Profile
    • Personal site
Re: Glest Advanced Engine
« Reply #326 on: 7 November 2008, 18:36:10 »
I'm downloading this new version, and lets hope it works for me...
Edit the MegaGlest wiki: http://docs.megaglest.org/

My personal projects: http://github.com/KatrinaHoffert

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #327 on: 12 November 2008, 23:20:10 »
Ok, after adding all the bugs to the bugzilla database and looking at them, it was apparent that the most pressing issue with GAE was getting multiplayer to work.  I really wasn't enjoying that part because it was still dying after a lot of work.  But I decided to dig into it again and I believe that I may have found the problem: the Unit::targetPos member variable was being used both to specify the location of the target and the next location in the unit's path when moving -- I was not aware of this and suspect that my modifications in GAE may have broken multiplayer because of this.  I have added a new member variable for tracking the next position the unit is intending to move into and I did some testing and I hope it's better now.  When doing a 4 player network game (it was crazy, all on one computer, it was really slow) I did get one of the clients to crap out, but I would like to do some testing with this.  I did a lot of other games with no failures, just the one.

On a side note, I did notice that GAE (maybe Glest too) doesn't handle multiplayer games with more than 2 players well; when one player looses and exits the game, it ends the game for everybody else.  Also, I somehow ended up with the 3d mouse arrow (the one that appears when you give a command) bug un-fixed again, I'll catch it next time around.

Glest Advanced Engine v0.2.9
Code: [Select]
[list][li][url=http://glest.codemonger.org/files/glestadv-win32-0.2.9.rar]GAE v0.2.9 win32 binaries[/url][/li]
[li][url=http://glest.codemonger.org/files/glestadv-src-0.2.9.tbz2]GAE v0.2.9 sources[/url][/li]
[li][url=http://glest.codemonger.org/files/glestadv-0.2.9-fpm-0.1.9-win32.rar]GAE v0.2.9 win32 binaries w/ FPM v0.1.9 tech tree[/url][/li][/list]
For other archive formats, visit
Code: [Select]
[url=http://glest.codemonger.org]http://glest.codemonger.org[/url].

Glest Advanced Engine v0.2.9 Changes
  • Added network status: ping time and, tx/rx throughput (TCP overhead not included in tx/rx)
  • Added a mechanism to simulate a high latency network for debugging :) (just search the code for DEBUG_NETWORK if you're interested)
  • Restructured a lot of moving, pathing and targeting code, so I hope I didn't break anything.
  • Units aren't getting highlighted when you execute a command on them any more (oops, will fix this later)
  • I might have fixed a bug where harvesters get stuck in the FPM Abbey courtyard, but I haven't tested it yet (also was causing ranged units to sometimes miss the Abbey when attacking it)
« Last Edit: 11 April 2016, 15:01:18 by filux »

titi

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 4,240
    • View Profile
    • http://www.titusgames.de
Re: Glest Advanced Engine
« Reply #328 on: 13 November 2008, 00:33:18 »
here is the linux 32 bit binary.
Code: [Select]
[url=http://www.titusgames.de/gae/glestadv-linux32-bin.0.2.9.tar.gz]http://www.titusgames.de/gae/glestadv-linux32-bin.0.2.9.tar.gz[/url]
multiplayer in original glest(linux 32 bit):
- no problems up to 3 players, but big lag with 4 players! this already starts in the connect menu(of the server when 3 clients are connected)!!
- everyone can leave the game without a crash/exiting ( but not the server! )

( Sorry I have no time today for testing :( , but I will do it with my boys as soon as I can! )
« Last Edit: 11 April 2016, 15:01:44 by filux »
Try Megaglest! Improved Engine / New factions / New tilesets / New maps / New scenarios

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #329 on: 13 November 2008, 06:48:42 »
thank you!!

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #330 on: 14 November 2008, 18:55:05 »
Glest Advanced Engine v0.2.10
Code: [Select]
[list][li][url=http://glest.codemonger.org/files/glestadv-win32-0.2.10.rar]GAE v0.2.10 win32 binaries[/url][/li]
[li][url=http://glest.codemonger.org/files/glestadv-src-0.2.10.tbz2]GAE v0.2.10 sources[/url][/li]
[li][url=http://glest.codemonger.org/files/glestadv-0.2.10-fpm-0.1.9-win32.rar]GAE v0.2.10 win32 binaries w/ FPM v0.1.9 tech tree[/url][/li][/list]
For other archive formats, visit
Code: [Select]
[url=http://glest.codemonger.org]http://glest.codemonger.org[/url].

Glest Advanced Engine v0.2.10 Changes
  • May have fixed sync problems in multiplayer (who knows, let's see).  The unit's planned path wasn't getting sent by the server before and the existing one on the client wasn't always getting erased (to force the client to recalculate it), so now the server just sends it.  This seems to have been causing some of the crazy jumping around behavior.
  • Added PlayerName to .ini.  You set that and multiplayer games announce you as your PlayerName instead of your computer's host name.  You still don't see the player names of other clients in multiplayer (if you are not the server).
  • Added MinFullUpdateInterval to .ini, which forces all clients to get a full update from the server ever MinFullUpdateInterval milliseconds (set to 30 seconds by default).  It doesn't actually send them all at once, it scatters them out and it may not be necessary in the long run
  • When a client disconnects from the server, you get a message in the console now instead of auto-saving and kicking you out of the game.  This was especially annoying when there was more than two players.
  • un-broke the highlighting that I broke in 0.2.9 and fixed the red rotating arrow from giving commands (at least, I think I did)
If this fixes multiplayer problems, I'm going to re-work the code to use a binary format instead of compressed XML.  It's much easier to work with XML when testing & debugging, but it's fatter, uses more processor to create & compress and it uses more bandwidth -- I can probably reduce bandwidth usage to 10% or less of current (and then decrease the update interval) by just sending bits & bytes (and maybe even compressing those).
« Last Edit: 11 April 2016, 15:02:12 by filux »

revel

  • Guest
Re: Glest Advanced Engine
« Reply #331 on: 15 November 2008, 19:08:21 »
Daniel, please get yourself some free SSL certificate from http://www.cacert.org/ or some other issuer.
It is much better than the current self-signed dummy one.
You can even request wildcard cert (*.codemonger.org) to match subdomains.

Platyhelminth

  • Guest
Re: Glest Advanced Engine
« Reply #332 on: 15 November 2008, 21:04:49 »
I have made a 32 bit binary for linux . You can get it here : http://www.mediafire.com/?dgw4d4mtmwi . (Extract the file where you extracted glest data)

  I have made a compressed file with every thing ( gest 3.1.2 data + 0.2.10GAE32bit for linux + 0.1.9fpm ). So you have just to extract it and to launch it (it works if you have dependencies, tell me if it doesn't ) : http://www.mediafire.com/?rm0zckqoyt2

  I have a question: Why your binary are roughly 1MB when mine is 20MB ? What can I do to have a 1 MB binary ?

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #333 on: 15 November 2008, 21:11:31 »
ooh! thanks for the info revel!  I didn't know you could do that :)  Your binary is probably not stripped.  If you run "strip -s glestadv" it will strip away debugging information.  However, If you run the version like it is, it will help me out better in case it crashes :) :)

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #334 on: 25 November 2008, 23:52:57 »
This is a bug fix release.  Sorry I didn't post more info for 0.2.10a, I discovered shortly after releasing it that it wasn't stable in multiplayer.  So here's a fix release.  In addition to the below items, 0.2.10a also fixed a number of bugs and introduced a few more (I probably should have called it 0.2.11 due to the number of changes, but oh well).  So for historical purposes, I'm posting all of the changes for 0.2.10a and 0.2.10b below.

Glest Advanced Engine v0.2.10b & Four Path Magitech v0.1.9
Code: [Select]
[list][li][url=http://glest.codemonger.org/files/glestadv-win32-0.2.10b.rar]GAE v0.2.10b win32 binaries[/url][/li]
[li][url=http://glest.codemonger.org/files/glestadv-src-0.2.10b.tbz2]GAE v0.2.10b sources[/url][/li]
[li][url=http://glest.codemonger.org/files/four_path_magitech-0.1.9.rar]FPM v0.1.9 tech tree[/url][/li]
[li][url=http://glest.codemonger.org/files/glestadv-0.2.10b-fpm-0.1.9-win32.rar]GAE v0.2.10b win32 binaries w/ FPM v0.1.9 tech tree[/url][/li][/list]
For other archive formats, visit
Code: [Select]
[url=http://glest.codemonger.org]http://glest.codemonger.org[/url].

Glest Advanced Engine v0.2.10b Changes
  • You should only be able to summon the correct number of pets now. (I promise it's really fixed this time!)
  • Added countermeasures for a crash bug, although the real cause is yet to be discovered, the hack should keep the client from crashing in multiplayer due to this one issue.
  • Fixed a few other problems from 0.2.10a, like setting the meeting point being broken.

Glest Advanced Engine v0.2.10a Changes
  • Fixed an issue that caused a crash when saving sometimes because units weren't always getting removed from selection groups when they died.
  • The GUI no longer resets if a unit that's in one of the selection groups dies.  Formerly, if you had unit A in a selection group, but you had unit B selected and were trying to build a building when unit A died, the GUI would reset and you would have to click the buttons to select your building type all over again.
  • Revamped Chono and PerformanceTimer classes to more platform neutral code (and uses microsecond precision on posix-compliant platforms)
  • Added an average latency to the network status area (the number in parenthesis).  This is the average ping time over the last 10 seconds.  This value is also used to fast forward update information sent from the server to try to keep the game on network clients less jumpy and better in sync with the server.
  • Fixed a long-standing bug that occurred when a unit was morphing (or had a command queued to morph) and there were other queued commands after that. The bug caused them to use the skills and commands of the former unit type. For instance, if you told an initiate to morph and then queued a move command, they would morph and them move as an initiate, with the speed and animation of the initiate.  This also caused a crash on the client in network games and has now been fixed.  If a queued command doesn't exist in the type you are morphing to, it will be dropped from the command queue.
  • Removed unit degeneration that occurred if you had a unit of a type that was not available in the current subfaction.  Although some mods may wish to implement this, having it be a blanket default isn't appropriate.  We can add a mechanism to faction.xml later to cause this to happen.
  • Fixed a few places where a unit committing suicide (essentially) would give the current faction both a kill and a death, they now only get a death from it.
  • Shadows for dead units now disappear before they start sinking into the ground when using projected shadows.  For shadow mapped, they should fade as the unit fades, but this has not been tested yet.
  • NetworkDataBuffer now supports management of 64 bit values (long long/int64, unsigned long long/uint64 and double/float64) and should still work find on big endian machines (again, I don't have a big endian machine to test on, so this is theoretical).
  • Massive revamp to the way commands are handled internally (this is what should have made it 0.2.11 instead of 0.2.10a):
  • Removed NetworkCommand class, as Command class now directly serializes/deserializes to the network instead. Cleaned up (simplified) Commander class.
  • New Command class network functionality will now only transmit data fields that are used for the command, reducing traffic.
« Last Edit: 11 April 2016, 15:03:05 by filux »

Platyhelminth

  • Guest
Re: Glest Advanced Engine
« Reply #335 on: 26 November 2008, 13:56:51 »
I made a 32bit binary for linux (not stripped; roughly 36MB : ) ). You can get is here : http://www.mediafire.com/?j3ixenkodmy (7z compression :( ,with p7zip installed your GUI archive manager is supposed to be able to extract it).

ZaggyDad

  • Guest
Re: Glest Advanced Engine
« Reply #336 on: 26 November 2008, 19:33:25 »
You should make it so that when there's an error with a faction, it checks to make sure there are no more (and if there are, list them too), and then when it finishes checking and you click exit, it should just go back to the menu instead of crashing (if that's possible...).

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #337 on: 27 November 2008, 01:30:44 »
Quote from: "ZaggyDad"
You should make it so that when there's an error with a faction, it checks to make sure there are no more (and if there are, list them too), and then when it finishes checking and you click exit, it should just go back to the menu instead of crashing (if that's possible...).
Excellent suggestion.  Perhaps you can create a bug (as an enhancement) for this.  Keep in mind however that the framework was not designed for this so there will probably need to be a lot of refitting to make this work.  But better exception handling is a must.  Also, the game doesn't technically "crash" because it catches the exception, handles it and exits normally.  None the less, it is an error condition which essentially terminates the program (after you click "OK").

modman

  • Guest
Re: Glest Advanced Engine
« Reply #338 on: 30 November 2008, 20:47:48 »
I played on the latest GAE (to me there seems to be so many versions) and I only played for five minutes, to be honest.  Also, the resource counters are missing!  And the minimap!

Also another thing that isn't a bug, but I think that the Initiate's Auto-repair button should be next to the cancel-action button (which would be by the meeting-point button on an applicable unit).  It just looks kind of awkward below the others, kind of by itself.

I think the next version of Dark Magic, 3.1, will be the first GAE compatible mod (I don't know if you count FPM, but you didn't seem to).  This is because I want a particle system for some of the commands and eminations for some of the units.
« Last Edit: 4 December 2008, 01:42:57 by modman »

ZaggyDad

  • Guest
Re: Glest Advanced Engine
« Reply #339 on: 30 November 2008, 20:59:03 »
Quote from: "Modman"
I played on the latest GAE (to me there seems to be so many versions) and I only played for five minutes, to be honest. But by this you can tell that I've probably played it for longer than anyone else: the resource counters are missing! And the minimap!

That's not a bug. It's an option. Go into the GAE ini and change PhotoMode to 0.

Quote from: "Modman"
Also another thing that isn't a bug, but I think that the Initiate's Auto-repair button should be next to the cancel-action button (which would be by the meeting-point button on an applicable unit). It just looks kind of awkward below the others, kind of by itself.

Yeah, I agree.


@Daniel: You should make it so that when GAE is opened, it doesn't change the size of the windows outside of it (If that's possible).
[Edited by Daniel to fix quote tags :) ]

modman

  • Guest
Re: Glest Advanced Engine
« Reply #340 on: 30 November 2008, 21:02:05 »
Whoops!   :-[

I'm sorry.  I never used photomode before.  But thanks.

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #341 on: 1 December 2008, 22:11:01 »
Quote from: "modman"
But by this you can tell that I've probably played it for longer than anyone else
.... hmm, I somehow doubt that. The reason for the number of releases, if you read the notes, is that these are bug-fixes.  I have been attempting to fix all outstanding bugs with multiplayer in GAE.  Multiplayer in GAE works very differently than the original Glest.  I have been relying on testing that titi & his sons have been doing for me and it's been very helpful (because they like to play multiplayer).

Quote from: "modman"
lso another thing that isn't a bug, but I think that the Initiate's Auto-repair button should be next to the cancel-action button (which would be by the meeting-point button on an applicable unit).  It just looks kind of awkward below the others, kind of by itself.
Yea, I guess that's a good idea, but from the way the display is coded, it's not so easy.  I'll look into it.

Quote from: "modman"
I think the next version of Dark Magic, 3.1, will be the first GAE compatible mod (I don't know if you count FPM, but you didn't seem to).  This is because I want a particle system for some of the commands and eminations for some of the units.
Well, I certainly count FPM, it may still be in the alpha stages, but it's certainly a mod based on GAE.  Glad to hear you are using it for your mod! :)

There are a lot of new features that I have begun work on in the 0.3 branch, but lately, I have been working on bug-fixes and performance issues.  Recently, I did some experimentation with 16-byte alignment SSE2 intrinsics that were successful (i.e., worked correctly), but didn't yield performance benefits, so wont be used.  None the less, I'm always looking for ways to improve performance and feature sets.

ZaggyDad

  • Guest
Re: Glest Advanced Engine
« Reply #342 on: 3 December 2008, 15:42:53 »
Quote from: "modman"
But by this you can tell that I've probably played it for longer than anyone else.

I doubt that. I've used it ever since it was first released for windows. :P I think you joined the forums long after that, too.

modman

  • Guest
Re: Glest Advanced Engine
« Reply #343 on: 4 December 2008, 01:53:44 »
When the Glest engine and GAE are combined, I think that every new feature from GAE should be implemented, except those that affect gameplay.  Things like autorepair should be either tossed completely I think, or can be turned on and off in the options menu, but should be defaulted off.  These things make gameplay a bit less genuine (no, that's not the right word...) or that it's just not the same.

One new thing should be that a player should be able to select a lot more units at one time...maybe like 50 or 75.  Since there will be so many little icons in the corner, I think it should list them.  Like this:

[Battlemage image] amount 20
[Ghost Armor image] amount 10
[Dragon image] amount 15
[Archmage image] amount 30

That's just an example.  You could have up to 75 units then.  Also, the images would be sorted alphabetically.

ZaggyDad

  • Guest
Re: Glest Advanced Engine
« Reply #344 on: 4 December 2008, 17:51:09 »
Nah, it should just be the image with a number on top. And maybe it could make the text have the inverted colors of the image.

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #345 on: 4 December 2008, 21:38:31 »
I agree on the max selection count, but disagree on the implementation.  I already have plans to show the HPs, EPs and other locally stored resources as a line on the icon of each unit selected (or in some other visualized fashion, perhaps even darkening the image when their health is lower).  I think we need the ability to select or deselect units by clicking or control-clicking on their icons in the selection area.  Thus, left-click selects only that unit (removes all others from the selection), ctrl-left-click removes that unit from the selection and perhaps a double click will cause the same thing to happen when you double click a unit in the 3d area, selects all units of the same type within a certain radius, and that can also be modified by shift, so that other units not of that type that are already selected aren't de-selected.  I'm not hard-set on that exact specification yet, but that's pretty much what I'm planning on (I think part of it is documented in the bug database).

Personally, I'm in favor of the current 4x4 (or similar) grid of icons but to begin squishing and/or stacking them after more than 16 units are selected much like a deck of cards when spread out on a table, but still overlapping.

As far as auto-repair, it certainly wont be getting thrown out.  Enabling or disabling it as an option in the game settings (set when starting the game) isn't something I'm opposed to, but removing very useful functionality because a few people don't like it is hardly sensible.  When playing a RTS game, I would personally prefer to focus on important things like how I plan to beat the other guy rather than mundane maintenance.  The idea of an RTS is that the player is the supreme commander, they should be bothered with as few of the "mundane" details as possible.  I do concede that the auto-repair functionality can take away some of the duties a player of the game previously would have to attend to, but not excessively.  For example, you wouldn't military units to stand by idly and watch as an enemy starts attacking your town, you would want them to automatically attack them to defend, so this is also an "auto" command.   By queueing commands, you can make the most efficient use of workers, and auto-repair helps to keep them busy when one would have otherwise allowed workers to become idle.

Perhaps a repair command should have an <allow-auto value="true|false"/> to explicitly disable auto-repair in a mod?  As a side-note, "repair" is internally being renamed to "replenish" in 0.3 because it also applies to EPs and locally stored resources and all skills can optionally have a cost to HPs or a resource that is stored either locally or globally instead of just EPs (as is currently the case), so some of these dynamics are changing.

modman

  • Guest
Re: Glest Advanced Engine
« Reply #346 on: 5 December 2008, 00:59:37 »
But do you like my idea of being able to select more than one unit at a time?
You might even be able to set the number in the options menu of the number of simultaneous unit activations.

Also, are physics being implemented to any engine soon that you know of?
Things like particle projs bouncing off of objects, and trees and the ground?

That would be cool because then all the particle projs would bounce off these things and then eventually die.  I figured there would have to be another whole variable that would tell how many things it could bounce off of before either hitting a person or dying.  The proj should die if it leaves the unit's range circle.  There should also be one that allows a modder to decide wheter the proj would bounce at all.  To keep up the compatibility with current mods, it would be a hidden variable, one that is set to false if not specifically stated true in the XML.

modman

  • Guest
Re: Glest Advanced Engine
« Reply #347 on: 6 December 2008, 03:36:10 »
I set up and played the newest GAE today.  Some nice features, like the save game and units sinking into the ground upon death, but also some bugs, and I think this is the topic to post them in.

So:
    1)
If this is not a bug but some problem with my settings, then just let me know Probably the biggest one, the particle projs are all messed up.  It looks as if the projs cover all their ground in zero time.  For example the Archer's particle proj just looks like a straight line.[/list]
[list type=2]2) There are numerous problems with the save game pop-up.  For one, it would kind of be nice to be able to see a cursor.  Secondly, I cannot type in anything but lowercase.  Also the underscore does not work.  This one isn't a real problem, jsut a viewing problem, but the box which you type in should be beveled unwards (in other words concave not convex).  Lastly, the box which to type in the name is too small.  When the name is too long it just goes over the rest of the box.  A simple fix would be to make the box longer.[/list]
[list type=3]3) There seems to be this glitch that makes there be this red selection circle (yes, identical to the one when you click the attack button and then cllick the unit you wanto to attack) shortly after the unit dies...and this happens every time, not just once in a while.  It just "blinks" the little circle where the unit died.  Also, not a bug, but I think you could improve the death sequence by instead of fading and sinking them, just sink them twice as fast.[/list]

mictes

  • Guest
Re: Glest Advanced Engine
« Reply #348 on: 6 December 2008, 09:53:48 »
OT
Some ideas for GAE:

-We need a menu when pressing [ESC], there should be savegame, too.
- When selecting much units of the same type, there should be just one icon and the number of the units. There should be the possibility to select a unlimited number of units.
  when you select more than 999 units of the same type there wont be shown a number anymore but the "infinite-symbol".

daniel.santos

  • Guest
Re: Glest Advanced Engine
« Reply #349 on: 6 December 2008, 10:35:16 »
modman, thanks for the feedback.  I'm most concerned about the 1st bug you reported.  Can you please tell me the OS (Windows, etc.) and version of GAE?  I'm presuming 0.2.10b, but I would just like to be sure.

As for bug #2, I'm planning on integrating a 3rd party widget library eventually (maybe CEGUI, I haven't researched them enough yet), so I'm not too interested in improving the current text box/dialog at the moment, although I agree it's got issues.

As for the red circles, I actually see them a lot of times that I don't expect to and it happens in the original Glest as well.  I should probably file a bug for all of these issues (the 2nd being the integration of a 3rd party widget library).  As for the death sinking/fading, I guess it's a matter of preference.  What still bothers me personally is not having the shadows fading when the unit fades.
EDIT: Added bugs for #2 and #3, I want to examine #1 more:
Code: [Select]
[url=https://bugs.codemonger.org/show_bug.cgi?id=50]https://bugs.codemonger.org/show_bug.cgi?id=50[/url]
[url=https://bugs.codemonger.org/show_bug.cgi?id=51]https://bugs.codemonger.org/show_bug.cgi?id=51[/url]

mictes , that's not really OT (I know, I get pissy when people post OT :)  Also, I don't like the idea of just showing an icon and a number as I've mentioned in some other thread (because I want to see the hit points & energy of each unit represented in their icon some way, be able to click on icons, etc.).  However, I agree on not limiting the selection to 16 units, but I'm leaning towards stacking the icons like cards sprawled out on a table.
« Last Edit: 11 April 2016, 15:00:26 by filux »