View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

F02 Final Exam Review: Language Choices

part 1:
Java - it is designed to be platform independent, and with inheritance, a basic form can be made and then specified very easily.

Java is also good for security.

part 2:
C++ - this is the best choice because it is the fastest. C++ would also work well with video cards (hardware acceleration).


I was thinking.. Now since you have Hardware acceleration you do not need to worry about the game by itself being slow... Moreover you need to have it coded as fast as possible. Would it not be easier to do it in Java since it is much easier to code the GUI in Java? Hmm.. but it would be difficult to do any multimedia with it easily? You could also use Squeak because it makes the Multimedia easy of you...

But ofcourse I could be wrong.



The only problem with java is that it will require a runtime that not all machines have. Also, only java1.4+ has full screen active mode rendering utilizing hardware acceleration, and Iím pretty sure most Windows machines do not come with the java 1.4 runtime. However, since it is on a CD, there arenít many problems with putting the runtime on it.

So, if you had to start from scratch and you were required to develop a 2d game (most likely the case given that time constraint), working with java 1.4+ would be most appropriate, simply because its easier and quicker to develop in that environment.

If you were to code the game in 3d, using C++ with an existing engine would be the best choice. In any case, a 3d game would require a preexisting engine; otherwise you might as well forget it in the time constraint given, unless you had a massive team of programmers/artists.


part 3:
C++ - again it is the fastest and for database purposes this is probably the most important. C++ is based on C, which is a well-known language with a lot of documentation, so it will be easy to maintain the rewrite.



I was thinking of Java for this too.. Since Java is very easy to understand due to its API and also it is easy to maintain because it has a very good Documentation in Javadoc.


I agree with Huzaifa. Also concerning the databases aspect of the question, JDBC/ODBC connections are quite stable and its API is also very detailed.




part 4:
Squeak - it can work with images and multimedia, so I feel that it would be a good choice for the MPEG library. Although, after looking at the "compute intensive" part meaning that it will need a lot of the processor's time, I am starting to think that C++ might be a better idea.


part 5:
C++ - because of its image/3D capabilities, along with DirectX and openGL. Also, since the game is also "compute intensive" and will run on the players' computers, C++ will be a good bet for allowing the game to be played since C++ is the fastest.



I know almost nothing about C++ but given the reason above I would have to agree. Any OO based language would work well here I think in terms of design. You are basically recreating the same basis with small changes based on user. That's my opinion anyway.



Why not squeak for this one? Squeak is all about 3D, with its Morphic capabilities player defining will be made easier in Squeak and i think it will be easier in squeak to have code executed locally during the game.



ďThe game requires heavy, compute-intensive 3D rendering.Ē
This fact alone makes C++ almost a necessity. Considering that nearly all commercial games are written in C/C++, favoring C++, most of those engines are also going to be written in C++. Since most companies donít want to reinvent the wheel, using one of these engines designed for computationally-intensive 3D rendering surely limits your choices =)

As for the networking size, it seems like they want to use a fat-client/thin-server architecture. This puts more stress on the client, thereby speed will definitely become a bottleneck Ė another point for C++.

Considering this sounds very similar to games already out there, might as well use C++ and their design, since design patterns are important, right?



part 6:
C++ - it's fastness will be good for passing around bits.


Again I have to go with java(Or any OO language). It seems the inheritance would come into play here about changing the programmed behaviors for the game.


I'd have to say, since this is an addition to the previous, stay with C++. Also, this type of thing has already been done very well using scripts in C++, so that's definitely an option. This seems to be the standard in the industry.



1. Java is cross-platform, object oriented, and safe. Features like RMI (Remote Method Invocation) can allow for the instantiation of propriety networking protocol that can actually be changed through CustomSocket factories with absolutely no change to the rest of the implementation. Java is run via a VM, meaning additional safety can be assured as its validation of IR (intermediate representation) bytecode language. Its object oriented abilities are perfect for the specific addition of forms and their respective GUIs through inheritance.

2. Dolphin (www.object-arts.com) is a commercial, Windows-only Smalltalk development environment allowing for rapid development (they said they wanted it up in two months) in a "pure" object oriented fashion. It has plenty of Windows-specific functionality like DirectX (for making games), can interact with different kinds of real databases and uses TCP/IP for network interactivity. Dolphin programs can be run inside the environment, but since this game is going to be distributed on a CD by a commercial company, its ability to produce a native-code binary makes it a good candidate for a project like the one described.

3. A project such as this one demands speed, so I'll choose C++. It's quick (can be dangerous if not used carefully) and maintainable if programmed in a non-hackish manner. Since the project is being undertaken by hundreds of programmers, a commonly-known language like C++ might serve as an appropriate segue to the timely completion of such a project.

4. This project again merits C++ for its ability to directly interface with the hardware of a particular machine.


Sounds to me like a "Choose Squeak if you want credit" question...

Link to this Page