For me, like for many other Construct users, one of the most fun things to do back in the day with Construct Classic was surely to mess around with sprite distortion.
Define a distort map
, displace coordinates in Z space and watch how your previously flat world turns 3D. There have been some impressive showings using this feature, especially from math savvy users like the legendary Quazi (sycophant alert :D).
I also dabbled in some humble endeavors involving distortion, but my most ambitious idea in this direction shouldn’t really ever come to pass.
In my defense a blocky 3D look wasn’t quite as tired as it appears today and my goal was to create a level editor for something just like that. Cuboids made up of distorted sprites building the level scenery.
Having had a brief history with using GtkRadiant for Quake 3 engine games, I based the way the editor should work roughly on that.
Originally I dubbed this project the “Radioactive Satanism Engine” and it is probably better you do not ask why. Eventually the title would become the much more reasonable “Cuboid Engine for Construct Classic” or “CUE.cc”.
You can probably imagine how this project had multiple incarnations over the years, some attempts better than others. But my inability to see this through always struck me as a fatal error I couldn’t leave standing like that.
It should be last year, when I dug through some old project folders to combat an accute case of boredom, when it peaked my interest once more.
At this point I already hadn’t touched CC in many months and some of the ways in which it is different from C2 turned out to be quite amusing to rediscover.
Getting into it again wasn’t really an issue, but when I had some basics down it struck me: why not use Radiant itself and simply import the map data into CC?!
I’m not (very) ashamed to admit it took me a while to actually figure out how Radiant stores the geometry in its map files. Once that was out of the way and facepalms been had
, it was time for the big moment…
I probably wouldn’t have made this thread if I failed yet again, so you guessed right: it worked! And the whole endeavor suddenly seemed much more trivial and not that big, hard to realize project that was hanging over my head anymore.
What could still very well be in question is the feasibility of this for an actual working game. And why should the prototype thing I created last year keep collecting dust on my computer, when you can have a look at it and call me names. 😛
Textures used in this demonstration were created by p0ss and can be found here.
Finally have a little Q&A action:
Can any Q3E map file be imported with this?
Not exactly, no. You can only correctly import geometry that consists of cuboids. Meaning unaltered brushes in Radiant. Anything else will leave a mess.
How does it handle textures?
I initially attempted to use Lucid’s Unique Sprite plugin instead of the regular one in order to be able to load the textures from file, like it also happens in Radiant.
Unfortunately it caused crashes, which I found out later was likely due to me not using the properly fixed version of the plugin.
The currently existing version just uses regular Sprites with the texture manually added as a separate animation named after the original file name.
What about lighting?
You do not have to build the map in Radiant, there is no lightmap being used. This simply loads the map file.
However you could make entities do things in the CC game, even lights that affect things in the game (do not think amazing things here!).
What is there is just some simple global lighting focused on the player and mostly based on difference in Z elevation.
What about lightNing?
Sure, why not.
Why does the character in the demo look so shitty?
Blame it on me. I made it that way.
What are even the controls of the demo?
Use the arrow keys to move around, press X to jump. F3 restarts the layout.
This is stupid, why don’t you just use 3D Boxes?
Well, sprites with distortion provide better potential for dynamic handling in general. What’s most important to me is that the texture will be properly repeated and not stretched by setting the correct UV values for the sprite.
Also you can create some very basic shading easily with the filter property.
It’s still lame, do you even know you can import actual 3D models in CC?
Initially you weren’t able to. But yes, I do know. Whole different story. Remember this is for building blocky levels, which will consist of Sprite objects in CC and therefore can be interacted with in numerous ways.
I still hate this and I do hate you too from now on.
That’s fine. I made this thread in honor of CC mostly, so you can maybe NOT hate on that intention at least.