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).
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 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.
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 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 12 years ago.
over the years i have been employed in a permanent position with firms that did their development work in Windows SDK, VC++, and most recently Java; in my own eyes, I am language independent.
Should I move from Java to Delphi (assuming pay-scale remains unchanged)?
I'm concerned because, for the most part, the net presents a relatively bleak picture for this particular skill.
The TIOBE Index is an often cited source for estimating the popularity of programming languages. Java, C and C++ have been the top 3 for a very long time. As you can see, Delphi is a lot lower on the list (at position 10 at this moment). (Ofcourse you should not take the TIOBE Index as an absolute measure, but it does indicate something).
This can be an advantage as well as a disadvantage. There are probably a lot more Java and C++ jobs than there are Delphi jobs, but there are also a lot more Java and C++ programmers than Delphi programmers, so it's harder to stand out as a Java or C++ programmer among the masses. Having a specialism that not many people have, such as for example Delphi, may help you get a higher salary, though you'll have to search harder to find Delphi jobs.
Depends on what your goals are, but I believe that for regular apps the future bears name "GWT", i.e. Java. (I consider Delphi a history for quite a while, but that's JMO.)
It's definitely worth learning Delphi. A lot of software's still being written in it, stuff which people use and rely on. A lot of companies prefer to keep quiet about it, though, since it presents such a major competitive advantage over other, more popular languages.
For example, you ever work with VOIP on chat programs? In my experience, there are two basic categories: Skype, and The Other Stuff. Skype "just works", while the others tend to be very glitchy and unreliable. And it's no coincidence that Skype's written in Delphi while (AFAIK) none of the other chat programs are. That's just one example among many.
It never hurts to pick up another skill, but I haven't seen any Delphi job listings anywhere. I suspect you would be better suited picking up a new language/framework/platform with more "legs", such as WPF, JavaFX, Objective-C/Cocoa, ActionScript/Flex, or something of the like.
As a technical move, it's probably a good one -- Delphi is better thought out and more enjoyable to use. From a career perspective, however, you're probably right -- Delphi has been rather marginalized for some time now, and doesn't seem to be in the process of making a huge comeback.
I was using Delphi before I swtiched to C++ and then to Java. I don't think that moving from Java to Delphi is wise idea. Why so?
Java is widely used
It's easier to find Java job
More years of Java -> Better chance getting senior position job (java oriented)
Java is definitelly richer as for libraries
Java rocks in enterprise sphere, Delphi doesn't
It's easier to find resources for Java - from tutorials for beginners to manuals for professionals
Java runs on other operating systems by default, remember? (I know Lazarus, but can't compare port to nativeness)
From my exprience, more experienced programmers and software engineers kind of condemn Delphi programmers ...
Java is suitable for larger projects (means bigger money)
The only good reason for preferring Delphi over Java I can actually think of is making Windows GUI application. But since we have .NET and wonderful WPF, Delphi doesn't score even here.
You make your choice, but personally, I'd never switch back to Delphi (ok maybe if payment was too good to reject:))
The way you phrase your question makes me think you've got a job offer already for a Delphi developer position. If the language is the only thing stopping you, I say you should go for it.
It will add experience with another language to your resume besides being fun (learning something new). Just make sure you keep your skills in Java and C++ reasonably up to date when or if you need to move on.
Why limit yourself to one language?
A major problem with Delphi is that some people consider it an "easy" language. So there are Delphi programmers that can drag some controls to a form without any real coding knowledge. So if you are a good developer and skilled in Delphi, you won't have that much trouble finding a job.
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.