Author Topic: [done] Showing your allies a position on the map!  (Read 4737 times)

titi_son

  • Draco Rider
  • *****
  • Posts: 283
  • titi_son
    • View Profile
[done] Showing your allies a position on the map!
« on: 11 June 2012, 14:12:40 »
I would like to a feature where you can show your allies a position on the map.
Like in tribal trouble. (sorry didn't find any screenshot or video)
so you could show your friend where to attack or where is gold...

and what about another pointer (or something like this) if a build skill is finished? or would this be annoying ?
« Last Edit: 21 September 2012, 13:18:51 by tomreyn »
My first Tilseset: SPRING :) (included in Megaglest )

Secret Hint: To play online join the IRC #megaglest-lobby on freenode which is the lobby chat ingame. So you can chat with or wait for people in the lobby without running megaglest all the time.

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: Showing your allies a position on the map!
« Reply #1 on: 12 June 2012, 14:34:26 »
I am working on it. So far I have it working for single player, I am looking at adding the network command now for multi-player.

UPDATE:

svn has a very rough / crude implementation of cell markers. Press ESC in game for the popup menu and select bookmark cell, then place the marker on the cell you want. All memebers of the same team will see markers for their team members. Markers show up in the minimap with some alpha coloring to make it look different from units and is color coded to the player. This implementation is a reference for discussion to see what we want to do to finish the feature. Once we have a nice icon for the cell marker replace:

data/core/misc_textures/mark_Cell.png with something nice.
« Last Edit: 12 June 2012, 20:40:32 by softcoder »

titi_son

  • Draco Rider
  • *****
  • Posts: 283
  • titi_son
    • View Profile
Re: Showing your allies a position on the map!
« Reply #2 on: 13 June 2012, 11:39:02 »
Great :)
But can anyone place as much markers as he want? If it is like this there must be a way to remove markers!
My first Tilseset: SPRING :) (included in Megaglest )

Secret Hint: To play online join the IRC #megaglest-lobby on freenode which is the lobby chat ingame. So you can chat with or wait for people in the lobby without running megaglest all the time.

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: Showing your allies a position on the map!
« Reply #3 on: 13 June 2012, 16:20:30 »
- ability to remove markers added in svn (menu option similar to add marker)

titi

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 4,240
    • View Profile
    • http://www.titusgames.de
Re: Showing your allies a position on the map!
« Reply #4 on: 13 June 2012, 21:30:19 »
more/other idea on this:

One player should only be able to set one marker at the time. This marker is set on the minimap by clicking it with shift+LeftMouseButton.
In this moment the markered point is send/shown for all teammates on the minimap. Some kind of alarm sound should be played too to raise the interest. The way the point is shown should be animated with for examples circles getting smaller ( like an inverted watereffect form units walking in the water in glest ).
The animated marker itself is not shown for a long time! after some seconds it fades away, or if the player clicked on another position a new marker is started on the new position again. The marker should be shown in teamcolor.

What do you think of this?
Try Megaglest! Improved Engine / New factions / New tilesets / New maps / New scenarios

Bloodwurm

  • Guest
Re: Showing your allies a position on the map!
« Reply #5 on: 13 June 2012, 22:42:01 »
I would do it more like a ping than an actual marker. RTS's need to be fast and quick, and restrain the amount of management.
I want to quickly indicate to my allies where to go/attack, I don't want to have to manage removing that marker later on. At least, they would require some timer on it to disappear on their own or something.

Markers would be great for objectives, but I'm not sure they are so relevant in a multiplayer game, unless it's also tied in with the control of some allied AI faction. Now that would be great!

Also, in regards to these circles closing in unto the pinged position, I would actually stick to "start from the pinged position and grow outwards". Again, the game play is meant to be fast, can't waste time waiting to make sure where exactly is the ping going....

My 2 cents....

titi

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 4,240
    • View Profile
    • http://www.titusgames.de
Re: Showing your allies a position on the map!
« Reply #6 on: 13 June 2012, 22:59:16 »
So just the way I described it  :D.
How the marker is displayed is something we will see. I would like to see something repitive animated and obvious fading after  some seconds.
Try Megaglest! Improved Engine / New factions / New tilesets / New maps / New scenarios

Omega

  • MegaGlest Team
  • Dragon
  • ********
  • Posts: 6,167
  • Professional bug writer
    • View Profile
    • Personal site
Re: Showing your allies a position on the map!
« Reply #7 on: 14 June 2012, 04:11:45 »
I would do it more like a ping than an actual marker. RTS's need to be fast and quick, and restrain the amount of management.
I want to quickly indicate to my allies where to go/attack, I don't want to have to manage removing that marker later on. At least, they would require some timer on it to disappear on their own or something.

