Chaosforge Forum

  • May 24, 2024, 05:11
  • Welcome, Guest
Please login or register.



Login with username, password and session length

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - theduck101

Pages: [1] 2
1
Sorry, gonna have to sit this one out - been swamped at work (working this weekend). Haven't even had a chance to have a look at 0.9.9.5 yet :-(

2
Discussion / Re: Ubuntu Package
« on: December 21, 2011, 08:07 »
Alrighty, I've checked it out and the changes required for enabling a site-wide install on Linux/FreeBSD for 0.9.9.6 are minimal.

As usual with Linux there's always more than one way to do this. Some apps have convoluted configuration schemes that may/may not be applicable to DoomRL. I've gone with the simplest scheme.

The basic rundown:

- When DoomRL starts it should check it's current path for the lua files and doomrl.wad. If all these files exist run DoomRL as normal i.e. using the current path for all files.
- If doomrl.wad is not in the current path then use the path /usr/local/share/games/doomrl/doomrl.wad. If this file doesn't exist exit with an error saying DoomRL has not been installed correctly.
- Check that the directory $HOME/.doomrl exists. If it doesn't exist create it. The config.lua file will be in this directory - if it doesn't exist it should be copied in from /usr/local/share/games/doomrl/config/config.lua
- The player.wad and score.wad files and backups will now be stored and accessed from this directory ($HOME/.doomrl).

Pseudo-code for clarity:

Code: [Select]
if pathExists(currentWorkingDirectory + "doomrl.wad") and pathExists(currentWorkingDirectory + "config.lua") then
   -- use current working directory - DoomRL runs like it did pre-multiuser.
   wad = open(currentWorkingDirectory + "doomrl.wad")
   config_lua = open(currentWorkingDirectory + "config.lua")
   -- etc...
else
    -- We're running with the multi-user site-wide configuration:
    doomDataDirectory = "/usr/local/share/games/doomrl/"

    if pathExists(doomDataDirectory + "doomrl.wad") then
        wad = open(doomDataDirectory + "doomrl.wad")
    else
        print("DoomRL has not been installed correctly - cannot find doomrl.wad")
        exit(1)
    end

    homePath = getFromEnvironmentVariable("HOME")

    if not pathExists(homePath + ".doomrl") then
        -- 755 is the default unix permission for a user directory
        create_directory(homePath + ".doomrl", 0755)
    end

    if not pathExists(homePath + ".doomrl/config.lua") then
       copyFile(doomDataDirectory + "config/config.lua", homePath + ".doomrl/config.lua")
    end
   
    -- Set the current working directory to the user profile path. From here on we create/read the player.wad/score.wad from this path.
    setCurrentWorkingDirectory(homePath + ".doomrl")
end

Aaaannd that's it.

One potential gotcha regards upgrades. Suppose a user upgrades from 0996 to 0997 and a new lua variable AwesomeFeature was added in 0997. We would need to change the users profile but this is difficult to do on package installation (we don't know which users to update). One possible solution to this problem is this: the config.lua file that is copied will be:

Code: [Select]
-- Config.lua for Linux packages
dofile "/usr/local/share/games/doorml/config/masterconfig.lua"

- User overides for settings here: uncomment variables to set

-- Whether to allow high-ASCII signs. Set to false if you see weird signs
-- on the screen.
--AllowHighAscii   = false

-- Setting to true will skip name entry procedure and choose a random name
-- instead
--AlwaysRandomName = false

-- Specifies how the DoomRL inventory and equipment menus should be handled.
-- Can be set to CHOICE, HYBRID or LETTER
--InvMenuStyle     = "HYBRID"

--etc,,,


This would read a master config file and allow a user to override individual settings. When DoomRL is updated any new variables will be automatically picked up by the user profile script via the updated master config file without affecting their old settings. I can think of other solutions but I think this one might work (although I realise it may complicate the up and coming settings editor - an alternative might just be to have an upgrade-config command that will update a users config.lua when appropriate...) 

Sorry I took so long (got *ahem* sidetracked by my first UV win/Diamond :-) ) Let me know what you guys think...




