PDA

View Full Version : Axis-3D



Bonnell7
06-01-2017, 01:10 AM
Hello!!!

I wanted to formally announce my current project to the forum! Just so that... anyone who's been, even remotely intrigued, can now be "in the know."

Unfortunately, I'm a bit late as far as projects go, considering the fact that I stubbornly rejected LBP3 and it's very existence for quite some time. So I'm not even expecting minimal player exposure, but the project has been challenging thus far, and that's, if nothing else, good enough reason for me to pursue it. Anyway:

Axis-3D is my attempt to add full 3D capability to LBP3. With the use of algebra, trigonometry, and calculus, I've managed to create a kind of 3D render engine that utilizes: the non-rotary 3D camera, decor-spinners, decorations, experimental position-based movers, and maybe other stuff if I'm up to it.

At this stage, I have the math of the engine figured out. With it, I've rendered 2 spheres (spheres for a reason, bare with me), each with their own active 3D coordinates. I can look up/down, left/right, jump, and more, all the time rendering the positions of the spheres to coincide with a 3D environment.

The microchips that render this 3D data are modular and can be placed anywhere on a top-down semi-3D debug map, to act as flora, obstacles, floors, or more. This microchip can even be placed on other players to support multiplayer.

In the context of multiplayer, its potential is limited to the stress my engine puts on the console; an additional player would need their own 3D render zone, with its own decorations and more. I'll be sure to make every optimization pass I can, but if nothing can be done to ensure a certain standard (taxation on the console), multiplayer support will be scrapped.

My current standing:

Movement yes, Rotation no:
So, why am I only using spheres? It's because 3D coordinates are one thing, but the rotation of objects is another: if I push the analogue stick left to turn the camera, a block sitting beside me will appear to orbit (move around me), but won't necessarily be rotating. This facet is actually more of a challenge than I predicted, but it can be solved; if not by decoration spinners, than by invisible sackbots.

Merely having an engine doesn't make a game:
Even if I pass over the engine multiple times until it works at a speed I want, it won't be much use if I didn't make an experience highlighting the engines wonders. This means, plainly, that I need to make a game out of it; and frankly, I've never been as good with finishing artsy projects as I have with tech projects. So in the event I just can't be bothered, I may just publish the engine itself with tutorials and all, so that others can make their artsy games instead of me.

Environments will be difficult:
While I could just slap a 3D coord-tracker chip on the floor of my debug map, and have it control a "floor" decoration's movement in the render zone, I don't have access to materials, or decoration mounts (I can only use decorations as-is). This means that anyone who's used to making 3D levels with material-based environments will be slightly perturbed.... sorry.
This also means that using decor-mounts to squash decorations into floors, ceilings, etc., is a no-go. Using some of HFMiles' background-elements decorations will be useful. But even still, environment building will be difficult.


I'm looking forward to the future of this Axis-3D project, let's hope it stays on track.

CuriousSack
06-01-2017, 10:34 AM
Sounding fascinatingly! :) I wish you good progress! :)

Many greetings, Jürgen^^

Bonnell7
06-02-2017, 05:36 AM
Here's a little video preview I made for the Axis-3D Project (notice that you can look up and down too!):



https://www.youtube.com/watch?v=iEzRm2nprCw

CuriousSack
06-02-2017, 08:46 AM
Wow, this seems to function pretty well! :)

mdkd99
06-03-2017, 06:01 PM
Sounds cool! I'll stay tuned.

Devious_Oatmeal
06-08-2017, 05:15 PM
You could just make something like... A playground. Devs do things like that all the time, where they just put the stuff in a 'level' with no focus on aesthetic, then have a section where there is more focus on the aesthetic. It doesn't have to be anything fancy as it is just a show, but for other creators, I am sure they'd prefer to see the tools they'd be using clearly in action more than an actual level designed to hide all that logic. At least for the preliminary creators.

Eventually you want there to be full levels to show off of course, but right now you are showing off the 'gears' that will be used for those levels; the point between having the pieces and having a full level. You just need someone to put them together, but before that middle-man can put them together, you need to show how the tools work.

