I’m working on a game that involves a spaceship that can be exited and entered. Basically I modeled the outside and now I will be working on the interior. My first question is how I should model the walls, should I model the floor as one giant piece and then the side walls as one piece and finally the roof as one piece? What is the best method? Or should I model the walls in chunks so I can reuse them and change the design and such?
My last question is how to go about connecting each section. In Zbrush I can model the walls and line them up but once I retopologize the walls might be slightly off since the vertices will be slightly off in the retoplogized model. How are sections usually connected in unity so they line up perfectly and sort of snap together? This is a 3D game btw. Any help will be appreciated
Replies
Similar thing with each room. The entire interior of a ship (or game level) is one scene. But each room is a separate set of meshes. And you use Occluders in Unity to hide what is not immediately seen.
Build the interior using modular pieces.
http://wiki.polycount.com/wiki/Modular_environments
In a game engine you can load parts of multiple scenes at the same time. It just makes things easier in terms of authoring and organization, as well as being able to unload whole areas when you don't need to see them.
For example, distant ships don't need to render their interiors. Waste of rendering resources. Another example, when you're inside the cockpit, you don't need to render the engine room.
Multiplayer works by each client only rendering what they alone need to see. However they share world-space updates. Physical interactions, score, time, etc. As little info as possible is sent between clients.
How much data to send also depends on how much cheating you want to circumvent. People can make local changes to their assets to try to gain advantage, for example trying to make their ship's physics shape super small so it's harder to hit. Most games check this data on load, and periodically during play, to try to stop this kind of crap.
Anyhow the loading and unloading of interior/exterior assets is done by the programmers. As an artist, all I need to do is divide things up into manageable chunks, and make sure assets line up properly.
Depending on what platform you intend to make your game on, you may be able to get away with lots of individual pieces. But, on a mobile iOS game you would probably want to weld everything together as much as possible. Don't aim for perfection, but try and reduce those drawcalls as much as you can.
Each drawcall can take a variable amount of time that depends on the shader, the texture quality, texture size, lighting, etc.
Use the profiler and frame debugger to look for inefficient things in your game.
As for sections, you will have seams but you can hide them in lots of different ways. You can design the pieces in such a way that they divide on a natural seam. There are also technical ways to hide seams. I made a little thing I call the "magic blender" that blurs seams using a custom shader on a quad that I float over the seams.
https://youtu.be/f-a3dJTZsqM
https://youtu.be/ugip0-1Dp6w
I found a video here doing what I want, but on a terrain instead of a mesh.
https://www.youtube.com/watch?v=pv8wjMGGGDM
I know special shaders are involved that edit normals and sample the below texture, but I have no clue how to go about writing one that can do that on a terrain, much less one that can do that on a mesh, especially when the geometry is different, so any input on how to go about something like this would be completely awesome. I've seen some MegaSplat stuff that looks really cool, but it doesn't blend textures with meshes like the above video, it only blends textures with textures. My dream is to figure out a way to get the best of both worlds in a single shader.
I would totally love to see what you mean by this visually. It's hard to imagine how this could work to keep textures both seamless and crisp, but it really does sound interesting!
Just kidding, I'll try and make a tutorial.
I think this also explains why I just can't STAND candy-cane stripes, but why I can also still somehow tolerate gaudy polka-dots. The polka-dots are usually arranged in diagonals from one another while stripes are always horizontal or vertical. The mind and eyes are so interesting sometimes!
It's interesting to read about the development of the human visual system and the way our eyes work. If I had an extra 2 hours a day I would read biology textbooks but I gotta grind on Houdini and programming tutorials.
It's hard to beat a striped barrier for visibility. You can avoid using them if you create lots of contrast in your lighting.