Announcement

Collapse
No announcement yet.

Journeyman's Minimap - Code Plugin for Minimaps and Fog of War

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    I'm watching the Marketplace like everyday and I missed the release oO

    It's looking amazing!

    Can't wait to try it out
    [Released] Multiplayer Combat Editor
    A-RPG Sacred Swords
    Auto-Chess Live Development
    Youtube Tutorials

    Comment


      #17
      Originally posted by FS Creations View Post
      Looks amazing!

      Is it possible to set up multi-level maps? (i.e. a cave with many floors?)
      That would be Awesome!

      Comment


        #18
        Looks really impressive, nice work.

        Regards the nav mesh question above, yeah it would be a really nice feature. I'd suggest NavMeshRenderingComponent.cpp would be the place to start looking if you wanted to implement this.

        If you could extend the system to overlay multiple masked/translucent layers of background that could be toggled on and off individually, that would open up some really nice possibilities. Don't want to suggest this is lacking as it is though - it's clearly been a lot of work and looks very well designed. Hope it's successful.

        Comment


          #19
          Thanks for the kind words you guys!

          Originally posted by FS Creations View Post
          Is it possible to set up multi-level maps? (i.e. a cave with many floors?)
          Originally posted by Cmcginn View Post
          That would be Awesome!
          Originally posted by kamrann View Post
          If you could extend the system to overlay multiple masked/translucent layers of background that could be toggled on and off individually, that would open up some really nice possibilities.
          There is a way to do this with the current version, but I will make this easier to do in an upcoming update. Currently, you can place multiple MapBackground actors that cover the same area and manually show/hide their background textures by temporarily clearing their background rendering material. This is not intuitive though, so I will improve this.

          Firstly, I will be adding the following features to the MapBackground actor:
          - A property ZOrder to control the order in which background are rendered back to front and a corresponding function SetBackgroundZOrder(int) to change this during gameplay.
          - A function SetBackgroundVisible(bool) as a more intuitive function to control visibility. Internally, the UMG widget that renders the background texture would hide.
          - A function SetBackgroundOpacity(float) to enable you to fade background textures in and out. An opacity of <= 0.0 would be detected and again hide the UMG widget, to not waste effort on drawing an invisible image.

          Secondly, I will be adding a way to define layers on a single MapBackground actor (i.e. for the same volume). This will function like LODs, but based on Z-tresholds and the Z-coordinate of the minimap's observer (the MapViewComponent's Z).

          Originally posted by kamrann View Post
          Regards the nav mesh question above, yeah it would be a really nice feature. I'd suggest NavMeshRenderingComponent.cpp would be the place to start looking if you wanted to implement this.
          That is a great pointer, thanks!
          Journeyman's Minimap - Available on Marketplace - Forum topic - Video

          Comment


            #20
            How performance expensive is this? Does it render the scene twice?

            Comment


              #21
              Originally posted by CheapModeler View Post
              How performance expensive is this? Does it render the scene twice?
              Hey there,

              If you're using the generated background feature, the scene is rendered to a render target only once at the start of the game, so don't worry it doesn't do something crazy like rendering the world every frame.

              I also spent a lot of effort on optimization. Some examples of that:
              * When updating many icons' positions, any intermediate calculations that are the same for all icons precomputed and reused.
              * Icons that are not in the minimap's view are not rendered. This is done with the help of a broad phase collision check (a cheap check to eliminate icons that are definitely not in view).
              * A background texture assigned to an area that does not overlap the minimap's view is not rendered.

              I hope that answers your questions. Let me know if you'd like to know anything else.
              Journeyman's Minimap - Available on Marketplace - Forum topic - Video

              Comment


                #22
                Also what kind of support are you looking to provide for this plug-in? Feature requests?

                Comment


                  #23
                  You can always post questions about issues you come across in this thread or by emailing me directly (see marketplace page). I usually get back to you within a work day. As for feature requests, I will be releasing updates to this plugin but infrequently and depending on how many people show interest in a feature. Crash fixes and updating to new engine versions will have my immediate attention.
                  Journeyman's Minimap - Available on Marketplace - Forum topic - Video

                  Comment


                    #24
                    Originally posted by Zhi Kang Shao View Post
                    You can always post questions about issues you come across in this thread or by emailing me directly (see marketplace page). I usually get back to you within a work day. As for feature requests, I will be releasing updates to this plugin but infrequently and depending on how many people show interest in a feature. Crash fixes and updating to new engine versions will have my immediate attention.
                    Sure. First could we get a little more information regarding how networking works with this?

                    Second, we want to press M to show the entire map over the whole screen and then if we press M again it shows just the mini-map. How difficult is it to do that with your system? Or does that work out of the box?

                    Comment


                      #25
                      I bought this to support development and it's great! Now I'm waiting patiently for an update with which you can generate texture based of navmesh, are you working on that? That would truly make it a complete system for me

                      But I just wanted to already say thank you for your great work!
                      Creative Director at Rebel Camp Games

                      http://www.rebelcampgames.com
                      http://www.forestsofaugusta.com
                      http://www.emberheartgame.com

                      Comment


                        #26
                        Looks amazing!

                        I would also love to see navmesh feature before I buy this though.

                        Comment


                          #27
                          Hello? Anyone still here?

                          Comment


                            #28
                            Hey guys! Sorry to take an extra day to get back. It was King's Day in the Netherlands.

                            I will be investigating rendering the nav mesh to the background texture. Thanks for the suggestion and for the people who seconded that. Expect progress updates on this starting next week.

                            Originally posted by CheapModeler View Post
                            Sure. First could we get a little more information regarding how networking works with this?
                            The plugin tracks all actors with "MapIconComponents" added to them. This tracking is done independently by each game client. All minimaps will display the same world though, so long as the actors' position is replicated.

                            As for how the icon appears (texture, size, draw color, visibility, etc), the plugin does not make any effort to synchronize these values. This is the responsibility of the actor that owns the icon. This is by design, as you should know best which attributes to synchronize and which to differentiate per game client. You probably want enemy pawns to appear differently from friendly pawns, which you can do by a texture swap or setting a draw color. Perhaps in your team vs. team game players should only see enemy players if they are in line of sight. Here are snippets that illustrate this, from a project I'm working on:

                            Code:
                            // Updates minimap draw color
                            void AMyCharacter::RefreshMinimapTeamColor()
                            {
                            	const FLinearColor TeamColor = IsLocalPlayerTeam() ? FLinearColor::Blue : FLinearColor::Red;
                            	TeamMapIcon->SetIconDrawColor(TeamColor);
                            }
                            Code:
                            // Updates icon visibility based on whether local player can see character and whether character is alive
                            void AMyCharacter::RefreshMinimapVisibility()
                            {
                            	const bool bCharacterVisibleLocally = LocalVisibility != EVisionTargetVisibility::Hidden;
                            	const bool bCharacterIsAlive = IsAlive();
                            	const bool bIconVisible = bCharacterVisibleLocally && bCharacterIsAlive;
                            	TeamMapIcon->SetIconVisible(bIconVisible);
                            }
                            In my project the above functions are called by OnRep_ functions of any replicated variable that affects the icon's appearance, like Health.

                            Originally posted by CheapModeler View Post
                            Second, we want to press M to show the entire map over the whole screen and then if we press M again it shows just the mini-map. How difficult is it to do that with your system? Or does that work out of the box?
                            This works out of the box. You can create a UMG widget that has two Minimap widgets and a Widget Switcher that toggles between the two based on a key press. The two minimap widgets can have different sizes and one can be configured to follow the player, while the other shows the entire map.

                            This is actually demonstrated in the Example Project, but you do need the plugin to run the project so I'll paste some screenshots of the relevant bits instead. In the example project you can hold Tab to switch between the two widgets.
                            Click image for larger version

