3d games in android - java

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/

Related

Gear VR Framework (GearVRF): add elements in front of a 360 video

I'm getting into the wonderful world of VR using the Samsung Gear VR and the Gear VR Framework (gearvrf).
My goal is to implement a quick menu on top of a playing 360 video: have a few icons and a frame that will go around the selected one.
I already successfully implemented and modified the gvr-360video example from https://github.com/gearvrf/GearVRf-Demos/tree/master/gvr-360video and in more details this particular file: https://github.com/gearvrf/GearVRf-Demos/blob/master/gvr-360video/app/src/main/java/org/gearvrf/gvr360video/Minimal360Video.java
As I'm fully aware I have very little background in VR and 3D in general, I was therefore wondering about the specific elements of the gearvrf that I should use to implement my functionality?
Also, is it possible to detect the moment where the user removes the gearVR?
My previous answer about building UI for GearVR using QT and C++ applys to your question too.
I bet questions like this will still keep coming a lot, until a lightweight UI element focused 3D framework pop up. Oculus provides a UI framework in its mobile SDK, but it is still too "low level" and requires quite an understanding of 3D programming, hard to develop and debug.
Frankly speaking, building UI for GearVR(and other VR devices as well) is quite a headache now, especially if you do not have any 3D programming experiences.
Also, is it possible to detect the moment where the user removes the gearVR?
Yes, check the source code here, which is a copy from Oculus mobile SDK.
VrApi.h
Looks for the methods named "ovr_EnterVrMode" and "ovr_LeaveVrMode", it should be there in GearVRF too.

Game engines and LWJGL questions

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.

Modifying the LIBGDX Application frame in desktop

I'm currently using libgdx and I am looking for a way to modify the frame/window. I'm looking through google for maybe tutorials and examples but I'm not really sure what to search for. What would be the correct term to look and if anyone does have any examples/tutorials then I'd appreciate them posting them.
This is for desktop.
On the desktop Libgdx uses LWJGL to access OpenGL and desktop APIs. You should be able to use LWJGL APIs from your desktop backend if you need to.
You will have to be much more specific about what you want to "modify" about the "frame/window" if you want a more precise answer.

What's the right approach for creating an Android app?

I have a great idea for an Android app, but as I'm only familiar with php/js, I'm uncertain of which approach I should choose for creating it. The app will be based on a google map with a lot of position markers. There won't be any fancy animations or other heavy resource-demanding activities.
As I see it there are three different options:
Read up on Java and program the whole thing in Java
Create the map activity in Java as a mapview and then use webviews for the other activities (which can easily be scripted as html5 webpages.)
Script everything as a webapp (not really an option, as this is not a real mobile app imho.
I'm most keen on using no. 2 as I'm quite familiar with html/php/js/mysql. Have to read up on the html5 specifics, though. Questions:
I need access to GPS and camera hardware. Is that acheivable in webviews?
How complicated is it to pass variables between js in webview activities and java in other activities?
How big a difference in performance can I expect if I use option 1 vs option 2?
Other thoughts?
Kind regards,
Anders
You can choose number 2, but as we are talking about an android phone, you might want to get really accurate coordinates for your map, and you can only achieve this by accessing your phone GPS, through webviews the best you can get is the location trought the device internet IP adress, wich doesnt lead to a very accurate geo position.
The best choice is a 100% java application in my opinion.
1) Yes it's possible, but as commented it will be less accurate and probably slow.
2) Not complicated. Painful if you need loads of interaction between a webview and native app. Using a Javascript Interface that can be set up from the native app. You can basically inject javascript in a webview's html.
3) Heterogeneity of performance depending on device. Because your implementation will be based on the device's browser you can expect to get really sluggish behavior for older devices. Anything to do with HTML events (Dragging, Tabbing...) will have a knock on most devices, from my experience.
4) As #vodich comments there are other party frameworks. My benchmarking on PhoneGap and other js-based options is that they're a waste of time if you are looking at developing a professional app. I haven't developed on Adobe AIR but find a pain the need to be installing plugins to get native functionality (access to sensors, camera, etc) Mobile is all about fast, responsive behaviour. HDI is your finger, user is fast, so app needs to be fast.
EDIT: So hell yeah! Java FTW!
Albert.
4.Other toughts?
Yes, if you really want to make a great Android app, you should be using only Android and specific Android UI components, and give it a native look and feel. And regarding 1,2 yes it is possible, I would say not so complicated to just integrate them, but I think you'll eventually get in big problems.
Learn Java and write your application natively.
Webviews might allow you to use your php skills to present something to the user, but it's entirely one-way - you'll not be able to interact with what's inside.
The Android developer site offers fantastic documentation and jumping from PHP to Java isn't greatly difficult, though you'll need to get used to strict typing and "real" OOP.
Other thoughts? Don't go down the PhoneGap/Cross platform toolkit road - it might allow you to write applications for multiple platforms and using your current skills, but in the end you get a subpar app that doesn't feel right on either platform and doesn't fair well as future versions of iOS and Android are released.