Bonnell7
06-08-2017, 11:44 PM
You could just make something like... A playground. Devs do things like that all the time, where they just put the stuff in a 'level' with no focus on aesthetic, then have a section where there is more focus on the aesthetic. It doesn't have to be anything fancy as it is just a show, but for other creators, I am sure they'd prefer to see the tools they'd be using clearly in action more than an actual level designed to hide all that logic. At least for the preliminary creators.

Eventually you want there to be full levels to show off of course, but right now you are showing off the 'gears' that will be used for those levels; the point between having the pieces and having a full level. You just need someone to put them together, but before that middle-man can put them together, you need to show how the tools work.

Indeed (I'm not a big fan of dev. playgrounds, but if I'm not up to the task of making a whole level, then I'll follow through with your suggestion).
As far as how it works, there are a few ways of achieving what I want mathematically.
Axis-3D is currently in a state of experimental tech-development, where I'm testing certain methods to see how the console reacts, and to see how well parts play together. Some methods are better than others, but it depends on what I'm aiming to achieve.
For instance, I have an expensive chip that interprets coordinate data, to output 3D angles. This would mean that an AI could stare/aim at someone or something to achieve some goal. It's cool, but because it's expensive, I'd have to designate what objects need such information (a rock doesn't need to stare at you, but an enemy A.I. does).
So potentially, using my arsenal of 3D and 2D trig chips, I could do alot of cool things. But it's knowing how these things work together that's the challenge.
Once it's all ready though, I'll be sure to give it away with tutorials and all. I'm excited to see what people do with it.

Bonnell7
06-11-2017, 01:24 AM
Update:

1.1 was basically rough guestimation, with a lot of trial and error, and little real math.

1.2 utilised straightforward trigonometry with use of bulky microchips (Pythagorean Theorem, Inverse Tangent, Angle Manipulation, etc.). This version wasn't meant for real implementation. It's existance was strictly to provide a working basis with which I could reference when building 1.3.

