Unity Blender Looking for advice on a core game mechanic for a game I am making. (Generative Models)

pozzi

New Member
Jun 9, 2018
14
13
Hey everyone, I am Looking to make a game and its all proof of concept right now.
Will continue if found feasible. The idea for the game is to be very much like an open world GTA game. Will draw inspiration from San Andreas.
There will be a story and side quests. Main capturable heroine and capturable generative heroines

Core mechanics to begin with: Open world, generative models (not sure which approach I should go)
Thinking to use unity engine? Hadn't touched it since 2016~ when i was still in HS so need some practice and experimentation.

THE ISSUE: Randomly Generated models.
My thought on the generative models part:
The approach that I thought will be very limited: characteristic_1 * characteristic_2 * characteristic_3 ... variations of bodies:
In this approach, I have a set of model assets that I premodel characteristics for body type from unity.
Heights: Small body type, medium body type, tall body type.
Then within lets say small body type I include a skinny/slender model, chubby model, chunky model, curvy model
Same with medium and tall having skinny, slender chubby, curvy etc. (Very limiting to see characters basically having 3 heights only though)
Maybe I can somehow add some variations in there as a modifier and it is somehow applied onto the morphs whether it is the height or the
arms or legs and thighs?
Then to finish it off apply skin type on top of the finalized body proportions and model. Add in a variation of the hair and face onto the morph.

I will have a way to save the models values somehow maybe onto a json if the player chooses so. Add the model to contact on phone as
a game mechanic. Player can call the model again and reading the json will remake the same model in game.

I do want to include more freedom in the character generation but unsure how to, so the above approach is what I came up with.
Again, I do feel like the above approach is very limiting and still unsure how technically feasible it is in unity. I do want to find a way to have
almost unlimited variations of features (think honey select), rather than a deterministic amount with slight modifiers.
Open to any professional suggestions from anyone familiar with the theory of making generative models.

The basic gameplay on how this model generation would be handled:

When Player is near a location:
Preload chunk look ahead and generate characters randomly on open spawn able location i.e. side walks highlighted with spawn able markers.
Player can approach those models, and save those models details onto phone (json file on the actual system).
Player can spawn the model into a scene, sex physics will apply onto the morph. *

