Practical object oriented game design in Java

From Wikiversity
Jump to navigation Jump to search

This learning trail is part of a community project to develop an original open source educational game while learning how to design and software engineer games in conjunction with 3D Graphics specialists, players, and audio performer and specialists. We are using a massively concurrent approach which will stabilize toward individual water falls for each major release.

To study, hack and/or software engineer here effectively please begin learning or reviewing Java as necessary at the Introduction to Java course put link here to existing course when find again. Beginners may find it beneficial to go talk to the game designers and find out what they need concurrently with studying Java. Mirwin 07:35, 7 November 2006 (UTC)

Drafting a Release Plan[edit]

As appropriate per community developed plan. Develop and release to developer and the hardy incremental tested builds. Use the developed/stable branch method. We will have many loose ends all the way through this effort so I proposed we do concurrent development with a waterfall approach leading to each planned stable release.

In .1 we would like to have the java based mud tool selected or actively under development with some kind of applet delivery and execution framework in place.

In .2 we should be getting close to alpha testing on our dedicated java MUD server even if we have to simply hardcode the damn thing specifically. This will be easier if we can find someone's existing product to embrace or project to join and assist them with.

In .3 we should have some prototype level artwork running and a couple of playable applets running standalone

In .4 A mainstream open source game should be communicating with our cisLunarFreighter game as part of the overall world model the MUD delivers to its clients. I suggest a communication link between FreeRails (jFreeRails as in java) and cisLunarFreighter in the form of a SpacePort mod for jFreeRails (Which we can use with jFreeRails even if the community their does not like our proposed mod, is open source great or what?). While we are modding we can look over their bookkeeping modules and see if they will work for our MUD clients, if they can be improved or if we will have to do our own persistent bookkeeping for the clients.

.5 some polished artwork looking good on top of robust code.

I am a little vague on what capabilities we should have to get to further fractions.

  • Certainly map, facility and spacecraft editors
  • I understand good security must be designed in to protect the community from maverick modders who simply cannot enjoy a good thing fairly
  • ...

1.0 Excellent art on very robust code and a solid development process with testing servers and deployed operational servers.

2.0 We get some serious notice from gaming magazines.

3.0 We have won some awards for merit.

In between the above 30 major releases we will obviously have to be meeting upgrade requirements to keep stuff running in the face of library and component updates completely out of our control. We need to run on majority of standard JVMs out there that are complying with standards.


===Getting Started===[1]

I am using the Beans IDE which imported and compiled the existing jFreeRail release quite nicely using the bundled Ant script.

There is a project here at Wikiversity to enable Java applets from the pages served by the mediawiki software.Interactive_labs_(Java_applet) This is probably applicable to our learning requirements as we research how the java games MUD environment should work.

There is a list of roles we need filled at the parent learning trailA_Hands-On_Introduction_to_Game_Design_and_Production_Processes#Detailed_Game_Design which includes SourceForge Adminstrators. CisLunarFreighter soon to be at Sourceforge also needs a founder. I am not familar with SourceForge but I will do it in a few months if nobody else does) and Package Distributors.

We may wish to evaluate JOGL or VRML or some other object oriented technologies and game engines (ODE? physics?) because our initial core modeler and animator is object oriented and written in .... Java! We might get some large component for free in our MUD if we do a good search and analysis of what is already available.

We need to develop a course to teach our game designer and artist and player how to make an effective bug report.

We need a automated regression testing and test and deployment plan that uses modern automate tool like ANT effectively to keep our workloads on our volunteers reasonable.

Case Studies[edit]

What is a case study and a case diagram? Similarities and differences. Is one used to support the other?

The script writers and game designers have started posting stories A_Hands-On_Introduction_to_Game_Design_and_Production_Processes#Operations_or_Mission_Scenarios.2C_UML_Case_Studies.2C_Story_Shorts_for_Animation_Clips_or_Sound_Clips and scripts related to the community learning project cisLunarFreighter. Perhaps these may be data mined to discern how the GUI user interface should work and what/how the user will be interacting with the game and MUD which support it.

Case Studies and Diagrams might be needed for the following: game player MUD administrator software developers software maintainers artwork developers sound effect developers

Also need operational scenarios describing the production processes of modifying and submitting data components for integration and publishing. Maybe data flow diagrams would be useful for documenting process even though developing and documenting the development process is not exactly part of the object oriented design we will not get far on the learning project without it. Mirwin 15:25, 7 November 2006 (UTC)

Design Issues[edit]

Where is the boundary between the game and the MUD client? Considering Java applet's do we even need a MUD server? Is the MUD server really just a universe model in the Model View Controller pattern with extremely good multiuser support?

Some game applets are realtime while others are not how will the universe model handle updates between the two? Will a mission approach work ... comprehensive updates at time of mission completaion and game shutdown? How to handle weekly weekend warrior beer guzzling parties vs. everyday after homework for an hour?

  1. asd