Making a Game, directions needed

I wish you a pleasent Morning, Evening or Day whatsoever…



My name is Alex and I'd like to introduce my little game that I'm dreaming to make someday.

I finally decided to use Java, cause i like the object oriented style.

I also thought about using C++. I have 2 books (Focus on SDL and Programming Role Playing Games with DirectX)

and great interest in having my game run on a GP2X :slight_smile:

Still, C++ seems to much of a hassle :frowning: so I decided to use Java instead.



Now that I have a language, it would be nice to have some libraries which could help me a lot,

but extremely cluesless what to use, because I don't know what I exactly need :slight_smile:



At first, my choice seemed so obvious: a 2d game library. But when I looked through some libraries (Slick, JGame, GTGE,…)

I rethought my decision… what do I really need? 3D seemed more appropriate, so I chose jME

and I hope it's the right thing to use. Please tell me if it isn't.



But now a short explanation what I actually want to do:

You probably know Legend of Mana* (PSX), Saga Frontier (PSX), Silver** (PC)

or a more popular one: FFVII** (PSX, PC)

If you don't, feel free to look up some screens on the net. You'll find some for sure.



So, when you look at the graphics of the various levels where you can

freely run around a normal map (FFVII: except world map), you will notice, that there are

no tiles, only a nice handdrawn background, but somehow, it gives you the feeling to run on a 3D surface.

Gameplay will be like Zelda, you see your enemy and slash him etc…



Thats exactly the thing i want to do, but i really don't have a clue how.

The first Idea which came into my mind, and sadly the only idea, is:


  • to draw that level, no matter how big it is.

  • scan it,

  • display the picture,

  • try to manually fit a invisible 3D layer on the picture to simulate the heights and stuff,

  • and finally: letting a 2D sprite run around this invisible 3D layer.



Well, thats my little Idea and thoughts so far..
The biggest problem about this method is that I don't know anything about 3D stuff.
Neither modelling- nor programming-wise. So any help will be greatly appreciated,
or any kind of directions, tutorials, libraries, comments, stuff,...
I'm also planning to have some Physics.
Multiplayer someday maybe..

Note: So you know what my expirience level is:
I recently finished a programming school and had 2 years Java
and 4 c/c++. Mostly just basics, but I'm a quick learner.

thanks for reading

*Note: Legend of Mana doesn't fit as good as the others into my idea of what i want to do,
cause the key difference is that Legend of Mana has a fixed Camera Angel, thus,
the Main Character Graphic doesn't resize or changes in Size at all (depending on the level).
**Yes, this game has 3D Models for their Characters. Imagine it would be a 2D Sprite
and you'll know how Saga Frontier and my game will look like.)

Programming:

There is a user guide for jme on the wiki page. Also you can find some useful tutorials there.

If you download jme from CVS repository, there is a trail of tutorials included: flag rush tutorial.



You can also figure out things by looking at the code in jmetest package.



If you want to do more advanced things, you should read up on OpenGL (OpenGL Red Book) and GLSL shading language (OpenGL Orange Book). Another book that covers both of these topics is “OpenGL Super Bible”.



http://www.opengl.org has good reference material, especially on OpenGL extensions.



Modeling:

You can try some free modeling tools, like blender http://www.blender.org

Though if you want to make a serious game you will need dedicated modelers, and more than one.



Texturing:

You can use photoshop or GIMP to mess with images to make textures.



Rigging and Animation:

You can use 3d editing tools to rig models (e.g. give human model a set of bones) and animate those models. Both of these require a lot of patience and are very time consuming.



Sound:

You will have to look for these on the net and edit them, or find someone with advanced knowledge of sound mastering to do it for you.



Music:

You will probably need to find a musician to compose music for you.





The language and the engine are just a tip of an iceberg… a game is a lot of work in many departments. If you don’t have a team but really want to make a game, try making something simple and then make your game grow by adding more features and extending the gameplay. When you have something working, it is easier to find people who will be interested in helping you take your game to the next level.

Sure I know that I am only at the beginning, but there are many libraries indeed.

I find it easier to ask, if this one is appropiate for my plans, than to deeply look into

the functions maybe just to find out that I dont realy need it. no offense :slight_smile:



I think you missunderstood something about the game: there will be 2D graphics only,

so (I hope) I dont need any complex modelling methods like rigging and bones and stuff…



Sound & Music wont be a big of a problem :slight_smile:



What i wanted to know is, where should I start logic-wise, tips on how to plan the classes and stuff…

Yeah thats a good idea with starting only with something little and extending it… but for that, i need

a solid and well thought through base…



Also, my method that I mentioned… is it right like that? I mean…

Am I right that these games Ive listed also work that way?



This game is a personal thing, I really dont plan making any money from it, but donations will be welcome :slight_smile:



Thanks for your reply

If I were you I would first try and understand JME (and also Java if you're new to the language). Try making some simple stuff. I made a techdemo where I used some of the features JME holds. In the beginning this might seem alot like copy and pasting existing code but those really are the first steps in learning it. Eventually you can try something harder. It might also be a good idea to write down all kinds of features you want.



You said you want your character to hack'n'slash monsters. You could use a real simple model and try collision detection. You probably also want a nice world, try to make a simple world and learn how it works.



In the end you'll have a bunch of small JME programs and you can try to merge it all together. It is natural though that the first tries you make aren't the best ones and hopefully you'll have learned how to better implement a feature when you try to merge it together. Though thats not always necesarry. If the game runs, it runs. Optimising it might indeed improve performance but don't get stuck too long on having a 0,3 fps increase. If you made a mistake you're bound to see it anyways when you run your test. For the record, this kind of development is called "Prototyping" if im correct where the goal is to build something from scratch, evaluate it and with that knowledge rebuild it again from scratch but better.



As a final note, I would advise you to follow some kind of development cycle. Personally I prefer Unified Process. In short it makes you define the requirements, model it in UML and actually construct it. You can pick the processes you feel are needed. It gives you a little bit more work but it also helps you create a clear vision on how you plan to do stuff. Oh… and it makes you think about alot of aspects too!  XD

If I were you I would first try and understand JME (and also Java if you're new to the language).

Thats why i want to ask first if its worth to start understanding JME before I notice that it isnt suitable for my needs.
Maybe its a stupid question which cant be answered by an outsider and  therefore I really need to look into the library myself..

Havent thought about development cycles yet, I wanted to finish the "Design" documents first (which features, Skills, Story etc..), but Unified process sounds good, Ill do that,.. Wanted to use UML anyway..

Ive seen a little movie from a indie game developer conference where the creator of Braid gave a speech about Prototyping. It seems a lot of work though.. But the first thing I want to have is just a bitmap of the player character which runs on the top of a bigger bitmap, the background.. behind this simple looking programm there will be this 3D architecure thing of course.. where everything is calculated in 3D but displayed with 2D rgaphics only..

I would really suggest considering using a 2D only engine. A 3D game engine has, by definition a lot of things that you really don't seem to need. On the other hand, many things you DO need are not present in this engine, and you would have to code them yourself (like sprites and layers, etc.) While some 2D engine would have them ready for you.