Crash Course in Game Programming? 142
Lullabye_Muse asks: "I want to write a game program for an independent research class I am taking at my High School. I have until June to deliver a final product or a good demo. I'm somewhat new to programming and will be doing work at home, and at school (Linux and Windows, so cross platform OSS is best). What is the best language to learn to code games in, and do you have suggestions for any useful sites, on game programming?"
New To Games? (Score:5, Insightful)
If you are dead set on writing an entire game yourself, best of luck to you. Even for an experienced programmer, throwing together a game (or even a demo) in three - four months is a feat.
Re:New To Games? (Score:2, Informative)
Re:New To Games? (Score:2)
They're also on Sourceforge
It's an open-source development framework for .Net/Mono. Written in C#, uses the open-source Axiom engine, and it's LGPL (can be used for commercial games without open-sourcing everything). 95% of games are written in XML with the built-in editor.
Keep in mind the engine is still in development, and isn't quite ready for prime-time yet, but as a contributor t
Re:New To Games? (Score:2, Informative)
Re:New To Games? (Score:2)
Re:New To Games? (Score:4, Insightful)
The author of this "Ask Slashdot" did not mention "First Person Shooter" or even 3D at all. And there are games which are very simple but still fun. Games like Pong, Mine Sweeper, Snake and many more can each be done in a couple of hours. There are even programming languages made for simple game development although I would prefer a "real" language like Java or Python. I once wrote a small game to learn Tcl/Tk and that was fun and I did it in less then a day.
Re:New To Games? (Score:3, Informative)
For my degree project I took freecraft and made it 3D and make it client-server. Looked nice.
But I spent most of my time fighting the code. Not because it was particulary bad or anything, but because I had to convert it all over to C++ compatible from C (there are incompatibilities. I hit every one I'm sure), fight the Makefile's (at the time they had their own custom make system), fight event-loops (freecraft and the graphical engine), and so on.
It turned out looking pretty n
Use a pre-existing game engine (Score:2)
Re:Use a pre-existing game engine (Score:2)
The poster doesnt say hes doing a comp sci course so the other thing I would say is spend some time learning software development principles such as proper design, commenting, documentation, versioning and such things. These things are helpful even when you are the only developer.
Talk to 'The Man' (Score:1)
The best language... (Score:1, Insightful)
Re:The best language... (Score:1)
in, like, 7th grade i wrote a fantastic game based on "galaga" in quick basic 7.1 in a matter of weeks! basic is great for crappy little games!
with visual studio .net, you can prolly pretty easily toss together a very visually pleasing directx-based game in 3-4 months. heck, you could do it in a week or so if you knew what you were doin. maybe two or three if you only have a little background in programming.
SDL Graphics library (Score:5, Informative)
I'd suggest C++ for programming languages, but that's probably just because it's what I've used for years.
--trb
Re:SDL Graphics library (Score:3, Interesting)
Then again if you're programming for a deadline project, maybe a simpler project coded in a higher up language, If you're a C++ programmer and using Windows, think C#, all the syntax none of the headaches though a bit slower since you're compiling to IL. If you're in a *nix envi
Re:SDL Graphics library (Score:2)
Easy (Score:3, Informative)
The design pattern for most simple java games is model view controller. You create an object oriented game model with map, player, item classes etc. Then you create a view, or the gui that looks at this game model and translates the data into graphics or text on the screen. Then the controller portion interprets player input and modifies the game model accordingly.
This is a very good pattern to follow for games, especially for research projects. This is because the game itself usually isn't the research, but some underlying CS principle or algorithm. And this makes very simple cross platform games to which you can attach or embed your real research very easily.
You can also follow this same approach with python, or ruby or even C++. Python might even be a better choice since it might beat java in performance and is used quite often in the game industry.
Re:Easy (Score:2)
Get Python + Pygame (Score:5, Informative)
The downside with Python is that it can be slow (a fact that can be remedied to some degree, but not entirely, by also installing Psyco [sourceforge.net]). Fortunately, the slowness doesn't matter (unless your aim is to compete with the next id Software engine). I've written a simple engine for a 2D platformer in Python myself, and even with a game logic and collision detection, 90% of the processor time is spent blitting the graphics to the screen. Since Pygame (written in C) does the rendering, using C++ for your game code won't provide any big advantage.
Good luck!
Re:Get Python + Pygame (Score:3, Informative)
Get Python + PyOgre (Score:2, Informative)
Linux bindings are not ready yet, but they shouldn't be too far off into the future. You should check the the API Reference and Manual for most starting information, and use the o
vote for python + pygame (Score:2, Informative)
If you want to do something simple and don't know how to program at all, this is definitely the way to go.
Python is not only easy to learn, it's a great starting language. (enforces proper formatting, doesn't use crazy things like ; line endings ;)
Python.org Beginner's Guide [python.org]
Dive Into Python [diveintopython.org] (free on-line book, well written IMO)
and of course the http://pygame.org/ [pygame.org] which the parent poster already said.
I would NOT suggest using PyOpenGL if you're new to programming, it's an unnecessary layer of compl
Re:Get Python + Pygame (Score:2)
I didn't find Psyco very helpful, mostly because it didn't play nicely with the profile module.
Anyway, overall, I'd rate Python+pygame very highly. It's really easy to us
Re:Get Python + Pygame (Score:2)
If you want scrolling graphics with a higher resolution though, OpenGL is pretty much the only option.
Re:Get Python + Pygame (Score:2)
I'm no expert in game development though, I haven't tried any other libraries, so I might just not be looking for the right things. If you could look at the pygame documentation [pygame.org] and tell me which functions do what you described, I (and many people I know) would be very appreciative.
Re:Get Python + Pygame (Score:2, Informative)
Of course, you still have to 'update' the bits that have changed, but for the rest it should be faster than doing a full update.
while 1:
for event in pygame.event.get():
if event.type == QUIT or \
(event.type == KEYDOWN and event.key == K_ESCAPE):
return
keystate = pygame.key.get_pressed()
direction = keystate[K_RIGHT] - keystat
Re:Get Python + Pygame (Score:2)
It's going to need to be simple.... (Score:5, Insightful)
Back in my day (Score:3, Funny)
Also, back in my day, we had to burn our feet as fuel, we were so poor. And we had no monitors. And we only had one keyed morse-code based keyboards. Bah!
Re:Back in my day (Score:1)
You were lucky! We had to program in 6502 machine code, using a non-relocatable assembler, in under 32K, and save onto tape!
(Although, this was peanuts compared to the trials faced by Jeremy Smith and Peter Irvin, programmers of the best ever BBC game, Exile [clara.net]...)
(I don't want to know about punchcards....)
Re:Back in my day (Score:2)
You had a tape drive?! Lucky bastard!
Re:Back in my day (Score:2)
There's one of those connected to my Macintosh.
Re:Back in my day (Score:2)
Try blender (Score:5, Informative)
http://www.blender3d.org/cms/Game_Blender.365.0.h
It's a 3d design package, that gives you a game engine, so you could have the graphics part solved, and can worry just about the actual game. I believe you can program for it with python.
It works on MSWindows, GNU/Linux, and other platforms, and it can generate
Python + Pygame (Score:2)
Dear Slashdot (Score:1, Funny)
2D or 3D? (Score:2)
consider using python or perl... (Score:1)
It may not seem as sexy as creating an awesome 3d something or other - but you'll have learned a lot if you can make a game that allows for some of the following:
1. users can create a character, which they can save and load
2. the game keeps an inventory of objects
3. users can in
Project Management is important too (Score:1)
My Suggestion as a Game Programmer in HS (Score:5, Interesting)
But the real question is, how much experience do you have currently? I started programming in HS by doing games on those little calculators (TI-81 to 85 completely self-taught) and enjoyed the experience so much I decided to do CS in college (graduated last year). If I were in your shoes, you may want to think small. Many of the early video games were text-based, many made by one person. Nowadays due to complication, you need teams. So it may not be a bad idea to write something simple and textbased in whatever language. Text-based doesn't need to mean uncomplicated or compromised gameplay; chess, othello, hearts, and dungeon-crawlers were all very popular and I still know people who prefer these over newer games.
Re:My Suggestion as a Game Programmer in HS (Score:2)
I would suggest the original poster hang out game development websites (use google, search for gamedev, others) and try to learn all he can there first. Subscribe to Game Developer's Magazine.
Re:My Suggestion as a Game Programmer in HS (Score:1)
He is not going to be able to code a FPS as a high school student with beginner or intermediate level programming skills. The games suggested by the grandparent probably would not be sufficient by themselves for an independant study, but a package of 6 - 10 of these small games written in a very clean, creative, or 3D interface would probably be received well. Especially if the package was written very modular where plugins and addition games were easily integra
Andre Lamothe (Score:2, Interesting)
Buy a couple of his books. You can find them dirt cheap at discount book stores or eBay.
If you want to go cross-platform, pick up his Java book. You could be writing primitive games in a week.
Game sites (Score:5, Informative)
-m
Re:Game sites (Score:5, Informative)
Don't forget http://www.gamasutra.com/ [gamasutra.com] and the PCGPE, even if it's older than dirt.
Re:Game sites (Score:1)
If however you wanted to abandon the cross-platform requirement, use a 3D-capable presentations program like Liquid Media [skunklabs.cc], which also handles variables and J# scripting, with built-in collision detect
Re:Game sites (Score:2)
SDL, C and Pygame (Score:5, Informative)
For serious game programming, you need to learn C or C++. I would guess that 99% of all commercial games for the PC are written in mostly C or C++. This doesn't mean you need to write all of your code in a low level language. Even the original Quake used an interpreted language (QuakeC) for the game logic. But almost no language other than C or C++ will provide the speed or memory usage necessary for most commercial games.
If you'd rather concentrate on writing your game rather than learning C, try Python [python.org] with Pygame [pygame.org]. Pygame is a Python binding to SDL. It is fairly fast since all the low level graphics stuff is done using SDL. Certain things will be slower in Python (collision detection, physics, etc.) but most code isn't speed critical anyway. Some things will be harder in Python since it's easier to manipulate bytes and bits in C.
Also check out PyOpenGL [sourceforge.net] if you want to learn OpenGL. It can be used in conjunction with Pygame. I used this when I was learning OpenGL and it's quite nice. The API is almost exactly like the C based API, but it is easier to use. At least one of the popular OpenGL tutorials has been ported to PyOpenGL.
Here's what I used for some of my first games... (Score:2)
Then again, I'm old now, so maybe it's not the best example.
Think it through before you start working on it (Score:1)
Flash (Score:1, Interesting)
It's not the most powerful tool for making games, but its definitely one of the most rapid.
Re:Flash (Score:5, Interesting)
Flash is a great medium for 2D games. the graphics are drag and drop, and the actionscripting is a perfect introduction to handling the logic associated with managing a game.
but, this being slashdot, anything mentioning Flash in a positive light will probably get modded downward and derided by the community.
Re:Flash (Score:2)
I don't think Flash is the right place to start if he really wants to learn how to program games. If he wants to design a game, then Flash is an excellent place to start.
To be honest, the first thing you need to learn when writing a game is how to program first. I created a simple Asteriods game ages ago (in Java 1.0, in about a month :P), but it was before I und
Re:Flash (Score:2, Interesting)
Flash is easy if you have no experience, and there are lots of popular flash games. One of my favourite is curveball (just google it), not to mention yeti games.
I made my first flash game some time ago, and it is still a challenge to play. Took me only a couple of weeks, based mostly on the excelent tutorials at kirupa (google it).
And in my limited experience, actionscript is a great gateway language. At first, I found it really easy to do very simple stuff using the Flash GUI.
Soon
Unreal Engine (Score:1)
Re:Unreal Engine (Score:2)
Note: do NOT turn a map of your high school filled with your favorite teachers into an Unreal shoot-em-up. You will end up spending your suspension time in mandatory therapy.
Well (Score:2)
I do agree with starting simple. Let's think tic tac toe. The gui would consist of a frame with nine buttons. Each button would call the same method passing in a variable for which player the turn currently belongs to. The gui would then be re-packed to screen with the button now holding an x or o depending on who clicked.
How do you keep track of the logic and actualy
Game Blender (Score:2, Insightful)
Keep it sim
Good Links (Score:2, Informative)
Click here [bios10h.net] and under 'Game Development'...
I highly recommend FlipCode [flipcode.com] and GameDev.net [gamedev.net] for game-programming-related content. They have tons of stuff for beginners.
With the information you provided, it is pretty hard to direct you to *the* website you need because we don't know if you wanna do 3D or 2D, Ogl
Make sure you *really* want to PROGRAM games... (Score:3, Interesting)
You need to ask yourself one thing before starting to learn to program: Do you want to program games, or just make games? The two are different.
A lot of gamers wind up deciding "hey, I want to program video games!" at some point, without realizing that what they really want to do is make games. If you don't know anything about programming, then you should start by learning the basics of programming and forget making video games for a while. You need to understand the basics first, before you can start doing anything complicated.
If you really do decide to make video games, I'd highly suggest making a couple of really simple games first. Something like hangman, where you just take a list of words and make the user enter letters until they "guess" it. This will teach you the basics of keyboard input and graphical display without having to worry too much about speed or game mechanics.
I'd suggest starting with Java [sun.com] too - maybe grab Eclipse [eclipse.org] as your IDE, or just use a simple text editor [jedit.org]. This solves the "cross-platform" part, and as long as you understand that you won't be creating Quake in it, you shouldn't be too disappointed. (You could, of course, also try using Mozilla [xenoveritas.org].) It's similar enough to C and C++ that you'll should be able to pick up those if later you wind up making a game in C.
But based on your post, I'd suggest learning more about how to program in general first. Take some classes, if you can. Learn the basics. Learn about basic data structures. This will give you the ground-work you need to create a game, as well as help you determine if programming is really for you.
Linky, linky :-P (Score:1)
gamedev.net forums (Score:2)
Don't bite off more than you can chew (Score:2)
Don't set your sights too high. Try to keep yourself in a position where you can hand your assignment in at any time.
Tetris is often recommended as a first game because it is fairly simple yet it covers most of the hard parts about writing a game. Once you have it working put in an AI that trys to choose the best/worse piece to fall next.
Don't overlook modifying a current game. Battle for Wesnoth is open source. It is fairly easy to plug a new AI in, and they could use one. In this way you can say
putting flamesuit on...but how about flash? (Score:5, Interesting)
-If you don't know much about programming, even something basic like vectors or graphics libraries could be more than a little daunting. Flash makes graphics dog-dumb easy, leaving you to focus on the logic. A lot of the abstractions (game speed, display parameters, collision detection) can be handled easily, leaving you to learn how to program.
-You can do some OO programming with Actionscript, so you can start with a simple program, and when you get skilled, learn how to extract that functionality into libraries or classes.
-You should be able to focus on some simple programming aspects like game physics, or making it fun (which doesn't have much to do with programming).
-There are a zillion sites out there with bits of code that you can learn from and modify. Granted, lots of it sucks (i.e. it works, but it will not show you how to be a 'good' coder). Offhand, I don't know what to recommend to become a good coder, but at the least, I'd recommend plowing through at least the first 3 chapters of Bruce Eckel's Thinking in C++ [mindview.net] (free online). Once you get through pointers and address references, actionscript will look like child's play. Sure, there are sites out there with sample PyGame/Java/etc. code, but Flash code is easier to cherry pick and drop in.
-You have to realize that what you're doing is similar to saying "I've never turned a wrench before, but I want to build a car in 4 months." Game programming can be exceptionally difficult on a number of levels.
Re:putting flamesuit on...but how about flash? (Score:2)
Re:putting flamesuit on...but how about flash? (Score:2)
.SWF files are an open format, and a recent issue of Dr. Dobbs' Journal has an article on creating an .swf file from a small C++ program.
whether tools like Flash or Director exist as OSS implementations, i don't know. but i do know that libraries [sourceforge.net] and interfaces [rubyforge.org] exist for creating .swf files. just have to look for them [google.com].
Re:putting flamesuit on...but how about flash? (Score:2, Informative)
If you don't use Flash you should
Re:putting flamesuit on...but how about flash? (Score:2, Informative)
Speaking from experience (Score:1)
The biggest mistake I have seen people make is they want t
What I use for cross platform graphics programming (Score:2)
It allows you to write once, compile anywhere. Plus SDL is very easy, straightforward.
If you love torture, rather than the ease of SDL, another cross platform graphics answer is Java + JNI + C++ + OpenGL. I used it for my capstone.
General Advice (Score:3, Interesting)
Push all the "great ideas" to the back of your head, for now. They'll only get in the way at this point. Lay out a very basic game design and write it down. Do this both in plain English and in pseudocode. Resist the temptation to dive into feature details; don't go on about how different guns will do different things, and how there will be ten different types of enemies, or how you want the explosions to be green and shimmery. For now, make it simple: one guy, one gun, one type of enemy, one behavior. Note that this doesn't mean you shouldn't design for such expansion, though--be thinking about how to go about building your code to allow all sorts of things down the road, just don't get mired down in the minutae.
Build a basic, working prototype. Get input working; get drawing working; get audio working; get physics working; get collisions working; get interaction working; get menus and user interface working. Use placeholder graphics and sounds for now. Once you've made a good, solid, stable engine, then start working on graphics, audio, backgrounds, et. cetera. A good way to tell if you've reached this point is if you can play your ugly, bare-bones game and enjoy it. If you don't enjoy the game without the flashy stuff, adding finished content will just be like putting lipstick on a pig.
Finally, stick to 2D. You'll learn more about the "game" part of making games if you don't need to wade through all the extra crap you need to know to work in 3D. (It is also much faster and easier to create 2D content than it is to create 3D content, but again--that comes after you've got a solid engine in place...)
Re:General Advice (Score:2)
Having written some simple games myself, I have found it very helpful to just get something very simple working first. Then I add things step by step. I have seen too many projects get bogged down in simply creating large amounts of artwork and no coding ever happens.
As a poor example of this method, I have written a pac man game tutorial. It is one the web at http://www.angelfire.com/games4/an [angelfire.com]
What do you mean by "game"? (Score:2)
For some reason, a lot of people think a game needs to be direct rendered full screen. You task will be a lot simpler if you get out of that mold.
Here's an idea that is sure to get me a lot of flamage: look at Qt. First, it's a very well documented library. Second, it comes with lots of examples,
First have a plan, then a platform (Score:2)
You have a fixed deadline of June. You probably have some ideas about what kind of game you want to do. Create a design document. (Gamasutra has had articles about that. Links anyone?) Don't spend a lot of time on it--you don't have to justify this to the suits. You can start rough and refine it later as you get a better idea of where yo
Software Best Practices (Score:2)
Also don't think you're special. You'll have to design, implement, and test like the rest of us.
I suggest you think of a design *quickly*, and keep it as simple and straightforward as possible. I doubt the teacher is going to grade you on your innovation. If you actually finish this in time, I am pretty sure you will get high marks. Implement this into something that works. Once you get a working core, then add small features one at a time,
I know what you can name it ! (Score:1)
Duke Nukem Forever
Now you have lots of free time, be sure and point your instructor to the official websites and forums to see how this is coming along.
DarkBasic (Score:2)
this is my favorite book (Score:1)
I know I will probably be modded down... (Score:4, Informative)
Javascript, CSS, and DHTML are each well documented on the internet, and there are numerous books to get you started, as well.
Finally, before you cry out "but Javascript won't let me create a cool game!" - take a look at this:
Illumia RPG [illumia-rpg.com]
and especially this:
TRIGLAV RPG [smokymonkeys.com]
Re:I know I will probably be modded down... (Score:2)
You should have been modded higher. Javascript and HTML is really simple. Some of the suggestions for complex OO languages are not good with the limited time available.
javascript games - pros and cons (Score:2)
The benefits of javascript are:
Downsides:
GameMaker (Score:2)
It is windoze only and has its limits, however it is a great starting point to learn about how games work.
It is mainly 2D based programming, but since the release of 6.0, Mark Overmars (its creator) added quite a bit of 3D functionality.
There is even a tutorial for making your own basic FPS, but from what I've seen on the forums, some people have figured out how to do some really cool stuff with it.
Dark Basic (Score:2)
http://darkbasic.thegamecreators.com/
its a horrible programming language really but for a begining its great because there is a lot of pre made stuff in it so if you wanna be able to knock somthing up quickly its excelent
i managed to put together a simple 2D racing game in about a month soon after i started programming
Don't try a full game (Score:2)
If you go the classic VGA route, you
Start simple (Score:2)
Ignore everything else you've read here. (Score:5, Informative)
Ignore everything you've read here about graphics and sound libraries, existing game code, existing game libraries, and (for now), choice of languages. If you've never done any programming before and intend to use this as a vehicle to start programming, read this first. Clear your mind, and ignore the details for now.
More important than anything else you can ask right now is to find out what you're trying to achieve. Saying "I want to write a game" isn't specific enough, as humanity has invented tens of thousands of games over the years using all sorts of different mechanisms (cards, dice, boards, pieces, pots, beans, joysticks, vector graphics, role playing, puzzles...). So first, figure out what you want to write.
Next, take the game you want to write, and stick it on a mental shelf. Everyone would love to write Grand Theft Auto: San Andreas as their first game, but it isn't going to happen.
My first piece of advice: don't try to create a new game for your first project. Take something you already know, and know well, and implement it first. Try to pick something that has finite states that are easily describable, and then work from there. Preferably something that has mechanical rules and won;t require too much "artificial intelligence" on the part of the computer (ie: you may know Chess really well, and it has a finite number of pieces, the logic required to decide how to have the computer move is exceedingly complex. Companies like IBM have spent millions trying to perfect such algorithms).
Two classes of games which are typically excellent candidates for first projects are card and dice games. Both are fairly easy to program, as they involve numbers, and have a finite number of possibilities (ie: 52 cards, 6 sides per die). When selecting a game to implement, find something you enjoy, but preferably something that again, won't require an M.Sc. in Artificial Intelligence. Blackjack is an excellent candidate (many Universities use this as a first year programming assignment anyhow, so you'd be getting a leg-up on others if you plan on persuing Computer Science in higher education), as the compter can act as the dealer, and has very specific rules it always follows (requiring no AI at all). Don't worry about how many times the game has already been done -- your goal is to learn programming, and not to create the next Halo 2.
Once you've selected a good candidate game, you need to code the game mechanics before you code anything else. So again -- forget everything anyone here has told you about graphics and sound libraries, or even languages. You won't need these until later.
Continuing with Blackjack as an example, here are some of the things you need ot think about first:
If you can get all of this down in code, you'll be off to an excellent start. From here, you can graft whatever user interface you want atop the "game engine" you've just created. And you'll find you'lll learn a lot about the basics of programming (variables, arrays, functions, objects, random numbers, sorting, comparisons, etc.)
You'll probably want to be able to test things out as you go along, which will require a minimal user interface. To start, you'll probably want to use just text to represent everything (ie: "10 Hearts", "A Spades", etc.).
Re:Ignore everything else you've read here. (Score:4, Interesting)
domino.php --- 1k
dominoes.php --- 3k
dominoesBoard.php --- 10k
dominoesGame.php --- 13k
dominoesGui.php --- 18k
dominoesHand.php --- 2k
opHandler.php --- 3k
rules.php --- 2k
test_domino.php --- 1k
test_dominoes.php --- 1k
test_dominoesBoard.php --- 9k
test_dominoesGame.php --- 10k
test_dominoesHand.php --- 10k
WRITE YOUR TESTS! Notice almost 50% of my code is tests (and I feel that it's not enough, I currently got ahead of myself and need to catch up on my tests before I feel comfortable adding more functionality).
I would do a lot of thinking about what the parent poster said, specifically: Start Simple. Think About Your Win/Lose Conditions.
I'd like to add the note: Write Tests. To continue the blackjack example, what happens when a user has an "A, J" in their hand? (blackjack). How can you test that? Write a test for it. What happens when they have "J, K, Q" in their hand? (bust) How can you test for that? Write a test for it. What happens when they run out of money? What happens when they try to bet too much money? A negative amount of money? Write tests and repeat as necessary.
A whirlwind tour of my dominoes layout (this is to back-up the parent poster about the game libraries, and mechanics, etc):
For the GUI code, it's mostly HTML text to display stuff to the user, which is why it's so big. But even then, recognize that the bulk of the work is in stuff that the user doesn't even see (Board, Game)
--Robert
Re:Ignore everything else you've read here. (Score:2)
Good information all around. I just wanted to pipe up that Dominoes is another excellent starter game system to implement. There are so many different games you can play with Dominoes, and for the most part the logic is pretty simple (a simple greedy algorithm should make for a half-decent computer opponent. Perhaps not the perfect opponent, but more than enough for a beginning programmer).
So if cards and dice don't do it for you
Re:Ignore everything else you've read here. (Score:2)
Re:Ignore everything else you've read here. (Score:2)
Though I would disagree and say to create a new game for the project. The person has 6 months a card game for somebody motivated I don't think would take more than 3 or 4 months. Even if the project is to learn the basics of programming, I think that learning game design portion (presumably the area they want to work in the future) is important too.
I would actually suggest looking at RPG type game. They scale very well in complexity, and are very flexible in design aspects. You can start
Re:Ignore everything else you've read here. (Score:2)
Re:Ignore everything else you've read here. (Score:2)
You know, I think blackjack must be the most common "first game" there is. The first game I ever wrote was a text-based blackjack in BASIC on some weird NCSS mainframe (a
What is your true goal here? (Score:2, Interesting)
The most important question I think is
"what is your true goal?"
Possible answer include:
a- something new and original
b- something really usable
c- something pretty
d- a combination of a/b/c?
Is the goal just to create any game? Being for a class and depending on your TA or professor, I would expect the engine to be more important than the look. (if it were commercial, it would probably be the reverse, ymmv.)
One important detail is how it should look, dep
Virtools (Score:2)
Hardcore coders sometimes scoff at Virtools because they see it as so
Python and PyGame (Score:2)
Also, Python is arguably a good language to learn programming basics with, and it is also a highly effective tool for advanced programming users also.
Even though Python is not characteristically known for its raw speed performance, this is dramatically offset by the processing power of mode
create a mod, or a map, not a game (Score:2)
Many games out there like Unreal, Warcraft 3, have great tools for creating fun games. The scripting languages that come with these games are legitimate programming languages that let you focus on gameplay and not on implementing basic engine components.
Creating a games engine is not creating a game. Using a toolset lets you create a game, while skipping creating the engine.
Why not trying C# (.NET) and Managed DirectX (Score:2)
The
Re:Why not trying C# (.NET) and Managed DirectX (Score:2)
Microsoft keeps changing its mind regarding what goes into DirectX, and older interface keep going obsolete with each new version of DirectX. More simply put, if you are not actively involved full-time in a professional setting and using DirectX as a part of your everyday development environment, don't use it.
For myself, I've
Learn Java (Score:2)
thoughts from a teacher (Score:2, Insightful)
Some of my kids want to jump right in
Blender + Python = Games (Score:2, Interesting)