Tech Post #4 - Procedural Modeling
For this short tech post, I'd like to share some minor benefits of procedural modeling (or a procedural pipeline in general). It's nothing fancy, but if you aren't aware of it then this could be interesting.
First, if anybody is keeping track (now or later), then yes, there was a significant gap between last tech post and this one. That may be normal for the next year or so while I try to finish up my Ph.D. and take care of my baby (practically a toddler now). Since last tech post I've had to help write a large report and provide much initial research and experimentation for a new project, which means I've been implementing very little. As always, I have way more time to think and plan than implement at the moment. Which is what introduced me to procedural modeling!
Procedural modeling is the act of defining procedures to create your models, as opposed to "hand-crafting" them. This means that rather than manually sculpting, fitting, and texturing our models we can instead define how they "should" look and let the software handle the rest. This is more ideal for an individual who has little experience with modeling tools like Blender and a high aptitude for math/programming (like me!).
To try this out, I'm using Houdini. The nice thing about Houdini is that while it can be a little expensive, they have a free non-commercial version for practice and an indie version for groups that make under $100K. Should I make more than that while using Houdini, I'll gladly upgrade! Another nice aspect of Houdini is that it comes with many user-created tutorials, including the ever so helpful Houdini Isn't Scary series. This series is really good about staying simple and explaining, so I've already made much progress in the couple of short sessions I've taken to watch it.
Utilizing Houdini's procedural pipeline, I'm able to make much more detailed models in very little time relative to working in Blender or similar. Additionally, making changes to it is pretty trivial, which includes creating high- and low-polygon versions of each model. Take the following donut (courtesy of Houdini Isn't Scary):
As you can see, I have a donut model that I can drop sprinkles on to make for a more "realistic" look. The sprinkles are generated randomly, and I can easily adjust the amount, size, shape or colors. The donut is also more than a simple torus, it has a light noise applied to it to give it some lumps. I can increase this somewhat:
Or I can subtract (rather than add) to create a wider, more disappointing donut:
In each case, it only takes changing about 2-3 values in the pipeline and does not require any hand modeling. I can undo the changes or combine them all at my whim. The sprinkles are automatically adjusting and come out differently for each attempt. And speaking of sprinkles, if I decide that I'd rather use fruit loops than sprinkles...
It's nice and easy! I just have to replace the sprinkles with a torus and adjust the torus initial pattern so that the loops settle on top rather than stick in the icing at odd angles. Note that for sake of calories (and my computer's RAM) I've also reduced the amount of "sprinkles". It takes a lot more effort to calculate tiny toruses (tori?) than to drop tiny cylinders. All in all, it took about 5 minutes of playing around to go from the first example through the others, mostly because I had to solve the fruit loop issue. If you're curious how it looked before:
Regardless, this is the pipeline I'm familiarizing myself with right now. I'm working to see exactly what Houdini is (and isn't) capable of. For now, I expect it to drastically improve not only my modeling and animation workflow but also the looks of the end result! I'm also looking into procedural animation (see some of my inspiration here: https://blog.littlepolygon.com/posts/loco1/ ) to help simplify the animation process and help with animal walking patterns.
Whether or not I settle with Houdini, this project will include many procedural aspects. From generating the landscape, to calculating landscape change over time (this is a time/evolution game!), to generating creatures. My hope is that I'll even be able to leverage the same procedural pipelines to generate creatures to help give even more uniqueness to the equipment! Imagine hunting a stegosaurus-like creature and collecting it's unique style of thagomizer (look it up!) to make a spiked mace resembling that part! If it's especially large, lopsided, or oddly shaped, then that could be passed on to the final piece of equipment. Is it possible? Why not, when I'm already procedurally generating it in the first place!
This doesn't mean other game aspects have taken a back seat. I've been settling out the design for action-based combat that draws inspiration from Monster Hunter to enable team-based action-oriented play that encourages having teammates work together rather than act as individual DPS machines. I'm trying to keep from devolving into a typical "just spam attack" that has become commonplace in many action-oriented gameplay while enabling everyone to contribute. That being said, nothing to show there yet, sorry! For now, I'm trying to keep much of the gameplay design on a need-to-know basis until I have it implemented to show. Talk is cheap after all, it's the execution that matters.
Here's hoping that it won't take a few more months before I can show something else!
Last Frontier
An in-development sandbox scifi-MMO about Evolution and Time
Status | In development |
Author | Menector |
Genre | Role Playing |
Tags | 3D, Exploration, MMORPG, Multiplayer, Sci-fi, Unreal Engine |
Languages | English |
More posts
- Tech Post #3 - Pressure and AvoidanceMay 21, 2024
- Tech Post #2 - Sight and MemoryMay 18, 2024
- Tech Post #1 - Creatures and EvolutionMay 18, 2024
- Initial project launch!May 17, 2024
Leave a comment
Log in with itch.io to leave a comment.