So, I’ve had this idea for a while and I thought I would attempt to see it through. I want to create a 2D interactive children’s book that could be used on a tablet. I really want to emphasize being able to build my own characters…. My only problem is I have no idea where to start; the internet is amazing, but there is almost too much info to attempt to sort through. What software (preferably free), books, or skills would you guys recommend? I’m not trying to build a complex virtual world just sort of simple fixed cartoonish characters and backgrounds.

Even though I recently made a post like "omg I don't know how to do anything" I feel that I can answer this and give you some direction. There's not any one particular thing to recommend, since there are many paths to the destination you seek. I think if you're wanting to make an app like this, you will need to learn how to make apps and games on your own with programs... don't try to get a program that makes games for you or whatever (especially since you're wanting to build a mobile app, and especially since you seem to have very specific ideas about how you want certain aspects to work). Even though it seems like a lot of work, learning programming is easy and fun and you can do it in your spare time, and getting to the point where you can make a mobile app will not take nearly as long as you think. I look through mobile apps on my phone all the time and you can definitely tell all kinds of random people are just making these in their spare time for fun... and you can do the same. Now, making a really nice-looking one will take more effort, but the concept is still the same. Polishing your project is what makes the difference. And that doesn't require really any more programming skill or anything, just ideas and designs.

First, you will want to learn how to program and learn the basic concepts of programming. I don't know how much you know about programming, so I'm going to assume nothing at all. But if you already have some programming ability, just read through this and skip all the parts you have done hahaha.

When you learn about programming, you won't just learn how to make a program, but WHY you make programs and what all they can be used for. As you learn this, you will naturally start to figure out solutions to how you can make your mobile app you are interested in.

Of cousre, you will not start with mobile app... you will probably start learning programming by making computer console applications. By doing this, you will learn concepts of programming and building a program and problem-solving using programming. Your app that you want to create is your problem, and a program will be the solution. You will learn how to ask yourself what all you need to get the job of creating the app done, and then create a program to solve this.

So, where do you start learning about programming? Don't worry about the platform you eventually want your app to be on. Like, let's say you were thinking about making a Windows 8 app to run on Windows 8 tablets... well, that doesn't matter at all. You need to learn concepts of programming first.

There is a lot of controversy over where you should and should not start. I started with BASIC in the 80s, but for more "modern" programming I started with Java. I took college courses which was really helpful, but this is not available to a lot of people. So, instead, you should pick a language you want to start with and then find tutorials for it online. A lot of people seem to recommend C or Java, along with some others, most commonly. I probably would have preferred C to Java as my first language but honestly it doesn't matter. It is very easy to learn other programming language. The hardest part is learning the programming concepts. You can easily jump around between languages once you have that down.

So, choose your language... don't really fret over this too much... like I said, you can always jump languages easily later. I have jumped around between Java, C, and C++ a lot and even though they're all quite different from one another, it is very easy to jump around like this.

Now, go find tutorials and stuff online for this. This can be very difficult. This board helps a lot though. Use the search function. Let's say you chose C. Search for "C tutorial" and "C beginner" and stuff like that and see what other people have said is good in other topics. Topics on this forum that are about a particular language will often have a little tag thing that shows the topic is about that language, too! Go to those sites/tutorials that people are saying are the best and see which one fits with your learning style well. You will also find book recs while doing this, and if you can get your hands on these books, that is great. Public library is a great place. But my library, for example, does not allow check-out of reference books, and all programming books are considered reference books... But it's good to check anyway. I think this is an odd thing and most libraries will let you use the books you want.

The tutorial usually well help you get set up with everything you need. You will most likely use an IDE and the tutorials will explain this to you and usually even recommend one. This is where you'll be typing your code and doing all your compiling and linking and testing and everything. The tutorials will explain all this to you, too, most likely. That is the only software you will really need at this point.

Now that you have your IDE and your tutorials, start following them. Try to learn a lot about programming and problem-solving techniques and just keep doing this until you've mastered the basics of the language you are learning. Make all kinds of programs all the time and try to solve various problems with them. Like, make calculators and whatever. A lot of coding is just practice.

After you have mastered your console applications and basic skills, move on to visual libraries and stuff... you will have to research this on your own like you did with choosing your first language, but pretty much do the same thing, just now for libraries and visual applications. This is kinda where I am in my advancement so I cannot offer a ton of help here.

