Programming + shmups

A place for people with an interest in developing new shmups.
Post Reply
User avatar
gingerj
Posts: 73
Joined: Tue Apr 12, 2005 7:35 pm
Location: UK

Programming + shmups

Post by gingerj »

Hey I'm new to programming properly, like I've done HTML when I was 15. Then took me 4 years later to learn the basics of Delphi/Pascal. Now that I'm 20 and I'm practically fluent in ASP after hitting the books hard over the past one ot two months.

I'm wondering how hard is it to learn C++ and get crackin' with a shooter? Anyone recommend any tutorials etc? Tips of the trade... Any words of wisedom?
User avatar
ForteMP3
Posts: 178
Joined: Tue Feb 01, 2005 3:15 pm
Location: Somewhere in the Midwest.

Post by ForteMP3 »

There's an entire thread on this called "Making Your Own Shmups...Programs."

I'd strongly recommend you read this, it's a good read and gives several programming options aside from C++. Not that I'm saying you shouldn't use C++ if you're willing to learn.
YOU ARE APPROACHING THE TARGET OF ATTACK! THE MISSION STARTS NOW! ARE YOU READY?!
User avatar
gingerj
Posts: 73
Joined: Tue Apr 12, 2005 7:35 pm
Location: UK

Post by gingerj »

Well I'm not going to use one of those point and click vile game maker things.... thats for sure!
User avatar
nullpointer
Posts: 66
Joined: Tue Jan 25, 2005 11:12 pm

Post by nullpointer »

Hi.

I reccomend learning C++, I write all my stuff in OpenGL C++.
It share the basics of almost all other common programming languages.
If you can use ASP you can learn visual basic, but that sucks for making games.. If you think you are going to be using programming skills throughout your life (or your career or whatever) then learning c++ or Java will help you a great deal in the long run. You can check some great turorials on nehe site (google for nehe). It took me years to really get to know c++ but you will find that the best doujin shmups are all pretty much written in it and it gives you a lot of scope to develop a wide range of projects...but...

