How to make an action game with 3D graphics like Minecraft? - game-engine

i want to make an action game where the player is in a maze and while escaping he has to kill other player / monsters. The game will be available on Windows.
I don't know where to start.
I looked at C++ and DirectX9 but it's a little bit hard for me, XNA for C# is not supported anymore by Microsoft, GameMaker 8 Pro doesn't seems so complete.
Maybe a book to read will be good, hope in your answers.

Just to give you a kickstart, i'd recommend you to take a look at visual C# and openTK, maybe JitterPhysics
http://www.opentk.com/
http://jitter-physics.com/wordpress/
depending on your programming knowledge this could be all you need to start.
Also its allways a good idea to look at how other engines solve problems, for instance download the free version of unity and look at a view abstractions they make.

Related

Use Webcam to Track User's Finger Location

I have a project just starting up that requires the kind of expertise I have none of (yet!). Basically, I want to be able to use the user's webcam to track the position of their index finger, and make a particular graphic follow their finger around, including scaling and rotating (side to side of course, not up and down).
As I said, this requires the kind of expertise I have very little of - my experience consists mostly of PHP and some Javascript. Obviously I'm not expecting anyone to solve this for me, but if anyone was able to direct me to a library or piece of software that could get me started, I'd appreciate it.
Cross compatibility is of course always preferred but not always possible.
Thanks a lot!
I suggest you to start reading about OpenCV
OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real-time computer vision, developed by Intel Russia research center in Nizhny Novgorod, and now supported by Willow Garage and Itseez.1 It is free for use under the open-source BSD license. The library is cross-platform. It focuses mainly on real-time image processing.
But first, as PHP and JavaScript are mainly used for web development, you should start reading about a programming language which is supported by OpenCV like C, C++, Java, Python or even C# (using EmguCV) etc.
Also, here are some nice tutorials to get you started with hand gestures recognition using OpenCV. Link
Good luck!

Ironpython questions

