I haven’t posted in a while, but I’ve been busy figuring out the whole tech art process for The Hologram. I’ve came across many techniques for many different things and I ended up testing a lot of stuff and tried to do it all at the same time, so there haven’t been much to show, but at this point I’m pretty happy with the current workflow.

In modelling: At first a modelling based on subdivisions seemed like a great idea, but getting all the supporting geometry and quads in the right places is a great amount of work, it would be feasible if not for the huge amount of geometry in the end too. I ended up with 20k polygons for a single ship with very little detail and I think that’s too much for this project. Then I tried using a technique that I saw in a youtube video: model low poly, then copy the mesh and bevel it, then transfer the normal data from the first to the second. Ended up with a decent amount of polys, and very beautiful bevels. Would have used it in my current ship if I didn’t try this so late in the process. This should be done before marking the edges for unwrapping, but even then, UV mapping this with all the bevels is a nightmare, especially in Blender which has indecent UV mapping tools. I’m not using this in the current ship I’m modelling, but will definitely use it on another, in a more discreet way. So yeah, which leaves me with a process I call: fuck it and let’s go with bare flat geometry.

These Bevels would have looked glorious

5/10 let’s not UV map this again

In texturing: considering that I want the player to go outside ships, that presents an immediate problem of scale. Even with a mere 300 or 400 meter ship, a single texture of 4092px is not enough to look sharp when the camera is very close to the surface of the ship, but I only noticed how bad it was after I made my first texture of a model of that size. This has several solutions, and I think I tested them all, but the most fancy is to have a library of detailed normal maps which can be rendered as decals in Unreal. This technique is explained in this video and is used in Star Citizen and Fractured Space. So I made my own normal library in NDO, a single 4092px texture that will be used for the entire game. And also, a smaller texture for color and emissive decals.

These normals look pretty sharp up close, and can pile up with other normal details plugged into the shader

I doubt this is very performant, after all I’m stucking hundreds of decals with different materials in there, but we’ll see how it goes. If I did it again from scratch I would have created a fully shaded texture library with color+rough+emissive+normal instead of having a material for each, but I don’t know if that would be better or not.

In the end I achieved most of my objectives, which was to learn more technical art and end up with a workflow that doesn’t require high poly meshes and full texture normal maps. I just wish UV Mapping was simpler (and Blender makes this task even worse), and considering I’ll be using tiled normal maps in some areas, the necessary UV Mapping discipline is even higher (as you can see from the screenshot above). There’s a tradeoff between number of islands and right angles in UV space. With more islands you lose performance, but with less islands you end up with less right angles which might mess the alignment of tiled textures and you may get jagged edges.

oh yes, this thing I changed a million times. It’s time to move forward and not delve too deep in tech art black magic

A lot of blueprinting went by and also a lot of thinking and finding solutions. Obstacle avoidance should be easy, but add variable object size and physics simulation, and the potential for bugs multiplies tenfold. I managed to create a simple obstacle avoidance, which is far from perfect, but an AI ship can now check if there is an obstacle to its target, and if there is, fire several rays in a star pattern to find the closest open space it can go to and then resume its path to target. I will leave AI at that for now because it was pretty hardcore.

How to find a point on a circle with center XYZ

I started the mission system and made basic mission managing. It’s very simple and linear, but there can be as many missions as needed in a level. At the start of the level, Event Dispatchers are bound for Starting, Advancing and Completing the Mission. These will manipulate the array of objectives, and see what their state is. The events can be called by any actor, but I think the Level Blueprint will do most mission scripting, where references of level triggers can be easily grabbed. This was pretty interesting to do, but I’ve seen enough blueprints to last a lifetime now. I’m itching for some art now =D

After completing the racing course (you can see a video of it here https://www.youtube.com/watch?v=e_vIEi0v7h0 ) I decided to take my Patreon account down. In spite of having steady supporters from beginning to end, it wasn’t enough to stop me from worrying about bills and so I had to keep paying attention to commissions too. In effect, Patreon was straining me to complete some kind of content every month in addition to commissions and that workload wasn’t realistic nor it provided me with a large enough engaging audience, nor I could keep them interested for long. So, now I can work on the core game without worrying about dealing finished content to supporters.

PlayerController BP now looks beautiful

About development proper: the good news is that now I have a pretty tidy spaceship class with all the core mechanics completely independent from the Controller class. This means that the Player should be able to pilot and fight in any spaceship in a level. Then I had to revamp other systems like the targeting system and docking. A complete revamp of the turret class was also made to be more clean, faster and to ensure that their convergence accounts for target distance and the currently selected camera. The navigation seen in the racing video is now called Drone mode (forward orientation controlled by mouse) it makes it easier to navigate in smaller ships without turrets.

Targeting system now deals with faction relations and can be called by any controller

With all that said, I wonder if in a real mission, the ship won’t be too hard to pilot, which probably begs for a tight control of a ship’s maximum speed and UI feedback of movement. So now I’ll be moving onto basic AI functions: seeking/fleeing, targeting and shooting, because shooting against drooling AI isn’t fun =)

