Frame By Frame
The many pieces of a video game
In its own way, game programming is like enterprise development, in that both are defined not by the programming techniques and API's used so much as what the final result is. Moreover, each of them is such a broad and deep endeavor, that significant work requires touching on many different programming concerns. Consider how Java EE involves persistence, business logic, management, messaging, handling XML, etc. Well, a game is similar in that the game developer needs to master 2D and 3D graphics, sound, GUI, input devices, in-game physics, possibly networking and concurrency... and generally with an extreme attention to performance. After all, most people don't sit with stopwatches to see how fast your webapp is, but lots of people turn on the frame-rate display of their favorite first-person shooter to see how fast their hardware is running the game.
Today's Feature Article, is not so much a "how to make a game in Java" article as it is a presentation of how the various pieces of one such project were put together. Evangelos Pournaras created a car racing game for his undergraduate thesis, using JOGL, JOAL, and java.nio. In Development of a 3D Multiplayer Racing Game, he describes how the pieces fit together, what he learned along the way, and what might come next.
JautOGL's technologies seem to make an interesting solution for games development. Although there is difficulty in object-oriented expression between Java and the procedural OpenGL and OpenAL, well written applications and deep knowledge of the technologies can overcome the difficulties. JautOGL can be improved and integrated.
linuxhippy praises JDK 6's performance and questions the accuracy and utility of benchmarks inRe: Java SE Out-of-Box Performance Comparision , featured in today's
Forums.
"I saw quite the same figures from every company creating their own JVM, with the difference that their particular JVM took the lead. Mustang/JDK6 is a great JVM and I really can recommend it since it provides quite good performance everywhere and has almost no weaknesses. It _scales_, performs good and is rock-solid. No other VM I came across is so highly tuned and optimized ... its just a beautiful piece of software However benchmarks like the above one ... well ... "
Reprising an all-too-familiar question,
in_monu would like to start developing a
Swing Application and doesn't know where to begin:
"I am a JavaEE developer and new to desktop java. I am looking to develop a small library management application using swing/jfc and looking for the best practice to develop desktop applications using java. Can some one please tell me the good desktop-framework to start with, or is there is any tutorial available for building a complete swing based application from scratch. Thanks in advance.."
In Java Today,
ONJava writer Sunil Patel answers the question
What is Java Content Repository?
by looking at the JSR that supports it:
"JSR-170 defines itself as 'a standard, implementation-independent way to
access content bidirectionally on a granular level within a content
repository.' He goes on to define a content repository as 'a high-level
information management system that is a superset of traditional data
repositories, [which] implements content services such as author-based
versioning, full textual searching, fine-grained access control, content
categorization, and content event monitoring.'"
Many printers use Printer Command Language (PCL) to communicate between the driver and the printer. The drawback of using PCL files is that they are packaged as preset files, meaning you are unable to simply open, edit and select individual pieces of a document to be printed. The PCL-Parser is an easy to use application that quickly parses large PCL files into separated pages allowing you to print specific pieces of a document.
Fuzz testing is a simple technique that can have a profound effect on your code quality. In the article Fuzz testing, Elliotte Rusty Harold shows what happens when he deliberately injects random bad data into an application to see what breaks. He also explains how to use defensive coding techniques such as checksums, XML data storage, and code verification to harden your programs against random data. He concludes with an exercise in thinking like a code cracker -- a crucial technique for defending your code.
Kelly O'Hair considers issues for Build Machines and Test Machines in today's Weblogs: "Just thought I'd touch on a subject that some people forget about when having to build products that will run on many different machines. Building and testing on a single machine is easy, building bits that need to run on dozens of different machines is the hard part."
In Languages Evolution: introduction of new keywords, Rémi Forax says:
"When you want to add features to a language without breaking backward compatibility, a widespread idea that you can't add new keywords. I prefer advocating to change the way lexer works."
On a personal note, David Herron shares some
Lessons in living from a quadrapalegic friend:
"Recently my friend Ed Bennett died. I'd lost track of him, and it was interesting that I learned about his death because of a comment left for me on this blog. He and I had in the 1980's led an open source project which I've written about before. Over the weekend a memorial service was held for him, and I learned something which is intriguing me."
In today's java.net
News Headlines :
- Ganymed SSH-2 for
Java Build 210 - SQLiteJDBC 025
- YourKit
Java Profiler 6.0-EAP-build1076 - AgileTrack
0.7d - Antmod 1.3.2
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using our
news submission
form. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the
href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News RSS
feed.
Current and upcoming Java
Events :
- October 11 - NL-JUG: J-Fall
- October 13-15 - Bay Area Software Symposium 2006
- October 18 - JUG Ancona Meeting
- October 20-22 - Greater Toronto Software Symposium 2006
- October 23-25 - The Ajax Experience: Boston
- October 24-27 - Java Training Philippines
- October 27-29 - Lone Star Software Symposium 2006: Dallas Edition
- November 3-5 - Northern Virginia Software Symposium 2006: Fall Edition
- November 10-12 - Rocky Mountain Software Symposium 2006: Fall Edition
- November 17-19 - Great Lakes Software Symposium 2006
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e">events submission form.
All submissions go through an editorial review before being posted to the
site.
Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed. Also, once this page is no longer featured as the
front page of java.net it will be
archived along with other past issues in the
href="http://today.java.net/today/archive/">java.net Archive.
The many pieces of a video game
- Login or register to post comments
- Printer-friendly version
- editor's blog
- 477 reads