Should I use Flash or Java?

I want to make some 2d games that I may want to submit to a game site, such as newgrounds.com. Even if I decide not to submit, I'd still like to know which is a better choice.
Which has a faster startup time?
Which performs faster in a 2d game?
Which IDE should I use?
Thanks in advance!
EDIT:
Also, a couple more quick questions.
I have used xna quite a bit, and silverlight a little. Where do I get started with flash? And what 2d libraries do i need? Also, is flash going to be anything like xna with an update loop and a draw loop?
The de facto standard for browser games is Flash. While there are game submission sites like ArcadePod.com that accept Java, most (including Newgrounds) are Flash exclusive.
Notably, Adobe Flash Pro and Adobe Flash Builder both cost $700.
Performance-wise and deployment-wise, Java using JOGL is probably the best I've seen in a browser.Check this out: https://jogl-demos.dev.java.net/applettest.html
That said, Flash and HTML5 should be hardware accelerated... at some point in the future. We should be seeing some very nice DHTML5 graphics libraries very soon. Combined with more Javascript-targeting compilers like GWT, I'm guessing that this is where we'll be seeing much game development in the future.
Definitley Flash over Java for in browser. Silverlight is also decent. Don't expect Flash or Silverlight to perform as well as XNA, as XNA makes use of the GPU with programmable shaders etc.
I recommend using FlashDevelop if you don't want to pay for any tools.
Realtime games in Flash use a loop. There are two ways of achieving this. The first is to create a Timer object and create a listener for it. The second is to listen to an ENTER_FRAME event (which is dependant on the Framerate you set). I personally use the second way of doing it. Since you can not guarantee the framerate its good practise to use a time delta to adjust values.
The best thing about Flash is there are a lot of mature engines out there, I will only focus on 2D ones here.
For physics, Box2D is the way to go, its a port of the C++ Box2D engine. Very powerful.
For keyboard input grab this class: KeyPoll
Depending on the type of game, the as3 game engine fixel might be useful
As for rendering, the simplest way is to use Sprites and Movieclips. You can draw programmatically, or if you use Adobe Flash Pro you can draw them by hand. An alternate way to render is to create a bitmap object and draw pixels to it.
I think it would be worth investing in a good book. For learning ActionScript3.0 everyone recommends Essential ActionScript 3.0 by Colin Mook.
For games development: Foundation Actionscript 3.0 Animation:
Making Things Move! and AdvancED ActionScript 3.0 Animation by Keith Peters are great. You can find his blog at Bit-101
And last but not least, a fairly new book The Essential Guide To Flash Games looks great but I have not read it yet.
Also if you search stackoverflow you will find similar questions about learning AS3 with links to online resources.
JavaFx is a very upcoming technology in developing both 2D/3D games and infact it gives same effect as Flash.you can have its libraries and inbuilt support IDE in Netbeans IDE.
I have developed both in Java2d/swings/graphics and Flash. Flash uses VECTOR Graphics which has a very good output irrespective of any screen resolution. Plus it will become fun and easier to design objects in flash rather doing everything by coding in Java.
That does not mean that you have everything ready in Flash. You still have to work with Actionscripts which obviously involves coding but it will be really fun once you learn it. You can always post your problems in this community where you have nice support for any actionscript related issues.
All the best!
If you are building a game, mass outreach is more important than any of the factors listed. Far more people have flash installed than JRE/Java Plugin, So I would advise you to go with Flash. Of course performance matters a lot, but getting people to play is more important.
For flash games, you can use Adobe creative suite or flex.
BTW, another good game development platform is MS silverlight, but thats out of the question too. It has even lesser market penetration than Java
Flash is better suited to 2D graphics rendering, was made for the browser environment, everyone has it installed and it's easier to learn than Java IMHO.
Here is a good way to get started looking for good libraries, although to be honest, Flash comes built-in with everything you "need", per se.
22 ActionScript 3.0 API's
Also, don't leave home without your API Documentation!
I'll try to dig through my history of API's and apps; it's been a while since I dabbled in AS3, but those were some nice times.
The sites you are looking to submit to will most likely take flash games over java versions.
I would recommend picking up flash its self and actionscript 3.
You may also want to pick up a free copy of the PushButton game engine which will take a lot of your development time away and allow you to focus more on actually building the games and not so much on getting the physics and collisions etc working.
http://pushbuttonengine.com/
In terms of user accessibility, I suggest flash.I believe it's easier to develop 2d games in flash...

Categories

Resources