Action Adventure Game

Hello. I’ve been programming Java for 5+ years. Mostly low level and student stuff. I’ve made a Parcheesi Game and a Side Scroller. I took a computer graphics class in OpenGl and am thinking about starting a 3D game. I was thinking of doing a game like KOTOR (Knights of the Old Republic). Obviously not as long or with as good graphics to start. I would like to stay with Java, but I’ve read that C++ is the industry standard and this is a game I would like to put on my resume. I was planning on focusing on procedurally creating quests that would tie into the main quest. I was wondering if my java implementation would be fast enough to maintain a pretty hefty background processing. I was planning on using SQLite for the local storage (and MySQL if it ever goes co-op), JOGL, JOAL, and LUA.

Convince me that doing this Java implementation is feasible and a good idea, and I shouldn’t jump ship and use C++. Go!

Meh. Use C++ if you want. Java has far better tools and development will be speedier. If you aim for a job writing games, you will need C++. Java can get you a job writing enterprise software, which is horrible but pays well. Then you can do you game stuff on the side, like me. :slight_smile:

Java is plenty fast. Speed shouldn’t be an issue when choosing between Java and C++. If it ever were a bottleneck for some part of your game, you can call C++ code from Java.

I would recommend H2 for the local storage, LWJGL through JMonkeyEngine or Ardor3D, and Pnuts.

Thanks. My chief focus is getting something substantial on my resume. I already know a lot of C++. I just think C++ is a pain, so I would rather do Java if feasible. I just want to make sure that my strategy could work.

That’s not 100% true. I’ve been working in the games industry since 2002 and I don’t know C++ (and haven’t used C since 2002).

Soooo… what are you using then PJT?

As for Wookie’s original request: I’m not going to convince you to do anything. Use whatever programming language you feel most comfortable in.

I’ve probably wasted the last 6 months trying to move over to C++, only to learn that there’s no benefit in doing so. LWJGL is more up to date and active that most other libraries out there, and Java gives me cross-platform compatibility without having to maintain multiple codebases. C, C++, Flex, and numerous other languages have their advantages, but I think it all averages out in the end. I even discovered that if your intent is to make games for a mobile device, you’ll still have to learn different languages and libraries for each device; so there’s no benefit there either.

Java.

Roughly it breaks down as:

Major console/PC games: C++
Minor PC games: whatever the developer prefers
XBox minigames: XNA (typically C#)
Real-time web games: Flash or Java
Turn-based web games: any server-side web language; possibly using AJAX (JavaScript) to update the client
Phones (except iPhone): Java or BREW
iPhone: ObjC

But there are always outliers (e.g. Kev’s Java games for iPhone). Then there are speciality platforms like Blu-ray extras (Java); it wouldn’t surprise me to learn that next-gen Wii and PS had Java support.

In regards to mainstream games; Java has been used for all of the server side stuff in Star Wars Galaxies. One (or all) of the Law and Order games was written in Java too. I’ve also heard of developers bundling a JVM with the game which is used to run the game logic. They use it for compiling and reloading their classes at run-time.

Ultimately experience is what people care about most of all. Someone who has built and shipped a game will probably be a better choice then someone who hasn’t, regardless of what languages those people know. But if it comes down to that then concepts are what people care about, not languages. A Python programmer who is an expert with OpenGL will be better at writing OpenGL code with C++ then a C++ programmer with no OpenGL knowledge.

However C++ is still one of those languages that generally employers love to see. Your employer would have heard of it, he/she know it’s industry standard for games and by some it’s still seen as the proper language used by real programmers rather then kiddie stuff like Java or C#.

So for networking on LAN, should I expose the MySQL database to the network or should I wrap it with the client java program, so all requests for data go through the client of the user that started the game?

My plan was to use and sqlite db for local storage (Maybe H2 after I look into it). When the game starts load the data from the sqlite db into the MySQL db and then broadcast the port number of the MySQL database over the lan so requests can bypass the java program.

Therefore, each client will have to parse its data requests on its own. Each client will send data directly to the database instead of through the client of the user that started the game. Will that be fast enough over LAN or should I always wrap my databases with a client or even not use a database and store everything in the memory of the client? Thanks for your help.

Just for my curiosity, is there a standard protocol to utilize the processing and graphics power of all the computers connected to the LAN, so that the client of the user that started the game will not have to do all the heavy AI/Economy background code. Thx.