Results 1 to 10 of 24

Thread: Bryed 3d (1998) postmortem

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Don't forget that the old style API is capped very hard at about 20k vertices, which is infinitesimal in today videocards terms. Go over that and performance drops like a stone.

  2. #2
    I managed finding a moderately broken version with asset building tools included (from October 1999). So i can finally present this project, incomplete (sigh) with bad porn removed:

    English version (text messages translated by editing the EXE in Notepad++) http://chebmaster.com/downloads/bryed_3d_English.zip
    Original (Russian only) version http://chebmaster.com/downloads/bryed_3d.zip

    Lifted assets galore (doom2, duke nukem, blood) and general lack of sanity, as expected from a college student during the lawless Great Depression of the 90s. (I recently stumbled on an VHS tape with a movie recorded from TV, from that time period. Gratuitous rape scenes with tits flashing, live pigs doused in gasoline and set on fire... Oft interrupted with ads of lawnmowers, beer or luxury cars. No ratings, no limitations, only separated from Chip&Dale Rescue Rangers by time slots. A generation of kids grew watching this)

    Someone's speedrun @ YouTube: https://www.youtube.com/watch?v=Ggt_U2-bldI

    At first, I just covered all tits with black bars. I then realized it was lowest of hypocrisy as bad porn interaction was still there. I rebuilt all maps removing all porn actors and hastily re-uploaded. I then realized there's a not-so-rare glitch that makes a dead ogre flicker through the entire sprite atlas. And also sprites could be seen in FAR because they are uncompressed. I hastily rebuilt the pak file replacing even censored hentai with empty spaces and re-uploaded again.

    Sorry, still no sources because sources of code and art are intermixed and removing all porn from these is a *much* harder task.

    Cave entrances/exits not showing in game

    Interestingly, those are items, map generator raises them by 100cm so that you pick them up without crouching, while render routine places their sprite 130cm below origin.

    Map editing:


    code sample (note integer = smallint)
    init:
    Code:
    New( SqrtTable );
      for i:=0 to 1023 do
        SqrtTable^[i]:=Round(Sqrt(i)*2048);
      New(ST);
      For c:=0 to  1024 do
        ST^[c]:=Round(32767*Sin(c*2*Pi/1024));
      New(CT);
      For c:=0 to  1024 do
        CT^[c]:=Round(32767*Cos(c*2*Pi/1024));
      New(AT);
      For c:=0 to  1024 do
        AT^[c]:=Round(Arctan((c/512)-1)*32767/Pi);
    usage:
    Code:
    Function Angle(x1,y1,x2,y2: integer): integer;
      var x,y: LongInt;
      begin
        x:=x1-x2; if x=0 then x:=1;
        y:=y1-y2; if y=0 then y:=1;
          If abs(x)>abs(y) then
            If x>0 then Angle:=AT^[512+((y shl 9) div x)]
                   else Angle:=word(32767)+word(AT^[512+((y shl 9) div x)])
          else
            If y>0 then Angle:=16384-AT^[512+((x shl 9) div y)]
                   else Angle:=49152-AT^[512+((x shl 9) div y)];
      end;
      Procedure SinCos(var s,c: integer; rasst, angle: integer);
      begin
        S:=(longint(ST^[angle shr 6]) * Rasst) div 32767;
        C:=(longint(CT^[angle shr 6]) * Rasst) div 32767;
      end;
    type
      STable = array[0..1023] of Word;
    
    var
      SqrtTable: ^STable;
      i: Word;
    
    function KOREN( S: LongInt ): Word; assembler;
    asm
           db 66h; xor si, si      { xor esi, esi }
           les si, dword ptr SqrtTable
           db 66h; mov bx, word ptr S   { mov ebx, S }
           mov dx, 11
           db 66h, 0Fh, 0BDh, 0CBh      { bsr ecx, ebx }
           sub cx, 9; jle @less
           shr cx, 1
           adc cx, 0
           sub dx, cx
           shl cx, 1
           db 66h; shr bx, cl      { shr ebx, cl }
    @less:
           db 26h, 67h, 8Bh, 04h, 5Eh   { mov ax, es:[esi+ebx*2] }
           mov cx, dx
           shr ax, cl
    end;
    All coordinates are in centimeters, speeds in centimeters per tick (1/25 s), angle is the full SmallInt range is 360 degrees. With overflows exploited to loop it.
    Last edited by Chebmaster; 26-05-2022 at 11:16 AM.

  3. #3
    I watched the video. Nice touch with the mushrooms.. And impressive work. Definitely beats what I did back then..

  4. #4
    And beats anything I've done since too.

  5. #5
    Any new projects ongoing?

  6. #6
    I *am* busy making a new engine since then. Never really stopped. The main thread at freepascal.ru is 50 pages and 8 years long. And yet, I can't even show a rotating cube: my works (behold them and despair, ye mighty) are in deep refactoring since, I think, 2018.
    Targets Raspberry Pi and Windows XP with DX9 class gpus.
    It even has a thread here https://www.pascalgamedevelopment.co...t-will-be-here , which is an empty stub as I don't currently have anything to show.

    There was a small side-quest, modifying Quake 2 Delphi into using Lanczos upsampling https://www.pascalgamedevelopment.co...rer-for-Quake2

    ..a sad date approaches, 20 years since the tragic death of the guy who introduced me into using OpenGL with Delphi. I shall not forget post a tread for it in 3 days.

  7. #7
    Sad to learn about that OpenGL guy. Nice you made a post about him.

    Raspberry Pi is an interesting target for one man hobby programmers (like me). Limited hardware but out of necessity one man projects tend to be simpler and demanding less from the system. At least for those of us who dabble on less ambitious projects.

    I managed to buy a Raspberry Pi 4 this winter and installed the new PiOS. Turns out it is possible to install the Lazarus on PiOS but I must be doing something wrong because I get tons of warnings. From what I read elsewhere the installation of Lazarus really is tricky. Still I managed to compile and run one simple game (the Grayout) on Raspberry but I've not made that one downloadable. For some reason Raspberry-Lazarus doesn't accept the code from my current Linux/WIndows project.

    Have you happend to install Lazarus on Raspberry? Do you run other pascal software?

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •