where to start

Blitz3D Forums/Blitz3D Programming/where to start

malicnite(Posted 2005) [#1]
I am interested in making a 3d rpg such as diablo 2. but i dont know where to start. im working on becoming a game designer, i only need the programing help. if you have in ideas say something. thanks.

malicnite


Chad(Posted 2005) [#2]
Well, I do know there's a thing in the code archives for a top down view like Diablo 1 and 2 that you can use..

http://www.blitzbasic.com/codearcs/codearcs.php

should put you in the right direction :-)

Good luck Mate!


Ross C(Posted 2005) [#3]
If i were you, i'd start on something simple. An rpg is a crazy project to begin with. Try pong or tetris. The knowledge you gain from coding these projects, will make you better equipted for making harder projects.


malicnite(Posted 2005) [#4]
thanks ross, im a very fast learner. specially to computers, for some odd reason.

shylor kane


jfk EO-11110(Posted 2005) [#5]
You only should not be surprised if you'll have some dead end ways inside you gamer when you start with such a huge project. Maybe at some point you wish to restart from scratch, it happened to a lot of us.


WolRon(Posted 2005) [#6]
Check out my Programming Tutorial for some pointers.


Shifty Geezer(Posted 2005) [#7]
It's not an ideal way to develop a program that you're undertaking. As a newbie you'll be learning to program as you go, finding out how to manipulate your graphics, structure your objects and functions, and create and use data collections of one sort of other. This means code evolves, but for a big project you really need a good design before you write anything. Otherwise you can get lost amongst spaghetti code (as I do, because my code has evolved over time and I've used some quick fixes to bypass problems rather than carefully considered solutions!)

A big game needs a clear design, and you can't design until you know what you can or can't code. Do you want an array or a linked list of enemies? What info is your level data going to need? How are you going to structure your object creation and manipulation functions? If you pick the wrong choices early on, you can spend a lot of time and aggro replacing them.

Just as if you were learning to write music you wouldn't set yourself a 30 minute 4 part symphony as your first work, or if you want to make an epic movie you start on smaller, cheaper films to develop your skills, it's very ill advised to jump in at the deep-end of programming. It's better to hone your skills and understanding writing smaller programs, and from these develop libraries you can use in your other projects so the work is still contributing to the final goal.

In your case, let's say you want your RPG to be isometric view. First of write a little one room isometric pacman or something where you get to understand your graphics engine's requirements, and you'll be able to build the necessary codebase that you can then use for your RPG. Then if you want a menu-driven interface, write (or add to your pacman game) a UI library (or learn one of the existing ones). Taking each aspect of your game one at a time in separate cases, you'll get a better understanding or what your final game will need. Then when you design it, with pencil and paper and diagrams and scribblings of datatypes, you'll be in a MUCH stronger position to just write the code without hitting many frustrations, and you'll be free to concentrate on ideas instead of the mechanics of programming.

Most wannabe game writers don't get anywhere, because they're full of exciting ideas but don't realise what a hard slog writing dull code can be. Working on small projects and having lots of small successes is the best encouragement you'll get. I don't think many wannabe game writers heed this advise, even though it's very common, but boring as it is to shelve your dream game and work on silly little programs of no importance, it is invaluable.


Boiled Sweets(Posted 2005) [#8]
I agree with Shifty,

my first project, a 4d maze has taken almost 2 years and is up to about 30,000 lines of code. I have learned a lot along the way and spent some time writing 2 spin off games/applications as the first project was soo big.

Just learning how to create decent 3d models, UV map them and to texturise them is a huge task in itself. There is a lot to learn/master.

I would also say that it makes a LOT of sence and saves a lot of rewriting and time to sit down and try and fully design the game WITHOUT writing any code. I know you wanna dive in but it may actually save you from dumping your code and starting a refresh.

I stronly recommend working on a less ambitious project to start with just to get the basics...


VP(Posted 2005) [#9]
bah, sod writing pseudocode, get stuck in :)

When you're a seasoned programmer then you will be better served by sitting with pencil and paper before starting on code. When you're learning, get stuck into the code and make a load of design, syntax and logic errors. You will learn really fast what pitfalls await.

Not going through this process will leave you writing perfect code, until you compile your program and it doesn't work and you will never find out why.


Shifty Geezer(Posted 2005) [#10]
Yes, you're right Vinylpusher, which is why we're advocating small projects to begin with. They're the learning process to becoming a seasoned programmer when design makes sense. I don't think anyone is going to be able to write a good large, complex game without some experience and design under their belt.


jhocking(Posted 2005) [#11]
You're thinking way too big. Start small, really small. Especially if you've never programmed before; first concentrate on learning to program, by writing counting programs and such. Then once you are comfortable programming start learning to program games, but even then start tiny. Minesweeper was my first game, but here's a good progression:
http://www.gamedev.net/reference/design/features/makegames/


jfk EO-11110(Posted 2005) [#12]
Of course you may start with a huge project. As I already said, you probably going to drop the entire project at some point and (hopefully) begin from scatch again. Then you'll realize it was a waste of time. But when time doesn't matter, nothing's wrong with a complex project for a (BLitz3D) beginner. You will learn a lot no matter what.


jhocking(Posted 2005) [#13]
The problem with a big project is you will get discouraged and give up. Finishing what you start is of utmost importance in the beginning, and you are MUCH more likely to finish a small project.


jfk EO-11110(Posted 2005) [#14]
Well I have to say my FPS game engine was almost my first blitz game. I only made "fledged hoverboard" and "csp world editor" before. Although the CSP FPS engine is a playable game engine, it's still very limited, and the sourcecode is already a huge pot full of spaghetti, sotosay. Whenever I want to add something new, I have to take care not to override some globals etc. A typical beginners design mistake.