3
0.9.9.4 / [U|AoMC|79%|YAVP] First UV win!
« on: December 20, 2011, 02:49 »
--------------------------------------------------------------
 DoomRL (v.0.9.9.4) roguelike post-mortem character dump
--------------------------------------------------------------

 Ilya Bely, level 12 Imp Warrant Officer Scout,
 defeated the Cyberdemon on level 25 of the Phobos base.
 He survived 115332 turns and scored 240056 points.
 He played for 2 hours, 10 minutes and 11 seconds.
 He was a man of Ultra-Violence!

 He killed 612 out of 767 hellspawn. (79%)
 He was an Angel of Max Carnage!

-- Special levels --------------------------------------------

  Levels generated : 10
  Levels visited   : 6
  Levels completed : 4

-- Awards ----------------------------------------------------

  Hell Armorer Badge
  UAC Star (bronze cluster)
  Hell Champion Medal
  Destroyer Gold Badge
  Gatekeeper Diamond Badge
  Armorer Gold Badge
  Destroyer Silver Badge
  Arachno Silver Badge

-- Graveyard -------------------------------------------------

  ###########################################################
  #..........................................................
  #..........................................................
  #..........................................................
  #...........###................###.........................
  #...........###................###.........................
  #...........###................###....................###..
  #.....................................................###..
  #...............................................###...###..
  #..................................###..........###........
  #.............................###..###....###...###........
  #.............................###..###....###..............
  #.....#.......................###.........###..............
  #.....#.............|||....................................
  #.....#......X......}|.....................................
  #..........................................................
  #..........................................................
  #..........................................................
  #..........................................................
  ###########################################################

-- Statistics ------------------------------------------------

  Health 78/80   Experience 66253/12
  ToHit Ranged +12  ToHit Melee +12  ToDmg Ranged +2  ToDmg Melee +2

-- Traits ----------------------------------------------------

  Class : Scout

    Ironman          (Level 3)
    Tough as nails   (Level 2)
    Son of a bitch   (Level 2)
    Intuition        (Level 2)
    Badass           (Level 1)
    Triggerhappy     (Level 2)

  Int->Int->TaN->TaN->Bad->SoB->SoB->TH->TH->Iro->Iro->Iro->

-- Equipment -------------------------------------------------

    [a] [ Armor      ]   blue armor [1/2] (18%)
    [b] [ Weapon     ]   nuclear plasma rifle (1d6)x6 [10/24]
    [c] [ Boots      ]   tactical boots [1/1] (100%)
    [d] [ Prepared   ]   BFG 9000 (10d8) [14/100]

-- Inventory -------------------------------------------------

    [a]   combat shotgun (7d3) [5/5]
    [b]   modified rocket launcher (6d6) [0/1] (T1)
    [c]   gatling gun (1d7)x6 [20/52]
    [d]   modified plasma rifle (1d8)x6 [40/40] (P1)
    [e]   combat translocator (0d0) [60/60]
    [f]   10mm ammo (x100)
    [g]   10mm ammo (x100)
    [h]   10mm ammo (x48)
    [i]   shotgun shell (x40)
    [j]   rocket (x10)
    [l]   large med-pack
    [m]   large med-pack
    [n]   large med-pack
    [o]   phase device
    [p]   power battery (x120)

-- Resistances -----------------------------------------------

    Fire       - internal 0%    torso 20%   feet 0%   

-- Kills -----------------------------------------------------

    66 former humans
    65 former sergeants
    33 former captains
    93 imps
    60 demons
    86 lost souls
    39 cacodemons
    33 barons of hell
    1 Cyberdemon
    18 hell knights
    42 arachnotrons
    13 former commandos
    11 pain elementals
    15 arch-viles
    8 mancubi
    26 revenants
    2 bruiser brothers
    1 shambler