Markers would be great for objectives, but I'm not sure they are so relevant in a multiplayer game, unless it's also tied in with the control of some allied AI faction. Now that would be great!

Also, in regards to these circles closing in unto the pinged position, I would actually stick to "start from the pinged position and grow outwards". Again, the game play is meant to be fast, can't waste time waiting to make sure where exactly is the ping going....

My 2 cents....
I agree. The ping function, off the top of my head available in the Civilization and Age of Empires series, would be better than "bookmarking a cell", and the terminology is already in place. Usually pinging a location would just make a quick, noticeable marker (I was actually thinking something like the offscreen attack notification, but tweaked to be visibly different from the attack notification (perhaps different colour, rotation)) that would fade away after a few seconds. Would be more versatile, as if I want to show the location of a good resource haven, but we already have a marker up, there's no way to do so. Pings wouldn't have a limitation to their number, and would presumably be done via hotkey and perhaps a button on the minimap (as per other games), no need for something buried in the pause menu.
Edit the MegaGlest wiki: http://docs.megaglest.org/

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

titi_son

  • Draco Rider
  • *****
  • Posts: 283
  • titi_son
    • View Profile
Re: Showing your allies a position on the map!
« Reply #8 on: 14 June 2012, 20:55:28 »
thats was my basic idea too  :)
i also want the "ping"
My first Tilseset: SPRING :) (included in Megaglest )

Secret Hint: To play online join the IRC #megaglest-lobby on freenode which is the lobby chat ingame. So you can chat with or wait for people in the lobby without running megaglest all the time.

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Showing your allies a position on the map!
« Reply #9 on: 16 June 2012, 07:42:28 »
I like this feature a lot. I agree these bookmarks should expire automatically ('pings'). Unfortunately the current implementation caused an out of synch, followed by a buffer overflow, when I ran two instances of the same r3395 build:

Code: [Select]
Game out of synch.
[2012-06-16 09:36:00] *ERROR* In [game.cpp::update Line: 1547] Error [Error [#3]: Game is out of sync, please check log files for details.
Stack Trace:
mk/linux/megaglest:Shared::Platform::megaglest_runtime_error::megaglest_runtime_error(std::string const&) address [0xa04136] line: 246
mk/linux/megaglest:Glest::Game::Commander::buildCommand(Glest::Game::NetworkCommand const*) const address [0x56b2c0] line: 1031
mk/linux/megaglest:Glest::Game::Commander::giveNetworkCommand(Glest::Game::NetworkCommand*) const address [0x56fc6e] line: 869
mk/linux/megaglest:Glest::Game::Commander::updateNetwork(Glest::Game::Game*) address [0x572c1f] line: 610
mk/linux/megaglest:Glest::Game::Game::update() address [0x5bb17a] line: 1352
mk/linux/megaglest:Glest::Game::Program::loopWorker() address [0x6aaef6] line: 432
mk/linux/megaglest:Glest::Game::glestMain(int, char**) address [0x690950] line: 4660
mk/linux/megaglest:Glest::Game::glestMainWrapper(int, char**) address [0x694576] line: 4840
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main() address [0x7f00312a076d] line: 0
mk/linux/megaglest() [0x4f1e69] address [0x4f1e69]
]
*** buffer overflow detected ***: mk/linux/megaglest terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x7f0031388007]
/lib/x86_64-linux-gnu/libc.so.6(+0x107f00)[0x7f0031386f00]
/lib/x86_64-linux-gnu/libc.so.6(+0x108fbe)[0x7f0031387fbe]
mk/linux/megaglest(_ZN6Shared8Platform6Socket10isWritableEP7timeval+0x5d)[0xa1e14d]
mk/linux/megaglest(_ZN6Shared8Platform6Socket11isConnectedEv+0x47)[0xa1e347]
mk/linux/megaglest(_ZN6Shared8Platform6Socket13getDataToReadEb+0xd9)[0xa1f919]
mk/linux/megaglest(_ZN5Glest4Game16NetworkInterface18getNextMessageTypeEv+0x6a)[0x7e690a]
mk/linux/megaglest(_ZN5Glest4Game15ClientInterface14waitForMessageEv+0x40)[0x7f0140]
mk/linux/megaglest(_ZN5Glest4Game15ClientInterface11updateFrameEPi+0x118)[0x7f5008]
mk/linux/megaglest(_ZN5Glest4Game15ClientInterface10simpleTaskEPN6Shared14PlatformCommon10BaseThreadE+0x5e)[0x7f824e]
mk/linux/megaglest(_ZN6Shared14PlatformCommon16SimpleTaskThread7executeEv+0x3c4)[0x9b19e4]
mk/linux/megaglest(_ZN6Shared8Platform6Thread14beginExecutionEPv+0xf)[0xa0421f]
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0(+0x12fd5)[0x7f0034fa9fd5]
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0(+0x56999)[0x7f0034fed999]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a)[0x7f0034d81e9a]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f00313714bd]

