Entity Tracker GUI

Server and Client that provides online tracking and management of artemis-odb World state.

License

License

Categories

Categories

Net GUI User Interface
GroupId

GroupId

net.namekdev.entity_tracker
ArtifactId

ArtifactId

artemis-entity-tracker-gui
Last Version

Last Version

0.3.0
Release Date

Release Date

Type

Type

jar
Description

Description

Entity Tracker GUI
Server and Client that provides online tracking and management of artemis-odb World state.

Download artemis-entity-tracker-gui

How to add to project

<!-- https://jarcasting.com/artifacts/net.namekdev.entity_tracker/artemis-entity-tracker-gui/ -->
<dependency>
    <groupId>net.namekdev.entity_tracker</groupId>
    <artifactId>artemis-entity-tracker-gui</artifactId>
    <version>0.3.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.namekdev.entity_tracker/artemis-entity-tracker-gui/
implementation 'net.namekdev.entity_tracker:artemis-entity-tracker-gui:0.3.0'
// https://jarcasting.com/artifacts/net.namekdev.entity_tracker/artemis-entity-tracker-gui/
implementation ("net.namekdev.entity_tracker:artemis-entity-tracker-gui:0.3.0")
'net.namekdev.entity_tracker:artemis-entity-tracker-gui:jar:0.3.0'
<dependency org="net.namekdev.entity_tracker" name="artemis-entity-tracker-gui" rev="0.3.0">
  <artifact name="artemis-entity-tracker-gui" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.namekdev.entity_tracker', module='artemis-entity-tracker-gui', version='0.3.0')
)
libraryDependencies += "net.namekdev.entity_tracker" % "artemis-entity-tracker-gui" % "0.3.0"
[net.namekdev.entity_tracker/artemis-entity-tracker-gui "0.3.0"]

Dependencies

compile (2)

Group / Artifact Type Version
net.namekdev.entity_tracker : artemis-entity-tracker jar 0.3.0
com.miglayout : miglayout jar 3.7.4

test (1)

Group / Artifact Type Version
junit : junit jar 4.11

Project Modules

There are no modules declared in this project.

Hello, Traveller.

So this repository branch is for development of new user interface for artemis-odb debugger. It was triggered by new powers by new serializer I've developed that was pretty much universal (you can read about that on my blog). I've imagined many features for this on top of artemis-odb but the user interface was something that bugged me. So I'm changing it.

The story of huge refactor

Originally, the interface was made with Java Swing. Swing was buggy, took lots of time on every small change in layout design and internals of Java Swing seemed to create lots of memory garbage. I was somewhat OK with performance since I neved tried a huge/real project (yet). But I totally didn't felt OK with the speed of development. I wished for declarative UI. So I did few things:

  • moved from Java to Kotlin
  • refactored everything to kotlin-common which enabled me to build both JVM server and JavaScript client
  • ported snabbdom (Virtual DOM library) and elm-ui to Kotlin and coupled them together

This was tough decision since it's no more possible to run UI within game process. On the other hand, It felt very convenient when I had to only restart the game during development and debugger was there waiting in the background. So now everything is going over network which was just an option before.

What's next?

At the moment of writing this I have almost redone old UI to but I'm thinking forward. I'd be happy to hear suggestions for next features. What are your usecases of debugging?

This is what I'm planning on:

  • modifying component's values
  • adding/removing entity components
  • marking entities I want to track, getting noticed when they get destroyed
  • filtering entity list
  • searching for entities having certain values
  • remembering some things for diffing their states later
  • pausing the world
  • turning on/off managers and systems
  • calling in-game procedures written by user and registered to the debugger

Versions

Version
0.3.0
0.2.1
0.2.0
0.1.0