Skip to main content
2 answers
3
Asked 1822 views

What are the steps one must take to develop a quiz based mobile app game that utilizes 3D animations?

I have always been interested in computer technology and graphic arts. However, I never pursued those career paths due to the projected low income that coincides with a job in those industries. I am currently interested in developing an app which prompted the subject matter of my question. #computer-science #programming #graphic-designer #3d-graphics #motion-graphics

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you

3

2 answers


2
Updated
Share a link to this answer
Share a link to this answer

Eric’s Answer

It's great to have a concrete idea like this! The app you're describing will have a lot of parts, so the first step is "Being patient with yourself," but it's absolutely something one person could learn, given time.


I may have gone a little bit too detailed in this answer, but hopefully it will give you the shape of what you would need to do, and then you can research it and teach yourself.


You will have to decide what mobile devices you are targeting. The fundamentals are the same no matter what you choose, and there are some tools that are "cross-platform" and help you write one set of code and have it run across different types of devices, but what options you have depend on what you want.


The most obvious devices (generally called "platforms" when you're talking about writing apps for them) are iOS and Android, with a few others like Windows Phone and Blackberry. You could also target the Web, using modern technologies like HTML5, which ideally can run on any modern smartphone, but can be more limiting because the user would be just going to a Web page instead of downloading an app.


No matter what, for all of these cases, you will need to know how to program. These days there are many online tutorials, for a variety of different languages. The principles of computer science are the same no matter what language you are using, so if you can't find a tutorial you can understand for the language you will be using for your chosen platform, I recommend starting on an easy language like Python, and once you have the fundamentals, trying again. codeacademy.com is a great starting place for Python, JavaScript, and various other languages.


I'll focus on Android and the Web because those are the two I know best, then summarize what you would need for any platform.


If you were making this as an Android app, you would write in Java, and use the tools in developer.android.com . A quiz game is a pretty traditional kind of app, so on that count you wouldn't need anything out of the ordinary. Any Android programming introduction will teach you how to make a user interface, which can be expanded to include the displayed questions and answer choices. You would likely want to have the app save data to internal memory, also a common operation, so that the user's progress could be recorded. Depending on what you are looking for, you might integrate the app with Google Play Games, to make it possible for different users to track their progress against each other, and store their saved games on Google's servers so that multiple devices owned by one user can be kept in sync.


For 3D animations, you will be using OpenGL, the Open Graphics Library, which is built into Android. It is still Java, but has its own classes, methods, and general approach to graphics. Depending on what you are looking to do, you might design all of the animations by hand, in the code, or you might design them in 3D rendering programs and then export them to be used by the Android app. This is a complicated skill of its own and not one I am very familiar with, but it is certainly one you can learn like the others.


For an entirely different direction, if you target the Web, you would write in HTML and JavaScript. HTML will define the user interfaces, and JavaScript provides the logic. Another language may be needed to implement logic that needs to run on the server, like "Save this high score." I recommend Python for this language, but anything that can run on the server will do. After Code Academy, I would recommend developer.mozilla.org for tutorials and advanced topics in JavaScript. You will need server space, because unlike an Android app, in which you create a compiled file with all of the information which is loaded onto the Play Store, all of the code will live on a computer which is accessed by a URL. This means you will need both a server and a domain name, both of which will usually have a monthly or yearly fee. Amazon Web Services (AWS) are a very common server, though they require some level of Linux knowledge to set up. Google App Engine is more limited but also simpler to set up, really only requiring some Python or Java knowledge. There are many other possibilities as well.


Once you have a server, the essentials of a quiz game are again easy, and after you have run through some tutorials you will probably understand what you need to do. There is a little bit more complexity in a Web app because you have to know what code needs to be executed "in the client" (by the user's Web browser) and what code needs to be executed "on the server" (the computer pointed to by the URL). There are various viewpoints on what is better, and some code must be on one or the other.


For the 3D animations, you will be using WebGL, a part of JavaScript, however, I cannot recommend THREE.js (threejs.org), highly enough. It is a library for 3D graphics on the Web that makes it much, much easier than writing WebGL by hand. Like with Android, you might write the animations by hand, with statements that mean "There is a green sphere here." "There is a rotating red cube here," and so on, or you might design the animations in a modeling program and then import them.


For any other platform, the structure is the same. Find the language you use to write for that platform (Objective C or Swift for iOS, various things but most likely C# or Visual Basic for Windows Phone, a version of Java called Java ME for Blackberry, for example), learn to write a basic quiz interface, find out how the platform handles 3D graphics which usually is integrated into the language but will require some extra skills and practice, and design the animations you want in code or a modeling program.


For all of these cases, in addition, there are libraries, packages, and frameworks (which are all similar things that can make programming easier, if you follow their ways of doing things) that could help, especially with "Making a game with 3D graphics," which is a common task. They can be platform-specific, or cross-platform, and the best cross-platform ones will let you use the same code in the same language, for different types of devices. Unity is a well-known example, which can be programmed in a variation on JavaScript or C#.


I hope this was helpful, and didn't focus in on parts you didn't care about while skipping over the things you did want to hear, too much.

Thank you comment icon Thank you for all of the information, this helps me with my app idea too. Adrian
Thank you comment icon Thanks a million for the detailed response; much appreciated! Joseph
2
1
Updated
Share a link to this answer
Share a link to this answer

Naomi’s Answer

WOWZA love this thought provoking question- you have definitely spiked my interest! To get you started with game design and 3D animation have you checked out some inspiration from MIT lately? MIT Game Lab http://gamelab.mit.edu/study/ or http://gamelab.mit.edu/games/ or MIT game design toolkit http://web.mit.edu/mitstep/index.html


Or investigating in some game design schools? http://www.gamedesigning.org/video-game-design-schools/
Digital Media Academy https://www.digitalmediaacademy.org/massachusetts-tech-camps/harvard-university/
Intel Real Sense http://gamedevelopment.tutsplus.com/articles/an-introduction-to-intel-realsense-technology-for-game-developers--cms-24740


Hope a few of these resources will inspire you to get to the next level to take some action steps!

Thank you comment icon Thank you! Joseph
1