[GAME] EmptyEpsilon

1232426282941

Comments

  • @kwadroke

    i have an Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz 2.60 GHz

    64-bit system

    i have two drivers installed

    Intel(R) HD Graphics 4000
    NVIDIA GeForce 610M

    i usually use the NVIDIA one

  • Added a bit of code yesterday that I was working on for a while now.
    https://github.com/daid/EmptyEpsilon/commit/e8a2f9c9759cf71c4b474f29bd0bf64aa72effb7

    If you create a directory "logs", then every game session will generate a log file logging the state of all ingame objects. This means we can build tools to analyze games afterwards.
    I'm logging as JSON format per line. Which should be easy to parse for just about anything including javascript.

    Note that these log files grow quite quickly. As it currently logs a lot of data every second. The battlefield scenario logs about 3.5MB per minute.

    The "logs" directory is not created by default, and if it does not exist this functionality is disabled. To prevent this feature from filling up your harddisk.
  • daid said:

    Added a bit of code yesterday that I was working on for a while now.
    https://github.com/daid/EmptyEpsilon/commit/e8a2f9c9759cf71c4b474f29bd0bf64aa72effb7

    That commit is broken in a few spots. Replied to the Commit with issues.
    daid said:


    If you create a directory "logs", then every game session will generate a log file logging the state of all ingame objects. This means we can build tools to analyze games afterwards.
    I'm logging as JSON format per line. Which should be easy to parse for just about anything including javascript.

    Note that these log files grow quite quickly. As it currently logs a lot of data every second. The battlefield scenario logs about 3.5MB per minute.

    The "logs" directory is not created by default, and if it does not exist this functionality is disabled. To prevent this feature from filling up your harddisk.

    How much detail does these logs generate? Could this be used in the future to generate a playback of the scenario?
    Once the problems of the commit is fixed, we will look into the logs to see what can be learned.
  • New commits to EE & SP fixed the compile problem.
  • The logs are not a 100% playback. So it does not provide a demo functionality. The goal is post-game analyze.

    "See, this is where you messed up. This is where you forgot to raise shields, and got hammered with missiles"
  • Yeah, I see now that it logs about once a second. Which wouldn't work for a demo. This will probably help with scenario creators to help debug.
    Looks like the Basic Scenario runs about 900K a Minute, in my initial test.

  • Note that I also want to log damage events later on, as 1 second intervals are nice for an overview of the game, but during battles you most likely also want to see ship X damaged ship Y for Z with damage type Q.
  • @daid

    i dont know how you did it but the new release fixed my warp problem.
    thanks!
  • jkru2133 said:

    @daid

    i dont know how you did it but the new release fixed my warp problem.
    thanks!

    Then it was most likely the memory corruption.

    (Destroying asteroids and mines caused random memory corruption when they where removed from the AI pathfinding code)
  • I pushed a few interesting side-things to the source tree yesterday.

    One is an example of the exec.lua HTTP API:
    https://github.com/daid/EmptyEpsilon/tree/master/www

    The other is my log viewer:
    https://github.com/daid/EmptyEpsilon/tree/master/logs

    As I said, with the latest code, it can generate log files if you create a "logs" folder. This HTML based tool can load and shows these logs. It's a bit basic right now. But you can scroll trough time and view where all ships and stuff where at a certain point in time.
    I hope it will help identify problematic parts in missions and can be used to show crew where they went wrong after the game.
  • Thanks Daid for the http api example !

    But I can only select a player ship in the http api (with player = getPlayerShip(-1)). Could it be possible to select another object ? And is it possible to catch a scenario variable ?

    And, thanks for the log too, it will be very helpful.
  • You cannot catch a scenario variable directly. However, each object is a table, and those tables are shared between all scripts.

    So if in the script you do:
    
    player = PlayerSpaceship():setTemplate("Atlantis")
    player.magic_number = 5
    
    And you do:
    
    return getPlayerShip(-1).magic_number
    
    You should get 5 back.

    I intentionally not share the "global" environment to prevent you from messing up the scenario from exec calls (or comms scripts) by mistake.

    You can also "query" a position in space for objects with the getObjectsInRadius(x, y, r) global function.
  • It could be enough. Thanks.
  • I just found this last week and it looks amazing. I can't wait to play the problem is finding people here to play with. (New Mexico)

    My first thought when I learned about this may be a little backwards from what you had in mind, but I think it would be awesome to have physical controls (buttons, switches, blinky lights, motorized sliders, joystick) without the keyboard/mouse or touchscreen. I know that the science and relay stations will need either touch or a mouse, but as much as possible removing those to me would add to the experience. I may be weird but I like the tactile sensation of physical controls.

    If the hotkeys are working for any available action then the only other thing needed would be some sort of feedback for everything (shields on, reactor set to 200%, heading, coolant for x system, ect...) My first thought was using the DMX that is already in place, it can send an 8 bit value which should be enough for everything but heading (can use two channels for that one for 0-180 and one for 181-359) It will take up a lot of channels, but with 512 available I doubt that will be a problem.

    One other thing I can't remember if it was this thread or another one on the forum, but I read that EE didn't work on Raspberry pi because it didn't support opengl. Apparently there is a new driver now and people seem to be able to use it now. I hope EE will work on it because it will make putting together a bridge a lot cheaper and the gpio pins will help in implementing the controls.

    Sorry for the long post. I've been reading the forums for the last few days and I didn't want to post something only to find out that it was already talked about.

    I can't wait to get a bridge together so I can play.
  • 2 years ago, when we started, we initially wanted to build a hardware based space simulator. Bit like the "HMS bikeshed" (google it).
    However, the amount of work required to get it working, and storage space required made me switch to a "simpler" setup.

    I will redo the whole hotkey configuration, as current code isn't working that well.

    DMX works quite well for simple hardware output. For more advanced features, you could look into the HTTP API. (Which could also be used for hardware input) Does require a whole lot more knowledge about programming.

    The Pi2 (and by extension Pi3) sort of work, but performance is sub optimal, and the OpenGL drivers crash from time to time when running EE.
  • A bridge sim in a caravan, that is awesome!

    I was afraid you were going to say the HTTP API was the best way to do it. I know DMX as I work with it a lot and my coding is limited to simple arduino stuff so far, that's why I suggested that route.

    Well I've been debating on learning more about programming and I guess there's no time like the present. :) Has anyone put together any documentation on the HTTP API stuff yet?
  • It's currently the best way to do it. When I re-write the hotkey system, I want that to be prepared better for hardware controllers as well.
  • So, few things have been happening on the EE side.

    Huge stream of small tweaks/fixes from "oznogon". Mostly on the new log viewer, and a few other menus and stuff. But all good. The log viewer looks a lot better now in the latest code.
    For those that missed it, the log viewer is in the source code, and can be used to view a past game and scroll trough the time.

    The HTTP API example also got updates, which makes it look better and now also has examples for the get and set API.


    On the game side, I've made the jump drive distance configurable per ship. Which allows for long distance jump freighters. I've changed the in-game ships log view, which is now showing the last log line at the bottom of the screen, and can be opened by clicking on this line. Instead of being a different "station view" screen.
    And on engineering, you now see the effect of each different system you can boost power off. So that makes it a bit more clear what boosting power does.
    (For example, none of my experienced players knew that putting more power in shields reduces shield damage)
  • I'm really excited that this project exists. Thank you so much! I've been a frustrated Artemis player for years, and here you are!

    Could I get a version of the game that doesn't have friendly ships viciously swear at the Relay officer in response to being hailed? Or an ELI5 walkthrough of how to adjust the default response text to a hail?
  • Never mind; found it.
  • Yeah, those curse words should probably be replaced.
    I usually run this at Cons and kids play a lot. Usually they don't do much extra hailing to come across it.
  • https://github.com/daid/EmptyEpsilon/commit/2c2e6fa91bd9087eeea33948bd52119f0c719063

    Let me know if there is more. I can be a bit too... expressive at times :-)
  • Thank you for this!

    I just ran a 3-player game, and it was a little rough, but I'm extremely excited about getting a full crew of six together as soon as possible.

    I'm champing at the bit to do some GM'd modules, and all the tools are there right now, but consider this my +1 vote for making a way for the GM to respond to player-initiated hails.

    And again, thanks so much for doing this.
  • I'm trying to put together a huge multiplayer game of this on this coming weekend. You've made an evangelist of me!

    I'm curious if you have any kind of timeline on when the GM will have an Intercept Comms ability, as I'd like to start a small D&D-style gaming group using this as our system. I can bribe you if necessary!
  • No bribes needed. It's near the top of my todo list. Not giving of estimations, as it's a hobby.

    I am 90% done with actually documenting the steps I took to make a Linux PXE Netboot setup. Which is something at the very top of my list, as it makes is so easy to run large setups, and I fear that the machine that is currently running this setup for me could fail at any moment.
    This is my script from a "bare" Debian installation (minimal server installation, without desktop environment)
    https://gist.github.com/daid/ac6e061faaae4fddccd2f8ed919537fe
    Note that this WILL run a DHCP server and reconfigure your network setup. If you don't know what that means, do not touch this :-)
  • daid said:

    I am 90% done with actually documenting the steps I took to make a Linux PXE Netboot setup. Which is something at the very top of my list, as it makes is so easy to run large setups, and I fear that the machine that is currently running this setup for me could fail at any moment.
    This is my script from a "bare" Debian installation (minimal server installation, without desktop environment)
    https://gist.github.com/daid/ac6e061faaae4fddccd2f8ed919537fe
    Note that this WILL run a DHCP server and reconfigure your network setup. If you don't know what that means, do not touch this :-)

    Looks like you're overwriting one of your scripts. I added comments to the Gist.


    I might use parts of this script for an idea I had yesterday. I thought about setting up the Raspberry Pis to run the games from the server using an X-server. That way all the processing is being done on the PC and just using the Pis as a thin client. Not 100% sure it will work, but going to give it a try.

  • I was reading through the UI thread and the talk about the shields caught my eye. I was thinking maybe instead of front and rear shields maybe it could be primary and secondary shields with the ability to aim the emitters. They could default to full all around coverage when they are turned on. That would remove the need to add additional power sliders in engineering for each additional shield and allow shields to be strengthened towards the enemy. For the larger ships the secondary shields could have multiple emitters. You could aim them all full front for an attack or full rear for running away. The only catch is who aims the shields. Anyway it's just a thought, you've mentioned you weren't sure how to add more shields and I thought it might be a cool option.

    On another note I was trying to compile for Mac and I'm not sure if I'm doing something wrong or if it still doesn't work for Mac. I remember seeing somewhere that it wasn't working, but it's more than likely I'm doing something wrong as I've never done this before. I installed it on my PC but I mostly use my Mac so I was hoping I could put it on here too.
  • @Kwadroke the script is unfinished. This was a recent addition, so I did not test it yet.
    Wat is still left, is starting EE on the client after booting. And settings management.

    @Maphesto right now, I've just made it so that more shields are divided properly in the front/read shield systems. I think shield aiming mechanics might be a bit too complex.

    Compiling on Mac is always shit. But note that even if you get it compiled, the science and relay stations won't work properly due to a missing OpenGL extension.
  • daid said:


    Compiling on Mac is always shit. But note that even if you get it compiled, the science and relay stations won't work properly due to a missing OpenGL extension.

    I know it is definitely not the best way to deal with this, but... I think as you said earlier, the only problem with the OpenGl extension is with the use of fog of war associated with nebulas. Do you think it could be worth (and simple maybe) to add an option in the server or option menu to disable the fog of war/nebula element ?
Sign In or Register to comment.