Name:	widget_hierarchy.png
Views:	1
Size:	11.2 KB
ID:	1127035

                            Click image for larger version

Name:	widget_graph.png
Views:	1
Size:	110.9 KB
ID:	1127036

                            Pressing a key to toggle instead of holding it works slightly different, because unfortunately widgets can't capture key presses directly. But the bottom line is, the plugin supports differently configured minimaps that you can switch between.
                            Last edited by Zhi Kang Shao; 05-05-2017, 12:22 PM.
                            Journeyman's Minimap - Available on Marketplace - Forum topic - Video

                            Comment


                              #29
                              I managed to include the navigation mesh in the generated background texture:

                              Click image for larger version

Name:	navmesh.png
Views:	1
Size:	746.8 KB
ID:	1127325

                              I will submit this update next week, after making sure this feature is integrated neatly. Including the nav mesh in the generated background will be optional. Note that while in the image the nav mesh also appears in the world, this of course won't happen in your game.

                              Originally posted by kamrann View Post
                              Regards the nav mesh question above, yeah it would be a really nice feature. I'd suggest NavMeshRenderingComponent.cpp would be the place to start looking if you wanted to implement this.
                              Thanks again for this pointer, it helped a lot.
                              Attached Files
                              Journeyman's Minimap - Available on Marketplace - Forum topic - Video

                              Comment


                                #30
                                This is such a beautiful plugin that I'm seriously considering implementing it in my game. Do you know when the ability to have multi level maps will be supported? (i.e. using a zOrder for each level)

                                Comment

                                Working...
                                X