From the web to games [closed]
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
开发者_如何学Go Improve this questionI'm a basic web developer. I know PHP, a little bit of Python and Ruby. JavaScript as well [some stuff]. I'm not a hardcore developer. I know what it takes do develop most of web cases.
Now, I have this desire to go deeper and start developing games. I know it sounds a huge leap, but that is why I'm asking here. I already have some games ideas. It would be simple 2d plataform games, and I would like to know what is the best way to start.
I don't want to start with Flash. I'm looking for working with other stuff. I already started to look around for the Unity 3D framework and UDK, but I just don't know how to get started.
So, any hints, tips or sugestions to make?
Python's Pygame is certainly a good choice as others have said. If you want to get in to deep video game programming though.. move on to something like C++ or another lower level language.. from experience, most higher level languages tend to put artificial hurdles up in regards to decent video games. Though for a simple 2d game you cant go wrong with python.
another decent environment to use is Ogre3d, but you would need C++ or the PyOgre bindings (which are not up to date, but I hear they do work okay).
Going from web to game design really is a decent step, as long as you have a good sense of design. the physics and game logic can be learned, but ive yet to see anyone who could properly learn how to write a decent GUI.. as is seen in most cases these days, the final GUI lay out tends to be a process of elimination or beta with trial and error.
Only suggestion i have left is keep your game logic as far away as possible from your graphics. Be Modular.
-edit- oh and a note.. stay away from Tkinter in python for anything more than a simple tool.. I have found it most frustrating to use. there is wxPython, GTK, pygame, and PyQT.. and all of them (in my opinion) are far better graphic frameworks.
You should figure out why you want to learn. If you're interested in making money, developing small standalone games is probably not a good idea. If you're just interested in learning fundamentals, there are plenty of good libraries out there.
Some examples:
- PyGame - http://www.pygame.org/news.html
- SDK - http://www.libsdl.org/
- Allegro - http://alleg.sourceforge.net/
Reference
http://code.reddit.com/wiki/help/faqs/programming#WhatprogramminglanguageshouldIuseformynewgame
A good starting point might be trying a turn-based game or two, if PHP is currently your main strength. Those work well over HTTP, bouncing requests and responses back & forth, while an action platformer is a very different beast - you might make an HTTP request to log high score or level-clear info, but actual gameplay would have to be run client-side to maintain any sense of action - either Javascript & canvas or Flash, if it's web-based.
There are some (mostly dead but) open source turn-based PHP games worth a look, to get a feel for some general concepts - the wittily-named phpMud and phpMMORPG come to mind, and a few board & card games.
It's just a baby step towards what you want to do and might not sound as fun, but game programming of any kind involves a lot of learning and hard work. Designing maps & system mechanics, animation & visual effects, physics, hitboxes, tons of math everywhere, and the hardest part, getting it all to actually run smoothly - it's a struggle to get something working, and an all-out war to get it "right."
That said, if you just want to get up to your elbows in a platformer to see what it's like and your Javascript is fairly solid, this set of articles is a great starting point. Brent Silby made a few neat shmups & platformers that pre-date canvas too, also worth a look.
Looking at your tags, web games are mostly client side, and since you aren't going to use flash, i would say JavaScript would work for 2D. With all the libraries and plug-ins out there, JavaScript can actually handle it.
Taking a look at OpenGL may not be a terrible idea. You can use the library in many languages, and is supported with in HTML5 (WebGL). There are several excellent tutorials out there.
If you want to learn more Python while doing so, you may want to take PyGame or an equivalent program. PHP, Ruby and JavaScript aren't going to help you in the video game section, though. They're all related to the internet.
If you want to start of real easy, try out Genesis3D. you can make awesome 3D FPS games, and its quite easy to get the hang of too. Took me only 5 days :D
Unity made me sick to my stomach, and so did Blender3D's game engine, so I personally say not to use those. It intimidated me.
精彩评论