Loading...   

[Show Table of Contents]


This is a concept page for the new EOC 2.0 Commander Interface.

What: Is a complete EQEmu Visual World interface made to maximize time, efficiency, creativity for development, world building, database editing, management, debugging and much much more.

Why: Much like the goals in mind for EOC 1.0 BETA and any other tools, we wanted to amke tools that maximize the potential of EQEmu and the members of the community

Akkadius - This will be the greatest resource platform to date, an endless amount of amazing utilities and possibilities will be realized out of this platform. I call it a platform because that's exactly what it will serve, a very large medium to build many tools around.


§Commander Interface (Web Browser) Intro and Powerful Possibilities

§So what is this?

  • This will be a browser based interface that connects to a dedicated webinterface.exe binary that will relay messages to world (exe) process and zone (exe) processes
    • It will be able to stream REALTIME information FROM and TO the server, which unlocks an incredible amount of hooking potential and a very large amount of possibilities in terms of tools, management, editing, building, debugging and so so much more.
    • Imagine being able to click on a NPC on the map, view very quick information such as buffs, hatelist information, their target, current loot, active stats, active HP all realtime as the server updates its information? We cannot achieve this with a REST API very gracefully as it requires tons of background polling. Using a realtime socket based protocol with Javascript as the client on the browser end unlocks tons of potential as it has proved to be extremely performant and be able to handle a ton of information. We can use this same stream of information to update many different pieces of the interface indepedently based on the information that we send differently through the socket stream.
    • Imagine being able to
      • See NPC's getting aggroed in a zone realtime, as their representative icons glow red
      • See PC's move realtime, see any realtime data about their status to help an administrator have visibility into their characters state in the zone with just about anything
      • Edit a NPC's grid right on a 2D map, with the server calculating best Z for the coordinates sent back up to the server (Very quickly changing grid points, wander types and their pauses)
      • Having a client (Your developer character) be a camera controlled by the webinterface, so that as you have your web browser selected on elements on the map, you can see on another screen with your client what is being edited
      • Copy NPC's very quickly and place them on the map and update the gameserver database
      • Change NPC attributes such as textures or race right in front of your clients face using webform tools (Sliders, dropdowns, checkboxes) and seeing the immediate result right in front of your clients face which is grappled to the editing object
      • Click-Drag and highlight a group of NPC's to drag their stored positioning to another location
      • See below 'Feature Hitlist' section for more
  • We are currently working on getting the backend stuff all in place to make this happen. KLS is working on all of the library issues related to getting websocketpp to work mentioned in this page Project Web Sockets
  • You will see a map like you see below but it will display everything in realtime. The map will be wrapped with menus and toolbars to give you information based on everything that resides in the map. Below is an example bulleted list of the breakout of possibilities that can and will be realized with this interface.
  • What will show immediately on the map:
    • PC's
    • NPC's
      • Show Proximities
      • Show aggro radius'
    • Door
    • Objects
    • Zonelines

Early Realtime Map Concept (Web Interface) *Remember this is only very preliminary alpha work

http://eoc.akkadius.com/EQEmuMap2D/loadmap.php?zone=crushbone

If you want to load other zones, replace zone= with the shortname

§Feature Hitlist

  • As soon as we can start work on the API, this is the feature hitlist that I am anticipating on fleshing out in more of a task list oriented fashion. This is to organize my thoughts for the project and easily share them with others without having to explain myself over and over again.

§Web Based Quest Script Editing

  • Yes I'm not joking, there should be no reason we can't utilize the socket stream to read the quest files that reside on the server as well as write them.
    • This keeps us from having to configure servers to utilize some sort of file transferring protocol such as FTP or SSH when we can just have our server do it
  • On the web interface side we would use the following web library for syntax highlighting and rich features
  • With this, we should be able to have popup windows have several scripts up in the web browser at a time editing very quickly, having quick access to #reloadquests and #repop in the editing menus

§Reloading

  • Ideally, just about anything in the server binary we should be able to intiate the reloading of memory based functions or any other function for that matter that we find useful
    • These would be located in a menu for quick access in the commander interface, things that mirror functions such as:
      • #reloadquests
      • #repop
      • #repop force
      • #reloadstatic
      • #reload rules
      • #reload task (Task Data)
      • Just about anything else that we seem fit

§Doors

  • Doors should representated by a door-oriented icon on the map
    • Be able to manipulate the position of a door realtime and see it from a client camera
    • Manipulate heading of a door and see from a client camera
    • Be able to change door model realtime by using a select dropdown of models we've datamined from client files for a specific zone or globally

§Object

  • Not much different from Doors
    • Change an object type, be able to place a quick aug pool or tradeskill item on the map with ease, witness positioning from a client camera

§NPC

  • Anytime you edit a NPC's attributes, you can quickly hit save and repop JUST that NPC instead of the ENTIRE zone (Huge time saver)
  • Edit Armor texture realtime (Follow with Client Camera)
    • Be able to edit armor texture colors based on leather/plate/chain/etc visually using a sub-editor
    • RGB Selector to save and edit armor sets
  • Show Race Image
  • Show Brief statistics
  • Show NPC proximity (On map)
  • Weapon Preview (GL Viewer maybe?) (Static images)
  • Realtime NPC Size Slider
  • Realtime Facial features slider
  • Realtime Set Animation status of NPC
  • Show realtime
    • Hatelist
    • Aggro Radius when selected (On Map)
    • Buffs
    • Equipped
    • Loot
    • Line of sight
    • Any other usefuls
    • When an NPC is aggroed

§Zone Level

  • Zone Sky Manipulate Realtime (Witness on client realtime update)
    • Fog, Density, clip etc (HTML Slider)
    • Color - RGB Sliders
    • Zone Clip Plane (Slider)
  • Zone EXP Multiplier
  • Adjust zone rules realtime
  • Lock/Unlock
  • Reboot/Shutdown
  • Other zone based functions
  • Hook loading functions to reload memory and such

§Debugging

  • Be able to open a debugging stream to see MySQL queries, what is being executed by the zone process, as well as how long they are taking
  • Possibly be able to stream C++ profiling information to display
  • Be able to stream the actual zone logs as they are happening

§Map

  • Show quick information regarding anything that would be useful
    • NPC Proximities
    • Task Proximities
    • NPC Aggro Radius
    • Doors
    • Objects
    • PC's
    • Entities in combat toggle to a red state
    • Show zonelines
    • Other things I'm not thinking of right now