[GAME] EmptyEpsilon

17810121341

Comments

  • Uploaded a bugfix build today.

    This fixes the mines not working issue, problems with radars when the window is taller then wider, missing script functions. And possibly the server crash that people are reporting.
  • Thanks for the update, grabbing it now to check it out.

    I was thinking of jumping in and trying to script up a nice tutorial mission, and as such I'm wondering if the Science Scanning mode can be set mid-game? I'm thinking for the Science station it would be good to be able to say "Here's one type of scanning, try it on this ship. Okay great job, now here's a harder mode, it works like this..."

    Also it seems like it would be pretty cool to be able to force a certain scanning mode for a mission. For example having most stuff easily scanned, but then suddenly you come up against a ship that has been designed to resist your scans and the science officer is suddenly required to mess with the modulation sliders.

    Anyways thanks very much for what you've produced, it's great and I'm hoping I can contribute in the future.
  • The idea was that you could set custom scan values on objects. But looks like I forgot to implement this part.

    Adding on this mechanic is the "Artifact" object, which can look like anything in the game, can be set so it can be picked up. And the idea was that you could set custom scanning parameters on it. But looks like I forgot to create an API for that.

    So expect this soon :-)
  • daid said:

    ...So expect this soon :-)

    Awesome!

    While we're discussing things that I want but lack the skill to implement, my current list includes:

    1) Red Alert toggle (with sound and ideally also visual cues across all stations)
    1a) Other Alert Status options? For example if the Captain has Relay signal Condition Blue (an example I found here) then the Weapons officer knows they're not getting a torpedo off any time soon. Likewise the Yellow Alert might mean Engineering ensures power needs to be available to the shields, beams and missiles though they might not be in use yet.

    2) Some sort of indication of the actual size of a ship on the individual displays (especially Weapons/Helm) as I've seen a fair bit of unintentional hull-on-hull action from Helm having difficulty judging the distance to larger enemies.
    2a) Potentially later iterations could include an actual silhouette matching the shape of the ship in question.
    2b) Maybe only for ships that have been scanned?

    3) Some kind of glitching on a station when related components are damaged (e.g. Damaged beam emitters might cause a degradation on the Weapons/Tactical display). This should probably be optional (or at very least intermittent rather than constant) though, as one man's cool immersive effect might be another's unplayable garbage and could put a lot of pressure on engineering.

    4) The ability to eject the Warp Core(when necessary of course) :tongue: Though that can probably be simulated by constantly setting the damage for that system, it doesn't actually require Engineering to do anything.
  • 1) Alert levels shouldn't be that hard to implement. It's just a "value" on the ship that gets set by the Relay station, and then all stations have an "overlay" with different effects already, so this is just an addition to those overlays.

    2) Yes, this is much needed. Not sure how to do this yet. Especially with the really large ships this is an issue. The 3D main screen view sometimes helps, but with the really large ship this is a real issue (Battlestation for example)

    3) Bit tricky, there is already the overlay done on different controls when stuff is damaged. But a general spark effect when things are damaged could be implemented. But getting "particles" to look really good is quite a bit of work. (Particles are usually the way this is implemented)

    4) When do you need to eject the warp core? When it is overheated? Damaged? Engineering has a lot of buttons already. Not sure what the benefit is, other then "they do it in star-trek" ;-)
  • daid said:


    4) When do you need to eject the warp core? When it is overheated? Damaged? Engineering has a lot of buttons already. Not sure what the benefit is, other then "they do it in star-trek" ;-)


    Oh absolutely, I just like the idea of including some kind of scenario where the Warp Core is too dangerous to keep, making the poor engineer eject it and limp home on Impulse :)
  • HOU5E said:


    4) The ability to eject the Warp Core(when necessary of course) :tongue: Though that can probably be simulated by constantly setting the damage for that system, it doesn't actually require Engineering to do anything.

    What about having the mission script add a Eject Warp Core button to the Engineering screen? That way ejecting the warp core it doesn't have to be added to the game code itself. Plus that could open a whole new set of possibilities.
  • Hi,

    I'm trying to put a planet in the background of EE, is there any way to do it ? I tried to modify the resource Stars.png but having 6 planet around me was not the intended result :-)

    Besides, is there any way to modify the bearing of missile tubes in model_data.lua ? It would be fun if a ship could fire broadsides of missiles.
  • Missile tubes are always pointing forwards right now. Problem is the UI here, how do you communicate to the user which tube is which direction?


    For long distance planets, you could use the same rendering method as the skybox nebulas:
    https://github.com/daid/EmptyEpsilon/blob/master/src/screenComponents/viewport3d.cpp#L111
    Does require custom code.
  • Thanks for the code and nice GUI for Red Alert.

    For the Missile Tubes UI, I would see the same thing as for beams, a red line pointing in the direction of the bearing of the missile tube. The number of the tube would be next to the line. Though it might not be beautiful .
  • kwadroke said:


    What about having the mission script add a Eject Warp Core button to the Engineering screen? That way ejecting the warp core it doesn't have to be added to the game code itself. Plus that could open a whole new set of possibilities.

    Sounds great but of course I wouldn't have the first idea as to how to do that :)
  • @HOU5E, That would be something that would be implemented in the game itself.
  • I think on the broadside, there should be some sort of limitations, ie different torpedos(missiles).
    Such as shorter range, none homing etc. Most sci fi ships have torpedos that home fairly good within -/+ 90 of the direction they are pointing (star trek for example, or u boats in the later stages of the war).
    Star wars is the same way, though some ships do have starboard and port tubes with the homing ability or mass projectiles.

    Or turreted tubes, which in my experience is generally due to the fact the ship can not mount a large amount of tubes and/or provide power (man or otherwise).

    I like this idea, but I think it can break the game if not done correctly. I used to design ships for my rpgs using a lot of detail (i.e. power consumption, space, manpower etc), so I have gone through the pain of trying to squeeze everything in I can!!

    The red alert looks fantastic!

    just my two cents. And I like the warp core ejection idea still :smile:
  • I really like the Red Alert overlay, is that for all screens or just Relay?

    Also though DMX lighting is cool and all I'm thinking your average user is far more likely to have spare tablets or be able to run extra clients to spare monitors, so was wondering how hard it would be to have an Alert Status "Station" along the lines of the Ship Window but it turns bright yellow/red depending on the alert status? Where possible we play with a projector providing main screen and the lights dimmed or off altogether so a couple of monitors could have a real impact on the room lighting without too much effort.


    What is displayed when all is normal?
    Generic ship technobabble announcement/reminders scrolling along the bottom? Ideally the defaults can be overridden by mission scripts (so you can trigger "Warp Drive Disabled", "Incoming Transmission" or "Tuesday Night Is Taco Night" as appropriate for the story). My ugly mock-up is below.
    image

    What is displayed when alert is triggered?
    Default scrolling text during elevated alert status would just state the status (which I guess has the advantage of being colourblind friendly) as below.
    image
  • Sorry, the mock-up when all is normal should be at image.


    Unrelated, I have been trying to get the code to build from GitHub without success, I think I'm bumping into differences between what the mingw.toolchain file expects (which I'm guessing might be based on the build being done via a linux box) and what I have. For example the file specifies i686-w64-mingw32-gcc whereas I have mingw32-gcc.exe. If anyone has any pointers or could link me to a good tutorial it would be appreciated, otherwise I'll continue muddling on my own :)
  • @HOU5E, During my testing, the Alert Status should show up on all screens. The buttons to trigger is only on Relay.
    I've been thinking along similar lines as you about a Red Alert screen. Although, I wasn't planning on using it to light the room. I made one by creating an empty screen just for yellow & red alerts. I need to brighten the alert indicators up a bit so it shows up better.

    I normally build my Windows .exe file on Linux, so I haven't had the problem. On Windows, I build using Code::Blocks. If I had to guess, you shouldn't need the mingw.toolchain file when you build on Windows.
  • kwadroke said:

    @HOU5E, During my testing, the Alert Status should show up on all screens...

    ...I normally build my Windows .exe file on Linux, so I haven't had the problem. On Windows, I build using Code::Blocks. If I had to guess, you shouldn't need the mingw.toolchain file when you build on Windows.

    Thanks @kwadroke, good to know in all cases. Yeah I'm trying to build on Windows using Code::Blocks so perhaps I'm overthinking/overdoing it. I could just stand up one of my poor forgotten boxen but it would be nice to be able to build directly via Windows. I might just revert what I've done so far and try to start again :)
  • HOU5E said:


    Yeah I'm trying to build on Windows using Code::Blocks so perhaps I'm overthinking/overdoing it.

    What errors are you getting when you build using Code::Blocks?
  • Well I was getting a different error (I believe asking for \SFML\System.hpp) before I started moving \SFML-2.3.2\ sub-folders into ..\GitHub\SeriousProton\. I assume that's right, I spent some time trying to figure out how to simply specify where SMFL is but I'm highly ignorant around this tool. Now that's sorted I'm getting the following and I just don't seem to have the requested file anywhere:

    ||=== Build: Debug in EmptyEpsilon (compiler: GNU GCC Compiler) ===|
    C:\Users\\Documents\GitHub\SeriousProton\src\engine.cpp|16|fatal error: exchndl.h: No such file or directory|
    ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
  • @kwadroke I just found this issue from earlier in the year where you advised you had to use the TDM (SJLJ) version of SFML, I'm using GCC 4.9.2 MinGW (DW2) - 32-bit currently so sounds like that's a good next step?
  • exchndl.h is part of a somewhat newer dependency. It's what creates the .RPT file for crash debugging.
    You'll need to download a release from http://github.com/jrfonseca/drmingw/releases or check out the repo from http://github.com/jrfonseca/drmingw and compile it.

    I have an older version of GCC (I think). So that's why I need the SJLJ for my GCC. You might be able to use the DW2 version of SFML since it would match your GCC version. That being said, the error you are getting is due to the drmingw being missing.
  • @kwadroke you're a fantastic help! I downloaded the latest release (0.7.7) from the link you provided above and now have a build running successfully. The resulting .exe is complaining that I don't have sfml-audio-d-2.dll on my PC (which of course I do) but I can work on that when I get home. Thanks again!

    Full Disclosure for anyone trying to use this thread to figure out what's going wrong for them: Part of the problem at one point here here was that I got myself confused between what should be in the Project directories vs what should be in my CodeBlocks/MingGW directory etc. I shouldn't try to solve problems like this at 03:00, possibly ever...
  • HOU5E said:

    The resulting .exe is complaining that I don't have sfml-audio-d-2.dll on my PC (which of course I do) but I can work on that when I get home.

    Drop the sfml-*.dll files in the same directory as the EmptyEpsilon.exe file. That should solve your problem.
  • Thanks @kwadroke, I can run the file but it immediately crashes. However with all my clumsy attempts at getting this build working before you started helping it's probably best to nuke it all from orbit and start fresh to ensure there's not some silly edit in there somewhere.

    Of course just in case it contributes to the greater good, an excerpt from the .RPT file follows:

    Error occured on Thursday, December 31, 2015 at 00:21:42.

    EmptyEpsilon.exe caused an Access Violation at location 68EC25C1 in module sfml-graphics-d-2.dll Reading from location 00000000.


    Incidentally, I've grabbed myself a copy of Cmake but from what you were saying earlier it would appear I don't need it when building on Windows, is that correct? If I understand correctly I do need Code::Blocks, SFML, MingW & DrMingW?
  • HOU5E said:


    EmptyEpsilon.exe caused an Access Violation at location 68EC25C1 in module sfml-graphics-d-2.dll Reading from location 00000000.

    That's above my head. @daid will probably need to look at this.
    HOU5E said:

    Incidentally, I've grabbed myself a copy of Cmake but from what you were saying earlier it would appear I don't need it when building on Windows, is that correct? If I understand correctly I do need Code::Blocks, SFML, MingW & DrMingW?

    CMake is only needed if you're not using Code::Blocks.
    Code::Blocks comes with MingW, and you just have to get SFML & DrMingW.


    I am trying to set up a build server at home that will do "daily" builds and bundle just the EmptyEpsilon.exe file. It will be zipped up along with instructions for updating/setting up, uploaded to a Dropbox public share, then update a json file with links to the new file. That file can be pulled into a HTML doc so people can find the files. I probably won't keep the zip files for very long (a week or so?) since I'm not trying to replace the official builds. The DLLs don't change often, so I'll probably have a somewhat static zip file for those available. The other files would need to come from GitHub itself.
    I've got it mapped out in my head, I just need to finish the OS install and then script all of this.

  • @HOU5E, about your red alert screen; I saw in the Script Documentation (generated by the python script) that the getAlertLevel function is able to be called from scripts, as well as the webserver. I created a basic html page that generates at least the colors for the alerts - https://gist.github.com/kwadroke/6f4aa0837a5be0621552
    Right now it's not displaying anything but Red, Yellow, or black backgrounds depending on the status.

    I did run into a CORS problem with this file. I couldn't get it to work without a one line change to SeriousProton's web server.
    I added this to line 301 in SeriousProton/src/httpServer.cpp
    reply += "Access-Control-Allow-Origin: *\r\n";
    I then (re)compiled EmptyEpsilon.
  • Thanks @kwadroke, if I run the build directly from Code::Blocks it works just fine but it's the .exe that is produced that keeps crashing when I try to run that. Meanwhile the idea of regular builds sounds pretty cool.

    Played around with the alerts running in Code::Blocks and thought they were very cool, though it gets a bit busy for engineering trying to see through. Wouldn't say it's a big concern though. Would be cool if it could be indicated on the main screen as well, I had a bit of a play with trying to stick to the same aesthetic while keeping the Main Screen relatively clear, but I'm sure Daid could do a lot better than this.

  • I was wrong about needing the CORS fix. Daid commented about this in the SeriousProton issue tracker. Just need to create a www directory in the main EE folder and put the file there. I updated the Gist to allow it to work.
  • I have submitted a commit introducing the capacity to have custom icons for ships and stations : if the ship is identified, it will display the custom icon. If not, it will display the standard radar arrow.
    image(
    (Here, on the Helm, I've added custom (non-free, so I did not commited them) icons for fighters. HNS Parangon having no icon is a fluke on my side)

    image
    (Here, on Science Officer's station, we can see unidentified vessels emerging from the nebula on the left)

    The main goal is to enable, in the future, different icons for vessels class/types, in order to have a more readable action map, as well as custom (you can set them via LUA scripting). Right now, every vessel class have the default icon.
    Your thoughts ? Ways I thought to make it better :
    - Default to "RadarArrow.png" if blank.
    - Make that an option that can be turned on or off.

    After that, I will be looking into a fluke into the comms I remarked while testing my scenario :
    image
    (Did not really looked into that right now)

    Overall, trying to figure things out is really improving my understanding of C++ :)
Sign In or Register to comment.