I'm not sure whether running multiple instances of a single game build is supposed to work, though, and this out of synch may or may not be related to the new feature - I just haven't run multiple network connected instances for a while now.
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

titi_son

  • Draco Rider
  • *****
  • Posts: 283
  • titi_son
    • View Profile
Re: Showing your allies a position on the map!
« Reply #10 on: 28 June 2012, 17:35:11 »
EH is this now finished?
i think not...
My first Tilseset: SPRING :) (included in Megaglest )

Secret Hint: To play online join the IRC #megaglest-lobby on freenode which is the lobby chat ingame. So you can chat with or wait for people in the lobby without running megaglest all the time.

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: Showing your allies a position on the map!
« Reply #11 on: 7 July 2012, 05:11:52 »
Waiting for someone to get better images or change the way the marker renders. I did the hard part (networking etc) now someone must finish it off.

Coldfusionstorm

  • Golem
  • ******
  • Posts: 868
    • View Profile
Re: Showing your allies a position on the map!
« Reply #12 on: 8 July 2012, 11:43:47 »
Heym i gave it a go, and i think the result's were pretty good. Here is my bookmark icons.

http://www.sendspace.com/filegroup/0h1yb7QanxGbcx%2Flu3vKBg
WiP Game developer.
I do danish translations.
"i break stuff"

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Showing your allies a position on the map!
« Reply #13 on: 8 July 2012, 12:11:02 »
That's better, I think. Unfortunately Coldfusions' unmark_cell.png does not work for me: While the mark_cell.png image is shown as you bookmark a cell and immediately removed when you remove a bookmark, unmark_cell.png is not shown on bookmark removal (so in fact it is never shown on my system). Coldfusion says it works for him, though. Note that I have not tried to use a different file for unmark_cell.png, yet, but then I doubt it's the file format or that the file is broken since other application display it fine.

For what it's worth, when softcoder said the filename was mark_Cell.png, I think the upper-case C was a typo, since the source code says:
Code: [Select]
source/glest_game/game/game.cpp:    const string markCellTextureFilename = data_path + "data/core/misc_textures/mark_cell.png";
source/glest_game/game/game.cpp:    const string unmarkCellTextureFilename = data_path + "data/core/misc_textures/unmark_cell.png";

So all filenames (and paths) should be lower case (which they are on my system).

Back to the feature itself and its presentation: I think it would be even (and much) better to have team colored cell markers.

And possibly have animated ones, too. There is the APNG format for animated PNGs, but I assume we don't support that? But if we also want teamcolor there then we either need 8 (player colors) x 2 (mark + unmark) APNG images or real models there - and support for it in the engine, I guess.

Finally I think and in-game menu option to remove ALL (of my own) bookmarks would be pretty helpful, too.
« Last Edit: 8 July 2012, 15:29:35 by tomreyn »
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

treba

  • Guest
Re: Showing your allies a position on the map!
« Reply #14 on: 17 July 2012, 21:27:19 »
hey!
just read that the feature is now implented and can be used with the hotkey X by default. i would like to suggest to put it on ALT, as this is quite the standard within the industrie, just as A is for attack. just for "compatability" =)

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: Showing your allies a position on the map!
« Reply #15 on: 20 July 2012, 14:39:14 »
Perhaps someone whose OS doesn't hijack the Alt key can compile svn and see if it works when adding this to glestuserkeys.ini:

SetMarker=left alt

Coldfusionstorm

  • Golem
  • ******
  • Posts: 868
    • View Profile
Re: Showing your allies a position on the map!
« Reply #16 on: 21 July 2012, 19:53:17 »
Perhaps someone whose OS doesn't hijack the Alt key can compile svn and see if it works when adding this to glestuserkeys.ini:

SetMarker=left alt

It's working for me, Win7.
WiP Game developer.
I do danish translations.
"i break stuff"

titi

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 4,240
    • View Profile
    • http://www.titusgames.de
