New to the game developer's area; directions?

First of all, hello everybody on the jME forum! I'm new to the community and have no experience as a game developer.



My Experience in Java

I do have Java experience, I've read three courses and the last thing I did in Java was a server environment. I believe there's more areas in Java I haven't seen yet, like UML Modeling. Although I know the basics in programming and everything to object-oriented Java and polymorphism, classes and so on…



Now you're wondering why I make a topic about this? Well, it's my last year in school and I with three other guys are working on a project. I'm the only one with programming experience and I know my limits (and the group's limits). We want to make a MMORPG. That means I will have to create the game engine and server myself. Because it's a MMORPG I will somehow need a database to store important information over time.



First I thought I had to learn C++ to work with DirectX. But then I made some research on game development with the usage of Java and I found this engine. Since I found out that this engine has come pretty far in development I think I will use it's API to create my own game engine.



How to make a good approach?

Now I need some directions… My own approach is to use the jME API for the game engine, some sort of networking API to build the communication between the server and client. I will also use MySQL as my database server.



When I created my own server environment I used a multithreaded server where every thread communicated with it's client using a TCP socket. Shall I use sockets or is there any better way of communicating, any API I can use?



Is there anything I can use to create a MySQL connection and to run queries and recieve results using Java? What can I use to help me develop my game using jME? I also want to know how jME works to it bones, it's important for me to know how 3D-rendering and all this works in jME.



Like I said before, no experience in game development. I do not know how things are rendering to the screen, I wanna learn about that myself somehow. I want to know what the best option is for networking.



Conclusion

I do not ask for any help, I just want to be put in the right direction. That is, from knowing Java to creating games with Java. I'm very clueless how game development works, what to create first, game or server (or both at the same time)?



We have one year to come up with something basic, like moving around over a network in a 3D-environment. So please, put me in the right direction!

Noem said:

First of all, hello everybody on the jME forum! I'm new to the community and have no experience as a game developer.

My Experience in Java

When I created my own server environment I used a multithreaded server where every thread communicated with it's client using a TCP socket. Shall I use sockets or is there any better way of communicating, any API I can use?


You can role your own implementation, but there are several libraries that do this, such as JGN (made by jME decv darkfrog), and Sun's Darkstar... just take a look in the networking forum.


Is there anything I can use to create a MySQL connection and to run queries and recieve results using Java?


Just google for JDBC.  Java has a pretty mature database API.


What can I use to help me develop my game using jME? I also want to know how jME works to it bones, it's important for me to know how 3D-rendering and all this works in jME.

Like I said before, no experience in game development. I do not know how things are rendering to the screen, I wanna learn about that myself somehow. I want to know what the best option is for networking.



Making a MMORPG is a huge task.. espc. if you don't have much experience yet. It won't be harder with jME than with C++ (I'd argue it's easier). For networking I'd recommend checking out JGN first..

Well, if your using jME, you won't be making a "Game Engine" seeing as how jME is a game engine. You will be making a game(or game client, same thing) with it. It is just the wrong use of words, so no problem(unless you meant game engine, which is used to make games, then I'd suggest checking out LWJGL, but it is better to just use jME).


Like I said before, no experience in game development. I do not know how things are rendering to the screen, I wanna learn about that myself somehow. I want to know what the best option is for networking.

That's the best part. You don't need to. You pretty much know everything you need to know now. jME is really easy to use, you will have no problems.

Thank you for confirming some of my issues, to both of you. My first idea was to actually write my own game engine… but since I only have one year to have a basic game, I'd just use jME. Somewhere after school I may put some energy into learning the basics of creating a game engine…



Since I know little C++ and have good experience in Java I will mostly use Java, and it will be multiplatform compatible.



To the networking issue, I may write my own communication API - since I'm a freak of control, but I'll check out JGN first :stuck_out_tongue:



Also, I found out that JDBC is included in the latest NetBeans release.

If you are going to use NetBeans, definitely check out the Java Persistence API.

It's a java ORM library which will take tons of work from you if you are using database persistence.

NetBeans has some great support for JPA built in with the Java EE modules.

If you're a control freak I think you'll like JGN…it's the control-freak's best friend in networking. :wink:



hevee, I would take a look Berkeley Database Java edition as I've been doing some research against it and it seems like a MUCH better choice for game server persistence than JPA as JPA is really quite slow, even with EclipseLink.

darkfrog said:

If you're a control freak I think you'll like JGN....it's the control-freak's best friend in networking. ;)

hevee, I would take a look Berkeley Database Java edition as I've been doing some research against it and it seems like a MUCH better choice for game server persistence than JPA as JPA is really quite slow, even with EclipseLink.


Just glancing over the Oracle Berkeley Java Edition, you know if it works against MySQL? I guess we're talking about database APIs... such as connecting, running queries and so on. I mostly use MySQL for housing my dbs and designing my tables.

At first I was planning to use JDBC (with the MySQL Connector Driver), but if Oracle Berkeley Java Edition is what I think it is, do you know if it's any good?

@hevee, I'll take a look at JPA...
darkfrog said:

hevee, I would take a look Berkeley Database Java edition as I've been doing some research against it and it seems like a MUCH better choice for game server persistence than JPA as JPA is really quite slow, even with EclipseLink.

Thanks for the hint, though I have to say that for my current projects I value the rapid development ORM solution with tight integration into NetBeans JPA/Toplink offers me higher than gaining a few more bits per second in persistence.
Also I don't think JPA is "slow" by itself, and it gives me plenty of flexibility to plug in different JPA implementations, JDBC connectors, or underlying database systems once the need arises.
That said, I'll definitely have a look at BDB Java Edition and try to pitch it against a couple of JPA options (JPA/TopLink Essentials/Derby seems to be the fastest combination I have found so far, but I have yet to check out other DBs than MySQL and Derby).
I'd be very happy if you could give me any hints on how you went about benchmarking the different DB persistence options!