Topic: Summer coding project - SFC clone in Java - need design book suggestions  (Read 1785 times)

0 Members and 1 Guest are viewing this topic.

Offline Lepton

  • Lt. Commander
  • *
  • Posts: 1620
For the heck of it, I thought I might try to code up some sort of SFC clone in Java, basically some sort of two ship demo.  I have a little Java experience but absolutely none in really coding an OOP application.  The game engine I will likely be using is JMonkeyEngine which will help alot, but I have no idea of how to go about defining appropriate classes or how one really goes about designing an application, let alone a gaming application.  I am looking for suggestions on books to read or sites to visit that will help me get an idea about how people do this sort of thing, which is nothing of what I got in my Java class.  I am pretty much a planner.  I don't like to experiment until I know something so I am looking to know something before I start stumbling about in this endeavor.  All suggestions welcome except the suggestion to code it in C++.  I don't know that language.  Thanks.


System Specs:

Dell Dimension E521
AMD64x2 5000+
2G DDR2 RAM
ATI Radeon HD 4850 512MB GDDR3
250GB SATA HD

Offline Nomad

  • Lt. Junior Grade
  • *
  • Posts: 134
Be perpared to spend several months and write about 100,000 lines of code.

Offline Lepton

  • Lt. Commander
  • *
  • Posts: 1620
That's all well and good, but without the conceptual foundation, I won't be attempting anything.  So if you have some reading sugggestions, I welcome them, but if you intend to dissuade me in some manner, that I don't need.


System Specs:

Dell Dimension E521
AMD64x2 5000+
2G DDR2 RAM
ATI Radeon HD 4850 512MB GDDR3
250GB SATA HD

Offline NuclearWessels

  • Evil Dave
  • Serverkit Development Team
  • Lt. Commander
  • *
  • Posts: 1249
  • Scripter and general nuisance
    • NukeDocs
One thing I'd advise is start with a couple of itty bitty versions, with an extremely minimalist feature set, and be prepared to throw out these initial versions and designs later, since your design skills will evolve considerably as you get a bit of experience with it -- and to get something you'll be happy with you're probably going to need to advance through a few stages.

Anyway, assuming you've got decent reference links for monkeyengine (google seems to come up with a reasonable supply), and you've got enough specifications available (SFB) to kill a horse, I guess the two things you're hunting for are a decent OODesign book   and a decent games programming book (both preferably with a Java bent) plus lots and lots of examples to study and dissect.

<rant>
The problem I find is that most OODesign books get hung up on their own brand of terminology and processes without really giving a useful illustration on how to apply it to things other than their pet demo.  On the other hand, most language specific books manage to spew out hundreds of pages without getting into any real useful depth.  Meanwhile, most games programming books are very specific to a particular language/engine and don't generalize well.  Not meant to be discouraging, it's just that I've spent a lot of time over the last 10 years looking for really good C++/Java books for use in teaching and haven't found any I'm really satisfied with.
</rant>

A decent place to start might be here:

 Jeff Kesselman's FAQ on Java Game Programming: http://wiki.java.net/bin/view/Games/JeffFAQ

A few of the (possibly) relevant books (most are available used for about $20) include:
 Practical Java Game Programming (Clingman et al)
 Killer Game Programming in Java (Davison)
 Advanced Java Game Programming (Croft)

hope that helps a little bit, I'm really a C/C++ guy at heart
dave

Offline Lepton

  • Lt. Commander
  • *
  • Posts: 1620
Those were the books I had come across.  If these are the best out there, then I suppose those will have to be it.  Thanks for the link.  I will check it out.  I share your frustration with books that attempt to address OO programming.  I have yet to see a language specific book that really addresses design issues.


System Specs:

Dell Dimension E521
AMD64x2 5000+
2G DDR2 RAM
ATI Radeon HD 4850 512MB GDDR3
250GB SATA HD

Offline Magnum357

  • Lt.
  • *
  • Posts: 641
I agree with Nomad on this, be prepared to write a program with 10,000 lines of code up too even a 100,000.  I would suggest making small prototypes as first, each one focusing on certain aspects of the game design (ie. like SFC Movement Physics, SFC type Phaser Fire, SFC type Photon Torpedo operation).  Once you got the prototypes down pat, try too work on combining them into one engine with lots of testing.  Like Lepton said, the lone programmer can only hope to make a game like SFC by building it small chunks, but it will still take considerable time.

Another think you might want too check out is this site...

www.truevision3d.com

This site is a group of hardcore programmers that wanted to make a 3d engeine based off of DirectX.  It is incredibly easy too use if you know even basic programming skills.  I use VB6 and Truevision can easily handle complex 3D games just with Visual Basic Syntax, heck I'm working on a game right now based off of this engine.  I would recommnd though writing your game in Java first, then take a look at Truevision too see if you ever wanted to port over the code to this fine 3D engine.
"I sure am glad I like SFB!" - Magnum357 (me)

Offline Lepton

  • Lt. Commander
  • *
  • Posts: 1620
I appreciate people's cautions but let me push back just a bit on the idea of that much code to accomplish what I am seeking.  I find it difficult to believe that this much code will be necessary to produce a two ship demo with a very simple AI controlled ship and a human controlled ship.  The JMonkeyEngine has alot of functionality that should make things alot easier.  It's not as if I am writing a whole engine here.  One can add ASE and Milkshape models among others to a 3D environ with a couple lines of code.  While I understand this will be no cake walk, I think the size of the code will be rather restricted since I am implementing a very restricted feature set, but then again I have little experience in these matters so I will keep those cautionary remarks in mind.


System Specs:

Dell Dimension E521
AMD64x2 5000+
2G DDR2 RAM
ATI Radeon HD 4850 512MB GDDR3
250GB SATA HD