Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

YukiRaven

Members
  • Content count

    4186
  • Joined

  • Last visited

Status Updates posted by YukiRaven

  1. So if anyone wants to join my discord...

     

    https://discord.gg/EKSRpGW

     

    PM me your Discord name if it's different than on here.

  2. So, I'm working on a v1.1 release of Umbra of Fate.  Changes that I know will appear:

    • Boss fights will be less chewy/grindy (though an option exists to use the old mechanics, too)
    • You can disable the fog sprites for better performance
    • You can disable most of the ground clutter for better performance
    • Bugs in the final boss will be fixed.  These are ones that I swear I never encountered in my original testing.  Then everyone started reporting them.  Then I started experiencing them every time 0_o
    • You can change the fog alpha to your desire
    • You can disable some or all of the hint messages so that it's less hand-holdy ("Center switch is now powered", "A door has opened in X", etc.)
    • Removed a useless shader that was being applied to the fog sprites.  Derp.
    • Minor things I noticed long after release

    If anyone has any other suggestions, now is the time for them!  No guarantees they'll be implemented, but I'll consider them.

  3. This is neat.  Kinda like Quake's fast isquare thingie minus the Newton's method stuff.  No C union needed, either.

     

    (defun faster-cube-root (n)
      "Not the most accurate way to do a cube root, but it's close enough.
       Adapted from http://www.hackersdelight.org/hdcodetxt/acbrt.c.txt"
    
      (ieee-floats:decode-float32
       ;;(+ #x2a51067f (truncate (* (ieee-floats:encode-float32 n) 0.33333333)))))
       (+ #x2a5137a0 (truncate (* (ieee-floats:encode-float32 n) 0.33333333)))))
    

     

  4. Welp, time to start a new level.  *opens up GZDoomBuilder*

  5. TITLEPIC.jpg.cc6688a8d22673b21ca920732047c2be.jpg

     

    Coming soon.

    1. MrGlide

      MrGlide

      why is the report button right next to like?

    2. leodoom85
    3. YukiRaven
  6. Freaky Panties will be out in about a week. There's just some last minute things, like running it through my tool to remove unused textures and final detailing tweaks. Also finalizing the music, though for that I'm waiting on my car to be fixed, oddly enough.  See, when I do the final mixing and mastering of my music, I use the subwoofers in my car to gauge the low end. Without them, I feel lost.

     

    Anyway, about a week and it'll be out.

  7. buttons.png.00a36ec4ddfaee68b27c29f42de4aa38.png

    Wait... wait... how long have these buttons been here in GZDoom Builder?!

    1. Misty

      Misty

      As far I as first time booted gzdoom builder few years ago? 

    2. YukiRaven

      YukiRaven

      Man I'm blind XD

  8. Freaky Panties is like 90% done now.  All I need to do is finish detailing two areas, then of course do a lot of testing myself.  I'll also need some playtesters, so if you're interested, hit me up.  I'll post again asking for playtesters in a few days on the actual WIP thread.

     

    It looks like it'll top out at about 5.5k sectors, which is interesting because that's almost half the number of sectors in Umbra of Fate.  Yet Freaky Panties has taken me only about a month to build.  ¯\_(ツ)_/¯

     

    I've also gotten some more work done on two separate Quake levels.  One needs some reworking gameplay wise, and has a gothic theme reminiscent of UoF and SoTNR.  The other is an Aztec-themed temple and is still quite early in development, but will be sort of similar to Freaky Panties in how it starts out from a hub-like area.

  9. tlQfTda.png

     

    This is about 5 days worth of work.  I think I've gotten faster.

    1. DMPhobos

      DMPhobos

      It would take at least 3 full weeks of work for me to make something this size and with half the details
      Really impressive!

    2. riderr3

      riderr3

      Yeah. Pretty well done.

      Here what I've done for 2 weeks:
      hyRGqDK.jpg

      Some days earlier:

      Spoiler


      oaG1Itd.jpg

      I leaving detailing for later.

    3. YukiRaven

      YukiRaven

      I've been alternating. I block out areas and test the gameplay for a day or two, then I spend two days detailing. Basically how I've always worked, but I've extended it a bit.

  10. Ignore the whole "UoF is my last Doom map for a long time"    >_>    Guess you can't take the Doomer out of me!

     

    I've decided to take a break from my Quake level and experiment with an idea I had.  Well, three ideas, really.  The first is a map based on three areas, each with a different gameplay theme, and which can be done in any order.  The three areas are: environmental traps, darkness, and "normal" Doom-style gameplay.  I almost added a fourth, jumping puzzles, but decided not to.

     

    The second idea was to make a gothic techbase.  Think 40K meets Doom, with my own personal style.

     

    The final idea was to not have any difficulty selection, but instead make the map adjust itself dynamically.  So if the player is dying a lot, they start taking less and less damage, items show up more frequently, some areas may have fewer monsters dynamically spawn... stuff like that.  Since this could mean the level would get progressively easier, I also figure I should adjust the difficulty back up as time passes.  So to counteract things, I'm factoring in the number of deaths since a new game started, and "forgetting" some of them after certain amounts of time.  So if I've died 5 times since the level started, but X number of minutes has passed, it'll start thinking I've died only 4 or 3 times instead, then readjust things as-needed.

     

    I have no idea if any of this will work, but that's ok.  I just want to tinker ^_^  Prototyping in ACS is also easier than doing things in QuakeC for me at the moment since I'm still learning it, so I figure I might as well do it in GZDoom.

     

    Right now I'm still blocking out rooms and getting the difficulty adjustment scripts started.

     

    Also, the level already has a name: Freaky Panties

    1. Show previous comments  1 more
    2. YukiRaven

      YukiRaven

      Sorta... it'll be longer and more varied.

    3. KVELLER

      KVELLER

      I understand that it's an experiment and all, but would it be possible to make that an optional feature? I'm really stubborn and hate the thought of a game making things easier for me, heh.

    4. YukiRaven

      YukiRaven

      It probably could be, but I'd rather not.  The game will adjust itself back to being harder as you play anyway.

       

      I suppose what you could do is bind "alexa_num_deaths 0" to a key and just press it all the time.  I'm using a cvar to keep track of the number of deaths to account for save games and the like, and many of the adjustments are taking this figure into account.

  11. Huh... could have sworn I opened up Trenchbroom and not GZDB...

     

    image.png.638cd0de19b263c068146621bea1fc22.png

  12. So wait... wait... Doomworld has the colon emoji things now?  🤔

    1. Show previous comments  4 more
    2. Eris Falling

      Eris Falling

      🅱️oomworld

       

       

    3. Catpho

      Catpho

      Is there a full list of emotes somewhere? Yea im outdated 😞 

    4. Linguica

      Linguica

      There are no emotes on Doomworld, there are only emojis.

  13. Did another complete playthrough of Umbra of Fate today just for fun. On UV, it took me about an hour and 20 minutes total, and I died 46 times XD

     

    *sigh* 4 more days and it'll be out :^)

    1. bzzrak

      bzzrak

      Waiting for ZeroMaster's NM-Speed in 23:25

      You read it here first! :] 

    2. YukiRaven

      YukiRaven

      NM is directly accessible this time, too!

  14. The final testing of UoF is going well.  I'm nearly done testing the ultra-violence difficulty, and thankfully the other two aren't that hard to balance once UV is done.

     

    I'm finding some pretty amusing bugs, though.  Like a monster that was stuck in-between an invisible 3d ceiling (to keep them from flying to high) and other world geometry, causing them to float in mid air and do nothing.  Or forgetting to disable a switch, letting me spawn giant groups of monsters as quickly as I can flip it.  Or forgetting to have anything happen after defeating the final boss.

     

    All small bugs that are easy to fix.

    1. Nine Inch Heels

      Nine Inch Heels

      Quote

      Or forgetting to disable a switch, letting me spawn giant groups of monsters as quickly as I can flip it.

      Actually, could you leave that in? ;-)

    2. YukiRaven

      YukiRaven

      ROFL how did I know you'd say that...

       

      Actually... I'll put in a CVar just for you.  Set uof_nih to 1 and find the switch.

    3. Nine Inch Heels

      Nine Inch Heels

      What can I say? I like to try ridiculous stuff at times. ;-)

  15. Umbra of Fate is one very long level, but it's conceptually divided up into four areas, sorta like Extreme Terror was.  In order to test a level this large, what I do is I play through each section three times, recording my health/ammo/armor/# of deaths/time at the end of each run.  Then I take the average, move the player start to the beginning of the next area, then adjust what I start with in an ACS script.  I then repeat this for every difficulty except ITYTD and Nightmare.  It's a bit tedious, but it seems to work fairly well.  It's what I did for SoTNR as well, except I didn't have to adjust the numbers after each level since each one was a pistol/shotgun start.

     

    Anyway, these are some interesting numbers from my Ultra-Violence playtesting of UoF tonight:

     

    Spoiler

    Area 1

    Average number of deaths for only this area: About 9

    Average time: About 17 minutes

    Average inventory at end of area:

    • Health: 91
    • Armor: 19
    • Shells 28
    • Bullets: 92
    • Rockets: 0
    • Cells: 40

     

    Area 2

    Average number of deaths for only this area: about 19

    Average time: About 24 minutes

    Average inventory at end of area:

    • Health: 74
    • Armor: 49
    • Shells 47
    • Bullets: 87
    • Rockets: 30
    • Cells: 124

     

    I don't have stats for areas 3 or 4 yet since I didn't test them tonight.  I'll do those sometime tomorrow.

     

    Something new I added in UoF was a short script that takes health/ammo/armor numbers every 20 seconds and averages them together over time.  These numbers can be reset as-needed, which helps me judge individual fights and rooms a bit better.

     

    Ugh I hate playtesting levels >_<

     

    Spoiler

    Bonus image:

    uof-2018-04-13.png.10c2f8578ffd7b398d94b1281b1cf7ea.png

     

    Bonus image 2:

    Screenshot_Doom_20180413_032128.png.4bb8a2af69fed5e30e7bd05a984692af.png

     

    1. MrDeAD1313

      MrDeAD1313

      That screenshot is amazing. The colors!!!

  16. Got new ink today!

     

    BCQHM5a.jpg

  17. unknown.png

     

    99.9% done with the world geometry.  Now to finish scripting and bug squashing, then test everything all over again.

    1. Show previous comments  3 more
    2. Avoozl

      Avoozl

      Well we can't all be slaughtermap enthusiasts. :P

    3. Nine Inch Heels

      Nine Inch Heels

      A couple hundred cybies and Viles a Slaughtermap don't make.

      Depending on use and placement those are.

       

      Grammar from Yoda learned I have.

    4. riderr3

      riderr3

      My biggest is about 1100 sectors, but I am feeling tired to test such a complex maps.

  18. Common Lisp only "kinda" has Enumerated types.  Normally instead of doing something like this in C

    typedef enum {
      tiger,
      snow_leopard,
      pandaren,
      worgen
    } fursonas;

    You'd instead do something like this:

    (deftype fursonas ()
      '(member :tiger :snowleopard :pandaren :worgen))

    Unfortunately you can't do stuff exactly like this natively:

    typedef enum {
      nosona = -1
      tiger = 0,
      snow_leopard,
      pandaren ,
      worgen,
      NUM_FURSONAS
    } fursonas;

    The closest you could get is to use constants and a global variable:

    (alexandria:define-constant +no-sona+     -1)
    (alexandria:define-constant +tiger+        0)
    (alexandria:define-constant +snow-leopard+ 1)
    (alexandria:define-constant +pandaren+     2)
    (alexandria:define-constant +worgen+       3)
    (defparameter *num-fursonas* 5)

    I don't particularly like this since I have to manually count the constants to give a value to the global variable.  There's also the issue of typing.

     

    Thankfully Lisp is homoiconic and has kick-ass macros. 

    (defmacro defenum (type-name (&rest values) &key super-type make-length
                                                  (package *package*))
      (let ((ret nil)
            (start-val 0)
            (sym nil)
            (valid-vals nil))
        
        (dolist (val values)
          (if (not (symbolp val))
              (cond
                ((not (consp val))
                 (error "Enum values must be symbols or CONSes"))
    
                ((not (symbolp (car val)))
                 (error "Enum names must be a symbol"))
    
                ((not (or (numberp (cdr val))
                          (numberp (cadr val))))
                 (error "The CDR of an Enum's value must be a number"))
    
                (t
                 (setf sym (car val))
                 (setf start-val (if (numberp (cdr val))
                                     (cdr val)
                                     (cadr val)))))
    
              (setf sym val))
    
          (setf ret
                (nconc ret
                       (list (list 'alexandria:define-constant
                                   (find-symbol (symbol-name sym) package)
                                   start-val
                                   :test (quote 'equal)))))
    
          (if (find start-val valid-vals :test #'=)
              (error "Duplicate enum value")
              (push start-val valid-vals))
    
          (incf start-val))
    
        (setf valid-vals (sort valid-vals #'<))
    
        (when make-length
          (setf ret
                (nconc ret
                       (list `(defparameter ,(intern (string-upcase
                                                      (format nil "*num-~a*" type-name))
                                                     package)
                                (1- (length
                                     #+sbcl  (sb-ext:typexpand (quote ,type-name))
                                     #+clisp (ext:type-expand  (quote ,type-name))
                                     #+ccl   (ccl::type-expand (quote ,type-name)))))))))
    
        `(progn
           (deftype ,type-name ,super-type (quote (member ,@valid-vals)))
           ,@ret)))

    This doesn't totally get around the typing issue, but it's a step in the right direction.  It does at least allow me to do the whole sequential value thing, though, and can automatically update the global variable (if you even want one) as-needed.  Thus I can do this:

    (defenum my-enum/fursonas
      (+tiger+
       +snow-leopard+
       +pandaren+
       +worgen+))
    
    ;; Or for another example...
    
    (defenum bt-buttons
        ((+bt-no-button+ -1)
         (+bt-attack+     0)
          +bt-strafe+
          +bt-run+
          +bt-use+
          +bt-ready-knife+
          +bt-ready-pistol+
          +bt-ready-machine-gun+
          +bt-ready-chaingun+
          +bt-next-weapon+
          +bt-prev-weapon+
          +bt-esc+
          +bt-pause+
          +bt-strafe-left+
          +bt-strafe-right+
          +bt-move-forward+
          +bt-move-backward+
          +bt-turn-left+
          +bt-turn-right+)
      :make-length t)

    Again, not perfect, but close, and Type Safe Enough For Me™.  If you're curious, this macro expands at compile time (because yes, Common Lisp is (usually) compiled to machine code) to this:

    (PROGN
     (DEFTYPE BT-BUTTONS ()
       '(MEMBER -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17))
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-NO-BUTTON+ -1 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-ATTACK+ 0 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-STRAFE+ 1 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-RUN+ 2 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-USE+ 3 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-READY-KNIFE+ 4 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-READY-PISTOL+ 5 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-READY-MACHINE-GUN+ 6 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-READY-CHAINGUN+ 7 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-NEXT-WEAPON+ 8 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-PREV-WEAPON+ 9 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-ESC+ 10 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-PAUSE+ 11 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-STRAFE-LEFT+ 12 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-STRAFE-RIGHT+ 13 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-MOVE-FORWARD+ 14 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-MOVE-BACKWARD+ 15 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-TURN-LEFT+ 16 :TEST 'EQUAL)
     (ALEXANDRIA.0.DEV:DEFINE-CONSTANT +BT-TURN-RIGHT+ 17 :TEST 'EQUAL)
     (DEFPARAMETER *NUM-BT-BUTTONS* (1- (LENGTH (SB-EXT:TYPEXPAND 'BT-BUTTONS)))))

    Not 100% the same, but close enough for me and my needs.

  19. My new music album will drop in about 35 hours!

     

    Which means I have to write a text blurb for it for my website, something I hate doing :-/

     

    For now, I'm doing all the final resampling, dithering, encoding (320k mp3, Ogg Vorbis, 192k Opus, 44.1KHz 16-bit FLAC, 48KHz 24-bit FLAC), shntool-ing, zipping, and PNGOUT-ing on the release files.  A tool I wrote years ago thankfully does about half of this for me.

  20. My new music album is definitely finished composition-wise, and is about half finished in terms of final mixing and mastering.  The title of it is going to be "Dead Star", and it will continue the trend I started with "Waveforms" where it includes some trance, some EBM-ish tracks, and dark ambient songs.  Two of the songs already appeared in SoTNR's soundtrack, but in truth, they were written for this album before I decided to use them in SoTNR.

     

    Tracklist with tentative order, and basic song descriptions in italics:

     

    1. The Corax (dark ambient soundtracky thing, from SoTNR)
    2. Cyber-Unit 629 (trance)
    3. Rabio (EBM/industrial, the Esperanto word for "rabies")
    4. Lenore (gothic industrial-ish)
    5. Dead Star (ambient, from SoTNR)
    6. Searching for My Identity (trance/Futurepop)
    7. Snowy (ambient)
    8. Back to Darkness (ambient)
    9. In a Dream (trance)
    10. Ĉarpentisto (retrowave-inspired, the Esperanto word for "Carpenter")
    11. Forlasu Ĉian Esperon, Ĉiuj ke Enrius Ĉi Tien (ambient, "Abandon All Hope, Those Who Enter Here" in Esperanto)
    12. The Internationale (Cover) (synthy cover of the theme song for socialism)

    From the looks of it, the album will definitely be out by December 5th.  One nice thing about taking so long to make this one is that I managed to get a lot of the balancing/tweaking work I usually do at the end finished ahead of time.

     

    Album art:

    LesIdd1.jpg

     

    I think as far as my music hobby goes, I'm start experimenting with chiptune stuff and more minimal DAW/synth setups after this.

    1. Nine Inch Heels

      Nine Inch Heels

      Looking forward to it. Is there any word on the dubstep thingy you made some time ago which may or may not have become part of this album?

    2. YukiRaven

      YukiRaven

      Ahh yeah, I decided not to release it as part of this album.  It's kinda "finished", but I wasn't happy with how it turned out.  So I'll continue to work on it and release it as part of a single.  I always seem to do Album->Single->Album->Single anyway.

  21. So yeah.  Started something new.

     

    xVv8L03.png

     

    GtfuF5t.png

     

    Just tinkering for now.  I've been booted into Linux to do some other work, so I haven't had GZDB to play with.

  22. I... think I may have accidentally/unexpectedly finished a new music album.  Well, the composition part anyway.  I didn't realize that I already have 14 new finished songs to pick from.

     

    Maybe I can get the final mixdowns/mastering done by December.  Then I can release it on my birthday.

    1. Nine Inch Heels

      Nine Inch Heels

      Sounds good! (pun intended)

  23. New ink!

     

    iyFh1x1.jpg

    1. everennui

      everennui

      I really like how clean the lines are!

  24. Well my first ever Quake level is finished.  I'll be uploading and releasing it tomorrow on my personal website. @Major Arlene, still up for playing through it?

     

    Obligatory screenshots:

    Spoiler

    yKrvuTR.jpg

     

    qGXPDFg.jpg

     

    9RQO4rD.jpg

     

    fSfSizG.jpg

     

    wTxPw3i.jpg

     

    8fSWmjL.jpg

     

    ZtuRHbu.jpg

     

    iQJFm1J.jpg

     

    zNluchi.jpg

     

    YLtb9Fg.jpg

     

    dB2VzfY.jpg

     

    Readme file

  25. I finally finished the layout and core design of my first Quake map.  That I would ever get this far in making one is something I never thought I'd see.  From here I need to adjust the difficulty settings, add some additional detailing, and then playtest the hell out of it.  Then it'll be finished :^)

     

    Right now it's sitting at about 6600 brushes and 130 enemies on hard.  I have a feeling I could optimize that brush count a bit.

×