Re: Showing your allies a position on the map!
« Reply #17 on: 10 September 2012, 12:27:25 »
I am not sure whats the state of this, but I added a different implementation of this feature to svn a while ago.

Default key is the X-key. Just hold it down and left click on the minimap ( minimap only! ). This results in an "attention" sound for all teammembers and showing a marker on there map for some seconds.
Please try it and tell me if the default "x" is ok.

---------------------------------------
old code:
What do we do with softcoders implementation, as it is a nice feature too. I think havin the possibility to show permanent markers ingame is something nice for  scenarios/tutorials too.
A problem in multiplayer games I see is the fact that you can have an endless amount of markers on a map.

options we have:
- remove all the code
- remove all interactive ways to handle these markers form UI ( menu entry and so on ) but add some lua commands that can handle it ( maybe remove network commands when its only used in scenarios )

Try Megaglest! Improved Engine / New factions / New tilesets / New maps / New scenarios

treba

  • Guest
Re: Showing your allies a position on the map!
« Reply #18 on: 13 September 2012, 12:11:36 »
i would really want to have it for scenarios. and as scenarios are meant to be played in mp, too, atleast in the future, i'm for not removing the network code

titi

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 4,240
    • View Profile
    • http://www.titusgames.de
Re: Showing your allies a position on the map!
« Reply #19 on: 19 September 2012, 20:44:54 »
this is what we want to do with the original marker feature which was made by softcoder:

  • remove "add/remove marker" from ingame menu. Use hotkeys instead
  • implement the text feature for the markers. (*see below)
  • add lua commands to handle markers ( and their text )
  • limit the markers which can be set to 5 for each player
  • use another way to display markers on minimap ( current way makes you think there is a unit of you )
  • If not already done, show markers only to teammates
  • Lua should be able to set "system" markes which are not owned by a faction/player
  • ...?

(*) if you press the hotkey to set one of these markers you can , the chat input ( with another text ) should pop up and let you enter a text. If you press escape, no marker is set. If you press enter the text is set.
Try Megaglest! Improved Engine / New factions / New tilesets / New maps / New scenarios

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: Showing your allies a position on the map!
« Reply #20 on: 20 September 2012, 04:10:39 »
I've added the ability to enter the cell marker text hint. When placing the marker a chat input shows with the title Cell hint:

If you enter a hint and press enter the marker is placed with the hint text (the hint is only shown when a user hovers the mouse over the marker). IF you press esc it cancels the cell marker placement. If you don't want a hint just do not enter any text and press enter.

The hint text allows using \n (to create a newline between text) and \t (for tabs)

Try out svn and let me know if its ok?

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Showing your allies a position on the map!
« Reply #21 on: 20 September 2012, 18:28:20 »
Very nice indeed. :)

Suggestions for further improvement:
  • Player color - currently all flags seem to be yellow
  • Instead of typing \n, it would be nice if you could use shift+enter or ctrl+enter - much more intuitive unless you're a programmer on Linux
  • Consider imposing a limit of # flags per player
  • Consider imposing a limit of # characters and/or characters per line of text one may enter interactively (no limits on scenarios)
  • Consider imposing a limit of # newlines one may enter interactively (no limits on scenarios)
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

Omega

  • MegaGlest Team
  • Dragon
  • ********
  • Posts: 6,167
  • Professional bug writer
    • View Profile
    • Personal site
Re: Showing your allies a position on the map!
« Reply #22 on: 20 September 2012, 22:54:44 »
  • Instead of typing \n, it would be nice if you could use shift+enter or ctrl+enter - much more intuitive unless you're a programmer on Linux
Fixed.

But yeah, I agree, team colour would be handy, as if there's an unlabeled marker, you know who to ask "what's that marker for?". A limit to the number of flags would prevent players from spamming useless/unnecessary flags (purposely or accidentally). However, I'm not sure what's the point of character limits on hints, beyond a reasonable number, that is (say, 1000 characters; anyone who spends time typing up more than that is likely neglecting other aspects of the game).
Edit the MegaGlest wiki: http://docs.megaglest.org/

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

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: Showing your allies a position on the map!
« Reply #23 on: 21 September 2012, 00:57:05 »
Ok we limit the cell markers to 5 per player at any time, and the flag is colored using the players color who created it. Max chars is currently set to 500 (but likely you cannot read all that on the screen).

Thanks

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Showing your allies a position on the map!
« Reply #24 on: 21 September 2012, 13:13:54 »
Team color and limit work for me, thanks. :)
(And I'm tagging this as [done])
« Last Edit: 21 September 2012, 13:19:47 by tomreyn »
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

 

anything