At 2/14/14 02:42 AM, Oh-Sama wrote:
Anyone knows a good/complete tutorial on creating low polygons 3D games that also run on lower resources?? I want to make a small 3D world with few characters just to experiment with 3D and to learn what 3D is all about.
My current configuration is 2,2GHZ Dual Core CPU, 3 GB RAM and 1GB Integrated Graphic Card. I have tried modeling with Blender before but my PC couldn't handle the rendering and I can't get any upgrades for the moment. So instead I wanted to go from scratch but I have absolutely no idea on where to star from :/
I have searched on the internet but I'm kinda lost. Which languages are the best deal for my case? I have basic knowledge of C, Java (Visual Basic is a forgotten knowledge) also I have some basic OOP. So I understand in some ways what coding is about. Here some references so you know which tutorial I'm seeking...
Thanks for your time guys :)
Don't worry about the rendering! All you really need to do, when you start out, is export the individual models and, if you UV unwrapped them, the textures. How the texture needs to be reapplied remains saved in the object. At least, when that is the Rendering you're speaking of.
Plenty of game engines just let you import your models and apply your textures to them. And how that goes differs per engine, really. Something with a drag-and-drop interface is going to handle that diffirently than something that runs purely in code, after all.
Luckily, you've already toyed with 3D in Blender, so you know some of the essentials of 3D. You know there's an X, Y and Z axis, that there's 3-dimensional coördinates called Vertices which, connected by lines, form triangles called polygons. And that every 3D model is built up out of these polygons. After all, the calculations the computer needs to do are these triangular maths. For some reason, computers are just really fucking good at Pythagoras. To put it extremely simple, that's what that 1GB of graphic memory does for you. And to be honest, you don't need more. I've seen more diffirence in speed and Video Cards have a nasty habit of doubleing their memory to win the numbers games from other cards, where the real changemaker is the speed of the memory. Which, logically enough, progresses a lot less easy. Right now, 1GB is pretty up to par. If just navigating blender after that becomes hard, you've probably got too many damn triangles. Even most high-detail models don't see all-black in Mesh from a distance. There's a lot of clever tricks in 3D to deliver smoothness, not to mention bump maps and the such.
So how does this all translate to what you want to know? Well, knowing these basic things is important, every engine or library you are going to come across is going to work with this set of coördinates, lines, rigs, keyframes and other data rather than the image you rendered (unless, ofcourse, you're doing pre-rendered backgrounds. Which were a good solution for a very low amount of poli's yet delivering a lot of great-quality backgrounds). It's all in the data. .OBJ and .DAE files are your friends! At least, in the small-scale indie scene where you may have to let some libraries do the work for you.
Ok, now that you've got your models, I'm afraid to say that whatever other information on technicalities you might want I sadly can't tell you. They are out of my hands. I can give you a few things to look at, though:
There are four or five engines or libraries, when you're just starting out, that I recommend. I'm currently experimenting with some of these myself:
Nice and close to NG itself, there's Flash.
To be honest I'm not sure where Flash stands right now. A good five years or so ago I was tinkering with a library called Papervision3D, which split off into a ton of other 3D libraries such as Alternativa and Away3D, but I've heard nowadays, Flash has it's own 3D stage. I have no idea how this works, I haven't touched Flash in a few years.
Then there's Unity
I have noticed Newgrounds started accepting some Unity applications and perhaps, for you, this is the best to start with. Unity has a free version that, although limited, should provide you with a lot of possibilities to make games, and the interface is pretty drag-and drop. You can just drop your models in the file folder before tossing them right onto your workplace. And Unity's website is brimming with tutorials. I suggest starting out with their learning projects to get a hang of things. It's very low on code and does basic things like Physics for you. You attach scripts to your models to make them do stuff. It's a very unique way of working for people who are used to hard-coding things. By far the easiest to start with, I'm certain.
Following that, there's webGL.
This is what I'm currently working with, side-by-side with Unity. I'm currently trying to see which best suits my wishes. WebGL is the possibility to program 3D applications in a Canvas element on a html page using Javascript. There's a good selection of tutorials on webGL itself, but there is one problem... It's pretty technical compared to the earlier options. I remember when I first touched webGL, to draw a cube I had to write eight XYZ coördinates myself, all in a singular array. As well as program their connections myself, and assign faces to the coördinates myself, reserve memory space, and so on. Now, fear not, there are solutions to this problem! Nowadays a few clever folks have written Libraries for you. There's Three.js, which makes everything a whole lot easier and just lets you toss around models and lights and camera's and have a grand old time. I did, untill I had to work on collision, which the newest version of Three.js does not have built in anymore. It's relatively simple to do some basic stuff if you delve into raycasting, but you may as well add Physi.js to that. Physi.js is another 'layer' of functions that add Physics to Three.js. It's a lot of fun to work with, but to learn it you really have do delve into the code samples and requires some prior understanding of 3D-programming principles and though there are tutorials, they are not stellar. They are written by programmers, not writers. The good thing about this is that a lot of information of the code is explained line-by-line, the bad part is that they're also assuming you know a lot of other htings.
Fourth, if it's still free like it used to be, there's the unreal engine. It has a bundle of tutorials, but it's going to be hard to get into. It has a ton of features and it's very easy to get lost in, and the code is C++. And while a lot of people would say 'that's great! Industry standard, right?' forget that C++ is a lot closer to the machine. It's nice and strict, and I like that, but it also lacks a lot of things that we take for granted from languages like AS3 or C#.
Finally, there's C# with the XNA framework on .NET. The sad part is that it's not entirely free, but if you are just getting into both code and making games, it's rather low-boundairy and fun. And C#, though strongly-typed, is a very agreeable language once you start getting into good habits. The problem though, is that it only lets you make games for the .NET framework, so Windows and Xbox only, I'm afraid. And that's if it's still around. It's going to become depricated soon.
My personal recommendations lie with Unity and Three.js to get started. Especially Unity has some really strong Tutorials and the least you can do, when learning, is just have a look, a try, and play with the tools for a bit. Hope this helped.