camera idea for 3D

This forum is currently in read-only mode.
  • hi all, don't know if i post this at the right place, but here's an idea for the one who's working one the 3D part of construct, i know that right know it is hard to code a 3d game because you have to move the world around the player, my idea, i don't know how hard it would be to implement, is to add a feature to be able "rotate" the camera/view/ on the other axis(side view instead of top), this way it would be much easier to make a 3d games with it, this way 3d could work almost the same as 2d, your stage would be in top view instead of having to code it to move around you.

    hoping it's clear enough so that you can understand, sorry for my english i'm french,

    edit: forgot to say that to make it clearer, is that almost all behaviors would be compatibles this way, 8 ways movement and everything could still be use as y/x would be the front/back/sides of the object

  • I second the request to be able to rotate and position the camera in 3D.

  • or to be able to assign it to the face of a 3d box used as a camera

    edit: aww if i knew c++ more i would have tried to make a plugin, but i just downloaded the sdk's and i have absolutly no idea were to start

  • a camera facing towards you is the same from top left right bottom back front. the only thing you need to alter is your graphics. to be viewed from that angle. saying you have a problem with the camera facing top when you want a side view, is like complaining the 2d plane in construct is only letting you make top down games.

    As for a camera thats not oriented on an axis, thats more of a "should you be using construct for 3d games" kind of question.

    EDIT: misread your post a bit sorry. any way you look at it, making a true 3d game where you move around in 3d is not the best idea in construct, and its never going to be easy, because 3d isn't. construct isn't made for fully fledged 3d games, it just has some 3d functionality. if you really wanna do it, learn the rotation math yourself, its not "easy", but its not all that difficult either.

    the wolfenstein 3D demo and my mode7 example do exactly what your asking for with events. and in not at all that many.

  • i looked at the wolfenstein demo already, but it seems more to me to be the "world" that moves around it and not the "camera" that moves around,and besides i don't want to achieve a big commecial quality game, "minecraft" style graphics is more than enough to start with, anyway i'll try to find a work around by myself thanks anyways

  • its essentially the same thing to rotate the world. theres no such entity as a "camera", you'll always be rotating and translating the vertex cloud around a fixed point. that point is the "camera". in anycase, you wont be able to actually manage the 3d programming in a game if you can't make a simple camera using events. theres no EASY way to do 3d programming in construct, and i'm skeptical there ever will be in the near future. The quality of the graphics have nothing to do with it.

    you can only rotate the world. there is no other way around that fact.

  • well i'm sure that it must be possible to develop a "3d camera" behavior plugin that could let you choose a side of a 3Dbox that would then draw to the screen what is in front of that face, but the thing is to do it... i would like to do it, but do not have enough knowledge to do so, i'm still studying the sdk's, but i'm far from being able to do something, i only found until now where the window is builded in the VRuntime.h, that itself uses RenderCommon.h, now i'm looking for the 3dbox, to see if i could find a way to refer to one of it's face, and then i'll have to figure out how i need ro build what i want

    edit: just found out the 3Dbox i think it's Quad.h

    edit2: i think that i wont be able to do it on my on, anyway i think i just found a program specially made to make 3d games, 3D rad, if somebody is intested here's the link: http://www.3drad.com/

  • no, you can do it with events. its 3d rotation. why do you even need anything relating to a 3d box object. just get the yaw pitch roll, and theres no reason to even use a 3d box, since yaw pitch and roll are all just numbers.

    why does a camera relating to a 3d world need to refer to a 3d box object at all???

  • Quazi, if you could move a camera around as simply as you move a box around, I'm sure you could see the advantage. Not everyone is crazy good at math to be able to position all objects in world space . Hell, I don't even understand David's old Wolfenstein demo, and that was relatively simple 2.5d...

  • If CC could do this, I'd be a very happy user.

    Subscribe to Construct videos now

    Make use to 3D models for 2D.5 games.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • well i'm sure that it must be possible to develop a "3d camera" behavior plugin that could let you choose a side of a 3Dbox that would then draw to the screen what is in front of that face, but the thing is to do it... i would like to do it, but do not have enough knowledge to do so, i'm still studying the sdk's, but i'm far from being able to do something, i only found until now where the window is builded in the VRuntime.h, that itself uses RenderCommon.h, now i'm looking for the 3dbox, to see if i could find a way to refer to one of it's face, and then i'll have to figure out how i need ro build what i want

    edit: just found out the 3Dbox i think it's Quad.h

    edit2: i think that i wont be able to do it on my on, anyway i think i just found a program specially made to make 3d games, 3D rad, if somebody is intested here's the link: http://www.3drad.com/

    hi beds

    there is an sdk tutorial. you should definitely start with that. it'd be extremely difficult to figure out the sdk without some guidance. here's the basic tutorial.

    if you have trouble figuring it out, or getting it to compile, or whatever, the appropriate forum to ask questions about that end of things is construct engineering. I actually think it would be very simple to make a 3d camera, within the actual runtime of construct, because construct is already using a 3d camera, it's just stuck angled at the background, so it would only need the extra commands for yaw pitch roll (not sure which one we can already use). The problem is whether it would be practical or not.

    I think it's probably possible to do it without altering the runtime in a plugin. I haven't worked directly with directx calls that much yet, but it seems like it should be pretty straightforward. I think it would work better as an object than a behavior though, as of now, all behaviors can be used on any object that is placed on the layout, like box, 3d box, sprite, line, etc, but not on mousekeyboard, array. so creating a behavior that only works with 3dbox would require rewriting 3d box to provide feedback to the behavior about what it's doing. that's not hard, but it's also not necessary

    So back to the practical part. if it's simple, why not just add it to the runtime? because it may just cause more problems than it solves. your game will look like a bunch of flat 2d cutouts when you switch from looking at them straight on, all lined up like a diorama. Then you would need options for sprites to make them always face toward the camera, or be able to rotate them along all axis's. This is all possible through sprite distortion events, but it would be about as fun as trying to make the world rotate around you instead of using the 3d camera. Then there's the issue of having no 3d layout editor. All these features and extra options everywhere are going to confuse new users who will try them out and basically not understand why there seems to be a halfimplemented 3d aspect to construct, at which point the board will be constantly flooded by questions on how to make it work well. Part of the beauty of construct is that by sticking completely to 2d, you can have a simplified system of condition/action(cause/effect - stimulus/response) relationships that's just not possible in 3d where all the spatial information related to any event adds just one too many layers of complexity to make this system work as neatly.

    but by all means, try out the sdk tutorial. a 3rd party plugin that does this would be harmless to the rest of the system, and to newcomers as well. also, if you know some c++, and don't mind fiddling around. creating such a plugin, if it's possible, should be pretty straightforward

  • oh yeah, and one more thing, you said if you knew more c++. I would recommend, even if you know very little c++, to go ahead and try it. I and at least one of the other plugin developers here started out with the sdk thinking there's no way we understood enough c++; but you can mess around with alot of the stuff in the sdk without knowing how it works. Between asking questions in the construct engineering forums, general c++ questions on google, and looking at the other plugins in the svn when you need to know how a certain plugin did something.

    you might see something in a behavior that looks like this

    [quote:1eztsoxs]pLink->info.x=50;

    and it might look weird, but if I tell you that this is how a behavior sets the x position of the object it's attached to, so it's like the action

    [quote:1eztsoxs]Set X to 50 in construct

    you can still use it, even if you don't know enough c++ yet to be able to understand the syntax. you also don't need to go research and memorize all the construct specific commands. since you have to use visual studio to use the sdk, you automatically have all the commands there

    as soon as you type

    [quote:1eztsoxs]pLink->

    all the options for pLink are there, and the same for when you type

    [quote:1eztsoxs]pLink->info.

    you see that you can set values for x,y,angle, h (for height),etc,

    there are not many questions asked on the construct engineering forums, so feel free to ask alot. even basic stuff like. so what does -> mean anyway?

  • So the idea here is to make a behavior that would effect the z distortion on all objects with the behavior, based on user set coordinates?

    Ok that part should be doable, but my question is wouldn't that add a lot of overhead if your continuously setting z height for many objects?

    I mean don't you have to recalculate each distortmap each tick pretty much?

  • thumbs did it, it runs reasonably well at its poly count.

  • lucid: we'll acually i was looking at the sdk's with code block lol, i don't own visual studio, tought if i was able to do it i could have just sended it to another interrested user, i do know the basics of c++, java, python, but lets say that i "skipped" the "object oriented" part, it was gaving me headatches(didn't learn from school), i would be able to write small programs or games, but all in singles files lol, i understand the basics of it, but need to work more with it, so i guess i will need to take my "course" were i left it before attempting to modify someone else's job lol.

    but it would be a very interresting feature to add i don't know if some of you worked under one of the following : gamemaker, blender, 3drad, but in those(specially GM) you can see how usefull it can be, and for someone who know c++ and d3d well enough, no it must really not be hard to do, as the d3d seems to be lauched even if you use only 2d sprites, and from what i know in d3d as well as in opengl, you can "move" your "camera" around, and the goal is not to make it fully "3D ready", you can already import 3D models that's good enough, there's plenty of tools out there to create the models(blender is a good free one), and besides that there's plenty of already made models that you can download, the only thing really missing here to be able to make it fun to make a 3d game in construct is "unlocking" the camera from the top view, instead of having to use this old "n64" and before technique lol.

    If i decide to retake a "peek" at it, maybe i'll create another thread on construct engineering to see if someone is willing to help on it, or ask questions, i'dd really like to see that, it would make it almost more powerfull than gamemaker lol, anyway thanks for the advices, i already checked the available documentation, but there's a little difference between randomly assigning colors to objects, and getting the complete control of the "camera" lol, guess i should continue to look as there's only really 3 things to add, 2 variables to control it's yaw and pitch as you said, and the ability to make it parent to another object so that it moves with it.

    maybe this afternoon sometime, i'll reopen and MAYBE make another thread lol

    edit: downloading visual c++ express to see how much it can help lol

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)