doom research

About Monkey 2 Forums Monkey 2 Projects doom research

This topic contains 29 replies, has 4 voices, and was last updated by  AdamStrange 1 year, 9 months ago.

Viewing 15 posts - 16 through 30 (of 30 total)
  • Author
    Posts
  • #9040

    cocon
    Participant

    Without getting too deep into the AI algorithms the most easy and thin approach would be to get inspired by Shiffman’s work: http://natureofcode.com/book/chapter-6-autonomous-agents/ . It’s true that here are more advanced algorithms and dedicated libraries, perhaps in more advanced and specific needs, it would make sense to link to an AI library if it is needed, this approach however has a good balance between ease of implementation and results.

    The agents would have two states, 1: random walk (example 6.11), 2: attack (example 6.12), and then there could be some clever state management to define the AI tactic.

    #9050

    AdamStrange
    Participant

    There’s some very interesting stuff in there. thanks for that one.

    Still bogged down with sliding collision. but slowly moving forward…

    #9051

    AdamStrange
    Participant

    Sliding collision sorted – phew

    Here’s a shot showing automatic culling of walls, plus floors at different heights with walls at correct floor heights:

    This is now the basic Doom map system complete.

    #9067

    cocon
    Participant

    Have you found the portal system of Doom any useful?

    My personal note on this is that it has some good parts, it’s minimal so it doesn’t pump the engine with lots of concepts, also the ease of level design is phenomenal.

    The downsides is that because there are no reusable assets, is somehow like painting the level, changes would be costly. An typical example is when making sliding it involves too much steps, where a simple asset would be much better.

    I would be 50-50 on this for going into a hybrid approach and mixing classic portals with 3D assets, but I am not sure yet.

    #9069

    AdamStrange
    Participant

    I’m not actually using any doom code or concepts. I’m coming at it from a map perspective. The portal system and bsp systems are there to throw away geometry and unneeded rendering. At this stage I want to get the map right and operational.

    I thought about using map sections/sectors, which would do something similar.

    One of main aims was to see if I could actually do it. on this small scale it looks possible.

    #9070

    AdamStrange
    Participant

    Got jumping working now and different heights with correct jump systems and fall systems. I needed to go back to doom and test the timings and they more or less match now 😉

    #9073

    AdamStrange
    Participant

    last one for the day. not too interesting in the 3d visuals front:

    But.. if you look at the 2d maps you can see the following:

    top left shows triangle culling dependant on the facing direction. the number in aqua are the triangles being culled

    middle shows line culling. in this case it does a (very) simple test to determine if a line can be seen and then takes the previous triangle culling. Any line that is shown faded/dark has been culled.

    I think that the triangle culling could be extended to included triangle connected with the culled triangle? but currently I am happy about this as a culling system so far.

    Culling becomes more and more important as the complexity increases. You don’t want to send any data to be rendered if it isn’t seen…

    #9074

    EdzUp
    Participant

    looking nice 🙂

    #9084

    AdamStrange
    Participant

    Next up is ceilings and walls

    The walls are the lighter grey with a slash through them. they also have a small label on the bottom so you can see which direction they are facing.

    Although this show shows progressive dropping floors, the ceilings remain at the same level, and the wall models are correctly scaled.

    I’ve put in place provision for floor heights that can change – so lists are no possible too.

    and here’s a shot with some debug wall models added

    #9129

    AdamStrange
    Participant

    and another with completely different models…

    working on looking up/down and firing. and also actors. Where an actor is anything that moves…

    #9150

    AdamStrange
    Participant

    it’s got nasty. I need to rewrite the triangle and line systems so that it could include floor. This meant getting winding directions or triangles, deciding and manipulating which way a line was facing, etc

    So now I’ve got potential floor code and just putting back the wall code, and need to do the same with the steps.

    Don’t worry if this all sounds gibberish? You shouldn’t have to think about any of it with a map editor…

    #9291

    AdamStrange
    Participant

    ok. After a lot of tweaking and dealing with ‘step’ problems. here’s the result:

    You can see that the default (initial) simple map has gone. This map was created in about 2 minutes.

    In essence you click a line (in the map) and decide to extend a triangle or quad – buttons will appear in the left panel gui

    You can select vertexes, lines or triangles.

    vertexes and lines will allow dragging to change the map

    triangles can be multiple selected and their floors raised and lowered – steps will appear automatically and correct and have very little overhead when being recalculated – so platforms, rising stairs is a possibility.

    selecting anything one the map and making changes is all done realtime in the 3d view.

    It’s a bit like staring in a cube and then carving out the places you can go.

    #9318

    AdamStrange
    Participant

    Now that I’ve fixed the steps, I’ve done the same for the ceilings. so for any triangle it can have a separate floor and ceiling height, that can be adjusted in realtime.

    I’ve been working on the gui and added dynamic side panels which can either be left or right.

    And now for something different…

    triangles now have a light parameter from 0 to 1. this sets the overall light a triangle has and allows for doom1 style lighting effects. NOTE: this is NOT lighting and doesn’t use any lights as such.

    So given a trigger you could turn on/off lights, flash them, etc

    I’m working on a lighting system that will give loads of lights with very little overhead (not deferred either)

    #9354

    AdamStrange
    Participant

    all going well. The latest is pillars.

    a pillar is a thing that you can’t pass through:

    just select a triangle and the “create pillar” and a pillar will appear in the middle of any selected triangles.

    You can see a pillar above in grey with it shown on the map as a grey blob.

    Pillars automatically adjust to the triangle they are on and collision is automatically handled as well. there will be controls for making a pillar bigger or smaller and moving a pillar around.

    #9376

    AdamStrange
    Participant

    tiny update

    pic shows 3 of the 4 kinds of unit:

    grey pillar – can’t pass

    lime pickup – just as it says

    yellow box. Original it was a box, but I decided a sort of circle made more sense as that is the collision it uses. basically it is something you can jump onto, climb onto, fall onto, etc. it will also stop you if it is too high. and it responds to things being fired, etc

    the last one -not shown is ‘ignore’. it is a things that is ignored as if it is not there (collision wise)

Viewing 15 posts - 16 through 30 (of 30 total)

You must be logged in to reply to this topic.