A question regarding 3D, in order to create a FPS, do you have to use a 3D engine or is it possible to create it using a library? What exactly is a Game Engine?
When you "code" for a game engine, what is it doing with your code? When you code using a library, are you "creating" your own game engine? Can you use LWJGL to create a full FPS?
do you have to use a 3D engine or is it possible to create it using a library?
I'm not sure I get what you mean. Though basically when creating a 3D application, you would usually either use OpenGL or DirectX both of them is an API for 2D & 3D rendering. Those aren't 3D engines, but simply the tools for rendering 3D (and 2D). So now you can use one of those and create a 3D engine.
What exactly is a Game Engine?
Basically a Game Engine is a piece of software which runs and controls everything within a game. Most game engines are written in C and C++, though you can of course use any language you want.
When you "code" for a game engine, what is it doing with your code?
When you want to program a game engine, then you basically can do two things.
Create a full game engine which can do basically all the things you would need. Like loading 3D models, perform lighting, etc.
Create a game engine based on a game idea. What I mean by that is, when you have the main game idea, then you can create a game engine for that specific game. Thereby if the game doesn't need any lighting, then you of course don't have to write all the code for performing lighting.
When you code using a library, are you "creating" your own game engine?
Well you don't need to use any extra libraries to create a game engine. The game engine is simply what makes your/the game run. Though you would of course use some sort of graphics rendering API like OpenGL, DirectX, etc. But basically you don't have to.
Can you use LWJGL to create a full FPS?
LWJGL like JOGL is simply a Java OpenGL Wrapper, and using OpenGL you can create any kind of 3D application you want. If you have the skills you could probably create something like Crysis, though I might chose to use C++ or C, instead of Java for creating something huge and advanced as Crysis, though it is possible.
So yes using LWJGL you could easily create any kind of 3D and/or 2D game you want to.
Related
I am looking for some simple way how to plot on android in 3 dimensions 4 points and 3 lines in real time. I'd like to create a visualization of a coordinate system from arduino setup with 9axis accelerometer, I want to see on the screen how the object rotates.
Something like https://www.youtube.com/watch?v=fOSTOnQzZCI
The values of the points are in a fixed range, do you know some simple library that can be used for this?
I recommend this book, it contains all the info you need to create 3D visualizations in Java (including source code that you could use for the visualization you described, with only a small amount of adaptation):
http://eu.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000909.html
This book was my main reference for developing a 3D chart library (Orson Charts) in pure Java (I deliberately did not want to use OpenGL for this project). I also ported the library to Android (mostly this just involves mapping the Java2D graphics API calls to the equivalent in Android), you can see the demo on Google Play to get an idea of how the "pure Java" (well, not really Java on Android) rendering performs - I'm pretty sure it will handle your task just fine.
For a school project, we have DLP Link glasses with an Acer projector, and we would like to develop a demonstration application in Java, showing some 3D features.. Unfortunately, I can't find good resources on how to make it, and I'm wondering if you have some ideas ?
How do I link my application to these glasses ? How can I develop easily something in Java, that will allow me to actually display 3D ?
Thanks
If the graphics card in the system that your code runs on supports 3D output, all you need to do is use the standard OpenGL or DirectX 3D functions and the graphics card should do the rest. You probably won't have to worry at all about whether your graphics card outputs things on a 3D projector, 2D regular monitor, or which type of glasses it uses...
For that, you can start here: http://en.wikipedia.org/wiki/Java_OpenGL
I'm working with LWJGL for the first time, and Im enjoying it. I'm having a slight problem finding tutorials about things like making main menu, or saving/loading game state/information. Are there any decent tutorials available for this kind of thing? Any help is appreciated.
Well depending on what you're doing. A good idea for saving and loading is to use an XML file for each save. You could store any map data, or character data inside that file, then read all of that information when loading.
There are actually some pretty good tutorial series on YouTube:
TheCodingUniverse - http://www.youtube.com/playlist?list=PL19F2453814E0E315 (33 Videos so far)
There are also a lot more random tutorials on youtube if you just search for LWJGL tutorials.
Also if you plan on making 2D games, I would check out Slick2D. It's basically a 2D engine built off of LWJGL, it can be very helpful in rendering graphics, and stuff of that nature. Keep in mind it's only for 2D though, if you want something like that for 3D, I would check out JMonkey
The forum Java-Gaming can also be a useful place, these are some of the resources I used when first learning stuff with LWJGL. In my opinion I think going with a library like Slick or JMonkey is the way to do things, because they've done the stuff that is needed for every game, and leave you to make your game.
i want to create 3d games for android but i don't have any information about that. i want to do this in most advanced way like big companies. "most advanced way" means i don't use simple tools that rapidly return result but there is no way to creativity and CREATION. I need an standard way with complete resources and so on...
i want to know this too:
1- i need a game engine or i can create games with my own engine? how?
2- [important] i need to learn 3D Max or Maya etc...?
Every guidance will push me forward. Thanks
I think Unity is the tool which you require for 3D game development.
Unity is the development environment that gets out of your way, allowing you to focus on simply creating your game.
Link : http://unity3d.com/unity/
I have made many Android applications that use Java code and the XML layouts, however I am very new to OpenGL ES. I have programmed games in Swing Java, including pong, and an intermediate level 2d platformer (with a map editor, too!). I have extensive knowledge in Java, however, OpenGL is a new doorway I wish to open.
Using guides online, I have made simple things in OpenGL ES, including a cube that I manually mapped the co-ordinates for (which was a very fun experience), and drawing a triangle on the screen.
My question is, how can I make a 2d game with OpenGL ES? Now, what I've tried doesn't quite work well, as the images I draw arent to scale, and no matter what guide I use, the image is always choppy and not the right size on my Nexus S that I am debugging to.
What I need to learn to do is, be able to draw images and objects to the screen with OpenGL ES, and learn how to perform a game loop. I havent looked into a game loop in Android, but will soon. What I want to master first is drawing crisp, HD images to the screen, which just won't work for me.
If you require me to post examples of what I have done in the past, of course I will. But I am hoping you can help me with a fresh start. Thank you.
TL;DR: How to draw crisp, HD, 2D images to the screen using OpenGL ES, and how to have a game loop in Android?
You probably heard of Cocos2d, a 2d gaming framework that works as a wrapper on OpenGL.
It was originally developed for iOS, but it was ported to Android to.
The project page:
https://github.com/ZhouWeikuan/cocos2d/tree/master/cocos2d-android
Great starters guide:
http://dan.clarke.name/2011/04/how-to-make-a-simple-android-game-with-cocos2d/