Q

Home » Work » Creator’s Journal: Holodeck Management System Progress

Creator’s Journal: Holodeck Management System Progress

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 43 other followers

Did you know that THIS universe technically has not finished with ‘The Big Bang’ yet. and my creation itself has not reached fruition yet?

That’s what I am doing right now.

Finishing this ’round’ of creation.

Healing the wounds you could say.

Placing more stars in the sky.

Making sure planets look like planets and not balls of goo.

Putting more touches on the artificial intelligence.

Adding a bit more mystery to this thing called creation.

Balancing myself.

Trying to stay positive.

And smiling.

Although it’s hard sometimes.

Please.

Lay off your typical drama.

In a literal sense.

I need this to be complete and behind us.

In a figurative sense.


First, OpenGL with C++ works fine and dandy for imported objects, but the moment you get into hand rolling your own complex objects – such as what I did with the animated 3D TARDIS (Time And Relative Dimension in Space), here:

TARDIS

It becomes a nightmare performing something as simple as opening a door (here:

TARDIS2

Blending and the transparency of the windows worked out marvelously, but the larger problem is complex:

1) I am finding C++ isn’t a great language for iterative test and revise design. I’d forgotten how easy it was to ‘break the build’ with C++. and threw everything into source control so I can have history on my work:

SourceSafe

SourceControl

Which makes comparing differences between updates easy as pie:

Like the modification of a constant offset value which I forgot about which completely throws my windows off in the wrong position (blue indicates change):

Diff

or like a line I added when I was messing with perspective. which I then commented out and forgot to remove:

diff2

So far. I’m learning openGL. But there’s a small problem working with C++ presents that a language like C# does not:

When I am ‘done’ working with some code in C#. it’s already object oriented code, I clean it up and can quite literally make a library from that code. With C++. Not only is segmentation a little bit more of a chore, in order to achieve that you have to rework your code which in turn breaks what you’re doing.

That and I found  a  potentially  ‘breaking’ feature with OpenGL: It does not draw primitive3d objects as solids.

That is; If you draw a 3d cube or sphere, it’s hollow on the inside.

Let me put this in perspective: Imagine cutting a human body open and finding out it was hollow?

or imagine knocking over a building and finding there was nothing inside and it knocks over like a house of cards?

Oh wait. They did that already with building 7 at the WTC on 9/11. My bad.

Could they have been trying to tell us something with that message? Like wake the fuck up? Hmmm

You get the gyst.

In any case. I’m at a turning point again. I’ve got ,my noggin wrapped around the basics with opengl, here’s some screen shots of what i’ve designed the last couple weeks:

Earth with sun tucked firmly against it (bad texture wrap there):

Frontwindow2

Beginning of interior of TARDIS – I decided on Berber Carpet with a Cheery wood center console floor.

Interior

The bottom floor of the TARDIS (will have the ‘heart’) here, with a space ship functional floor plates:

bottom

An exterior view of the ‘interior’ – I am housing it within a sphere:

Outside

And the background is a randomly generated starfield:

Starfield

Based on a pretty easy structure:

Starpoints

All this is fine and dandy. but this ‘relatively’ simple scene has gone through numerous revisions and I am noticing that as I apply more changes. the time to make any single one change is exponential compared to the last because of the interdependencies.

Here’s why – Global Constants:

Constants

The issue with C++ is this: the ‘definition’ of a class and the ‘content’ of classes are contained within two separate locations. And as I change constant values or values in one class that you’re testing in another, the entire project and interdependencies goes through another build cycle, which takes fucking forever.

So I thought I would outwit the compiler and place all my headers in my own version of a precompiled header:

ACMEThis turned out to be not the most brilliant of moves I have made as I started testing changes by placing variable definitions in here…

So let’s just say that it’s not that OPENGL presents a problem with it’s hollow objects.

It’s that management with C++ and graphical programming in general leaves a lot to be desired when static objects suddenly become dynamic in nature. When I want to animate the sign texture, the rotation of the planets to look something like this:

solarsystem

(without lines):

withoutlines

if every single object I was creating had it’s own animation, I would NEVER get shit done with an iterative development cycle of learning. testing and creating at the same time.

I’d have to focus on one thing at a time: Learn. Or Test. or Create. if I stuck with C++.

So I got my more powerful computer working yesterday (hence the check in yesterday for a new version of Source Control) – and am shifting to Visual Studio 2010 – and – things run full circle – C#.

So what I am doing now is a port of that code from C++ to C# – but this leaves a hole – I really like the idea of having solid objects. You know. Real life objects..

So for the first time NOW that I know why these graphical engines such as UNREAL and CRYENGINE do what they do – looking at them as a resource rather than a full on development effort from scratch. Cryengine’s been eliminated because it was created by Turkey and Germany. Sorry folks, but I am gonna play favorites here.

That and it’s not using solid objects.

So tomorrow. i am focused on reviewing Unreal with an open mind tomorrow.

And going to make a decision.

Do I just bite the bullet and make things with Unreal Engine 4.0?

or…

Do I commit to the C# conversion and leverage OpenGL?

It all depends on how Unreal runs on this machine. With 4gig of ram and an ATI card. If the development environment kills this (once I download it), then the choice has already been made…

Until then.

yeah. I did say all the rest of the updates are videos, didn’t i?

Pretend this is a video.

Make believe.

Imagine.

I know you’s gots it in yous.

On that note:

Marvel and Netflix – with Daredevil the tv show – despite the grittiness that I haven’t been enjoying lately in film and tv. You’ve done a magnificent job in portraying a bad guy in a light that is rarely painted and done a fantastic job on making a lawyer question his vigilante modus operandi particularly against a guy who’s uncovering his own past and trying to clean himself up – as well as the city around him.

You’re almost making it difficult – and realistic – in trying to figure out who’s doing right and who’s doing wrong.

Thank you for the wonderful entertainment with that show.

And for the producers of Person of Interest. I sincerely cannot wait to see where you take things

Good night.

And well you know.. Thank Q for reading!

On a final note:

I sincerely dont know what’s going to happen next.

It’s your turn. Your choice. You make a choice.

I’m here for the show. And in the meantime, when it’s not going on. I will be working on this.

I KNOW you got better writing in you than the crap you’re presenting to me in real life.

Get better. Please

Enter your email address to follow this blog and receive notifications of new posts by email.