However it will take you some time to learn c++ , possibly years :(
and you might have to work harder to get the results you want at first..
You can acheive faster results and good results (if you know how to use them properly) with the other programming systems mentioned in this forum. So Its up to you really, depending on your long term ideas and the scale of what you want to do..
User avatar
gingerj
Posts: 73
Joined: Tue Apr 12, 2005 7:35 pm
Location: UK

Post by gingerj »

Do any of the doujin programmers make a living out of it?
User avatar
raiden
Posts: 862
Joined: Tue Jan 25, 2005 11:41 pm
Location: Cologne
Contact:

Post by raiden »

Do any of the doujin programmers make a living out of it?
to some extent, and only a few, but yes. Shanghai Alice and Mountain King studios are the only ones I´m aware of who do it with a certain continuing success. Most people do one or two projects, but not nearly enough to make a living out of, and many projects stay freeware.

At some point you will have to decide what´s more important to you: lots of people playing your game, or making money from it. If you decide for the commercial route, you will find yourself bothered with a lot of additional issues, like copy protection, hacking-proof registration key algorithm, server protection, payment validity check proecures, media mass production investment, distribution, that kind of stuff, requiring lots of energy you could be spending on the game´s quality instead.
User avatar
Shatterhand
Posts: 4039
Joined: Wed Jan 26, 2005 3:01 am
Location: Rio de Janeiro - Brazil
Contact:

Post by Shatterhand »

I know some C++, and I know some Java.

Like nullpointer said, if you think you are going to need programming skills in your life, you should learn one of those two languages.

Both languages aren't that user-friendly to begin with (I know more Java than C++ for sure, and I can tell you how much I "hate" this language :D), but if you have the patience to learn, it will teach you skills and a level of discipline that you will carry over your programming over ther rest of your life.

Still, even though I know some lower-level languages , I'd still recommend you using Game Maker under certain conditions. For me, it makes sure that I can make a game QUICKER, and without much hassle, and still manage to do what I desire to do. I find Game Maker to be a great way to make games, even if you are a half experienced coder.


So, erm.. in the end, I just second everything that Nullpointer said :D
Zhon
Posts: 141
Joined: Wed Jan 26, 2005 1:12 am

Post by Zhon »

If you want to make a living making homebrew games - shmups have probably one of the most narrow audiences you can choose.
User avatar
nullpointer
Posts: 66
Joined: Tue Jan 25, 2005 11:12 pm

Post by nullpointer »

hmm yr sort of right zhon,,
but they arent that alienating almost everyone can understand a shmup.
But I agree to some extent. I suppose puzzle games are probably the most popular and distributed homebrew games you can make..
User avatar
Aggrav8d
Posts: 41
Joined: Sat Jan 29, 2005 10:01 am
Location: Vancouver, BC, Canada
Contact:

Post by Aggrav8d »

and let's not forget translations of traditional board & card games. puzzle games like, say, montezuma's revenge do well, but for every one of those there's a dozen 100-card-games-in-one-program.

More information on successfull (and struggling) indie developers can be found in the indiegamer forums (http://forums.indiegamer.com/)

As for learning C++... I teach programming (via game examples) here in Vancouver. the course is 20 weeks of 2 hours a week, + homework. I'm not telling you this so that you sign up. I'm telling you this so you know how long it will take with proper guidance to get enough of an understanding of C with a smattering of C++ ideas that you should be able to write a game about the same level of quality as you might see on an atari 2600, maybe with better graphics. With all the code on the web that you can cut & paste from you could probably get a little 3D stuff going there, too.
Dan "Aggrav8d" Royer, Owner
Marginally Clever Games
User avatar
landshark
Posts: 2156
Joined: Wed Jan 26, 2005 5:27 am
Location: Chicago 'Burbs

Post by landshark »

Shatterhand wrote: Like nullpointer said, if you think you are going to need programming skills in your life, you should learn one of those two languages.
If you are doing it just for a hobby, java is easier to learn. If you have any anticipation of using it for a career, learn C++ (actually, learn C) first. I develop in both for my job (and often one embedded in the other), but there are many more jobs where C/C++ will get you a good buck rather than java (though I love java as a language).

Most people when they say they learned C++ first, actually learned C. THey learn C with a few C++ objects such as the iostream library. Maybe a class or two, but that is barely C++. It's almost impossible to REALLY learn C++ before you learn C. And if you do, you are missing out on alot. C++ can be incredibly complex when you get into templates and metaprogramming.

With Java, there is no portability issue and everything is much more straight-forward. Java is java is java. An int in java on a 64-bit solaris machine is the same as an int in java on a 32-bit AMD windows box. When you get into C/C++ you now have to worry about what platform you are on. A long may be 4 bytes on one machine, where it may be 8 bytes on another. Or a char may be signed on one, and unsigned on another. Then there is that preprocessor thing. It's pretty messy and makes it a little more difficult to learn when it is your first language. Then there is endianess with numbers. However, once you understand it all; you can do whatever you want with it as it is very powerful..

I might take heat from Aggrav8d for this (after reading that he teaches programming via games), but learn the LANGUAGE first, do not try to learn to do graphics/game programming AS you learn C/C++ for example. It will make it harder, and you may make more enemies that way when you start asking very basic questions about the language on game development forums (flipcode.com and gamedev.net have loads of newbie programmer questions that drive me insane).

I started programming so I could do games and graphics programming. I downloaded a pirated borland compiler (borland C++ 3.1 back in the day) and went to the store and bought a book. It's difficult learning purely from a book (before the internet was common place, programming information was difficult to come by so the bookstore was the best source; and even that was slim), but it can definitely be done. There is also a TON of info out there on the net now, and some good forums.

I started doing games/graphics about 3 months after starting and it was a *VERY* bumpy ride. As a side effect, I picked up assembly as well. But I made the mistake of getting into the graphics/game side too quickly and lots of basic stuff from the books I was reading was confusing me because I didn't know enough of the basics. Pointers will be your biggest stumbling block, but all of a sudden they will 'click' and things get a ton easier.

If you get to the point where you are reading through game/graphics books/sites/docs and you see something like *(((unsigned far char *)pArray)+offset) and you have no idea what that means, you are in over your head and you need to step back a bit and focus on the language instead of the use of it.

In the end, I do graphics and stuff on the side, but make a living off of software design and development in a non-graphics environment. Seems to be better money ;)
User avatar
Aggrav8d
Posts: 41
Joined: Sat Jan 29, 2005 10:01 am
Location: Vancouver, BC, Canada
Contact:

Post by Aggrav8d »

/me douses landshark in gasoline and offers him a light

jk.

I have a number of ready made samples and I use whatever we've learned in class to modify a small part of the sample - that way they can see instant change to an actual game and it encourages them to mess with it some more on their own time. The primary focus IS on the language. The involvement with games it to keep the kids interested. Or, put another way, the games distract them from the fact that they're learning.

Oh, and I aggree with everything landshark said in the previous post.
Dan "Aggrav8d" Royer, Owner
Marginally Clever Games
User avatar
gingerj
Posts: 73
Joined: Tue Apr 12, 2005 7:35 pm
Location: UK

Post by gingerj »

Yeah I've got teach yourself c in 21 days and I've got the C++ Primer the book that gamedev recommend. So I've got the tools I just need to get my head down when I've got free time which right now is zero in between my diploma, social life and the gym. But yeah, I've got the fundamentals of programming already down looping, variables, operators, if/else/elseif statements, arrays, select casing etc... Through ASP just C/C++ takes what I know and brings it to an entire new level.... :shock:
User avatar
Aggrav8d
Posts: 41
Joined: Sat Jan 29, 2005 10:01 am
Location: Vancouver, BC, Canada
Contact:

Post by Aggrav8d »

Given that you are working on a game by yourself I suggest that you keep your game idea as simple as possible. A game like this one can be done entirely in C in about a weekend (given what I estimate is your level of experience). From there adding more features to make it more interesting ("waves", enemies shooting back, etc.) can be added incrementally without too much difficulty. The trick is to start as small as possible and add to it incrementally. Expect your code to eventually become such a mess that you may have to restart - that's part of the learning process. Lastly, if it isn't fun for you to play it won't be fun for us to play.

...imho.
Dan "Aggrav8d" Royer, Owner
Marginally Clever Games
User avatar
gingerj
Posts: 73
Joined: Tue Apr 12, 2005 7:35 pm
Location: UK

Post by gingerj »

Has anyone got any good sites for gfx programming once I do c/c++ which is used more in terms of what consoles use. for example XBOX most probably uses DX.

It seems like a really really long journey making a game, first learn c, then do c++ and on top of that then go learn gfx programming. So much work...
User avatar
Aggrav8d
Posts: 41
Joined: Sat Jan 29, 2005 10:01 am
Location: Vancouver, BC, Canada
Contact:

Post by Aggrav8d »

XBox uses a variation on DirectX - learning Directx would make it easy to program for xbox, but it won't be *exactly* the same.
I understand that the PSP and PS3 are using an OpenGL style system tho I have not worked with them yet. The PS2 and PS1 were horrible, all kinds of assembly tweaking and low level funkyness was required to get the best performance.
There are many people on both sides of the DirectX vs OpenGL debate. Personally I fall into the OpenGL group because:
a) it's easier to modify what you are drawing
b) it's easier to do simple things and then make them run faster later
c) it runs on systems where directx does not
d) imho it makes more sense intuitively.
Follow the NeHe tutorials (I reccomend the SDL version of the samples) and you will have a good grasp of the basics of rendering in 3D. For the most part a decent side scroller can be done in 2D which simplifies a lot of the math.
It may seem intimidating right now but don't let the size of the body of knowledge that is graphics programming intimidate you. Get a simple idea for a game, make sure you know exactly what you want to do, then go and learn only enough to do that job. When you're finished you'll probably find that you know enough to code just about any game you like.
Dan "Aggrav8d" Royer, Owner
Marginally Clever Games
Post Reply