• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Archived

This topic is now archived and is closed to further replies.

Jerry Lynn

[java] Topic #2: State of Java Game Development

6 posts in this topic


Original Post: I thought that it might be interesting to start a series of discussions on the state of Java game development. I’ll throw a question out and if everyone seems interested I can continue to throw out additional topics every couple of days. If we get some good comments I will sum everything up in an article (maybe add a little additional research) and submit it to this board.
Topic #2: Java Game Development For the Amateur - What does Java have to offer for the First-Time or Amateur game developer? - What are the major “gotchas” that less experienced developers should be aware of when approaching a game development effort in Java? - What, if any, skills would an amateur learn developing games in Java that would be transferable to more sophisticated projects typically developed in C or C++?
0

Share this post


Link to post
Share on other sites
1) IMHO, in pure Java there's less of a hassle with graphics initialization than in C/C++ with DX (or espescially in DOS) which allows a newbie to focus more on the aspects of good gameplay, AI, physics, tile engine techniques, etc... Most Java books I've seen teach basic sprites and double buffering.

My first game was in Java and was much simpler to get going than my first Dos C game (until I got Allegro ) For me, it was a good thing. For others, I don't know.

2) The only pitfall I hit in my early Java days was optimization. Getting the framerate to an acceptable level isn't so tough, but getting it to a GOOD level is (or I guess was) not an easy thing for a newbie. I'm sure things have changed by now. I haven't written any performace crtical Java stuff in a while. But while optimizing Java may not be easy for a newbie, it still has the added benefit of being a good learning experience.

3) Transferable skills? Optimization!!! Also, I believe it's easier to learn good OOP skills (in the traditional sense)than in C++. The design skills I picked up in Java aided me in applying OOP to my C programs as well. While I don't use classes much with C++, my design is still distinctly OO, a skill you can't help but pick up when using Java.

Edited by - Aldacron on 2/7/00 7:30:11 PM
0

Share this post


Link to post
Share on other sites
Hey, optimization is cooool!!! I love to do it!! I think one of the biggest pitfalls is choosing between applet and standalone... It sucks, because most of the books teaches only applet stuff and just scrath standalone and it''s swing I had to learn this tough way, When I moved my first worm game to standalone I had to work almost a week to get it working..
0

Share this post


Link to post
Share on other sites
Java is much simpler and with less "hairballs" than e.g. C++. Of course same could be said of many languages likes Visual Basic, but what Java offers is real object oriented programming.

I myself have learned first Java several years ago, then moved to C++ programming, but have now returned "back to the roots" of Java programming. What I noticed that having learned OO in Java gave me a slight edge to those people moving to C++ from C/Pascal/Basic coding.

The main gotchas are IMHO the graphics oddities (that fortunately are explained in almost every Java programming book), like having to make sure a "window peer" has been created before you can create an image using dimensions.

Transferrable skills are (to name a few): OO programming, interface based programming, multithreaded programming, event driven programming. Also every programming pattern can be applied under Java and C++ in more or less similar fashion.
0

Share this post


Link to post
Share on other sites
Java is easy. New game developers already have enough to learn…

- timing loops, data structures such as b-trees, mathematics involved in vectors, optimizations such as collision detection, etc… –

…the last thing that you want to have to worry about is complex language syntax and structure.

If your game has any kind of multi-user support you will find network programming in Java heaven compared to what you will experience in C++.

I have seen a couple of posts mention VB as a possible way to get into game development. They site the ease of use and the power of DirectX. Having built a 2D Isometric engine in VB and DirectX, I can tell you that I disagree with this point of view.

While it was initially easier to start a game in VB it turned out to be a major pain in the south side. The language is too limited and you end up developing a lot of extra code as a work-arounds for the lack of constructors, implementation inheritance, and the inability to implement commonly used programming patterns (like the singleton pattern). My experience was that as my game progressed it became more and more difficult to effectively implement new features in VB. Within the scope of one game project I “out grew” the language. Even if you are interested in using DirectX as your multimedia library you could still use J++ rather than VB.

I can’t say for sure (since I learned to program in C++ before Java), but I think the skills you learn in Java are more transferable to C++ than Visual Basic.

The biggest problem I have had getting into Java game development was the lack of reference material. I have only found two books on Java game development (“Black Art of Java Game Programming” which is almost 5 years old and the excellent “Java Game Programming for Dummies”). Neither of those books addressed using the more advanced graphics capabilities of the Java 2D API or Java 3D (they were written before those API’s were available). I could only find 2 books on the Java 2D API, and only one of those was really useful. There are NO books available on Java 3D. This is compared with a couple of shelves full of books on C++ game development and DirectX.

The references available on the Web can be useful, but the material is not organized very well and may be very hard to find if you are new to game development.
0

Share this post


Link to post
Share on other sites
Remember that some parts of the console code are actually faster than in C++, The biggest bottle cap what you''ll meet is the UI, it''s code is slow. I got this one from one guy from another board and I don''t know if he wants to release his name, well I won''t do it...

I wish they could build something like directX to java in crossplatform version, It would really get some oldest C++ dudes to look at Java...
0

Share this post


Link to post
Share on other sites
1) First time game developers have an easier time with Java, especially in the graphics department. If I were going to write a C/Direct X program, I would need to write the core system, a bunch of drawing routines, image loading routines, GUI stuff, and all sorts of stuff that are built into the AWT. I can put up a working game in a matter of hours from scratch, and it will be 100% JAVA, work on all non-wacky JVMs, works on all resolutions and color depths. You can''t do that with Direct X. Granted, you don''t have to start from scratch.

2) I think when people start programming Java, they mistakenly approach it from a C++ point of view. They spend their time lamenting its lack of templates or multiple inheritence, and go to great efforts to build that into the system. I''ve seen a lot of people whose first project for Java was to write Direct X drivers.

There is a lot of really neat things that you wouldn''t think of if you approached from a direct x/c++ background. For instance, you can use Canvas components to create modular interface components. By adding and removing these components, you can make things very dynamic. For instance, in an RPG, you could remove the map Canvas and replace it with the inventory Canvas. This is a great Object Orientated way of approaching graphical areas. Rather than drawing on a single applet, this modular approach can be VERY neat. Check out JavaWorld for the ..what was it called... some sort of BBS system using a Card Layout. Geez, can''t remember what it was called.

3) Java isn''t as nice as C as far as letting you get away with the wrong thing. It is very well organized, and it requires you to follow suit. By having experience using Java, you will get a better structured environment to learn and grow with Object Design. Believe me, Java will make you a better programmer....Hell, I won''t program in C++ anymore because it has just become ugly...
0

Share this post


Link to post
Share on other sites