Jump to content

airtonix

Member
  • Posts

    27
  • Joined

  • Last visited

Posts posted by airtonix

  1. Progress so far: 

    # ./fig.yml
    ---
    server:
        image: maxexcloo/arma3-epoch
        hostname: arma3
        net: host
        ports:
            - "10.0.0.20:2342:2302/udp"
            - "10.0.0.20:2343:2303/udp"
            - "10.0.0.20:2344:2304/udp"
            - "10.0.0.20:2346:2306/udp"
        volumes:
            - ./data:/data
            - ../arma3-server-files/:/opt/arma3
        environment:
            STEAM_USER: YOUR_STEAM_USERNAME
            STEAM_PASS: YOUR_STEAM_PASSWORD
            ARMA3_SERVER_PORT: 2342
            ARMA3_SERVER_NAME: YOUR_EPOCH_SERVERNAME
            ARMA3_MODLIST: "@epoch;@epochhive;"
            EPOCH_INSTANCEID: YOUR_EPOCH_INSTANCEID
    
    db:
        image: maxexcloo/redis
        ports: 
            - "10.0.0.20:6379:6379"
        volumes:
            - ./db:/data
        environment:
            REDIS_DB: 0
    
    

    Directory Layout:

    $ tree ./
    ./
    ├── bin
    │   └── configure-hive
    ├── config
    │   ├── server.cfg
    │   ├── server.geo.sqf
    │   ├── server.i18n.sqf
    │   ├── server.network.sqf
    │   ├── server.video.sqf
    │   ├── world.cfg
    │   ├── world.events.sqf
    │   ├── world.global.sqf
    │   ├── world.mission.sqf
    │   ├── world.mission.whitelist.sqf
    │   ├── world.motd.sqf
    │   ├── world.settings.sqf
    │   └── world.voting.sqf
    ├── data
    │   ├── battleye
    │   │   ├── addbackpackcargo.txt
    │   │   ├── addmagazinecargo.txt
    │   │   ├── addweaponcargo.txt
    │   │   ├── attachto.txt
    │   │   ├── bans-epoch.txt
    │   │   ├── beserver.cfg.example
    │   │   ├── beserver.dll
    │   │   ├── createvehicle.txt
    │   │   ├── deletevehicle.txt
    │   │   ├── mpeventhandler.txt
    │   │   ├── publicvariable.txt
    │   │   ├── publicvariableval.txt
    │   │   ├── remotecontrol.txt
    │   │   ├── remoteexec.txt
    │   │   ├── scripts.txt
    │   │   ├── selectplayer.txt
    │   │   ├── setdamage.txt
    │   │   ├── setpos.txt
    │   │   ├── setvariable.txt
    │   │   ├── setvariableval.txt
    │   │   ├── teamswitch.txt
    │   │   ├── waypointcondition.txt
    │   │   └── waypointstatement.txt
    │   ├── bec
    │   │   └── plugins
    │   │       └── watchdog
    │   │           └── __init__.py
    │   ├── @epoch
    │   │   ├── addons
    │   │   │   ├── a2_epoch_weapons_license.txt
    │   │   │   ├── a2_epoch_weapons.pbo
    │   │   │   ├── a2_epoch_weapons.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_assets_1.pbo
    │   │   │   ├── a3_epoch_assets_1.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_assets_2.pbo
    │   │   │   ├── a3_epoch_assets_2.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_assets_3.pbo
    │   │   │   ├── a3_epoch_assets_3.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_assets.pbo
    │   │   │   ├── a3_epoch_assets.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_code.pbo
    │   │   │   ├── a3_epoch_code.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_config.pbo
    │   │   │   ├── a3_epoch_config.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_language.pbo
    │   │   │   ├── a3_epoch_language.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_underground.pbo
    │   │   │   ├── a3_epoch_underground.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_vehicles_1.pbo
    │   │   │   ├── a3_epoch_vehicles_1.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_vehicles.pbo
    │   │   │   ├── a3_epoch_vehicles.pbo.epoch0250.bisign
    │   │   │   ├── a3_epoch_weapons.pbo
    │   │   │   └── a3_epoch_weapons.pbo.epoch0250.bisign
    │   │   ├── keys
    │   │   │   └── epoch0250.bikey
    │   │   ├── LICENSE.txt
    │   │   ├── mod.cpp
    │   │   ├── mod.paa
    │   │   └── README.txt
    │   ├── @epochhive
    │   │   ├── addons
    │   │   │   ├── a3_epoch_server.pbo
    │   │   │   └── a3_epoch_server_settings.pbo
    │   │   ├── epochah.hpp
    │   │   ├── epochconfig.hpp
    │   │   ├── epochserver.dll
    │   │   └── epochserver.ini
    │   ├── keys
    │   │   └── epoch0250.bikey
    │   ├── logs
    │   │   └── arma3.log
    │   ├── mpmissions
    │   │   ├── epoch.altis.pbo
    │   │   └── epoch.stratis.pbo
    │   └── profiles
    │       ├── default.arma3profile
    │       └── users
    ├── db
    │   └── dump.rdb
    └── fig.yml
    
    

    Result: 

    $ fig up
    Recreating arma3epoch_db_1...
    Recreating arma3epoch_server_1...
    Attaching to arma3epoch_db_1, arma3epoch_server_1
    db_1     |                 _._                                                  
    db_1     |            _.-``__ ''-._                                             
    db_1     |       _.-``    `.  `_.  ''-._           Redis 2.8.18 (00000000/0) 64 bit
    db_1     |   .-`` .-```.  ```\/    _.,_ ''-._                                   
    db_1     |  (    '      ,       .-`  | `,    )     Running in stand alone mode
    db_1     |  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
    db_1     |  |    `-._   `._    /     _.-'    |     PID: 1
    db_1     |   `-._    `-._  `-./  _.-'    _.-'                                   
    db_1     |  |`-._`-._    `-.__.-'    _.-'_.-'|                                  
    db_1     |  |    `-._`-._        _.-'_.-'    |           http://redis.io        
    db_1     |   `-._    `-._`-.__.-'_.-'    _.-'                                   
    db_1     |  |`-._`-._    `-.__.-'    _.-'_.-'|                                  
    db_1     |  |    `-._`-._        _.-'_.-'    |                                  
    db_1     |   `-._    `-._`-.__.-'_.-'    _.-'                                   
    db_1     |       `-._    `-.__.-'    _.-'                                       
    db_1     |           `-._        _.-'                                           
    db_1     |               `-.__.-'                                               
    db_1     | 
    db_1     | [1] 08 Dec 10:02:01.389 # Server started, Redis version 2.8.18
    db_1     | [1] 08 Dec 10:02:01.390 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    db_1     | [1] 08 Dec 10:02:01.390 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
    db_1     | [1] 08 Dec 10:02:01.390 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
    db_1     | [1] 08 Dec 10:02:01.390 * DB loaded from disk: 0.000 seconds
    db_1     | [1] 08 Dec 10:02:01.390 * The server is now ready to accept connections on port 6379
    server_1 | /usr/lib/python2.7/dist-packages/supervisor/options.py:295: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
    server_1 |   'Supervisord is running as root and it is searching '
    server_1 | 2014-12-08 10:02:02,889 CRIT Supervisor running as root (no user in config file)
    server_1 | 2014-12-08 10:02:02,889 WARN Included extra file "/etc/supervisor/conf.d/arma3server.conf" during parsing
    server_1 | 2014-12-08 10:02:03,036 INFO RPC interface 'supervisor' initialized
    server_1 | 2014-12-08 10:02:03,036 CRIT Server 'unix_http_server' running without any HTTP authentication checking
    server_1 | 2014-12-08 10:02:03,036 INFO supervisord started with pid 12
    server_1 | 2014-12-08 10:02:04,039 INFO spawned: 'arma3server' with pid 15
    server_1 | 2014-12-08 10:02:05,309 INFO success: arma3server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
    
    
  2. So I've spent the last couple of weeks working on creating a base docker image for arma that is as customisable as possible.
     
    - ubuntu image
      - mount your /data in here
      - steamcmd image
        - specify your steam username/password here
        - arma3 image
          - uses config files from /data
          - mounts /server as /opt/arma3
          - uses steamcmd to install arma3server into /opt/arma3 (if doesn't exist already)

     

     

    I pulled down a copy of the epoch3 server files and here are some suggestions:

     

    Critical changes required to work on linux

    - all folders and filenames need to be lower case (arma3 server does this because it's the easiest way to enforce common naming pattern that works across platforms)

     

    - any references to those files/folders of course need to be updated.

     

    - bec/plugins/watchdog/__init__.py:

      - python modules as a rule shouldn't mess with the system path.

      - when writing out paths, use path.join() (let python decide the appropriate path separator)

      - use sets rather than lists (they're faster)

      - don't use print, it mucks with stdout and stderr, use logger so it can be configured to transport into syslog by project integrator

      - 

      

    - please tell me you're going to be hosting this on github soon

     

  3. Way to flawed. 

     

    While I can concede the logic of your statements, I would perhaps point out that this little bit here is an emotionally charged over exaggeration.

     

    But then most of the polarisation in the gaming community is all about foaming at the mouth about pixels rather than going outside and actually defending your rights.

     

    When a critical mass of people owning devices like occulus rift, this debate will become harder to dimiss with simple "drink a cup of concrete".

  4. Calling it now, I'm keen to get the ball rolling on making EpochArma3 available as docker images for all the linux guys out there.

     

    When done, Linux server operators can use something like Shipyard to orchestrate the speedy creation of new EpochArma3 instances.

    Essentially it'll come down to this for installing on a fresh linux installed with docker

    $ docker run -T --name myworld-data epoch/epoch-arma3-data --ports 
    $ docker run -T --name myworld --volumes-from=myworld-data epoch/epoch-arma3
     
    

    or with fig

    $ wget docker.epoch.com/files/fig/epoch-arma3.yml
    $ fig build
    $ fig up
    

    bam, new self contained server instance installed and running. 

     

    Value Created

     

    All the things you love about virtual machines without all the overhead.

     

    Evidence

    It seems to be possible, this server status report indicates an arma3 server running in docker.

     

     

    @vbawol, hit me up if if you're interested. 

  5. I like the fact trading metals is hard, if we make it too easy for players you're half playing the game for them right?

     

     

    Maca134 has always has his own agenda, If we wanted to use an ethereal money system we would have done so a long time ago. It would have been much easier to setup and manage. However, using the traders was never meant to be safe or easy. If it was people would just run straight to a trader city instead of actually playing the game. 

     

     

    I just want to point out that : 

     

    A shitty user interface is a pretty crappy and obnoxious way to increase difficulty of a game.

     

    Its unimaginative, boring and annoying.

     

    In the end, it adds nothing to the actual difficulty of the game play.

     

    It just becomes another reason to stop playing.

  6. These installation instructions really need to be refined.

     

    There is quite a bit of information missing that is left up to the user to guess or discover through trial and error.

     

    For example : 
     

    1. you start talking about upper and lower case in step one when it really doesn't matter here, since you provide a `tolower` program that recursively makes all folder and filenames lowercase.

     

    2. Despite providing an `./install` shell script that runs `./tolower` you confuse the situation by inserting a one liner shell command (without explaining why it's there

     

    3. Not your fault, but slightly related : The offical documentation talks about editing a "hive.ini" or something... what it doesn't say is where that file is or where it should go...

  7. Yes it would be big decision and a big change for sure. But i think it would be good investment if you want make better standalone games. Modding arma is one thing, making standalone games is another. If Epoch devs takes the time to learn cryengine, and developes Epoch standalone with that engine it would sell very well and after that experience they could do something else with their new skills and with that awesome engine. I would see that as investment for the future.

     

    Eh the only thing worse than making mods for Arma 2/3 is making mods for Cryengine based games... terribad.

     

    Sure if you want something that is super restrictive and will take ages to develop for, then go for Cryengine.

     

    If however you want unparalleled freedom in what you're able to achieve, then you'd be using Outterra or UnrealEngine4.

  8. @vbwol, yep would definitely throw money at an epoch like game in a large game world if it ran natively on linux. (seriously... fuck windows).

     

    But looks like the tooling available to game developers still has a long way to go :

     

    - no headless automated testing clients (in the spirit of phantomJS)

    - heavy reliance on one specific editor (visual studio < lolwut?)

    - still can't edit the map in a text editor. ergo the map can't be created with build tools.

     

    Mainly my problem at this stage is two things :

     

    - Clicking, if the only way to achieve something in the development workflow is to click a button with a mouse operated by a human hand, then you've just exploded the time frame required to release even one line of code.

    - Microsoft and DirectX, Science moves forward by sharing results, the game industry can too when you stop relying on Microsoft. As strange as it might seem, it's still possible to be disgustingly profitable and highly performant while using only Linux.

  9. 4 Digit combos are actually 10^4, because its 0-9 not 1-9, but yes it would actully be better to update it to their number pad thing like for the safes, I would like to see this also

     

    Part of me feels like we should keep the three digit combination locks and add

    - [scrap Circuit Board]

    - [Electronic Wiring]

    - [Keypad] Incredibly Rare

     

    Allowing for a recipe of something like:

    [Digital Lock Mechanism]

    - 1x Scrap Circuit Board

    - 10x Electronic Wiring

    - 1x Keypad

    - 50x Scrap Metal

     

    Then we could also have a recipe like:

    [safe]

    - 20x Metal Panels

    - 8x Metal Poles

    - 5x Wire Fencing Kits

    - 1x Digital Lock Mechanism

     

     

    You could jiggle these numbers around, but the idea is that making a safe, or a stronger lock should require some effort.

  10. Thanks guys, remember that the data isn't entirely accurate. So if you see something that is wrong just drop it in a issue ticket and I'll fix it asap.

     

    The dark theme is a pain for my poor little eyes :/

     

    Yeah I did initially design it for my own needs, so as a basement dwelling neck beard the dark theme helps me when I'm playing at night in game.

     

    I will however start on a light theme that you can switch to (remembering your choice by way of cookie or localstorage or even query parameter).

     

    Here are the hexcodes for the colours I use at the moment:

     

    https://github.com/airtonix/epochdb/blob/develop/src/templates/css/config.scss#L6-L18

     

    The shade1-6 are for item type (recipe, tool, weapon, etc) and the named colours are the actual interface theme. Perhaps you can come up with something?

     

    I pulled the colors for the item types from this blog post: http://niklausgerber.com/blog/flat-ui-color-autumn-edition/

  11. This is about the craftable Wooden Crates, I use these instead of other storage items because they are smaller and more versatile...

     

    However, perhaps it would be helpful for all storage items (safes, sheds, locked boxen, wooden crates, tents) to be able to give them a small label (at least 64 characters).

     

    The end result would be that if I were to give a wooden crate the label of "Wood Building Supplies", then when I look at a crate it would show up in the scroll menu :

     

    [ Wooden Crate: Wood Building Supplies ]

    Gear...

    Something

    Something

    Something

    Darkside...
  12. Before I start here, I want to thank @vbawol and the rest of the team have put into it. It's a fabulous game and I can't wait to see Epoch for Arma 3.

     

    Having said that, the crafting and building wiki for Epoch caused me some frustrations, so I started making one that suited my needs: 

     

    http://airtonix.github.io/epochdb/

     

     

    My initial goal was to a few points: 

     

    - responsive mobile first layout that works nicely in the steam overlay and on my nexus 5

    - search and filter by any word in a recipe, tool or item

    - clearly separate recipes, tools, areas and crafted items

    - clearly show what tools, components and areas are required

     

     

    Contributions & Source Code

    The full source code is up on Github however and I will gladly review and accept good pull requests/tickets.

     

    Next Steps

     

    I'm currently busy doing some other web applications, but when I can I plan to :

     

    - provide meta tags that allow "add to homescreen" on mobiles

    - use swippable tabs on item detail page for "creates", "components", "areas", "tools"

    - provide screenshots of items

    - delay search/filter on keyup instead of immediatly

    - colour theme change?

    - move data to mongoDB ?

    - shopping list calculator

     

     

     

  13. Changing game engine would ruin everything. Most people know who to code for Arma, changing it to this one, who wreck the development for everyone. Move to Arma 3 in my mind is kind of bad, since only a few people can play with there current pc's. But its kind of the same coding, so development seems easy. Plus people would have to re-buy the game.

     

    Eh, I don't even bother developing Arma mods because the language and development tools required are antiquated, frustratingly restrictive and require compiling even in local development mode (which is another rant).

     

    A move to an engine that uses Javascript would actually make it more approachable, the possibilities would be far greater, development cycles would be rapid. Additionally it also seems that the server could be capable of supporting horizontal scaled deployments, which is something practically any game server requires that claims to support large maps and big player populations.

     

    I would be confident in saying that Epoch won't be coming to this engine any time soon (not until a great deal more tooling and system architecture is supplied), but we will see one like Epoch in the next few years.

     

    With regards to transferable knowledge and the value therein, I would say that most of the value is in the conceptual game design philosophy, not the code written.

     

    Remember, BIS are not the heralds of software/game development "best practices", and I believe that writing software in the "deep end", has given the epoch team a good overview and deep loathing of many immutable facets of BIS products.

     
    Despite all that, I eagerly await Epoch for Arma 3.
  14. Forget anything made by Bohemia... it's crap from a software developers point of view.

     

    Head over to http://outterra.com and checkout the tech demo, see that they give you access to use Javascript as the modding language and rejoice that the engine uses all cpu cores.

     

    Features (src : http://www.outerra.com/wfeatures.html

     

    • Realistically looking terrain with high detail
    • Unlimited visibility, detail ranging from thousands of kilometers down to centimeters
    • Real time atmospheric rendering
    • Rendering of vast dense forests and grass
    • Seamless transition from space down to the planet surface
    • Adaptive LOD with continuous transitions. Elevation data are preprocessed using special wavelet compression, the required level of detail is extracted effectively on the fly
    • Partitioned compressed dataset can be downloaded progressively over the web
    • Fractal refinement mimicking the natural processes (erosion, rocks, overhangs)
    • Procedural texture generator combining mathematical models and climatic data
    • Bitmap overlays for specific areas
    • Vector data - roads, rivers, land class polygons
    • ogl_sm.jpgUses OpenGL 3.3
    • Dynamic shadows
    • Fully asynchronous multi-threaded design able to utilize all available CPU cores
    • Terrain and fractal algorithms runing completely on the GPU
    • Stable frame rate system
    • Supports arbitrary and varying resolution of elevation datasets, refined to centimeter resolution by fractal algorithms
    • Embedded web browser allowing for direct web service integration
    • Supports COLLADA 3D model file format
    • Integrates a Flight Dynamics Model library for high fidelity simulation of aircraft, rockets
    • Global physics engine for simulation of vehicle physics and collision detection

     

    For players and storytellers, the game engine is capable of rending a 1:1 map of earth with all that awesome orbit to ground transition  through the atmosphere (imagine the sub-orbital halo jumps!)

     

    I for one would love to see Epoch developed for this Engine.

×
×
  • Create New...