Hey guys! So, I am a Java programmer. I would say I am fairly … well… excluding Java EE, I would say I’m a professional. I do not really know a whole lot about 3D and things like that… but I REALLY want to create a 3D game. I understand the challenge, and intend to spend years on it. Not 24/7 development, but years of development.
My question is: where can I find ALL the information I will need? I mean, I want a fairly nice looking game… and I don’t want glitchtastic physics…
I have seen some tutorials on 3D games… but none of them have really gotten me to a point where I can start working on my game and get somewhere…
Looking for pointers, tips, tricks, tutorials, resources, anything. Anything that will help. I intend to use LWJGL by the way.
ummmm, the internet? That’s a pretty good source… haha, but seriously I don’t think that there’s a single place for all the info you’ll need. Anyway to kick it off,
Math is going to play an important role. (read HUGE, particularly trig)
TheChernoProject/NewBoston on youtube is alright
3Dbuzz was helpful for me, but has a lot of outdated info(and isn’t java based)
Edit: Obviously this board has some great info
I’d recommend starting small, like SUPER small and build your skills, I started on a huge project forever ago and it’s not even close.
That’s what I’d recommend and that’s what people recommended to me when I first started out. I didn’t listen, if I had I’d actually have finished a game by now. :cranky:
I’ve worked on two smaller projects since I first started on my “epic” rts and I’ve learned a lot more doing the smaller ones than the big one. Partly because I had been coding longer and partly because I knew how and what to improve upon.
Have you ever created at least one 2D game? If it’s not the case, think about starting by the beginning.
Don’t expect to find a single website with ALL information. What you will need depends on where you are and where you’d like to go but you’ll probably have to tinker and look for information in lots of websites.
Come down to Earth. Creating games already requires various skills, we can’t be good everywhere. You have almost no chance to become both a brilliant computer artist and an excellent game programmer. How deep would you like to go? If you don’t see what I mean, read this post. Would you like to reinvent everything? Would you prefer using a physics engine?
The wiki of its main website already contains a lot of information. If you read and understand its content, you’ll be able to create a fullscreen window, manage the input, display some things in 3D. You can look at the “Space Invaders” example at the bottom. If you don’t want to use a 3D engine, you’ll have to implement the model loading by yourself. orange451 ported my MD3 loader to the library that you plan to use. You can find how to load an .obj file in the bottom right corner of the wiki page. Someone else will have to give you some pointers about physics.
If you plan to write everything from scratch except another binding for the OpenGL API and another one for OpenAL (and if you want realistic physics + fairly nice models all this made by yourself), you won’t need some years, you’ll need some decades.
Go and take a look at JMonkeyEngine, and if that doesn’t get you to the point of making a 3D game within a few weeks… scale back your ambitions. By about 1 dimension. 2D games are hard enough.
You can use any binding for the Bullet API if you don’t want to write your own physics engine. JMonkeyEngine has its own binding. Otherwise, there is JBullet.
3D is exponentially harder to develop compared to 2D.
In terms of math you’ll need lots of trigonometry knowledge and all around linear algebra knowledge.
Unlike in 2D, when you’re working with 3D in my opinion you can’t get away without an engine (doesn’t matter if the engine is yours, just separate the project and the engine behind it), it just gets too complex otherwise.
To make a good looking game you have to be confident with using all kinds of shaders (eg. vertex shader displacement, fragment shader lighting, geometry shader point sprite particles, etc) and be overall familiar with modern OpenGL.
Creating the 3D art assets is hard and time consuming, picking up 3D modeling alone can take up a significant amount of time.
All of this is not an easy task and unless you truly have the time and the dedication this takes you’re probably better of using a premade engine like jMonkeyEngine 3.0 or something even more versatile like Unity or UDK4.
With that being said I wouldn’t like to discourage you, if you feel like it go ahead, it’s a nice learning experience but sadly most people who starts making these things end up developing engines instead of games.
@PandaMoniumHUN I agree with you and you’re right about the importance of shaders. I don’t want to discourage him, I think that he can succeed in making a small blueprint, a mock up or a small playable demo with the resources that I gave if he already has some experiences in writing 2D games but I’m almost sure that he should scale back his ambitions as Princec said or he shouldn’t plan to write almost everything from scratch in order to avoid ending up with writing an engine and/or getting discouraged because the whole project should be too hard.
@sci4me You wrote in another topic that you have some difficulties in using Blender but you seem to have a little experience with OpenGL which is good. I read that you use(d) forge. If you need a nice example to write a Minecraft-like game, you can use this one: https://code.google.com/p/ardorcraft-api-examples/