A busy month went by (or was that two months?) and as I promised to relax my design rules for spaceships, ideas started to build up and finally I was able to overcome my art block just by doing, well, anything. I favor low and spacious profiles which in turn, will favor the ship being with its front turned to the target for most damage, which, while not entirely realistic, because in real life, turrets would probably be placed on long struts in order to have 360º freedom, but this way it will make things simpler for fun game design.

Then I wrote all the narrative for the story which, at this time, amounts to about 10k words but I’ll get back to that later in production, because I had an idea. In order to achieve small successes instead of just powering through the whole game (from here, it looks like a sisyphian task), I’ll create smaller fun games as I create the several systems of the game.

Because spaceship movement is the easiest and the first system, I’ll make a quick Newtonian racing/time-attack game. This will have many benefits: complete objectives faster, familiarization with the several skills necessary to production, delivering finished stuff quicker.

So now I’m making that prototype. Modeled the ship in Blender (although I’m going to learn Maya soon and dump Blender forever I hope), painted in Substance Painter and then adapted part of this UE4 Tutorial for the blueprint logic. It’s far from polished but I have a good working basis for now.

Finally, I’m back at The Hologram. Ran into a few troubles in December, lost my computer and then I got sick. I didn’t really stop working and completed quite a few paintings, but had to stop with The Hologram for a moment there. I also had time to brush up some “research” into other video games like Elite Dangerous and I finally got Homeworld Remastered Collection which is kind of my source inspiration. Homeworld is a great lesson in economy: of design, polygons, visual storytelling, etc.

I’m highly motivated to push this forward and naturally I started with a painting of something I always wanted to do: the Pleiadean Council, where gods get to debate life, the universe and everything. It’s a place to debate current creative technologies and philosophies and where general Pleiadean laws are issued. The current Council is composed of Wadjet, Zeus and Svarog.

At first I was expecting to add more characters and make it more like its source inspirations: Hémicycle by Paul Delaroche and the School of Athens by Raphael. But as soon as I started, it became clear that I put more on my plate than I can chew, so to speak, and solving the illumination for this was a challenge unlike any other I’ve had before. It’s far from perfect, but I think I achieved at least a reasonable light bounce on the three main characters and I refrained from adding more people and instead, give the buildings some personality. If you see the full resolution image, there’s also a wink to cellular biologists, who might recognize the aminoacids circle in Zeus palm projection.

Next week I’ll get my head around visual development, so, enjoy and see you later

I dropped the b in Devblog, that’s what I have to say this time… no, just kidding. Just did that promised video with spaceship movement and firing, it’s probably very boring, no sound, but it’s my first serious incursion into the unreal blueprint black magic. The video shows in detail what is done, except pawn possession

This was fun to do, because difficulty was just around the curve. It got a bit frustrating when dealing with the multiple turret aiming, but I finally managed to get it right after learning that I had to convert the direction coordinates to local space with the InverseTransformDirection node.

Anyway, this little incursion happened because I feel a bit stuck in the main ship design and story design. The story is complete, but it doesn’t pack the punch I want. It doesn’t convey the wisdom, or the themes of humans as one organism and human cooperation I want to pass to the player. At the moment, things happen, there’s certainly wonder and incredible events never seen before, but they would translate best to a linear game, and not a game where the player feels he’s in control of his own story. In short, I want the player to feel that stuff happens to him, and that he influences the events, completely immerse him in the game.

In concept art I need to go back to ship design, maybe if I start with every other ship and then go back to the player’s ship, I’ll have some ideas then. But first of all, I have an idea for another character, Zeus to be precise, and I intend to do that first.

Designing iconic characters is difficult. Especially in a world soaked with visual arts. Besides that is not the only concern in design, the character has to appear functional, for the same reason you don’t draw ice picks on a desert dweller. In my case, designing a robot as a main character removes a lot of problems that goes in designing humans, but adds other problems. I could very well design a cubic block with reaction wheels for moving and wireless computer connection, that would be how a real space agency designs a robotic pilot, and if he has to move mass around, just stick a pair (or more) of arms in it and it’s good to go.

(Dextre from the Canadian Space Agency) How it’s done IRL

The thing is, empathy is necessary for a proper connection with the player, I’m sure my robot can bend all his limbs backwards but he will have the basic proportions of a human being. The juri is still out on the head screen with emoticons, but it’s a nice idea I got from Chappie. It could very well be just a computer screen like TARS on Interstellar. Or maybe I’m being too picky with this because my actual main characters during gameplay will be space ships and not people

I’ll be sketching some characters of all the different factions next before going back to ships