Once you master the fundamentals and stuff and are moving on to bigger projects, you may feel like you are ready to try making some basic version of your children's book app that you have dreamed of. Now is when you need to decide on what tools you will use to build this. You already seem to have a pretty solid image in your head, so you're done with the first step. Normally this is where you would say "What kind of platform would be best for this?" and stuff... but you already know, it's going to be a tablet app, and it's going to be very visual and interactive, so you will probably be using tools built around gaming.

Your next step is to find these tools (libraries and stuff). Go to the website for the platform you are building on and they will usually have a developers' section that will link you straight to everything you need, and how you can learn about it! You can usually find this more easily by binging or googling it. Like before I said maybe you wanted to make a Win8 app for tablets. Well, Microsoft has a developers' section of their website that will set you up for everything, pretty clearly, and search engine is a great way to find that page easily. It will usually say "If you want to make a Windows 8 app, click all this and download all this!" and by the time you are doing this, you will know enough about programming that this should all make sense to you and you will know exactly what you are looking for.

Now just get used to your new tools and learn the ins-and-outs of them with the documentation provided and tutorials and stuff again. You should have all the skills you need at this point and all the tools, so you just have to do the planning for your app and then start coding, and eventually you will have a finished project. While creating it, you will hopefully code it in such a way that you will now have built an engine that you can use to build more apps like this in the future, too (since it seems with this kind of app, you'd want to make more than one).

I know all of this sounds like a lot, but really it is pretty simple. Once you get over a few hurdles and get in the mindset, programming is very easy to learn, and the idea you have would be pretty easy to make. You also may be able to pitch the idea to others to collaborate on. Your art will probably need to be drawn by hand specifically for this project, etc. And you will need someone to write stories (I'm assuming you want to do this part yourself) and you will probably want music and sound effects and stuff, too, so you will need to find someone who can make those things. Often if you create the actual program, it's easier to get support and find people willing to offer their help for these things. People see a really cool game idea online that has ugly art... well sometimes artist like the game so much they offer to create new art for it for free! You don't even have to search! Well, that is kinda rare. But you see what I am saying. Just saying "I have this idea..." usually people will not want to make art or music or whatever for you.

I know this is long, but I hope it helped. I've gone through a similar process as you, and I'm still in-progress... But I started with "I have no idea where to start or even how to figure out how to start" and my end goal is to make a computer board game. Even though I haven't reached the end goal, I only very recently found the clearest path. Usually when I would ask, I would only get the "how to start learning your first language" response and did not have any direction. Even after that, people would just say "keep practicing" but I didn't really know how making the same calculator console app 1,000 times was getting me any closer. This is because I didn't realize how to move on to creating applications with graphics and using graphics libraries. Nobody understood this was my problem and so I couldn't find the help I needed. But after learning that I needed to learn about different libraries, all the rest of the path opened up. It was just that one link that was missing, hahaha. Learning things on your own can be very difficult, but hopefully this has helped.

Free Software - Look up BlitzBasic.com, You can download free sample programming software, sample code, and documentation. For a limited time they had their 2D development software full version free. From there you can find links to App development software.
An interactive Children's Book sounds interesting. Develop something where the parent or grand-parent can record a conversation with the child.
If you have children start recording thier conversations to develop a script that can be pre-programmed in, as well as added to later.

For Example : Where do horses live ? Response : On a Farm, with a little story.
Pictures can be scanned in, and saved as bitmaps, and a seperate file containing a list of names of those images can be maintained out side the program.

Game Maker lets you export to mobile devices (I think it's a feature of one of the payed versions). Game Maker handles a lot of the lower-level coding for you, allowing you to actualize your design much faster.

A lot of people prototype games in Game Maker, so I'm pretty sure it's pretty flexible with what it can do.

Your post omits one very important question: what's your current experience level with programming? Have you done any? I know your title says "beginner" but that's often a self-ascribed title, depending on the person's comfort level with their own skills.

Also, when you say "create my own characters" is that in terms of art assets? Do you mention that because you want to avoid any programs that force you to use pre-created artwork? (Hint: it's almost never the case that a middleware package doesn't allow you to import your own art).