brent_hamel's Forum Posts

  • The way I like to handle slopes using the tilemap, is to detect the specific tileID that my character is standing on. I check directly using XY coords converted to TileXY coords. Once you know the tile the character is standing on, you can program specific things to happen.

    If using the Platform Behaviour, you could then change values like:

    - acceleration/deceleration based on the playerDirection VS slopeDirection and slopeAngle

    - this can simulate fast decent downhill or slow climb uphill, kind of similar to ice physics

    - you can have different settings for if the player is trying to stand still VS trying to move

    - adding/subtracting with vectorXY (to "push" the player downhill)

    - the player may be trying to run uphill, but adding vectorValues will push them downhill at an amount related to the player's input

    - change GravityAngle

    - this can be tricky, as you've got to have collision boxes set up so they don't "catch" on each other

    - however if set up properly, this can reduce the need to fuss with vectorXY or accel/decel

    - or it could be as simple as you program a specific forcedControl when the player holds DOWN and the character is standing on the slope, like how the slide in Mega Man 3 works. It literally pushes you left or right, and stops when the slideTimer runs out AND Mega Man isn't in a single tile high passage, otherwise it keeps the slide going until he can stand up again.

    Not sure if any of this makes sense of not, if not then I can try to be more specific. Or if this brings up more questions, please feel free to ask.

  • Is your slope collision being done with a sprite object or the tilemap?

    If it's a sprite, is the collision poly sloped so that the sprite sits at angle 0? Or is it a box collision poly and you're rotating the sprite itself?

    Depending on how you're doing your slope, it will affect how to go about programming it.

  • This looks awesome! I can't wait to try it out, thanks so much for the input!

    I think in terms of efficiency it might be a plan to do sprite pooling... so create however many sprites you need/system can handle ( do some testing for lower end systems ) at runtime, and then use your idea of a cone of visibility ( also known as the camera's frustum ) and then when a sprite is out of view, move it to the furthest new point in the frustum that needs a sprite

    That way you've always got the same number of sprites operating at once and thus are able to plan for cpu usage in other areas :) either way I'm stoked to try this out!!

  • Oh, ok, I've always thought mode7 was a scanline trick with a large texture that simulated a 100% flat image plane with false perspective, so it could look like a large flat ground plane...

    EDIT: after researching, I can see that mode7 does use some matrix math and so is on the right track, but is the 100% opposite visual result I'm after lol

  • No, not Mode7 lol. Specifically not mode7 lol.

    I'll try to give a clearer picture... ( I should prolly just mock up a screenshot lol )

    - I want to take a heightmap and send it to a 2D array

    - then each array element gives me 3D world coords XYZ ( based on the elements XY in the array, and Z being the values stored at the XY )

    - I want to send those coords into the webgl matrix calculations so that I now have my screen space coords for all of my array XYZ values that fall within the "camera" frustum ( clip space )

    - Finally, I want to represent those array elements/points onscreen using scaled sprites ( which would act as billboard sprites by always facing camera )

    Not sure if that helps paint a clearer picture or not... but its literally just the accelerated matrix math that I want. I have a couple leads I'll be trying and will follow up here with any successes/failures/noteworthy discoveries.

    I've always disliked the look of polygons ( though I AM definitely growing a fondness for low-poly! Mega Man Legends 1 and 2 are gorgeous!!) and Mode7 has always been too flat for me... its really only useful if you add billboard sprites to it to give it some verticality, but even then, is still unbearably flat... So this is my attempt to imagine games of the early polygon era, as if polygons were never invented and Sega's Super Scaler arcade tech was the direction things went, so more sprites, larger sprites, more animation frames for rotations, etc.

    This game will, ideally, be entirely handmade pixel art, using 3D Point math to modify sprite scale/z-soting/depth effects to create a pseudo3D world, no 3D physics, just display rendering

  • I can't say that there's much appealing to me about Unity or Godot... I've attempted both in the past and found them incredibly frustrating and cumbersome... and really have never been able to achieve the results I've wanted...

    Something like...

    youtu.be/QoGaj2HnVUI

    ... is probably closer to what my goal is, though different still beyond this of course!

    Given that WebGl is inherently 3D capable in terms of math, my original question is still... do I have access to that with C3 ( see example fiddles in the original post ), otherwise it seems like C3 took a 3D ready system ( in terms of its math capabilities at least ) and limited it to 2D... so all I'm looking for is a way to get access back to that aspect of WebGl...

    There are far too many reasons for wanting to use C3 for this than there are for me to stop, re-attempt to learn an entirely new piece of software ( to me ), and then start the project all over again, without any of the engine elements that are already in place.

    Is it not possible to use the JS capabilities or create a WebGl shader to attempt any of this? It's literally just about feeding values into a matrix and then doing some math on that matrix. As mentioned I have a working demo for it, but its janky and slow with the event system, and not quite usable for the game itself. So if I had a way to speed up the math, ( and not have to store Matrices as crazy long strings that I have to parse with "tokenAt()" ) then I feel like it would be where I need it to be.

    tl,dr: I don't want any Polygons, Voxel Models, Wolfenstein/Doom clone engines, whatsoever... the goal is to stay as far away from 3D visuals as possible, with the exception of Billboard Sprites to represent a noisemap/level layouts using matrix math

  • Thank you for the respose!

    I have explored proper 3D engines already, and while they make this aspect of the game-engine a little easier to achieve, they do NOT get me the desired look without a lot of workarounds...

    The Goals are:

    - Clean and crisp pixel art at low 16:9 resolution ( 480x240 )

    - 3D matrix point calculations for the a 3rd Person, behind the player style camera

    - Billboard sprites that exist at each point to help generate the game world

    - Shaders for special fx, vfx, and stylised depth simulation

    ( The real goal is to explore the way games might have looked if polygons had never taken over... lol )

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Hey all,

    So... I've been using C3 for a little while now, and am starting to hit a lot of walls with my goals...

    At this point, my goal is a Pseudo3D engine using billboard sprite and matrix multiplication to simulate 3D space... ( yes I realize C3 is not intended for 3D, but I'm looking for advanced Pseudo3D, which my game is dependent on )

    While researching matrix mathematics for 3D point calculations, I realized that WebGl is inherently 3D capable and actually has a lot of functionality for matrix applications.

    ( see: developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Matrix_math_for_the_web )

    ( and: developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_model_view_projection )

    So my question is... how accessible/inaccessible is this kind of application within C3? Like can I try writing a shader that will work something like the fiddle's presented in these examples? Is the built-n JS open enough to allow for this sort of thing? I've got a working demo using sprites, events, and string parsing for the matrix math... but its slow, clunky, and while it works as a demo, its not great for the actual game...

    I'm really hoping that what I'm looking for is possible in C3 in an efficient and usable way, as otherwise I'll have to jump ship for something more suitable to my needs... which I'd rather not do, as I love using C3 and anything else will be much slower due to learning curve...

    So please advise... am I trying to jam a square peg into a round hole here? Or is the round hole flexible enough for me to get it in there anyway?

    Feeling pretty defeated and deflated atm tbh...

    Thank you for any advice/responses

  • Use Worker is already off and the console reports:

    "DevTools failed to parse SourceMap: chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.postload.js.map"

    My knowledge of anything HTML5 related so pretty non-existent I'm afraid...

  • Hi all,

    Finally bit the bullet and made the jump from C2 to C3, but am now wondering if anyone else has had the problem where preview mode seems to randomly load up in such a way that the user has no input ability whatsoever?

    It seems to be random as to when it happens, and its all or nothing, either full control input is present, or the preview responds to zero input, but it still running according to debug mode.

    Its quite a large project for me to post so I'd prefer to avoid sharing the c3p file if possible. So I'm mostly just curious if anyone else has run into this? It is a custom input system I've built so the problem could be on my end... but I've been over it pretty heavily and haven't found a possible cause yet.

    Thanks for any and all input/suggestions

  • My goal was to try and have an exported C2 game saved to a USB stick, which could be plugged into the Pi, and then write a script which reads newly connected USB devices for the game's executable and then automatically runs it. Sort of a USB Game Cartridge kinda concept... I was hoping it could be part of a Kickstarter High Pledge reward (custom pi "console" complete with game "cart")

    I've a friend with a 3D printer and thought it might be fun to do a limited run of these with custom casings and such lol

  • This may be a long shot... but is there anyway to tweak it to work on individual sprites? I tried it but it starts producing some visual artifacts right away... otherwise this is awesome! Thank you!!

  • Any estimated time to completion? It'd be super handy for my projects, so I'm just curious if there's a timeframe for it

  • Fair enough... makes me wish I was a far more advanced programmer though lol

  • I'm guessing no one is familiar with exporters for ARM architecture devices or if its possible for one to be made for C2...