|
|
Tue-Wed Apr 23-24
Mon-Thu Apr 15-18
Sat Apr 13
Thu Apr 11Chapter 8 from Pechtel posted.
Three important presentations from this year's JavaOne conference added to the web site:
Sun first participated in the GDC last year (2001).
Here's a link provided by Andy and Wes from their visit to GDC this year (2002):
This is from a white paper entitled "Java technology for Creating Games Content".
Mon Apr 8
Sat Apr 6
Thu Apr 4
Thu Mar 28
Thu Mar 21
Thu Mar 7/l/www/classes/a348/t540/lectures/five Today we will install a binary version of Tomcat 4.0 and look at servlets. We will also develop another web chat, that distributes its client-side automatically and starts its server-side component on-demand (it's a servlet). Networking will be done in a special way, using HTTP (as opposed to RMI, or SOAP/XML, that is, RPC)
Here's code from cmApplet.java for the game that was posted last time.
protected void keyboardEvent (int k, boolean pressed) {
switch(k) {
case 'h': key[cmEventSteeringCommand.TURN_LEFT]=pressed;break;
case 'k': key[cmEventSteeringCommand.TURN_RIGHT]=pressed;break;
case 't': key[cmEventSteeringCommand.INCREASE_VELOCITY]=pressed;break;
case 'g': key[cmEventSteeringCommand.BRAKE]=pressed;break;
case 'y': key[cmEventSteeringCommand.CLIMB]=pressed;break;
case 'i': key[cmEventSteeringCommand.DECENT]=pressed;break;
case 'u': key[cmEventSteeringCommand.PITCH_DOWN]=pressed;break;
case 'j': key[cmEventSteeringCommand.PITCH_UP]=pressed;break;
case 'a': key[cmEventWeaponCommand.FIRE]=pressed;break;
case '1': key[cmEventWeaponCommand.MINICANNON]=pressed;break;
case '2': key[cmEventWeaponCommand.MISSILE]=pressed;break;
case '3': key[cmEventWeaponCommand.BOMB]=pressed;break;
}
}
This tells you how you can play the game. But I am sure you have figured this out already.
Thu Feb 28
Mon Feb 25
Dear friends, this class will eventually exceed your expectations!
Thu Feb 21
(All classes can be found in
/l/www/classes/a348/t540/lectures/ten/bbx)
Lecture
notes for today are here.
Here's a game like the one Jason wants to implement. Here are a number of books that I purchased recently, and that I plan to summarize during the next month for the class:
This in addition to the books we are already using:
(which mostly provide the code and case studies,) and
(which give a more theoretical, broad overview of the field.)
For now we need to keep working at establishing the basics. Today we
complete the hockey game and continue to learn to use App3DCore.
Here's the applet we implemented last time, as discussed it has some flaws, but that's because we are working
with a gimped version of the package, to keep things small. This new
example uses the full package and does not have any of the flaws of the
simple program studied last time.
Thu Feb 14I also want us to look at this:
.jar
Thu Feb 07
Thu Jan 31
Wed Jan 30
Sockets
Tue Jan 22For all things Apache check A348 web pages.
Mon Jan 21
Thu Jan 17
Wed Jan 16
Thu Jan 10
burrowww accounts
Apache 1.3.22)
We'll start with a presentation of the class/syllabus.
Here's a tentative plan. This is from a letter to myself. I have a split personality.
I hope the new year finds you in good health and good spirits. I have worked on one aspect of the course mostly in the last two weeks and I think I have it figured out now: chapters 11 and 12 in the Black Art, develop a 3D engine and a 3D game. I have them both working, and plan to present them in class. The outline of the class now is: a) We start with a review of several basic Java concepts: inheritance, abstract classes, interfaces, threads, basic GUIs, and event handling. Presentation is at the level of mid-A202 or a bit higher. b) Based on this we develop the Aliens Landing Game. This takes two or three steps, as we refine it gradually. When done the game is nice, it works as an applet, so software distribution/installation is free, but there's not much networking, and no multiplayer component. c) We take a look at network programming in two stages: first we add a high score server so different players communicate (at least,) through the standings (top ten scores). Second stage, we implement a real-time communication framework, by building a chat room. d) Now we move into a multiplayer environment with two case studies: a version of Othello (two players play, described in the book,) followed by a version of Worm (that's described in the book, to which we'll add the networked component). e) Next step is to look into more advanced techniques. So we summarize (it's about midterm time) and perhaps give an exam etc. then we tackle what may turn out to be the most exciting part: what a 3D engine looks like. This should be done in 2-3 stages too, as there's math inside. I show the complete working programs first, and that should provide an interested reader with enough motivation and incentive to study. f) We see that developing a 3D game (which we will do) is neat, and in some of the complexities, extremely attractive. Inevitably one needs a language to describe a scene that has to be rendered, or a sequence of actions that need to happen. More powerful 3D engines exist, so we now turn to the ones available for Java. g) At this point we write standalone programs not applets. We end with a project that looks at the bigger picture (as in the Rouse book). And I follow a second book that develops a bigger, scalable framework. The framework is described and developed step by step and we ask ourselves and provide some answers to questions about what makes a good game and how (much) Java 3D and Swing APIs can be used in the design. We assess both advantages and (potential) drawbacks. We also can use other types of networking (peer-to-peer) and technologies (RMI, secure sockets, as well as plain HTTP and others). So I am writing to let you know that this is going to be the best most exciting semester ever. The proof, as always, is by construction.
Mon Jan 7
T540 NGD