I have a few questions that I hope clarity and facts can be fed all of us about this. First, the last release of ironpython had the feature of running on the mobile platform highlighting that on mono/android it runs best and not so much on the other platforms which are IOS and Windows phone. So does this mean one doesn't have to use the SL4A? Can i argue that monodroid hooks into the core of what android is capable of and so might give a more robust access/implementation/rendition of apps on android?
Next, I just want to be sure of this: As with python you can create full fledged desktop applications with ironpython right? Cos everywhere (almost) I see ironpython they refer to it as a scripting tool and how you can script aspects of excel etc which has prompted me ask such a question. some say that the speed of applications written using ironpython is not that great and I was arguing asking for why that opinion is held by those who were speaking and no one could say anything worthwhile.
Lastly, with the movement at novell and xamarin, I have not understood where mono stands in their release schemes. I have a mac and I installed a recent version of mono and when I typed ipy I saw something like mono 1.1.0 or something like that. Does anyone have a clue of what is going on with it.
I fell in love with python from learning ironpython and I think the ironpython concept is just sheer brilliance its a pity microsoft esteemed F# other it.
First off, for future reference, multiple questions should really be, well, multiple questions. :)
On IronPython for Android: it works slightly better than on other platforms (where it doesn't work at all right now) but it's still very, very early code. There are some limitations with what you'll be able to do (mainly, you cannot inherit from Java classes from dynamic code). It's very experimental.
On desktop apps: You can absolutely write full apps in IronPython. There are some samples that show how it can be done. In particular, PyWpfSample and PyGtkSample. Startup times are not great, but the actual runtime should be just fine for most GUI apps.

Can VB.NET be used as a game engine?

I know VB.NET, and I've been planning on creating a simple 2d game engine. I got no problems with creating such engine and running the actual game. However, I've been told that VB.NET might not be the best choice for "working too much with graphics". I'd like to know if that's true. Can VB.NET truly not manage efficiently loads of graphics simultaneously on the screen? If no, what kind of software am I supposed to use for creating this engine?
I have found that people generally view VB.NET as a subpar language, and mostly associate it with Visual Basic 6.0 (or earlier).
In the .NET world, VB.NET is a first class citizen that simply has a verbose syntax. It's particularly because of the verbosity that I would probably choose C#, if not going with C++.
Still, you can use VB.NET to work with whatever drawing libraries that you want, and you can even use it with XNA and Managed DirectX. It can even be linked against unmanaged libraries as long as you are willing to do to the required interop.
As for managing the graphics on the screen efficiently, it really depends on how well you do it, and how much you want done. If someone can do it well in C#, then you can do it well in VB.NET with the exception of unsafe code. It's too general to say either way given the vague "simple 2D game engine" description, but chances are it is more than possible.
These days, managed code is quickly catching up to unmanaged code, and while it's not quite perfect, it is really impressively good.
It's not the language you need to consider as much as the Framework.
Suggest you look at XNA:
Your First Game - XNA Game Studio in 2D (step-by-step tutorial)
Also, DirectX:
DirectX Developer Center
Learn DirectX
VB.NET Already supports XNA including on Windows Phone 7. So if you are looking to develop games and if you language of choice is VB + XNA you are all set to go.
Take a look at the official announcement: http://blogs.msdn.com/b/lisa/archive/2011/03/28/xna-is-coming-to-visual-basic.aspx
Visual Basic's primary use is for Win 32 Apps with a standard GUI. If you are planning on building a game I definitely recommend C++. It has faster execution speed and better libraries for game development. Visual Basic will not deliver as good of performance of C++ would give you. IMO It would be better for you and the user.
I don't know much of the graphics issues in vb but as far as i have heard you can't create games for xbox using vb.net, it only supports PC.
XNA game studio can be used for game development. Although it is supposed for c#, you can find how to use it with vb in here...
http://www.alanphipps.com/VisualBasicdotNET-XNA.html
If you are still relatively new to programming then C++ is more than likely to make you quit early.
Don't aim at C++ until you have at learned C#.
C++ is a great and diverse language but definitely not friendly grounds for anyone who hasn't been programming for a long time. This is ESPECIALLY considering if your first language is one such a VB.
To Answer the Topic?
Yes vb.net can make a game, arcade,FPS,RPG,MMO or what ever you what within your ability to code. if you wanna learn some find playing with open source engines to get the feel helps. so try looking up some and give that a go.
my comment is at the person above's comment,
Visual Basic can do alot, and we find out new stuff all the time.
i seen vb6 game engines work well, graphical and feature wise.
wile visual basic is more down to earth for writing, C++ isnt ik its not, ive tried it.
but VB i can pick up easyr.
my experience ?? 2007 to present day, ive work with vb6 mmo game engine source codes,
Mirage,Elysium,Eclipse,EA,EFF
ive also tried using irrlect engine years back.
for a beginner should learn VB.net or C# .
C++ is to complex.

Which IDE to use for ATMega32 micro controller coding

I am involved in a project which requires designing a mini rover (mars rover types). I am using ATMega32 micro controller. I have other hardware like DC motors, IR sensors etc. My query is that is there any IDE that I can use to code the micro controller? It must be user friendly since I am new to the concept of micro controller coding, and also it must have simulators. I did look it up on the net, but there are so many terms associated with it, that it confused me in the end. I think a simple IDE where I can write code, test it using simulator would be enough. Any suggestions?
I would try the Arduino's IDE: http://www.arduino.cc/en/Main/Software
It supports a lot of things such as building and debugging and interfacing with avrdude all from inside the IDE, so definitely a good one for embedded work, though I've never used it myself.
Also, while you are there, you may want to give the Wiring libraries a try. They are really nice for new people and are specifically for the ATMega32(I think).
There's no silver bullet.
Start here http://www.atmel.com/dyn/products/tools_v2.asp?family_id=607
Look for some videos on Youtube to learn.
Arduino is also a very good choice like Earlz wrote.
The best IDE to use would be ATMEL STUDIO 6. You can find it here http://www.atmel.com/microsite/atmel_studio6/. Also you would need a ICSP programmer to burn the .hex file into the Atmega32. Note: The ICSP programmer can also be use to program other atmega chips

Qt4.5 vs Cocoa for native Mac UI

I've been developing for Windows and *nix platforms for quite some time, and am looking to move into Mac development. I am tossing up between using ObjC/Cocoa and C++/Qt4.5.
The C++/moc semantics make more sense to me, and improving knowledge in Qt seems like a sensible thing to do given that you end up with a skill set that covers more platforms.
Am I likely to handicap my applications by skipping Cocoa?
The sample Qt applications look pretty Mac-native to me, but they are quite simple so potentially don't tell the whole story. Are there other pros to the Xcode way that Qt doesn't have, such as packaging, deployment, etc.?
Here's an easy way to answer it:
If you were developing a Windows app with .NET or MFC, would you handicap your applications by using Qt? If the answer to that is yes, then the situation is likely to be the same on the Mac.
A few negatives I can think of off the top of my head:
Licensing
Qt apps, while good, are not completely a native UI experience and there's things a native UI designer can do in Cocoa which boggle the mind. While I can't be sure that all the same functionality isn't available in Qt, I doubt it.
Qt is always a little behind. If Microsoft or Apple come out with a great new technology, you have to wait for the Qt developers to update Qt.
However, with all that said, only you can determine the business value of using Qt. If you think cross-platform development is going to be a major part of your development, then Qt might be worth it, despite the issues mentioned.
Ask yourself: how many of the best Mac applications that you know of use Qt instead of native Cocoa?
For our robotic systems, we originally wrote our control software in C++ using the cross-platform wxWidgets library (we avoided Qt due to some licensing concerns), because we felt that we had to target Windows, Linux, and Mac platforms for our end users. This is what we shipped for over a year until I started tinkering with Cocoa.
Right away, the thing that most impressed me was how quickly you could develop using Cocoa. Eventually, we decided to drop support for Linux and Windows and rewrite our entire control applications in Cocoa. What had taken us years to put together in C++ required only three months to completely reimplement in Cocoa.
Aside from the "lowest common denominator" interface issues that others have pointed out, the rapid development allowed by Cocoa has become a competitive advantage for our company. Our software has advanced far more quickly since our conversion to Cocoa, and it has allowed us as a new company with one developer to pull even with 10-year-old competitors that have 20-man development teams. This appears to be a common story in the Mac development space, where you see a lot of small teams who are able to create products that compete with those of much larger companies.
As a final note, using Cocoa gives you the ability to stay on top of the new APIs Apple is continually rolling out. We're now working on a new control interface that will make heavy use of Core Animation, something that would be painful to deal with using Qt.
I'm currently developing both with QT (actually PyQT, but it makes no difference to your question) and native Cocoa app. For me it's no brainer, I'd chose Cocoa. It's really worth time to explore Cocoa in general, there are many great concepts within the Cocoa framework, and Objective-C 2.0 as well.
I'd use Qt if you want this to be a crossplatform application.
You can have a look at the QMacCocoaViewContainer class. It acts as some kind of wrapper for generic Cocoa views, so you can also have Cocoa elements which are not officially supported by Qt.
Of course this means learning a little about Cocoa and Objective C and how a Cocoa UI would need to look like. But if you already know Qt well and if it’s not like your application is all and only about the GUI this could be a good way to go.
And don’t forget about the QMacStyle::WidgetSizePolicy or you won’t understand why your tables come out so huge.
Obviously, the best option is to use a cross platform suite that supports native widgets.
With QT4 you can build your base user interface. Then just add native support for your specific target platform.
Sure, Cocoa has a lot of fancy stuff (and you can still use them trough QT4), but let me be clear. I see a lot of fancy Apps on the AppStore, pretty ones, but most of then are just crap, expensive.. what ever. I really missed my Kate text editor, my okular viewer, my krita drawing software... those are just better than the commercial and expensive alternatives and are free. so i just tweak the source code a little bit too have a REAL native and great experience.
What if i have to use a linux app on my main computer with is a mac os x? or windows? or whatever? only?
For example, why on earth i have to buy a expensive ,fancy but far less featured image editor software for my mac like pixelmator when i can use a full featured real image manipulation software like Gimp? YES Gimp is gtk2 based which is a pain on any platform, specially on Mac because is really ugly. Gimp should be ported to QT4. Inkscape should be ported to QT4 too, and it would feel so great.
Is so simple to do.. gosh!
http://doc.qt.nokia.com/4.7-snapshot/demos-macmainwindow.html
Even you can add support for the the new native lion fullscreen feature, unified title and toolbar menus, etc
I , as a user, i really care about efficient, featured, good and cross platform apps, i don't really care about developer's convenience or laziness .
I do a lot of cross-platform development (Mac, Windows, Linux), and for some projects use Qt. It is a fine framework, and provides a rich class library. If you need to deploy on multiple platforms, cannot afford to spend the time/effort on platform-specific front-ends, or the "generic" support for each platform is sufficiently good, then use Qt.
However, Qt inevitably suffers in some ways from the lowest common denominator syndrome, and sometimes does not feel quite native enough. There are also certain features that are either difficult to support, or are simply not provided in the Qt libraries. So if you can afford the time and effort, or your app really demands the attention to detail and fit & finish, then developing separate front-ends may be worth it.
In either case, you ought to be writing your back-end (aka domain) code in a platform-neutral and front-end neutral manner. This way, the front-end is easily replaced, or modified between platforms.
You could always start with a Qt front-end and go for a quick time to market, then develop a native front-end down the line.
In practice, I've noticed that a Qt app on Windows looks most "native", while on Mac there are certain subtle telltale signs that make it look/feel not quite right. And Mac users tend to have much higher expectations when it comes to UI/UX!
Since posting this, i've been learning the Cocoa / Objective-C way, and have been quite impressed. Despite what I initially thought was quite a quirky syntax, Objc appears to be a very effective language for implementing UI code, and the XCode sugar - things like Core Data and bindings - make short work of all of the boring bits.
I spent a while with the QT examples and documentation before digging into cocoa, and tend to agree with what has been said above w.r.t being slightly behind the curve and less 'aqua-ish' - albeit from a fairly trivial inspection. If I absolutely had to be build a cross-platform app i'd probably use QT rather than trying to separate out the UI code, as it seems like it would provide close-enough visuals, but for mac only purposes, Cocoa seems like a definite win.
Thanks all for your responses, they've all been very helpful!
DO NOT use Qt for a Mac app. You will get no hardware acceleration for 2D rendering, and you will not be able to deliver ADA compliance.
Depending on what kind of apps you want to write, another contender is REALbasic now called Xojo.
The move from C++ is pretty easy (I have 15 years C++ experience) and the framework and IDE extremely productive. You have the added bonus of being able to deploy to Linux and Windows with trivial effort. Their framework compiles to native code and uses native widgets so you don't have an emulated look and feel.
The big reason for learning Cocoa and coding in Objective-C is if you want to hone your iPhone skills or are chasing a really fancy user experience. If you wanted to rival the cutting edge of WPF development then I'd recommend Cocoa.