1. Post #1
    Gold Member
    jamie1130's Avatar
    December 2009
    560 Posts
    WAYWO June 2012!

    I've never done this before. Lets work at some highlights of last month

    Highlights





    Fuck yeah! My obj loader now outputs triangle fans for faces with polygonal vertices!
    I ended up having to rewrite nearly the entire loader to do so, but it's far neater now with proper names and subdivided functions etc, so worth it.


    Edited:


    Actually, I think I've implemented everything needed to load the 'basic' Sponza Atrium model...

    Oh hell yes.


    Edited:


    As a side note, those distortion show up when I view that particular file in a proper obj viewer, so I think I might have a duff model. It's not my fault!



    Edited:


    Actually.... I wonder...

    C:

    I'm going to start posting smaller pictures because I seem to be posting a ton of them.


    Anyway, sky:



    Working on emitters and sponges for v1.1 of Phyzicle:





    13,324 zombies running around


    the map and zombie placement comes from the picture it loads. who needs map editors when you have paint.
    Holy shit mobile development is harder than I thought it would be. Our artist is making some stunning graphics so I'll have to make it just a Windows game if mobile doesn't work out.


    looks unprofessional with such an awful typo


    it's spelt "r-a-r-i-t-y", fyi
    I didn't have a thermometer in my room, so I made one using my Arduino and LED Matrix.





    The addressing on these is fucked up, here's what my drawPixel function looks like:



    void ht1632_setpixel( byte x, byte y, bool on ){ byte addr; if ( x < 8 ) addr = (7-x)*4 + y/4; else if ( x < 16 ) addr = (15-x)*4 + y/4 + 32; else addr = (23-x)*4 + y/4 + 64; byte bit = 8>>(y%4); if ( on ) pixels[addr] |= bit; else if ( ( pixels[addr] & bit ) > 0 ) pixels[addr] ^= bit; ht1632_senddata( addr, pixels[addr] );}


    Suggestions to shorten this code are welcome. The buffer is needed because 4 pixels share one address and it's not possible to read from the display (this would be unbearably slow anyway).


    I generated the bitmaps for the digits using a C# program, which outputted them as a font byte array.
    More fluff, more gore.







    Yellow dots on the ground are food, freshly killed fluffballs also count as food (you can kill your own if you're low). Small bar under health is hunger.


    NPCs don't mind you unless you get too close to their food and try to kill you/take over yours if they run out.
    Faithplate configuration and paths!
    Woo sweet, I got my text renderer to pack glyphs into a single texture properly. Before it would just make a really long texture and pack them side by side.





    You can see the full texture atlas rendered at the top, and the text string rendered over the button. This should allow for other languages to be efficiently rendered, but I'm having trouble with Unicode.
    Jookia can you help me? You seem to be the Unicode king around here.


    Edited:


    Oh yeah I also added 3d functionality.
    Back to shaders, I guess... Here's a Valve-style flow map:


    Austin's been working on Nature 2, Blk has been doing the editing, I post the stuf, download it today (click on the images to download scrub)


    nature 2 is great







    Download today!1!



    link to autsins youtbue channel, go rate like and usbescribe
    Just gonna dump some gifs of what I've been adding to Mari0 for the "big" update here.
    Turb added some basic graphics functions to his operating system a while ago (the bouncing ball), but he wanted something a bit more exciting. Last Wednesday he asked me if I could write a graphics demo for JSOS and I proposed to implement OpenGL 1.1 for him. He said that would take a lot of work and he just needed a simple 3D demo with functions like drawCube().


    Since we all know how much I love OpenGL, I did it anyway and implemented just enough of the OpenGL 1.1 spec to do something useful. I implemented the entire graphics pipeline in software in Javascript and it was a great success. Because it's a lot easier to debug Javascript in a browser, I developed it using the HTML5 canvas to visualize the color buffer as seen below.





    My JSGL (Javascript Graphics Library) provides gl.readPixels() to read back data from either the color buffer or the depth buffer. It then pushes that data through to the canvas by calling putImageData() on the 2D context.


    The vertex processing code makes use of the mat4 functions in the gl-matrix library to apply the transformations. I found it kind of pointless to implement these functions myself, because that library is already highly optimized for that purpose.


    The rasterizer is based completely on my own code, with inspiration from Bresenham's line algorithm, this paper on barycentric coordinates and this paper on perspective correct interpolation.


    I based all of the other code on my experience with OpenGL itself and used the OpenGL 1.1 Specification to make sure everything was implemented correct. The implementation is not complete (e.g. functions and enum values are missing), but the stuff that is supported stays true to the original specification, like when errors should be thrown.


    Yesterday I started working on porting the code to JSOS, which proved to be a little more difficult than I anticipated. The code required little to no alteration to work, but I had to change some things in Turb's driver code to be able to draw pixels to the display. I also had to add a new pixel format mode to gl.readPixels(), GL_UNSIGNED_BYTE_2_3_3. It's because his operating system currently allows only 1 byte per pixel with a bit layout of RRGGGBBB. The HTML5 canvas worked with RGBA bytes, which is what the implementation was originally limited to.


    I also found that JSOS (or the JS compiler) didn't have an implementation for the != operator, Math.max, Math.min, Math.tan and Date yet and I had to work around that by implementing them myself. The lack of support for the != operator was only because it's better to use the !== operator, so that was a simple Find & Replace job.


    After all this tweaking today, I was finally greeted by a working render! Here is the output of the program gltest running on JSOS in VirtualBox:





    I haven't managed to get it to render more than one frame yet (in a timely fashion), but at least now JSOS has some working OpenGL bindings!
    Made GMod output video from a demo, with frame blending (and DOF)







    Kind of easy to do in the Source engine because Valve did all the work. I hooked it up to Holly so it can output webm or ogg.


    You can record in realtime too.





    I wabt to add more codecs to Holly but the GPL scares me, I want to be able to ship Holly with GMod without having to GPL GMOD. Everything I've read says that this is a grey area - and you get away with it as long as there's enough space between your closed source stuff and your open source stuff.

    Previous Threads
    Version 26 (May 2012)
    Version 25 (Apr 2012)
    Version 24 (Feb 2012)
    Version 23 (Jan 2012)
    Version 22 (Dec 2011)
    Version 21 (Nov 2011)
    Version 20
    Version 19
    Version 18
    Version 17
    Version 16
    Version 15
    Version 14
    Version 13
    Version 12
    Version 11
    Version 10
    Version 9
    Version 8
    Version 7
    Version 6
    Version 5
    Version 4
    Version 3
    Version 2
    Version 1
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events Friendly Friendly x 4Dumb Dumb x 1 (list)

  2. Post #2

    January 2012
    414 Posts
    Ohh that shiny new feeling :)
    Reply With Quote Edit / Delete Windows 7 Canada Show Events Agree Agree x 1 (list)

  3. Post #3
    EGN Founder
    CountNoobula's Avatar
    May 2010
    505 Posts
    Hardcode IDE got presentation page for our reconstruction of the UI

    http://hcide.com/interactive-demo/

    EDIT: Link fixed
    Reply With Quote Edit / Delete Windows 7 South Africa Show Events Winner Winner x 8Artistic Artistic x 1Dumb Dumb x 1Useful Useful x 1 (list)

  4. Post #4
    Follow me on GitHub!
    Ziks's Avatar
    June 2011
    1,982 Posts
    I don't know about everyone else but I felt the highlights were severely lacking this thread

       (I'm not in them)   
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events Agree Agree x 6Funny Funny x 4 (list)

  5. Post #5
    Gold Member
    jamie1130's Avatar
    December 2009
    560 Posts
    What did you do? I diden't see much
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events

  6. Post #6

    August 2011
    194 Posts
    I don't know about everyone else but I felt the highlights were severely lacking this thread

       (I'm not in them)   
    I feel the same way! :P
    Reply With Quote Edit / Delete Mac Canada Show Events Informative Informative x 1 (list)

  7. Post #7
    Gold Member

    October 2008
    3,838 Posts
    I was curious to see if I was highlighted... then I realized I didn't make anything last month.
    Reply With Quote Edit / Delete Windows 7 United States Show Events Funny Funny x 11Agree Agree x 4 (list)

  8. Post #8
    Follow me on GitHub!
    Ziks's Avatar
    June 2011
    1,982 Posts
    What did you do? I diden't see much
    Currently avoiding doing world collision so I added menstruation

    Edited:

    Sorry for blowing my own horn
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events Agree x 6Funny x 1Artistic x 1Optimistic x 1Dumb x 1 (list)

  9. Post #9
    false prophet's Avatar
    October 2011
    926 Posts
    Yeah, seems only the LAST few pages got into the highlights, which is a shame.
    Reply With Quote Edit / Delete Windows 7 United States Show Events Agree Agree x 12 (list)

  10. Post #10
    voodooattack's Avatar
    October 2009
    1,933 Posts
    Oh god damn it, I forgot to close my project and it generated this file while I was sleeping:

    Reply With Quote Edit / Delete Windows 7 Egypt Show Events Funny Funny x 39Winner Winner x 1Programming King Programming King x 1 (list)

  11. Post #11

    January 2012
    414 Posts
    The supreme laziness of not wanting to scan through 56 pages of content :/.

    :D
    Reply With Quote Edit / Delete Windows 7 Canada Show Events Dumb Dumb x 12 (list)

  12. Post #12
    Gold Member
    dije's Avatar
    December 2008
    4,739 Posts
    Aw, didn't make it to the list this time. OP should've looked further back in time though.
    Reply With Quote Edit / Delete Windows 7 Sweden Show Events Disagree Disagree x 1 (list)

  13. Post #13
    Gold Member
    WTF Nuke's Avatar
    March 2009
    4,424 Posts
    How do you make objects move in OpenGL? I was thinking changing the coords of the objects, then uploading the data back to the vertex buffer. Is this right?
    Reply With Quote Edit / Delete Windows 7 Canada Show Events Funny Funny x 3Winner Winner x 2 (list)

  14. Post #14
    Gold Member
    danharibo's Avatar
    July 2006
    4,432 Posts
    How do you make objects move in OpenGL? I was thinking changing the coords of the objects, then uploading the data back to the vertex buffer. Is this right?
    You should change the Model View matrix to move objects.
    Reply With Quote Edit / Delete Linux United Kingdom Show Events

  15. Post #15
    Follow me on GitHub!
    Ziks's Avatar
    June 2011
    1,982 Posts
    How do you make objects move in OpenGL? I was thinking changing the coords of the objects, then uploading the data back to the vertex buffer. Is this right?
    You can send the object's position as a uniform before you draw from the vertex buffer, which saves you from reuploading the data for complex objects when they move.
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events Winner Winner x 1Disagree Disagree x 1 (list)

  16. Post #16
    origamiguy's Avatar
    September 2011
    181 Posts
    How do you make objects move in OpenGL? I was thinking changing the coords of the objects, then uploading the data back to the vertex buffer. Is this right?
    glTranslate before your draw call.
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events Disagree Disagree x 8Funny Funny x 2Winner Winner x 1 (list)

  17. Post #17
    Eudoxia's Avatar
    July 2009
    6,009 Posts
    I think I got the algorithm for my generic type system. Next up is the implementation. Then generic functions.

    After that edge-polishing.
    Reply With Quote Edit / Delete Linux Uruguay Show Events

  18. Post #18
    false prophet's Avatar
    October 2011
    926 Posts
    I took a break and did something fun.

    [edit] This particular version of this game does not have an SDK available for it. Rockets can't bounce in this game, but I changed that.
    Reply With Quote Edit / Delete Windows 7 United States Show Events Winner Winner x 6Friendly Friendly x 1 (list)

  19. Post #19

    April 2012
    87 Posts
    what an awful op
    Reply With Quote Edit / Delete Windows 7 Canada Show Events Agree Agree x 16Dumb Dumb x 2Zing Zing x 1Funny Funny x 1 (list)

  20. Post #20
    Icedshot's Avatar
    April 2010
    2,313 Posts
    what an awful op
    *insert mandatory bitch about the op*

    Seriously, this happens every time, can't we just get over the fact that no-one ever likes the op and get back to the thread?
    Reply With Quote Edit / Delete Windows Vista United Kingdom Show Events Agree Agree x 4Disagree Disagree x 1 (list)

  21. Post #21

    January 2012
    414 Posts
    Aha you set them to bounce 255 times?
    Reply With Quote Edit / Delete Windows 7 Canada Show Events

  22. Post #22
    Gold Member
    WTF Nuke's Avatar
    March 2009
    4,424 Posts
    You should change the Model View matrix to move objects.
    Oh ok. For each object, am I supposed to make a draw call?
    Reply With Quote Edit / Delete Windows 7 Canada Show Events

  23. Post #23
    Gold Member
    danharibo's Avatar
    July 2006
    4,432 Posts
    Oh ok. For each object, am I supposed to make a draw call?
    If you're managing the Matrices yourself to use modern OpenGL, you can do it like this
    GLint uniLoc = glGetUniformLocation( mProgramName, "u_worldspace_matrix" );
    if( uniLoc != -1 )
    {
            glUniformMatrix4fv( uniLoc, 1, GL_FALSE, m );
    }
    
    and multiplying it in your shader (this is how you should do it).
    Where m is an array of 16 floats the make up your matrix and mProgramName is the name of your shader program.

    If you're not using shaders or managing the matrices yourself, you can do this:
    glMultMatrixf( m );
    
    Where m is an array of 16 floats that represent the matrix to multiply with the current matrix opengl already has.

    Once you've done that, you just draw the object using the method of your choosing and it will magically be hopefully where you wanted it to be.

    I suggest you learn about modern OpenGL, and I think overv's open.gl should give you at least a little bit of information on the topic.
    Reply With Quote Edit / Delete Linux United Kingdom Show Events

  24. Post #24
    Gold Member
    WTF Nuke's Avatar
    March 2009
    4,424 Posts
    I am trying to, but it seems very different from 2d, and I am not sure about the semantics and the exact way things should be done. Anyway I'll go over open.gl, but if you have a tutorial on the way openGL programs should be structured that would be great.

    Edited:

    Wait shit this isn't WDYNHW sorry.
    Reply With Quote Edit / Delete Windows 7 Canada Show Events

  25. Post #25
    false prophet's Avatar
    October 2011
    926 Posts
    Aha you set them to bounce 255 times?
    Yes, but they would eventually be removed after about a minute or so. I could have changed that too but I didn't think about it.
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  26. Post #26
    Gold Member
    Darwin226's Avatar
    January 2009
    4,035 Posts
    Oh ok. For each object, am I supposed to make a draw call?
    Yes but there are other methods.
    Instancing for example.

    However, you should worry about that if it becomes a problem.
    Reply With Quote Edit / Delete Windows 7 Croatia Show Events

  27. Post #27
    Gold Member
    Naelstrom's Avatar
    June 2010
    2,648 Posts
    I for one think the op is fantastic.    I'm in it   

    Oh yeah I just made some fog, solid tile outlining, and a threaded lua console.


    I'm hoping for a 2d-3d hybrid game, much like dwarf fortress.
    Reply With Quote Edit / Delete Linux United States Show Events Artistic Artistic x 2Winner Winner x 1 (list)

  28. Post #28
    Gold Member

    March 2005
    3,028 Posts
    I don't know if I like the outlining. If you got some proper art assets, you probably wouldn't need it.
    Reply With Quote Edit / Delete Windows 7 Show Events Agree Agree x 1Informative Informative x 1 (list)

  29. Post #29
    Gold Member
    Naelstrom's Avatar
    June 2010
    2,648 Posts
    Thanks for the input; I just think it's hard to tell what's a wall and what isn't without the outlines.
    And unfortunately I'm doing all the art assets myself, so they'll probably never be proper. :(
    Reply With Quote Edit / Delete Linux United States Show Events

  30. Post #30
    Richy19's Avatar
    May 2010
    5,368 Posts
    Got fedup of the blocks and the lighting problem so started using OBJ files instead.
    Made a kind of flash light:
    Reply With Quote Edit / Delete Linux United Kingdom Show Events Funny Funny x 1Dumb Dumb x 1 (list)

  31. Post #31
    Gold Member
    esalaka's Avatar
    July 2007
    10,065 Posts
    Big gun
    Reply With Quote Edit / Delete Linux Finland Show Events

  32. Post #32
    gra

    August 2011
    276 Posts
    Hello World
    Reply With Quote Edit / Delete Windows 7 United States Show Events Dumb Dumb x 13Late Late x 3Informative Informative x 1 (list)

  33. Post #33
    Follow me on GitHub!
    Ziks's Avatar
    June 2011
    1,982 Posts
    I think puush just died
    Reply With Quote Edit / Delete Windows 7 United Kingdom Show Events

  34. Post #34

    April 2012
    87 Posts
    *insert mandatory bitch about the op*

    Seriously, this happens every time, can't we just get over the fact that no-one ever likes the op and get back to the thread?
    the last few threads were fine except for the odd few complaining about not being in the highlights.

    but then we have this shit:

    Reply With Quote Edit / Delete Windows 7 Canada Show Events Agree Agree x 12Dumb Dumb x 1 (list)

  35. Post #35
    Gold Member

    March 2005
    3,028 Posts
    I wasn't a fan of the tetris video highlights, whichever one that was.

    (Sorry, Overv.)
    Reply With Quote Edit / Delete Windows 7 Show Events

  36. Post #36
    open.gl
    Overv's Avatar
    February 2007
    7,431 Posts
    I wasn't a fan of the tetris video highlights, whichever one that was.

    Sorry Overv.
    I don't think anyone (including me) disagrees with that opinion.
    Reply With Quote Edit / Delete Windows 7 Netherlands Show Events Funny Funny x 9 (list)

  37. Post #37
    itty-bitty pretty kitty
    Dennab
    September 2008
    9,837 Posts
    Don't we need rating highlights?
    Reply With Quote Edit / Delete Windows 7 United States Show Events

  38. Post #38
    quality poster
    Dennab
    August 2009
    12,242 Posts
    Don't we need rating highlights?
    so that we can get more circlejerk/sarcastic posts in the OP? no i think the pony shit has filled the awful-quota for this months OP
    Reply With Quote Edit / Delete Windows 7 United States Show Events Agree Agree x 2Funny Funny x 1Zing Zing x 1 (list)

  39. Post #39
    Gold Member
    BlackPhoenix's Avatar
    May 2006
    444 Posts
    Awww, they omitted pictures of my aerospace stuff from the OP again.
    Reply With Quote Edit / Delete Windows 7 Russian Federation Show Events Friendly Friendly x 14 (list)

  40. Post #40
    Austech2's Avatar
    April 2011
    112 Posts

    Didn't even post once in previous WAYWO, get my face into the highlights. I've never been so proud of myself.
    Reply With Quote Edit / Delete Windows Vista United States Show Events Funny Funny x 12 (list)