-- History ---------------------------------------------------

  He started his journey on the surface of Phobos.
  On level 2 he entered Hell's Arena.
  He left the Arena as a champion!
  He left level 6 as soon as possible.
  On level 7 he witnessed the Wall.
  Not knowing what to do, he left.
  He left level 8 as soon as possible.
  On level 10 he entered Hell's Armory.
  On level 10 he assembled a tactical boots!
  He destroyed the evil within and reaped the rewards!
  On level 13 he ventured into the Halls of Carnage.
  On level 15 he encountered the Phobos Hellgate.
  On level 18 he assembled a gatling gun!
  Level 19 blasted him with unholy atmosphere!
  On level 19 he ventured into the Spider's Lair.
  He cleared the Lair, kickin' serious spider ass!
  On level 20 he ran for his life from lava!
  He left level 22 as soon as possible.
  On level 22 he was foolish enough to enter the Mortuary!
  He managed to escape from the Mortuary!
  He left level 23 as soon as possible.
  Then at last he found Phobos Arena!
  On level 25 he finally defeated the Cyberdemon.

-- Messages --------------------------------------------------

 You see : out of vision
 You reload the BFG 9000 with power cell. You are hit! Your blue armor is
 damaged!
 You dodge!
 Fire -- Choose target...
 You see : blood
 You swap your weapon.
 You dodge!
 Fire -- Choose target...
 You see : floor
 You dodge! Boom!
 Fire -- Choose target...
 You see : a Cyberdemon (almost dead) [m]ore | pool of blood
 The missile hits the Cyberdemon. The missile hits the Cyberdemon. The
 Cyberdemon dies. You feel relatively safe now. Congratulations!
 You defeated the Cyberdemon! Press <Enter>...

-- General ---------------------------------------------------

 155 brave souls have ventured into Phobos:
 142 of those were killed.
 1 of those @was killed by something unknown.
 1 didn't read the thermonuclear bomb manual.
 And 7 couldn't handle the stress and committed a stupid suicide.

 4 souls destroyed the Cyberdemon...
 1 sacrificed itself for the good of mankind.
 3 killed the bastard and survived.

--------------------------------------------------------------

Mwahaha! Finally got a UV win! Plus got a Gatekeeper Diamond as the cherry on top... Went with a super conservative build - Bad and 3 levels of Iro and Int2 make AoMC reasonably easy. I'm finally beginning to feel like I can actually play this game :-)

4
Discussion / Re: Ubuntu Package
« on: December 16, 2011, 00:37 »
Quote
Oh come on, that is really silly, because... the feature you want is already there ;)

Bwahaha! I'm a moron :-) Need to learn me some of this 'lua' of which you speak :-)

Quote
Excellent, I really needed that :D. Now just prepare the requested list of things that I should do, and I'll do them once work on 0.9.9.6 starts.

Awesome. It'll be pretty much what Simon-v suggested but I'll do some more research to make sure we cover all the edge cases. I'll be busy this weekend but should get back to you next week sometime...

5
Discussion / Re: Ubuntu Package
« on: December 15, 2011, 08:37 »
Quote
What do you mean by "extended names" feature?

It was really silly - I tend to use the random names feature but I wanted a bigger pool of names - so I hacked together a script to modify the AlwaysName config variable every time doomrl started. If you combine that with the MenuReturn option it works pretty well. One of those little things that made me smile. I guess the proper way to implement something like that would be to have a RandomNames array in config.lua. In hindsight I shouldn't have included it in the package but I went with what was working for me at the time...

I'll commit to maintaining packages for both major Linux package types: rpm and deb. That way we'll cater for the majority of linux distributions. I'll also put some effort into the settings editor - keybinding support and maybe an option to automatically download the doomrl mp3's might be nice.

I'll post a cleaned up version of the current package when I can as a preview/alpha - more feedback along the lines of Simon-v's will be appreciated.

6
Discussion / Re: Ubuntu Package
« on: December 15, 2011, 03:44 »
Quote
Placing in /opt would would still require you to symlink the doomrl executable to one of the standard places in $PATH in order for it to be found when running "doomrl" from the command line.

Good point, didn't think of that :-/

Quote
Finally, proper multi-user installation packages and such might not be obviously necessary right now, but they have the potential of increasing the game's spread. It is my understanding that this kind of thing is considered desirable by this community.

I'm still pretty new here so I don't know what the conventions are for this type of thing. I'll be more than happy to put a proper standards compliant package together.

7
Discussion / Re: Ubuntu Package
« on: December 15, 2011, 02:20 »
Yep - that's about it. My current setup is just to get around the fact that DoomRL doesn't support this yet. An alternative scheme if you'd rather keep everything together is to install to /opt i.e. /opt/doomrl/ - that way the devs don't need to change any paths to get to the data files (this is what google does for chrome). Then all that would be necessary is to cater for $HOME/.doomrl config files...

8
Discussion / Re: Ubuntu Package
« on: December 14, 2011, 22:32 »
I'd be happy to help - (with any linux stuff - I'm not an expert but I know my way around) :-)

I'll explain how the package works currently: DoomRL is installed in a central location and every user gets a (hidden) folder for the config/player/score files. The DoomRL executable is symlinked into the user folder and when DoomRL is run we change directory to make sure everything works. I realised that after installation a user wouldn't know where the config files would end up so I wrote a little gui to enable them to edit settings. Most of the duct tape is because of the gui editor - I used a rather convoluted implementation and I added the extended names 'feature' (which, given a moments thought, makes far more sense as a proper Feature Request... Sigh...).
I can take out the extended names bit and clean up the settings editor - that alone would get rid of most of the ugliness.

The symlink method I've used is a hack but a fairly typical one for linux - while it would be nice for DoomRL to support multiple users explicitly I would, in my professional opinion, first see if there's any interest in the Ubuntu package/installer at all and, if so, add explicit multi-user support to 0.9.9.6.

BTW: I tested some more  - the package isn't checking for 64bit machines correctly and Ubuntu Software Centre is complaining because I left out a field (it's just the Install-Size field - you can ignore the error) - I'll try to have a fix up by tomorrow...

EDIT: 64bit and Software Centre should be fine now...

9
Discussion / Re: Ubuntu Package
« on: December 14, 2011, 06:43 »
Quote
You weren't kidding about duct tape.

lol

Yep - I just wanted something I could get off the ground quickly so I wasn't really applying brain power. This does what I need it to - although I'll be the first to admit the config stuff is an abomination unto man... Still I don't think it's too bad for a couple hours work and, who knows, someone out there might even find it useful :-)

10
Discussion / Ubuntu Package
« on: December 13, 2011, 07:49 »
Hi Guys,

I've slapped together an Ubuntu package for doomrl. It will (hopefully) install site wide so each user gets their own saves/config settings (by the use of duct tape and hacks aka the Linux Way(tm)). For some unfathomable reason I threw in a horribly designed gui interface for changing config settings as well (complete with a gimmicky option to use random names off a user defined list).

I don't know how many of you run Ubuntu - if you want this for Fedora or other distros I can probably whip something up. Actually a generic linux installer wouldn't be too hard to do...

You can get it here:
doomrl_0994-2.deb

You should be able to just double click on the file to install. I haven't tested it extensively, let me know if there are issues. All source code is included (if you know how to unzip debian packages - otherwise take a look in /usr/local/share/doomrl after install). If it worked you should find DoomRL in your Games menu :-)

I tested this on 10.04 and 11.10 (32bit but 64bit should work fine).
Also note: the package doesn't include the doomrl executable - it'll download it during the install process, that way the stats on the chaosforge downloads page will still be correct.

Anyway, hope this might be useful to someone out there...

11
I'm still up for this - I enjoy the writing/research.

Gamehunter, I don't mind writing something for Pain Elementals to complete the current set of topics (obviously not for competition purposes) - I just need a few pointers because I've never tried farming or any other advanced tactics against them. What I can do at the moment is a breakdown based on weapon damage/traits like Elephant did for the Demon topic last time. Unless, of course, you want to reuse it for another contest :-)

12
Hi guys, I've submitted entries for Shottyman and the Combat Shotgun...

13
I vote for admissibility.

14
Aarrggh... Don't post stuff where I can read it, my inferiority complex is kicking in! (TheDuck101 waits anxiously in a corner wondering if it wouldn't be less stressful to learn to crochet or something...)

15
Hi, I submitted an entry for Intuition...

Pages: [1] 2