I wanted to create a speech recognition system for Punjabi language for my personal project, i am willing to learn it, read any book even if it takes a year's time.
Can someone experienced here guide me towards the right direction.
It will be a lot of help to me.
I have knowledge of programming and can code if required, but i really don't know from where to start, all i know that is it requires extensive use of Machine Learning, and i am learning tensor flow for it.
For your purpose, it makes sense to use a pre-existing framework. Creating a speech recognition engine from scratch will not be worth your time with all the existing engines/frameworks out there. Years of research have gone into creating many of the frameworks that exist today. Something like Kaldi would be good. Here are two pages you may want to check out:
https://www.quora.com/How-do-I-start-learning-speech-recognition-algorithms
https://www.quora.com/How-do-I-use-KALDI-speech-recognition-toolkit-to-build-our-own-Automatic-Speech-Recognition-System
I realize that Unity is a game engine and XNA is just a framework, but it seems like either platform could potentially work for this purpose.
Which platform has more support in the regard of built-in or community built code/open source projects related to RTS games?
I know that there is going to be a lot of scripting/programming involved either way but if I didn't have to worry about making my own fast and efficient collision detection, pathfinding algorithms, client/server networking (the more nitty gritty stuff), it would greatly speed up development and allow me to concentrate more on the gameplay and design.
If you really don't want to be messing with the nitty-gritty as you just said, use an engine.
Even though a lot of stuff is high-level in XNA compared to many other frameworks, you still are ultimately responsible for the code your game is running - down to the smallest nitty-gritty detail.
This really goes for any genre by the way.
However, people can write engines using XNA that attempt to take care of the nitty-gritty for you, just as something like Unity would.
In the way of Unity, since it's already an engine you can't really write one in it - but people still write helpful scripts that you can make use of. Doing a bit of poking around on UnityAnswers, there are plenty written with RTS's in mind: It'd be your job to integrate the ones you need within your Unity game.
So honestly it comes down to which option provides more/better resources for your purposes; hope I've gotten you started at least.
Unity is pretty much geared toward games that require a lot of "simulation" elements (physics, collision detection, independent entities). If you don't want to worry about all that stuff, Unity would be your best bet.
I have been looking around and the best engine I can find is this: http://unigine.com/
The problem is a full licence starts around £18,000 which i just cant afford in the real world.
So ...
I'm looking to do something unique in my project that involves dynamic terrain that can be moved in realtime whilst the user is in game and "stood" on it, other than that it's pretty much the same as any other WOW clone out there.
I'm also looking for something that (if i decide later to consider this a serious career option) would be taken serious by the industry as a real skill set to have.
Any ideas?
-- EDIT --
I am already an experienced developer but I build line of business applications for pushing data around between companies and departments so I don't need guides / tutorials as such.
I have also done a bit of XNA myself (tried building my own engine) but decided to use a prebult engine to reduce my project lifecycle.
Vanquish is what we are currently working on, but QuickStartEngine has a lot features including terrain.
I've heard good things about SunBurn see: http://www.synapsegaming.com/products/sunburn/engine/
The pricing starts at $150,- which seems very affordable
I dabbled in some game programming a few years back. I got up to using Windows Xp, C++, Ogre3d, Visual Studio, and Blender. I started to make an RTS but then real life happened.
Anyway, I'm looking to get back into it and I am wondering if there are any worthy alternatives to C++, now that Ruby,Python, and C# have become popular.
Is C++ still the preferred language?
I'm running Ubuntu now so I'd have to use some Ubuntu C++ IDE, C++, and Ogre3d.
Anyone used Ogre3d and moved onto something else?
Edit
Goals: Just hobby based 3d programming on the PC
I'm running Ubuntu at the moment but will move to Win7 someday
I imagine a simple game like Startopia
I know a bit about physics engines and sound and I've plugged Ogre3d components together before
So far I've seen that Ogre3d is still widely used. Might look into python and http://www.panda3d.org/
Cheers.
If you like to make games and not just spend all your time working on a feature of your game engine, I recommend you take a look at Unity 3D.
Features:
Game engine (not just a rendering engine)
Script in C#, or JavaScript (modified), or Python, or Boo
Awsome editor
Game can be deployed on: Linux/Windows/Mac/Android/iPhone/iPad/Xbox (and always extending)
Web player to play games in browser (after installing a tiny plugin)
Proven with great commercial games
Having experience with ogre3d is not enough to make a game like startopia as a hobby project. Have you done a finished game before?
Here's a post I found interesting:
http://greyaliengames.com/blog/the-6-steps-to-massive-game-development-success/
IMHO, you should go making 3D games like this at stage 4.
And also depends on whether your hobby is in engineering or making games?
If engineering, using ogre3d would make you learn better engineering skills.
Otherwise, trying to learn how to use an engine like Unity 3D, Torque or UDK would be better.
Everyone mentioned Ogre3D, which is good, but you could also look into Irrlicht: http://irrlicht.sourceforge.net/features.html
it's main advantage (at least to my knowledge) against Ogre3D is that it's more simple, in design and use.
Ogre3d is a fantastic graphics API that is great if you don't want to delve into some crap OpenGL or DirectX shader code for shadows and lighting and alpha ordering etc, but also don't want a true game engine with sound, networking, etc; it's only graphics.
I prefer Ogre3D to Irrlicht over the structure of the API, but it's entirely personal preference.
I might take some flak for saying this, but Java isn't a bad language if you are programming a simple game engine, Java and C++ are getting on pretty equal terms as far as speed nowadays.
C++ gives you a lot of low level access to make small optimizations that if you are experienced enough with, you can get some good performance gains. But optimization is a huge broad topic, especially with game engines.
Typically the average game programmer isn't going to dive into serious low level optimizations with their engines, but large game companies do.
C++ and Ogre are still a viable combination. On the other hand, MICROSOFT wants you to use C# and their XNA framework, and you always want to obey MICROSOFT... oh, wait, anybody know if XNA works with VS 2010 yet? It didn't, when I looked.
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 10 years ago.
I'm preparing to teach someone to program. When I learned the course material, I used turtle graphics for the first few exercises. In reading introductory textbooks, I have not found one that uses the technique. Did others find this approach helpful? If not, what is a better way to learn to program?
I think it depends on age of the target group.
If they are children (I would say up to 12-14 years), doing any easy graphics is a good way to motivate them; on the other hand, don't expect them to learn much about real programming or algorithms.
If they are teens (14-18), it's perhaps still good to use some algorithms that give pretty results (for example 3D or fractals), but since they are older and capable of more abstract thinking, I don't think 2D turtle graphics is interesting enough.
If they are older, doing any graphics is a distraction. At that age, they should have enough inner motivation to learn without anything fancy.
To sum up, I think that fancy graphics serves more motivational role (that you see what you did fast, and it's easy to show others what can you do with a computer) than learning role (that it would make learning real programming easier).
In the late 80s, before I was programming in C, I was programming in Applesoft BASIC and Logo. As a child I thought the turtle was great because it make programming simple. If I decide to teach my children Logo I will probably start here to get an actively developed Logo interpreter.
The key thing about LOGO is user-defined functions. It is very good at conveying that, as long as you emphasize it. Show interactively how to draw a square, then make a new word called square. Then show how you can draw patterns using square. Then make those patterns into words, and so on.
You could do worse in teaching programming than using a tool like Scratch. It's a drag and drop programming interface and can be used to teach basic concepts of programming with some fun visual results (as can be seen from the gallery on their website).
Rob
Logo gave me a very clear picture (no pun intended) on how recursive functions would work, and since I was doing assembly programming at the time, the need to return to the previous state when returning to a method became very clear with Logo.
Recursive implementations of things where also very easy to see the effect of.
I wrote script/code in a c-like dialect for a game called Doom2 before I knew what programming was, so when it came to seriously learning about concepts such as pointers, inheritance and polymorphism I found the basics a breeze because I could construct a mental model to not only help me understand, but also appreciate how cool things like pointers and arrays are.
A friend of mine is a good programming student, but he gets frustrated when he can't visualize an algorithm working, when I was starting to help other students I found they had the same problem, if they can't see something working it's harder to appreciate as a fledgling programmer, the same friend eloquently suggested I "Show 'em some crazy pimp shit and then show them how it's done". He's right, even if someone really wants to learn something they'll be able to draw on more mental energy if they think what they're learning lets them do awesome things.
My best bit of advice is this: AT THE START SPEND AS LITTLE TIME PROGRAMMING TO THE CONSOLE AS POSSIBLE
It makes you feel constrained and your efforts appear futile, only after you appreciate it as a front end should it be used for learning to program. I wouldn't use logo myself because I don't think it can teach concepts such as the aforementioned polymorphism or inheritance nearly as well as other methods, I know a friend of mine is teaching a teenager how to program using XNA in a wrapper, I think anything that can let you blit an image to the screen is fine. That way you can see why you'd want an abstract base class called EnemyEntity with behavior that's inherited by zombie and dog etc. It's not that the concepts are hard to understand, it's just that at first they're hard to appreciate.
I could go on but I think that puts across what I've learned by teaching others. I think using graphics in teaching programming allows students to gain the ability to build mental models of intangible concepts faster than any other.
XNA If you want to teach C# that's an amazing graphics library, just write a wrapper sprite class to hide as much complexity when first starting out and teaching concepts.
SDL A lower level library if you're going to start with c++
During one of my first-year computer science papers we used Java to create fractal patterns via a turtle object.
It was pretty fun to see visually whether or not we had correctly implemented the algorithm required to produce a certain pattern. However, so answer the main question, I wouldn't say that programming via a turtle is useful. I'd say the best way to teach someone to program is to get them to build their own app to do whatever they want it to do. This gives them creative control, plus if they get stuck they can learn how to resolve a problem.
I strongly suggest to start with a interpreted language like Logo (not compiled) because of the quality of the error messages. Reading error messages is very important in this process. Also, at the easy level, Logo allows you to run your instructions one by one in direct mode and carry them to your procedures when you get the expected results.
# Alex: MicroWorlds is a commercial version of Logo and it does exist in English, Spanish, Portuguese, Italian, Russian, etc. it's a big plus if you are not a native English-speaking person.
LOGO is not only Turtle-Graphics.
There are also other interesting concepts in it which come from LISP.
'Turtle' is just icing on the cake and the "imperative" side of Logo.
:)
I learned to program in BASIC by writing simple programs drawing faces (I mean circles and squares) on the screen. Somehow the whole turtle programming was never my thing, although a few of my friends learned that way. Later on I moved to Pascal, then to Delphi, Java and C++/C#.
In my opinion the trick is to "wow" your student and impress/empower with potential things that you can accomplish by writing your own programs. I would actually demonstrate some GUI programming or game programming. It's much easier to learn the basics by keeping the end goal in mind.
Recently I came across SmallBasic - a cool programming environment for kids designed to teach concepts. I would give that a try. It comes with a pretty complete paper describing how to use it.
When I got my first computer (VIC-20) and started programming it was very hard to explain to my parents what I was doing.
My mother tok a course in computing preparing for a project of computerizing the library she worked in. They had a couple of classes introducing them to programming. After learning LOGO she came home and said that she suddenly understood what I was into.
So LOGO with turtle graphics brought us closer together!
I did a "computing for kids" course in the late eighties, and there was an extensive section on turtle graphics using logo. In all honesty I was bored to tears, and learned virtually nothing from it.
I think "programming the turtle" might work better for someone who is artistically inclined, or hugely into geometry, but by and large, there are far more interesting problems to attack, even for kids.
Ah, the memories of good old Logo. I think I got more of a geometry lesson than a programming lesson out of it, e.g. figuring out how much to turn at various points to produce a particular shape, design or pattern. It may work if you plan on mixing geometry with the programming, but if the person doesn't have the basics of geometry, e.g. what is a square and how is it different from other 4-sided shapes, what is a triangle, etc.
I used logo and turtle at school too, a great introduction.
It looks like our kids will be getting a slightly updated interface with Microsoft Kodu. It looks very impressive. It's an icon based programming language made for creating games that runs on X-Box Live.
I'm currently learning python and using a little bit of turtle. In labs we haven't used it, but our homework does. It's nice to know it exists, and it's a good way to get certain commands and syntax in. Overall I don't feel it was completely necessary though.
When I was young, I found it very interesting. It was one of the first programming languages that I've learned, even though I've used it for about two days. It started my interest in programming.
Nowadays, I think the syntax is a bit unclear because most statements are abbreviations. Nowadays, computers are far more powerful thus the language could profit from clearer statement. Another factor is the native language of the person who is learning to use it. If English is not your native language then Logo becomes a bit more complex to understand. So if you're teaching Logo to children, make sure they're familiar with English terms first. (Quite easy if you're a native English-speaking person. More complex if you're originally Dutch, German, French, Portuguese. Even more complex if you're Russian or Chinese because you'd have to adjust to a different character set too.)
I have just begun teaching my 7-year-old how to program using Logo, and he is having a load of fun with it. The commands are easy enough for his limited reading ability and he just loves drawing cool pictures using the turtle graphics. I was amazed at how well he retained what he had learned using it, so I feel it was a good choice for his age.
For older kids (or adults) other languages might have more advantages as a beginner language though
Personal experience, YMMV...
My first encounter with a computer was turtle graphics in my early teens. I loved and was immediately hooked. (Perhaps because for the first time someone [something] did exactly what I told it to do?)
The visual and instant feedback made me want to do more and more. I really wanted to figure out how to replicate the pictures I saw in the book I was using. Without me even classifying it as "work", it slowly built up my early programming skills and my confidence I could learn on my own.
I credit it with sending me in the path I'm in today, a happy software developer who can't believe I get paid to do this work (I know, I know - all corporate snickering aside, I like my work).
As I said, YMMV.