#147831 - blackmeadow - Fri Dec 28, 2007 9:04 pm
hey, guys, i have a few things i'd like to discuss.
so i've finally learned c and i've been messing around with the quake 1 source. i have my senior year in high school left next year and i was wanting to go into homeschooling so i can spend more time working on an actual game (have practically all my creds so my courses will be a cinch). i was wanting to work on the DS on a sort of FPS game. i know this is going to take time with just me as a programmer (my friend helps with the art) so i was wondering how i should seek to accomplish this? should i start from the ground up? are there any good examples of a DS 3d engine out there? without including memory parameters, should i just make a TC of quake and port it to the DS?
idk, i'd like feedback on this.
thanks, guys
#148136 - Miked0801 - Wed Jan 02, 2008 8:02 pm
Can you make a simple pong game to begin with? That will go a lot further in showing you how to make a game than making 10% of a FPS and giving up.
#148185 - keldon - Thu Jan 03, 2008 12:40 pm
A nice order to work with ...
0. Some multiple choice puzzle game (maybe)
1. Tetris
2. Pong / Snakes
3. Arkanoid
4. Pacman
5. Mario
Also check out a path to games development.
#148227 - sajiimori - Thu Jan 03, 2008 7:24 pm
Agreed, make Tetris. I was stupid and wasted years of my life thinking that programming was too hard, simply because I didn't tackle the right problems.
#148234 - tepples - Thu Jan 03, 2008 8:43 pm
sajiimori wrote: |
Agreed, make Tetris. |
After reading about ARE, DAS, randomizers, speed curves, wall kicks, lock delay, and dozens of other topics, it almost looks easier to make a Pong clone with CPU AI than to make a Guideline-conforming tetromino game.
The rules of 1970s video tennis, as far as I can remember them: - Two vertical paddles, one close to each side of the screen, and a ball bouncing between them.
- Spinners move the paddle vertically such that the speed of the paddle is proportional to the speed of the spinner.
- Ball starts out next to a paddle and is served by moving the paddle. This moves the ball diagonally at a preset speed, with the sign of the vertical component of the ball's velocity the same as the sign of the paddle motion and the horizontal component toward the other paddle.
- If the ball touches a top or bottom wall, the vertical component of the velocity is negated.
- If the ball touches a paddle, the horizontal velocity is pointed in sign toward the opposite paddle and slightly increased, and the vertical is based on a formula called "spin" that takes into account the previous velocity, the relative position of the ball and the paddle, and the paddle's velocity. The formula for spin varies per implementation.
- If ball touches a side wall, the opposite player scores a point, and after a few seconds, it is served again. right player scores a point.
- A CPU opponent will try to prevent the other player from scoring by predicting where the ball will end up based on its current position and velocity, reflecting this trajectory through the top and bottom walls, and moing the paddle to intersect this trajectory.
- Game terminates once a player reaches a preset score, or once a player reaches a lower preset score and is in the lead by at least 2 points.
Translate these rules into code, and you'll have something.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#148244 - gauauu - Thu Jan 03, 2008 10:07 pm
Conforming to the guidelines of the Tetromino hardcore player community is something that few people are thinking of when they develop a "first time tetris game." As someone not in the tetromino community, most of us have never heard of, or don't care about most of those things that you mentioned. (it seems even some professional developers of commercial Tetris games don't worry about them).
That's not to say that they aren't valid for someone wanting to make a good tetromino game that gets widely played, but that's beyond the scope of this exercise.
The topics that you mention all fall into a similar category of "vary per implementation" just like the formula for adding "spin" to the ball in pong.
Anyway, my point is not to fight the validity of these issues in tetromino games. My point is that for a beginner's exercise, nobody cares about them. Thus I think it's wiser to still include "tetris" as an excellent beginner's exercise than it is to avoid it solely because there are some implementations which are more complex that make the game significantly more challenging/playable/fun.
#148256 - keldon - Fri Jan 04, 2008 12:17 am
sajiimori wrote: |
Agreed, make Tetris. I was stupid and wasted years of my life thinking that programming was too hard, simply because I didn't tackle the right problems. |
Well I was very fortunate that my first pc was a 286 with MS-DOS 6.22, so I had to make do with QBASIC long before I got a copy of Turbo C++ 3.0. That and all the programming books available to me were 15-page kids books on BASIC. Excellent statement though, choosing the right problem is what is most important - especially when approached progressively.
I can't really remember what I did first in that time (when learning), but I did try my own space invaders using character mode :|
As for Tetris, it's deceptively complex when you want to do it right, but also has the bonus of being a grid based game that can be as simple as the programmer intends/understands/thinks. For some reason I'm getting many flashbacks of my early programming days, and the yellow paper sketches (scanned in B/W). </nostalgia>