As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I know many topics been here before but I think mine will be the most updated question. I want to start on game development, my target platform is android. I have experienced in web desktop and android application but I have totally no experience in game development. I have read about game development vectors and other stuff which is kind of complicated to me as I am not that good in math. Android and desktop life cycle is very different so is it better for me to start developing games in desktop first and have better understanding.
How it works or dive into android game development?
I am not that good in math can I still be a game developer ?
I need high level guidance from game developers about the domain, its challenges and requirements.
You come very close to getting flagged as a invalid question, but I believe you are seeking guidance, so upvote and a attempt to answer your question.
Consider these when you develop games
Android bear framework may not be as good as other gaming frameworks for developing games. Mainly since with Android you need to do all the math yourself. Everything from movement to collision detection to correctly timed animation to multiple device support and testing.
Memory management is a huge issue, which you need to work on big time, if you cant make a game that runs smoothly and that can be fun to play dont release that game.
It must be fun to play, forget everything else.
You need a very good graphic designer to help you with backgrounds, characters and emotions. Without which it will be a very crappy looking game, which will be no fun to play.
You need to engage the user, so you need levels difficulty levels, which is called gameplay. So you need a good amount of thought into the story you are using to engage the user.
Bug fixes as it gets tested in the field is very important. Get a lot of people to play it free. Play it yourself hell a lot before you release.
Consider learning frameworks like carona. Bear Android will be a pain to develop it with the criteria above.
Its a passionate mans job dude, dont do it for fun :). Get in only if you love making games, not only if you love playing them. Get in if you have a excelling gameplay, character and story in mind. Get a good designer to understands color and who can do a artists job too. He will also need to give you images in various sizes, shapes and resolution, so he needs to be around until you release. Since last day you may realize that you need a lower resolution image for the entire set. A team delivers a game, cant be just 1 dude sitting and coding.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
The engine I've been wanting to remake is from a PlayStation 1 game called Final Fantasy Tactics, and the game is basically a 2.5D game I guess you could say. Low-resolution sprites and textures, and 3D maps for battlefields. The plan is to mainly load the graphics from a disc, or .iso (I already know the sectors the graphics need to be read from) and fill in the rest with game logic and graphics routines, and probably load other things from the disc like the map data.
I want this to be a multiplatform project, because I use Linux and would like for more people to join in on the project once I have enough done (and it's easy to get more people through platforms like Windows). I'll be making a website to host the project. Also, none of the graphics will be distributed, they'll have to be loaded from your own disc. I'd rather not have to deal with any legal issues.. At least not soon after the project is hosted on my site.
But anyway, here's my dilemma- I know quite a bit of Java, and some Python, but I'm worried about performance/feature issues if I make this engine using one of these two languages. I chose them due to familiarity and platform independence, but I haven't gotten too into graphics programming yet. I'm very much willing to learn, however, and I've done quite a bit of ASM work on the game- looking at graphics routines and whatnot. What would be the best route to take for a project like this? Oh, and keep in mind I'll eventually want to add higher-resolution textures in an .iso restructuring patch or something.
I'm assuming based on my results on Google that I could go with something like Pygame + OpenGL, JOGL, Pyglet, etc. Any suggestions on an API? Which has plenty of documentation/support for game or graphics programming? Do they have any serious performance hits?
Thank you for your time.
I'd recommend going with PySFML, and, of course, Python.
If you do your Python programming correctly , and if you really are willing to fiddle with C or ASM Python plugins for faster computations, you shouldn't really have too much performace hits.
First thing, I wouldn't worry too much about language performance at this moment. If you worry about performance unnecessarily and choose the wrong/hard platform, your project will be dead before it started..because it will take it longer for you to produce something and harder to get other people to join your project.
Since your are familiar with Java & Python, I'll suggest do your project with Jython or JRuby. That way you get to write in nice and powerful language with the benefit of Java runtime.
By choosing to run it on Java runtime you get:
Multi platforms support, so this address your concern about linux/window platform.
Latest Java runtime is very good and in most cases the JIT can perform equal or better to natively compiled program.
At the end of the day if you're passionate about the project and committed to getting the most out of the language you choose, the performance difference between java and python will be minimal if non-existent.
Personally speaking, the biggest challenge is finishing the project once it loses novelty and initial momentum. I suggest you go with whichever language you're more passionate about and are interested in plumbing the depths of, or one that could boost your resume.
Secondly, as you mention you're hoping to attract contributors, you may want to factor that into your decision. I can't comment much here, but have a look at similar projects with lots of activity.
Good luck!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Is there any fun, educational game (maybe a flash game, etc.) that help learning the concept of programming and training your brain to think like a programmer?
Actually, I am not the one who will be playing it; it'd be my friend instead. I tried to help out my best friend through the university Java course (at my university, it is a kinda "sucky" course). I have practiced programming for many years, so for me it is not a problem. However, my best friend, whose major is not in computer engineering (but must take this course due to it being required), has a very hard time being introduce to Java by the boring professor and very confusing textbook.
I tried to simplify many context for my friend, but still it seems he gets bored with those confusing context very fast. Therefore, if possible, I'd like to introduce it to him in a more enjoying way such as a game.
There are several games available, this one is closest to programming and fun I've encountered so far:
light-Bot
light-Bot 2.0
Update
Here are the newest versions of the game, which include better explanatory texts and a friendlier drag/drop interface:
Lightbot
And a version for young kids in particular: [ages 4-8]
Lightbot JR
http://codingbat.com/
It might not look like a game.
But it's a site, that offers easily understandable problems, ranging from complete beginner problems to intermediate problems. Split up into categories based on the subject they're covering.
You write the code on the site, and then it tests it, and shows you the results.
The game part comes in when you complete an assignment and it gives you a point! (In the form of a star).
The constant gratification of being rewarded when you solve a problem makes for a much more pleasing and interesting learning experience I've found... It helped me and my classmates a lot when we had an incompetent Java teacher :p
Manufactoria
Just to keep updated, there is a new game CodeSpells which is quite an interesting game.
In the gameplay, the player is a wizard arriving in a land populated by gnomes, which is a group who used to have magic powers but lost it. The wizard has to help gnomes by writing spells in Java. Players have seven spells available to use, including levitating objects within the game, flying and making fire.
See: CodeSpells First-person Player Video Game Teaches Kids How To Program In Java
there was the game called Colobot days ago
CeeBot is great.
What about programming like playing a game:
Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.
I would suggest implementing hangman, tic-tac-toe ( 2 player version to start with and later can be modified to play with computer).
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
So I apologize if I'm posting this in the wrong place but I thought asking the coding crowd would be best.
So I'm building a website with 3 developers. One dev is on front-end, one on PHP back-end and one on the database design. The core application of the website is actually much more complicated than i/we (the devs here) originally imagined it would be. The hardest part is in the database design and the design and development of the CMS to manage the database. Working closely with one dev, we have created the final version of the database. This is good news. Meanwhile, the rest of the site is being built with Zend with the other 2 developers.
Essentially what has happened is that the database designer that I have been working with has all the knowledge in his head because he worked with me consistently to design the DB by learning about the technicalities of the domain, industry terminology, the system requirements and so forth. He has also designed the CMS to manage the products that we will insert as per his data structure. Logically, he should really be the one then to code the core application because he knows deeply what he designed. However our system is in PHP and he's a Java dev. So I'm pondering what do to. He has agreed that he could learn PHP in about 2-3 weeks he estimated but admits that at the start, coding would be quite slow while he falls over a few times.
The lead developer on the other hand knows little about the requirements of the core app, the design of the database, the products and the business domain and would therefore take a long time to go through the same process of transferring all this knowledge until he's intimately familiar with everything. So its really a question of time. Would it be faster for a 6 year Java dev to learn PHP and build the core app or would it be faster for the 6 year PHP dev to pick up the knowledge from myself and the database dev?
Is it a close call? Is there a clear winner?
Any advice/suggestions?
Thanks
In essence I think that having experience of design and a good knowledge of how systems work is the most important thing.
Individual languages can be learned (and yes, there is a learning curve, while the syntax is absorbed, then the idioms, etc) and whilst having someone who knows a language when they start makes them a little quicker off the mark, I would choose someone with good design skills over someone with weaker design, but more knowledge of the language.
Language skills can be learned much more quickly than design principles.
In your situation, you have a problem. Two good people with different skillsets. Surely the ideal solution (if it's financially viable) is to have them work as team. Then both will learn much more quickly from the other where they are weak - and they'll be able to discuss design issues and rational. You should end up with a vastly superior product, and two developers whith enhanced skillsets and expanded experience. A win-win, if they can work well togther.
I agree with #Ragster - get the database guy and the UI guy to work together. There's even a buzzword for this - it is called pair programming.
But I'd add one thing. It sounds like a significant part of the problem is that the database guy has all of the knowledge in his head ... and there is nothing written down. This is not good. What happens if the database guy is run over by a green bus?
Maybe you need to make the database guy's number one priority to document the database design in a form that the UI guy can assimilate.
I would vote for using the experienced PHP dev rather than one new to PHP. Any experienced PHP dev should be able to take a brief from you and your colleague on what is needed and utilise the db design work already done.
A dev new to PHP will not produce code that is as well written as an experienced dev and that could cause you problems in the future.
The other solution would be to use Java for this application even if some of your other apps are PHP based. The two can live pretty well side by side.
I'd vote for the PHP-dev, working alongside the database/java dev.
That way, the database/java dev begins to get exposure to PHP, which will help his learning curve; while the PHP-dev will pick up the database structure and the all-important business rationale/details from the database/java dev.
You shouldn't create a dependency on any one person if you can help it, but distribute the application knowledge across your team. This way, you'll end up with a stronger team overall.
You should also ensure that the knowledge isn't maintained purely in anybodys head, but is documented. Always consider the dangers of a number 17 bus when all the knowledge is in somebody's head.
The nature of your question implies that you expect your programmers to develop in single-user mode throughout. I have honestly never met a situation where that was less appropriate than for you right now. Allow/instruct the obvious candidates to use pair programming, and the problem will simply dissolve into thin air. You will get better understanding within the team, faster results, better code, more unified solutions all around...
I am not being flippant here. If you have any historical or even ideological aversions to pair programming, please please please try to just get over them. It just is that much more efficient.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm a beginner in programming. My experience so far is only in Actionscript 2 and 3. So I have a basic understanding of declaring variables, loops, arrays, if/then, do/while... I'm wanting to move to developing for Android phones so I'm wondering what suggestions people have for where to go next. Should I jump right to Android? Start with a 'beginning Java' approach? Or should I go some other route to beef up my knowledge of OOP concepts before launching into Android? I have my Dev environment set up and completed the Hello Android tutorial and I'm just wondering if I am going to be in over my head quickly?
I'm just wondering if I am going to be in over my head quickly?
Almost without a doubt. ^_^
My suggestion: Buy two books from Amazon.com
An Android development book. Work through every example in this book, do the problems at the ends of the chapters, take your time, understand what you're doing.
Buy an up-to-date Java book. Use it for reference when the Android book discusses something you don't understand.
This is very similar to what I did years ago to learn Obj-C and Mac development and it worked well. It will take you longer to get up to speed than diving into development and hacking something together, but at the end of the day you'll have a much better understanding of the principals and intricacies of writing code for the Android platform.
I should also mention my reasoning behind suggesting you buy books instead of using free Google results. Books are structured and highly edited. Assuming the author(s) are competent, a decent book will teach you what you need to know and leave out details that are either unimportant or more advanced that what you strictly need. It's difficult to impossible to find that level of structure in an online tutorial.
definitely nail down java syntax, so as little as possible confuses you in android development. android has some interesting objects to say the least--and their names don't hold traditional data structure names that you would be used to seeing. so, again, master the syntax, write some apps, then think about diving into android.
Yep, I'd say you need to learn java properly, and doing it exclusively through android is probably not the quickest approach. Try working your way through a recently published (it is essential that it covers generics) Java introduction book, then take on Android.
Android would be trial by fire. If you continue directly in Android, choose a few more simple hello world with bells on types of project. With ActionScript you were learning both a language and the platform, and switching to Android means learning a new language and very different platform. Most of the assumptions you acquired learning Flash will be wrong in Android.
I began learning Android with an understanding of JavaScript from front end web development. I grabbed the Wrox Android book and used the tutorials at http://java.sun.com/docs/books/tutorial/index.html to help me through the Java parts. I suggest diving head first into Android and going back to Java reference/tutorials where needed.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
For C++, Java, or Python, what are some good game + free game engines that are easy to pick up?
Any type of game engine is okay. I just want to get started somewhere by looking into different game engines and their capabilities.
For my Computer Graphics course in College we used the open source OGRE 3D engine. Not only is this an extremely robust 3D engine but it was a blast!
Develop a medium sized game using it and you will get a good taste of many of the different game programming specialties. You'll find yourself doing 3d modeling, sound effects, physics programming, AI, the works.
alt text http://www.mactabilisarts.com/Images/multiplayer%20games.jpg
Screenshot of a recent OGRE 3D Game
Java hasn't got any love here? For 2D and 3D OpenGL on win/mac/linux/android, try libgdx. For 2D with API similar to Java2D try Slick. LWJGL for pure OpenGL bindings. Ardor3D or JMonkeyEngine for a higher level 3D library. For networking, KryoNet.
I would suggest pygame It has work well for me in the past. It is very easy to use and comes with the bonus of python :)
It has an active community and works on both Unix and Windows. (I haven't tried it on Mac)
For python game development I would look into using panda3d.
Not really the language you want but I still think it's a good engine: Löve, and it's written in Lua.
Python
I've ditched Pygame and started using Pyglet.
It is extremely easy to play around with, it is nicely complete (OpenGL, mp3 support, image formats, joystick...), and it has a nice tutorial.
If you are ready for deeper mechanics but greater freedom, have a look at Crystal Space (C++), if you want to use more already-prepared objects you can consider the Irrlicht Engine (C++ too).
I'd recommend Ogre3D as well, it's rather extensive, cross-platform and you can add functionality like physics through existing add-ons - or write your own in C++. It is however a graphics engine, rather than a dedicated game engine, but the add-ons amend that.
More importantly there are wrappers for Python (Python-Ogre), Java (ogre4j) and .Net (MOGRE).
I heard good things about Ogre, but i haven't used it myself.
In a completely different area, i think Blender has been complemented with interaction capabilities.
Many open source projects are hosted on launchpad, some are games, and some of those use a 3rd party engine. Maybe you could have a look there?
Garry's Mod was written using Half-Life 2's Source engine, presumably using the Hammer editor.
Granted, this is arguably closer to level design than game design, but might be interesting regardless.
On the Java front, check out jMonkeyEngine. It's got a lot of features including hardware acceleration using OpenGL. I haven't attempted to develop anything using it, but I've been following the community for a while; they did a demo and presentation a few JavaOnes ago.
Moving from the client to the server, if you are interested in toolkits for building MMOGs, then check out Project Darkstar. It's a server-side framework (written in Java) with client-side SDKs for Java and C. The whole project is sponsored by Sun.
If you're interested in 3D game programming, id Software of Doom and Quake fame often release the source code for their engines. You can find the source code for Quake I, II and III here and a substantial chunk of the Doom 3 code here and Quake IV here.
There is a RPG engine called VERGE if you're interested. Never tried it but I heard good things from it.
I think it's in C++.