Treat me like a beginner since I hadn't made a game in a while and the games I made I prior were at best single stage 2d top down single
player games. I am still an amateur hobbyist blender user. Only familiar with very basic morphs.
This is simply a passion project I am looking forward to making and learning how to make it, so I don't have a timeline on this yet.
As I have a programming day job still (mainly .net C# work) I won't have the most time to work on this. No art direction yet, still debating on an
anime style or a more realistic style. Engine not confirmed but like I said thinking about just sticking with Unity since I am using C#
already at my day job.

Looking forward to hearing some feedback.
 

GNVE

Active Member
Jul 20, 2018
724
1,185
Not a programmer so can't help you with that. Seems logical to use a programming language you are so familiar with. What I can say is that 3 body types with 3 lengths may seem small but will quite quickly escalate once you factor in breasts, head variations, eye colour, hair style, hair colour, outfit etc. When I design a character 10% of the time goes into everything from the neck down and 90% into making the face. So those 9 basic body types could easily be hundreds or thousands of different characters.
I do worry about the scope of your project. Having GTA V as your inspiration. Do remember hundreds of people worked on that. You are a lone Dev. If all goes amazing and you take off you might get a small team together. Similar open world games in this space (where you actually move the character) may have a single house to worry about. It is 'easy' to make a 10km2 open world but the problem is filling it with content people want to play. Having a small area filled to the brim with content might be better than a large wasteland.
 
  • Like
Reactions: pozzi

pozzi

New Member
Jun 9, 2018
14
13
Not a programmer so can't help you with that. Seems logical to use a programming language you are so familiar with. What I can say is that 3 body types with 3 lengths may seem small but will quite quickly escalate once you factor in breasts, head variations, eye colour, hair style, hair colour, outfit etc. When I design a character 10% of the time goes into everything from the neck down and 90% into making the face. So those 9 basic body types could easily be hundreds or thousands of different characters.
I do worry about the scope of your project. Having GTA V as your inspiration. Do remember hundreds of people worked on that. You are a lone Dev. If all goes amazing and you take off you might get a small team together. Similar open world games in this space (where you actually move the character) may have a single house to worry about. It is 'easy' to make a 10km2 open world but the problem is filling it with content people want to play. Having a small area filled to the brim with content might be better than a large wasteland.
Yep I understand the scope of the project is huge. But like I said I am in no rush with no timeline in mind. As per your feedback, I do agree a big wasteland is rather boring, I'll start small with a smaller map and smaller amounts of contents. Thinking maybe a map with 4 areas that have a bias for spawning certain models.
At this moment I am just brainstorming and working out how to get the core components down. Maybe after getting certain small mechanics out of the way, I throw out test builds to see how people would react to it. I'll start with a small open world project (4 different areas 4 different spawn biases) in a first game and migrate what works and what doesn't over to the next game. I do want to nail the generative models down first as my main goal and that is all.

So atm, the more refined and focused goal is, rather than building the whole GTA like experience, I am building a pick up simulator first with 4 different areas.

Also thanks for the feedback on how much time is spent on the body and faces. I am thinking just to make a very simple system for face right now and focus on the getting random body generation size generations down first.
 

TessaXYZ

Active Member
Game Developer
Mar 24, 2020
686
1,498
an open world GTA game

Treat me like a beginner since I hadn't made a game in a while and the games I made I prior were at best single stage 2d top down single player games

I won't have the most time to work on this.
Can't really comment on some of your specific questions, but IMO, start with a smaller slice before even thinking of tackling something of this magnitude. There are so many nuances to learn, so many areas where it would be appropriate to have a full time team member developing that part of the game, that you should probably focus on developing a really small vertical slice before doing anything like four different areas, to say nothing of what the gameplay is actually supposed to be. Walking around with full animations? Relationship and sex systems? Quest management? Story? Inventory? Map? UI? Sound and music? Develop one area. Figure out what you're actually trying to do before widening the scope, and be ready for the fact that something of this magnitude is almost certainly outside the capacity of one person to handle. Even if you're saying its okay for it to take 10+ years to finish.
 

Tompte

Member
Dec 22, 2017
216
157
Creating an open world environment is several magnitudes more complicated than generating some character models. Are you sure you're focusing on the right problem?
 

pozzi

New Member
Jun 9, 2018
14
13
Creating an open world environment is several magnitudes more complicated than generating some character models. Are you sure you're focusing on the right problem?
Yes like I said, one problem at a time. Decided to work on auto model generation first. I value that game mechanic more heavily since I have less of a working theory on how to do it. I will probably have a separate unity project just for testing out an open world game concept next since there seems to be more resources on it outside of this thread. Both are focal points of the bigger game I plan to do though.
 

aereton

Digital Hedonist Games
Game Developer
Mar 9, 2018
544
1,055
Keep in mind that for each body type you are using, you will probably want to have a rig for each, really depends on the differences in bodies though as you could get away with just scaling down another rig or whatever. This can get quite complicated quite fast.

I'd suggest looking into BlendShapes (called that in Unity) / ShapeKeys (called that in Blender). At the very least for the most important bits: breast and ass sizes and shapes. You will also want to have a way to switch the heads of the models or use a BlendShape approach for different faces as well.

If I were you though, I would lay that idea to rest for a while. Not trying to be a debbie downer but these kind of open world games are just too big for one person, even if that one person has decades of experience in game development. I'd suggest to focus on smaller ideas unless you have a few millions laying around to hire a whole studio. I know this sucks to hear because everyone wants to make their "dream game" and you will probably cast my recommendations aside in a way to "show people that they are wrong and you can make it possible" - I can't really blame you, I've been in the same place. But maybe you will recall my warning one day when you realize you can't finish what you set out to do and remember what I posted to make it suck less emotionally.

Whatever you decide to do, I wish you good luck!
 

Evcas

Newbie
Aug 29, 2019
25
4
Go for it! If coding is something that you like doing, design a character generator module, build it, and who knows what you might use it for at some point in the future! I often have some grand thing in mind when working on some relatively mundane A* pathing or octrees or texture cache algorithm or client server code or whatever to keep me motivated while doing what I enjoy doing.

One thing you might consider doing is taking a look at GTA's data to get a sense of how they might be doing it. Looking at GTA4 assets, their approach seems to be more along the lines of fooling the eye into thinking that they've got a lot more variety in their characters than their modelling system needs to handle by way of texture templates. Grab DXRipper and snag some frames from GTA and take a look at the textures they loaded into the card. It makes me think of a "paperdolling" algorithm that generates tons of face, shirt, and pants permutations using texture elements that can be combined on the fly in 2D and then used on the same basic models with a minimum of random scale morphs rather than generating model permutations. They do have some hat, glasses, and hair props that show up on some models and not others. Having looked at that a little bit, I think my approach would be to focus on the character model format, bones, animation, and lod system and start building there before worrying too much about how to make them all different - though you'd have that in mind with the basics so that you didn't set scales or ratios in stone at any point.
 

dakifaki

New Member
Aug 3, 2023
9
0
I agree with the others when they say you are probably focusing on the wrong issue. Nevertheless, I've had a nice time using , give it a shot.

For the open world, you biggest issues will be:
  • Addressables
  • World streaming
  • Frustrum and distance culling
  • Memory management
  • Floating point precision
If the game is an online game, multiply the issues above by 10 and add:
  • Persistence
  • Lag compensation
  • Matchmaking
  • Client-side prediction
  • And many more!