1.3 inputs and outputs the exact same data that 1.2 did, but operates using far fewer, and far simpler microchips. This is the final version of the coordinate calculation side of Axis-3D. [Desmos.com link] (https://www.desmos.com/calculator/gxvjrxc2gp)

With that out of the way, what's left is how to render the data the system's providing.
Sphere's are easy because they appear the same from all angles (as a circle). So Axis-3D can move those about without actually rotating them.
But anything other than texureless spheres will need proper rotation ability to align themselves properly to the camera.

I'd tested the use of 2 degrees of freedom when pairing a bolt and a spinner... but Axis-3D, unfortunately, requires 3 full degrees of freedom. The only item in-game that achieves this is the character rotator when paired with a sackbot/sackboy.
The difficulties that arise because of this are:


Most decorations are placeable along one of their surface edges, not their center (a sphere's center is it's core, nowhere on it's surface). This means that the desired effect of a rotating sphere, would instead appear to orbit about the Sackbot it's placed on.
Sackbot's and even Sackboy's tend to have issues with how they render with decorations in LBP games. Some decorations that are clearly placed infront of a Sackbot, appear behind them for no reason beyond "that's how the game do."
In a way for the game to conserve power, LBP3 doesn't render Sackbot's that are off the screen. So if a Sackbot has an obnoxiously large decoration on them, that decoration will disappear if the Sackbot it's paired with isn't in the camera's sights. This is actually quite inconvenient for my goals.

Basically what I'm left with are these options:


Build a game made of nothing but texureless spheres, Sackbots, and a textureless fake floor.
Build a game that's tiled so that singular scenery-sackbots don't go off screen and have their scenery decorations disappear. Basically like a Minecraft style game.
Go super advanced and alter every Sackbots center-of-rotation with yet more math. So that the decorations rotate about their desired points.

Even the Minecraft-like level would be difficult because the basic-shapes cube is only placeable on it's surface edge instead of it's center.
That's where I am. If you have anything you'd like to suggest, please do.

Bonnell7
06-12-2017, 06:48 AM
Here's another video preview; this one of the new 1.3 system:



https://www.youtube.com/watch?v=sIKEqa4JtE0

CuriousSack
06-12-2017, 10:16 AM
Wow, I'm speechless! :) This is looking fantasticly! :)

iluminacos
06-12-2017, 09:01 PM
Pretty darn impressive. What kind of spaces would you be able to create with that? To the naked uninformed eye, only individual rooms seem possible. In scenarios such as long curving corridors, would objects out of the FOV not be taking into consideration when rendering the visuals? Having a full level of 100+ props moving at once will surely tax the system.

With that said, I wish you the best of luck. Godspeed!

Bonnell7
06-12-2017, 09:45 PM
Pretty darn impressive. What kind of spaces would you be able to create with that? To the naked uninformed eye, only individual rooms seem possible. In scenarios such as long curving corridors, would objects out of the FOV not be taking into consideration when rendering the visuals? Having a full level of 100+ props moving at once will surely tax the system.

With that said, I wish you the best of luck. Godspeed!

As I've found, Axis-3D is not capable of too much complexity simply because it's running on LBP3.
If this were code in an optomized engine, the story would be much different.

The points that are captured in 3D space can be entirely mobile with 5 degree's of freedom (6 is easy too, but's just more math (the 6th degree would allow players to tilt the screen left/right, allowing things like 3D space battles, Dreams-like sculpting, etc.)). You could build an entire shifting map if you wanted.
However, due to the limits of render space with only 16 layers of thickness, the render-zone will have to be scaled to properly fit a specific volume of 16 layers cubed. This means that simulating a space miles across, would need to be physically tiny, and visually magnified.

As far as a curved corridor where parts hidden by the curve could be potentially hidden; bare in mind that all calculations are done in the top-down 2.5D map. For instance, only activating object-microchips that are impacting a hologram cone (line-of-sight) from the player would greatly benefit the efficiency of Axis-3D.
But the curved corridor sound's like it could be achieved not with a solid cone, but a kind of ray tracer; so that objects behind other objects don't get pinged.
The ability for tag sensors to detect only the closest tag in their trigger zone could be utilized to simulate ray-tracing. Or you could try to go all-out and emit loads of actual ray-tracers, but that'd probably counteract whatever efficiency it was meant to produce.

At the moment, there's both alot, and very little potential for... awesomeness. The game's limitations certainly make this more difficult than market-tier game engines. But it's the challenge that's keeping me on-board.

venat
06-14-2017, 09:10 AM
Think there is a chance I can try it out in edit mode on your moon? I worked on a few 3D projects myself. I would like to see if I could create something interesting on your engine even if its still in alpha.

Bonnell7
06-15-2017, 04:58 AM
Think there is a chance I can try it out in edit mode on your moon? I worked on a few 3D projects myself. I would like to see if I could create something interesting on your engine even if its still in alpha.

It's not quite in alpha... nor first playable. This is just math with rudimentary render capabilities.
The potential of making something interesting on Axis-3D at this stage, would still be hindered by all the massive wrinkles I'm currently ironing out.
For instance, any decorations you place for an environment or otherwise, will have very visible little sackbots sticking out of their edges.
I bring up the issue in this topic: [link] (http://www.lbpcentral.com/forums/showthread.php?95516-Invisible-Sackbot&p=1244206#post1244206).

Now, if you want to build something that's comprised of nothing but textureless spheres, Sackbots, and simulated floor, then maybe.

But otherwise, no... sorry.

- - - - - - - - - -

In regards to a previous post of mine where I list out current concerns, I said:


Most decorations are placeable along one of their surface edges, not their center (a sphere's center is it's core, nowhere on it's surface). This means that the desired effect of a rotating sphere, would instead appear to orbit about the Sackbot it's placed on.

Luckily most of the systems this solution uses are needed for other processes in Axis-3D. So I just basically piggy-back off those signals to make this new stuff work (still has a very visible sackbot though):


http://i1383.photobucket.com/albums/ah298/Bonnell7PSN/Rotation_zpsatgaryox.gif

.gif may take a lil' bit to load...

CuriousSack
06-15-2017, 08:28 AM
This is more than impressive... its looking like some kind of magic! :)

Ninja20101
06-15-2017, 01:50 PM
This is a work of GENIUS! It looks so goooooood. Nice!

iluminacos
06-15-2017, 02:15 PM
It's such a shame, really. LBP3 has a solid engine, but it does not allow for crazy things like these to happen.

I wonder, would things like these be possible in the ps4 pro? Probably not, since the game probably has in-built caps to avoid crashing and running our of memory

All in all, this project is simply fascinanting. Godspeed!

Bonnell7
06-15-2017, 10:26 PM
After a quick review of the project, I came to a few realizations:
One of the only reasons I was using a 3D camera was because I thought I could get all the necessary rotations from pairing a decor. spinner with a wobble bolt. That didn't really pan out, so I transitioned to Sackbots.

Then, I found out that the maximum space I could build a map (due to how much the camera can rotate) would need to be a perfect sphere with diameter = 16 thick layers. This give's me even less reason to use the 3D camera, because spheres appear the same from all angles.

So basically, I'm going to migrate the logic into the perspective LBP usually uses. This may resolve some of the visual artifacts I get from lighting, depth clipping, and maybe more.

I'm making progress with hiding a Sackbot inside their own decoration.
I gave a sackbot the LBPU book to hold, and set their animation to a single frame of a kind of hand stand (the hand in use is the one holding the book). By placing a cube decoration on the side of the book facing upwards, the cube covers the Sackbot completely, but... the book itself is still visible. While this is acceptable to some, I really don't want to move forward until I know I have the best solution to this problem. Again, if you have an idea regarding the visible Sackbot issue, please post it here: [link] (http://www.lbpcentral.com/forums/showthread.php?95516-Invisible-Sackbot)

As soon as I implement the new object rotation math into Axis-3D, and potentially a Sackbot solution, I think it'd be safe to call it 1.4.

Bonnell7
06-18-2017, 12:11 AM
Here's Axis-3D with the new Orbital-Tech I displayed in my previous .gif image (all calculations are done with zero-latency logic). As a quick reminder, the visible Sackbot that I've described is best seen here (along with it's wobble):


http://i1383.photobucket.com/albums/ah298/Bonnell7PSN/Sackbot-Problem_zps2lxtqucc.gif
again... .gif may take time to load.

CuriousSack
06-18-2017, 08:50 AM
Extremely impressive! :)

koltonaugust
06-20-2017, 12:30 PM
hehe, i kind of like the sackbot :D. Can't think of a way to avoid that off the top of my head though...

Bonnell7
06-28-2017, 03:44 AM
Axis-3D 1.4 is now complete with the addition of the Orbital Tech I've implemented as can be seen in my previous .gif image.
Further progress is currently crippled due to a move I'm packing for, so don't expect too much until after July.

Axis-3D 1.5 marks the beginning of my rendering endeavours:

I have a few ideas for optimization (some of which are a bit slow) which will make the thermo operate much more flexibly. The option that's the most efficient, however, takes an actual second to load my blocks into the 3D renderer... so that bites.
But the quest continues!

Future plans involve:

Map editing through the 3D renderer, for easy first-time editing instead of trial-and-error.
Player and object interaction with moving environments, like shifting platforms and the like.
Somehow replacing Sackbots as my render sources. Decoration spinners and bolts together only have 2-DoF... but maybe that can still work, since the camera itself also has only 2-DoF.

Current bugs/draw-backs:

Sackbots still remain a huge problem, both with their visibility, and their disappearing (along with their decorations) when off screen. Still hoping to replace them entirely.
Regardless of the camera angle I use, decoration clipping still occurs. This is an issue on LBP3's side, and cannot effectively be addressed by me... sad days.

That's it for now.
Can't really make a video because I've already gutted the system in preparation for version 1.5. The .gif from my previous post is pretty much what 1.4 was all about anyway.
I may make a little .gif showing the inner workings of 1.2, since it was the pure mathematical predecessor to 1.3, but I guess that'll depend on whether anyone wants me to post it (don't want to record something if there's no real need).

Bonnell7
07-16-2017, 01:05 AM
Alright... looks like I won't be returning to this project since my PS4 is being... reclaimed... by my brother (he owns it).
(I'm moving, he's staying, oh well)

I don't really have time to bundle Axis-3D up nice and tidy, nor make a proper in-game tutorial for it.
I may be able to buy myself a new PS4 later down the road, but I don't want to wait that long to release Axis-3D.

My idea is that I give someone the engine so that they can release it with a proper tutorial, and make a game with it to show off it's uses (I'd prefer those releases be at the same time).
I may be able to record a video demonstrating how to use it, but any further questions would need to be answered via text.

Unfortunately, there was still loads of tech I meant to implement, such as a logic-only layer detector.
Frankly, I don't envy whoever wants to take-up this project, it still needs much improvement.

If no-one wants it in its current... pre-alpha state, I'll just release it as-is.

I'd recommend that if you want to work with the Axis-3D pre-alpha, you have a very firm grasp of LBP's logic system... analogue especially.
This system is almost devoid of digital signals.
The general math of the engine is pretty much taken care of, but further improvements could require more math.
Therefore some knowledge involving Trig and maybe even Calc would be great.

Sorry guys.

CuriousSack
07-16-2017, 06:12 AM
Thats really bad news! :( I wish you luck for your new chapter of life! :)

Many greetings, Jürgen^^

Bonnell7
07-17-2017, 03:10 AM
As a kinda quick project with Axis-3D, I tested a Minecraft-style game (building something with an engine is the best way to test it).
Since blocks are flat on their sides, I found I could use the original "Yellow-Head" costume to essentially remove all sackbots from sight (the costume's flush with the cubes side).

I quickly made the in-out object placement system:
The Map-Maker doesn't take into account the layers you place your blocks into manually, you have to instead determine the layer-position for each object yourself, then input those positions as analogue values into each OTM (object tracking microchip) respectively.
After hitting play, each object will jump to the layer-position you've set.
In addition, each object is still dynamic... meaning they're still capable of detecting any changes in their layer-position after their jump to the layer-position you've set.

Anywho, in this Minecraft style game I half-built (built in a night, since I'm on a time crunch), I determined the exact layer distance between blocks seperated by any distance.
Using this knowledge, I built a voxel map to play in.

Of course, Axis-3D was meant to do much more than voxel maps.
Even in this current state, it's capable of fully dynamic environments, multi-player, and more.
Which is kinda why I want someone to further its development for me.

Quick note:
Don't use Photobucket for image hosting. The stingy site took down my .gifs because I need a premium account just to embed the images. Nickels and dimes... nickels and dimes.

koltonaugust
07-18-2017, 01:35 PM
That's great news about the no longer visible sackbots! Too bad I don't think I have that costume on my ps4 (importing problems (though that one might have transferred)). I would love to volunteer for helping with this, but knowing my past, I wouldn't actually do much work on it :P. I do hope this continues though!

Bonnell7
08-02-2017, 05:15 AM
RIP Axis-3D. LBP3 corrupted it.
Should've known better, really.

CuriousSack
08-02-2017, 07:52 AM
There are so many friends who had to cancel their projects cause of errors in the game, thats a pity! :(

Ninja20101
08-03-2017, 01:47 AM
I love the power of LBP3 over LBP2, but god to Newton does it have lots of level errors. It's sad because all the level errors are not the players fault, rather the creators (Sumo).

mdkd99
08-03-2017, 10:44 AM
SAVE. YOUR. FILES. DAILY.

It's sad to see those problems in the community. Everytime you close LBP3 on PS4 you should copy the files to a usb device. It helps!

Bonnell7
08-21-2017, 11:39 PM
Well... I found Axis-3D 1.4. It was in a flash drive I forgot about lol.

It's not the most recent version, but it's a better starting point than what I had from just my profile backup alone.

In the stretch of time between then and my discovery, I've built some logic that can upend a lot of the physical systems currently in place for Axis-3D.
Not only can I use my new Positionator for precise position mapping, but I can also potentially make a near-endless voxel map using my new Rollover Timer.
It's like the Positionator, but it performs a rollover whenever it reaches 100% or -100%. So as long as I count the number of rollovers, the scale of any map skyrockets exponentially.

Both of those bits of logic can be found in my new giveaway.
(Neither chips use actual timers. I found they were too limiting... so I researched how they worked, and remade them with zero-latency logic. Once I had access to the inner workings of a timer, I could manipulate it in ways I couldn't before. So these chips are now far superior to the regular timer. Minus the fact that mine take up a sliver more thermo.)

Now the progress of Axis-3D just depends on when I feel like it again. :arg:

Bonnell7
09-04-2017, 01:24 AM
Axis-3D 1.6 is now under development.
It's being made entirely from scratch using 1.4 as a technical reference.
Future and current goals:


3rd-person and 1st-person cams:
In my opinion, there's only one main distinction between these two camera types:
In 1st-person, the camera and the character are dependent on each other. They both face the same direction at all times.
In 3rd-person, the camera and the character are independent from each other. This means that you can rotate the camera around the character without the character turning with it.
Adding another axis to the control space:
This would add full movement through 3D space; dog fighting in spaceships, planes/jets, submarines, and more could be done.
New positioning tech:
I've found that using piston-reliant mechanisms to position points-of-interest in Axis-3D tax the system quite a lot.
So I'm researching the pros and cons of mover-based positioning systems that utilize my Positionator chips.
This could free-up enough system power to places 20+ points-of-interest at once.


That's all for now. I may make a video once it's up and running.

koltonaugust
09-04-2017, 10:26 PM
Yay! I'm so glad you managed to find a workable copy of this, and you are continuing! I can't wait to see where it goes!

mdkd99
09-06-2017, 01:06 AM
Very cool news! I love your detailed posts about the project!

Bonnell7
10-01-2017, 06:34 AM
I haven't worked on Axis-3D as steadily recently.
But what I have done was fully test a positional mover; my results are underwhelming.
As with all movers, there is a delay between input and motion. A follower mover for instance (set to maximum speed), will always lag behind the object it's tracking.
Anyway, I was able to make a microchip that compared its current coords. with target coords.; its output then influenced an advanced mover to close the gap between those coords.
The process is mathematically sound... but the motion-lag with the advanced mover meant that quick, sharp changes in the target coordinates, wouldn't be reflected in the advanced movers actual motion.

This is disheartening considering the system-tax relief a microchip would've had compared to piston-based motion.
Oh well... I've moved on.

I've also decided against adding an additional axis to the control space.
While this may seem cool to a player, we've got to remember that I wish to publish Axis-3D as a creation tool for everyone.
Every additional creation feature is something more someone would have to learn to use.

Also, on a personal note, I'm just currently trying to build a voxel game; such camera controls are unnecessary to me.

Right now, I'm at a standstill:
You may remember the issue I had with rotating a decoration about a point other than the sackbot it's placed onto.
As Axis-3D is meant to be a tool for others, I'm contemplating a way to make a Sackbot (and their decoration(s)) rotate about an imaginary point in an intuitive, and well... automatic way.
My old solution still technically works, but it's hard for even me to configure correctly:
The system has no way of knowing how big a decoration may be once placed.
So as of now, you have to tell the microchip the distance between the Sackbots belly, and the center of the decoration itself.
This is cumbersome if you plan on using a myriad of decorations with varying sizes and orientations.

I can't think of a good solution right now, and that feeling of... hopelessness has soured my thoughts regarding Axis-3D recently.
Maybe I'll just have to get over it... I don't know.
Lord knows I've already made plenty of compromises thus far for this project.