Colonel Justice's Forum Posts

  • Awesome! Are you going to sell the engine?

    Is is possible to add shadows? Depending on the light source?

    This looks promising!

    The template will be for sale in the shop at a reasonable price.

    It will not be possible to add dynamic shadows. For that, we are missing an equivalent to C2‘s paster plugin.

  • Constructenstein 3D

    Due to popular demand, I'm right now working on the updated raycast engine for Construct 3. It's aim will be to let you people create your own raycasting games with Construct. It can do less than Doom, but more than Wolfenstein 3D.

    I've ported most of the features from my first attempt in C2 and heavily focused on usability and performance. The template will be using Freedoom assets under the BSD license as I don't have too much time to create my own from scratch.

    Features

    -Optimized 3d raycasting engine that will do all the heavy lifting

    -Easy to use level editing in Construct 3 layout editor

    -Pickups, weapons, ammo, health, keys, etc.

    -Minimap

    -Colored fog effect

    -Different enemies

    -Different projectile types (hitscan, rockets, plasma balls, etc.)

    -Difficulty settings

    -Doors, secret areas, touchplates

    -Function library for total engine control

    -Ingame menu overlay

    -Customizable controls

    -Will come with full documentation

    Some ingame impressions

    Editor layout

    Release date: When it's done

    Although it's been a year since the original preview videos on Youtube, stay tuned!

    Cheers!

  • Granted

  • > > imgur.com/a/ofwBY7b

    > >

    > > getting this error in latest c2 version on testing.

    > >

    > > also shooting and axe slashing wont deal any damage to enemies. is that normal ?

    >

    > Hi, You get error due somewhat broken mouse or look behavior I have this one too and developer maybe fix it sometime later when he is going to port engine to C2. Right now I think this example is just to make stuff render in Wolf 3D manner. Engine is still early in development. So I think you could just use it for rendering walls and objects while the rest you could make yourself like I did. I hope this answers your questions.

    i am not quite good with this topic, i know C2 quite well for platformers and stuff but thats new..

    would you mind sharing your updated version ?

    Can you share your capx?

    Are you available at the Construct discord channel?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Check weltenschmid's fix on the mouselock behavior:

    Aw crap, can it be that posts randomly get deleted? Just posted the solution and a minute later the post was nowhere to see... might be that it suddenly may appear again. My post count is on two but the search just shows one?!? Schräg!

    Okay, got the quick fix. Just saw that they realized it as well in the MouseLock forum section and are working on an update. For us it's simple: Go to the the Construct 2\exporters\html5\plugins\MouseLock_Ver_0.5 Folder open runtime.js and at line 440 comment or delete the following lines:

    document.pointerLockElement =	/*document.pointerLockElement 	||
    										//commenting out the above line makes this work as intended. Don't know why.
    										document["mozPointerLockElement"]	||
    										document["webkitPointerLockElement"];[/code:u8ds4d4m]
    That does the trick! If you feel like tidying up you can set the MouseLock Object's property to single click and remove the left click event. 
    
    By the way, the RealDanyyy used the situation to his best and promoted his MouseLock plugin: [url]https://www.scirra.com/forum/new-simple-native-like-mouselocking-plugin_t199484[/url]
    Might be of interest to you?
    
    So now I feel like tinkering! Cheers! 
    
    -------
    
    Update: Didn't knew if it was me or was it just an illusion that you had hitting scenes in your screen shoots I thought. So I sought for the source of the missing hit. Don't know why you are setting the bullet's targets at the start of the layout and not at their creation time, but after changing it, the striking and shooting works again! Woot! 
    
    [img="https://3.bp.blogspot.com/-Kdg_N1ENIgg/WrAkYdj7C-I/AAAAAAAACFE/YlXo_Dj9qWEbu4bI-Nww5okTrjwPB-LzACLcBGAs/s640/bulletOnCreated.jpg"]
  • I got 6.5% CPU usage and 0.4% GPU usage, running on a Ryzen 7 1700X + GeForce GTX 960.

    The main CPU load is caused by draw calls 4.2%.

    Setting the solids + sprites layer to initially invisible is reducing the draw call load.

  • Would it be possible for you to share a stripped down c3p?

    Cheers

  • Does the machine you are running the preview on have a dedicated GPU?

    Rendering workload is else handled by the CPU, explaining also why estimated GPU utilization is unavailable.

  • > > Hello I just gonna ask for pure optimization questions.Is it possible to render not in 640x360 resolution but something smaller like 1/4 of that because I need really long rays for some places due the fact its kinda open world kind project. I saw in your teasers that you have textures on floor and ceiling so if its plugin or something else? Will this engine transparency? Because if will then I could use just walls for roads in my project.

    > >

    > > Thanks.

    >

    > You can basically lower the project resolution and tell via global variables to use fewer rays, e.g. 320 px. Therefore you could utilize longer ray distances. The key performance boost is to test against fewer instances. The C2 version uses sprites as walls, and you have to test against each instance.

    > The C3 version uses a single tilemap object (as showcased in the Youtube videos), which is a single instance. With some clever math figuring out the texture and wall angles, this means a massive performance boost.

    >

    > The floor and ceiling textures are not raycasted. In fact, they are rendered through sprites with the mode7 effect applied, then more or less correctly altered through player position and angle.

    So using Mode 7 I could create floors. OK I have plugin and effect but in video is this repeated texture or one large? because for creating road like effect I'll need use large texture or chunks of said texture? And how proper use that effect because I kinda tried but if I set it as one its just white floor or just flys in very quick speed, anyway mode 7 for floor.

    The best bet is to use a single big texture. You have to flip the image / rotate it though, as the sprite gets transformed by the mode 7 effect.

    Also:

    You have to factor in the players viewport angle.

    Therefore :

    mode7 x: Player.X / scrollingfactor + cos(Player.Angle)

    mode7 y: Player.Y / scrollingfactor + sin(Player.Angle)

    scrollingfactor is related to player viewport height and screen resolution / mode7 object height and has to be tweaked.

    Also keep in mind for FPS purposes, the horizon line has to be at Y viewportheight /2.

  • Hello I just gonna ask for pure optimization questions.Is it possible to render not in 640x360 resolution but something smaller like 1/4 of that because I need really long rays for some places due the fact its kinda open world kind project. I saw in your teasers that you have textures on floor and ceiling so if its plugin or something else? Will this engine transparency? Because if will then I could use just walls for roads in my project.

    Thanks.

    On transparency: Unfortunately, the engine to date cannot render (semi)transparent walls effectively. That would mean, for each ray, you would have to test against walls until the ray hits a wall that has no transparent texture component, then stack each transparent wall and render it to a, for instance Paster instance, including the last hit wall which has no transparency. This is not feasible right now with C2/C3 plugins and would require a plugin to be written from scratch. Again, time is of the essence.

    The semitransparent components shown in the Youtube showcase are composed of striped sprites spawn in the correct order, e.g. the gate style textures you can see before doors, the laser fence, etc.

    Again, while this works in principle, it takes a heavy toll on the engine performance. I have yet to figure out a clever way to create and render these walls at runtime.

  • Hello I just gonna ask for pure optimization questions.Is it possible to render not in 640x360 resolution but something smaller like 1/4 of that because I need really long rays for some places due the fact its kinda open world kind project. I saw in your teasers that you have textures on floor and ceiling so if its plugin or something else? Will this engine transparency? Because if will then I could use just walls for roads in my project.

    Thanks.

    You can basically lower the project resolution and tell via global variables to use fewer rays, e.g. 320 px. Therefore you could utilize longer ray distances. The key performance boost is to test against fewer instances. The C2 version uses sprites as walls, and you have to test against each instance.

    The C3 version uses a single tilemap object (as showcased in the Youtube videos), which is a single instance. With some clever math figuring out the texture and wall angles, this means a massive performance boost.

    The floor and ceiling textures are not raycasted. In fact, they are rendered through sprites with the mode7 effect applied, then more or less correctly altered through player position and angle.

  • Colonel Justice do you have a c3p files about this ray cast method? Can you share this for construct 3? Thanks.

    Still working on it, I'm having not that much spare time for the last couple of months, business and private-wise, so there might be a c3 example in some time, covering the basic methods.

    The C3 version also is using a different raycasting method which eliminates the distortion artifacts you see in the C2 build. Reason is that I was following the Permadi method, which is not built on vector math, which you should use.

  • Hello again I fixed problem with walls they now render but wonky.

    and in middle they look like one side is further than other.

    Thanks in advance.

    This looks like either math is wrong or a pixel rounding issue (wall render stripes being not integer widths).

    Which files do I have to look at in your shared folder?

  • Consider my reply before:

    You have to factor in the players viewport angle.

    Therefore :

    mode7 x: Player.X / scrollingfactor + cos(Player.Angle)

    mode7 y: Player.Y / scrollingfactor + sin(Player.Angle)

    scrollingfactor is related to player viewport height and screen resolution / mode7 object height and has to be tweaked.

    Also keep in mind for FPS purposes, the horizon line has to be at Y viewportheight /2.