High level logic behind a space game,

TLDR: Can an entire game take place inside 1 large model?

Hello everybody,

A while back I ran through alot of the tutorials, but fizzled out pretty quick, as I didn’t really know what I wanted to do with this. My thesis for my undergrad is exploring open source technologies for the development of 3D games and applications. (working title). Basically I get to make a small 3d game, and earn credits at the same time :-). Because blender / jwjgl / JME are all open source, i figured ill use them for the basis of my thesis. Now today is only day 2 of a year and a half, so i defiantly have a lot of time.

Ive made some great progress going through the tutorials, but im still very much a scrub when it comes to 3d game development. Ive done quite a bit of 2D development, primarily software rendering in java, and a little bit of OpenGL via JWJGL and Java.

My basic game idea is competitive match based ship combat (with multiple people on 1 ship, fighting multiple people on 1 or more other ships). I have no concerns with the netcode, as Ive worked extensively with java UDP networking in the past, hence why I wanted to choose Java as the base language for the game. I wanted to really learn blender first, and learn it well before I continued too extensively with the actual coding, as I first need a ship to do any real development. However before I start going through Blender tutorials and making the entire ship interior in 1 3d model (im assuming with the exception of intractables???), I wanted to make sure that it is the right way to do it. Should every static object of the ship interior (and probably exterior), be on the same model? Can i even use models for this? See because my setting is in space, I really dont plan on using the scene editor at all, because as from the players perspective, the entire game takes place onboard ships, which are mostly just inside 1 model?

Sorry if thats confusing, but to re-iterate, can my game all take place INSIDE 1 large model (the ship), or am i coming at this the wrong way? Im assuming that JME uses JBullet or some similar library to handle 3space collisions, will that still work on interior faces of the models?

Sorry for my scrubness, just wanted to ask this question before i created the ship in blender, and found out that it was not the right thing to do.

Thanks,

-William

Yes this is all possible. The fewer the amount of objects the better (generally speaking), batching static objects into 1, is very recommended.

If its going to be super duper massive, then you will want to break the ship into chunks

Sweet, thanks for the reply, it was exactly what I was looking to hear,

My ships will all be releativly small, 1 - 5 man, mostly bridge, engineering, thats about it.

Im really excited for this project. Am I right in assuming that every intractable / scriptable needs to be in a separate model and loaded / positioned seperatly from the main model?

Thanks,

-William

Ok, in that case you should be fine with 1 model for the ship.

If you want to move it then yes, it should be a separate object. But that doesn’t mean it needs to be loaded separately (unless your doing this procedurally), you can create the ships and all the objects, and position them in Blender/jMEDK. It will be 1 file, but with many objects (Spatials) inside

Hey Wezrule,

I want to thank-you for your responses, theyve been most helpful.

So far ive gone though quite a few tutorials for Blender. I knew that it was going to be overwhelming, but I think im doing ok. So far I have the ability to make a model (with limited sculpting), do the UV splitting. Take that BMP, load it into gimp, texture it, export the .blend from blender, load the model into JME, and apply that texture.

Doing ok for day 3 I guess.

I had another couple of questions related to this topic though, and I was hoping for more of your (or anybodys insight).

If anybody has any good tutorials on making and importing complex models with multiple UV maps on a single .blend then please let me know, ive been searching for a while to no avail.

My problem I’m having now is that It would seem that JME will only be able to utilize 1 UV map per .blend, meaning if I was to make the ship interior as 1 model, everything would have to be textured on 1 giant texture, you can see my problem?

So that led me to the conclusion that I would need to create the ship piece by piece in blender, and put it back together in SceneComposer. Is that correct? I briefly (<30min) played with SceneComposer, and I noticed a couple things that worry me a little bit.

While Im at work at the moment and dont have source infront of me so this is very rough, but I would load a model by calling Model bridge = modelLoader.loadModel ("Models/bridge/bride.j3o");
And then texture it by calling Texture bridgeTexture = textureLoader.LoadTexture ("Textures/bridge/bridge.bmp");
and then just bridge.addTexture(bridgeTexture);

Or something to that affect…

When I loaded all the models into a Scene, I found no way to bring the textures into the scene, and the scene gave me a single j3o file, with no textures at all. Not sure where or how to apply them…

I dont know if anybody can remember back to mapping under the Quake 3 engine, I used a program called GTK Radiant, it gave a very easy interface for loading models, creating geometrics, adding light sources, applying textures, ect. An inteface like that would really make this easier, any ideas?

Thanks again for any responses, and again, if you think you know if any related docs / tutorials that will help this noob out please link :slight_smile:

-William

If you have a texture atlas, you can map different parts of the ship to it. If your ship has too many details to be able to do this, then you can create the model, break it in blender into different objects, and do UVMapping on each with different textures

You can create material files in the jMEDK and apply it to the geometries. For scene composer/material stuff:

1 Like

Well name each object in blender

Then use a sceneVisitor and set the materials individually.