I am looking to start developing a game for this summer and I would like some assistance on how to approach a few things. I've had some experience with Java through school, and we have not covered some of these topics so I'm not sure how to approach it.

the game itself is going to be isometric and either 2d or 3d. I'm not sure how that part will work in Java and I may need help locating resources on how to work a UI and how to interact with graphics. The game I am thinking of is going to be a roleplaying game on one gigantic map, and possibly with sub maps.

I want to build this game so that if I DO use multiplayer, it will be easier to implement. This is something ABSOLUTELY not covered yet in my classes. What I want to do is have each game be it's own individual server, hosted on the computer itself.

As a bonus to myself, I want to make this game so it works on both PC and Android tablets, and can play cross platform.

sooo, any suggestions?Also if there is a free(mostly free?) engine which will do the job, let me know.

Basically what you're saying is you want to reinvent everything and you have no idea where to start...

It will probably take you the entire summer just to program a solid GUI library; even then, it probably won't be as good as others that exist already (like TWL) since those have been maturing over time with plenty of testing and very experienced programmers. And GUI is simple compared to programming a full-blown 3D engine that works on android and desktop!

My suggestion would be to start by programming some simple 2D games with LibGDX, and try getting them to work on Android and Desktop. Once you are comfortable with that, you can try making a simple 3D game. And then... only then.. you can try to tackle the "awesome 3D multiplayer game" idea.

Basic networking is pretty easy. The challenge is in designing your client/server model to suit your needs and not have lag. In my junior year of college, our class was split into two groups of four and each group had to design and build its own mini mmorpg. We had one person do the web site, one do databases, and me and another guy coded the client and server. The trick is to keep the number of objects on your server as low as possible. Like don't concatenate string literals. That's a lot of overhead and it can crash the server. We made that mistake and our server couldnt support more than 15 people. Granted we still got a goodgrade because the other teams wouldn't even run.

It came out pretty cool though. You could walk around, cha, fight monsters, and pick up gold andweapons.

Concatenating string literals is free, and even a big chain of "foo" + bar + "baz" + mumble + "frotz" is smart enough to get turned into a Stringbuilder internally. It's when you repeatedly append to strings in a loop that God kills a kitten.

Concatenating string literals is free, and even a big chain of "foo" + bar + "baz" + mumble + "frotz" is smart enough to get turned into a Stringbuilder internally. It's when you repeatedly append to strings in a loop that God kills a kitten.

Very very wrong, loses even the benefits of a StringBuilder. Create a StringBuilder outside of the loop, use it in the loop. You may see older guides that tell you to use a StringBuffer, just s/Buffer/Builder/ and use the same API and you're fine (StringBuffer is overly synchronized which is why it was superceded by StringBuilder).

StringBuilder uses an internal buffer that is resized as needed, using overextension to avoid too many reallocations. str.concat(a).concat(b) creates two new new intermediate strings. Doing it in a loop n times creates n times that many.

The compiler does already do an optimization by using StringBuilder. Recent JVMs do escape analysis and do stack allocation. And Hotspot has always done inlining. I don't want to overstate the slowness of doing string concatenation naively -- it's not as deadly to performance as it was in Java 1.0 -- but it's still good to avoid it if you're going to be calling it frequently, to avoid unnecessary gc overhead if nothing else.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org