Developing innovative teaching approaches have been one of the important topics in developing
computer science curriculum. An innovative teaching approach has two important aspects.
One is that the teaching method should be able to let students see the effects of their programming
efforts immediately so that programming will engage students and attract their attention;
the other is that the contents of materials would have a connection with the real world, especially
with the industry setting.
In order for students to easily see the effects of their programming efforts, many different
approaches have been developed, such as the robot approach, the multimedia approach, the
gaming approach, the virtual reality approach, and the like. For connecting with the real world,
the more industry-oriented materials have emerged. In order to support these new teaching
approaches, we would like to develop teaching materials that emphasize on visualization and
animation with practical flavor. Hence, video game development is our choice.
A video game is an integration of humanity, mathematics, physics, arts, artificial intelligence,
graphics, visualization, animation, sounds, images, programming, and so on. Therefore,
discussing all these fields in the video game context will further encourage students to have a
passion for sciences, especially for mathematics and physics. In addition, game industry is
developing rapidly. Video game development connects with industry setting ever more so than
before. The size and complexity of a video game can be tailored for students to handle and a
video game can be further extended by imagination without boundaries. For implementing a
video game, all features of object-oriented programming (OOP) and component-oriented programming
(COP) can be applied. Consequently, video game development is not only for creating
games with fun but also a well pedagogical method for teaching OOP and COP.
Video game development is a vast topic covering many areas. We would like to focus ourselves
to the 2D video games with the purpose of teaching OOP programming technologies.
Video game development is challenging because it is really a problem solving process. It really
is a great topic for training brainstorming and logic thinking. Meanwhile, learning programming
is by doing. Consequently, the key approach for solving problems is practice. As people
say, “Practices make perfect.” Fortunately, video games have a special key feature: interactivity.
Interactively talking with a video game and interactively developing and ultimately playing
the developed video game will engage students’ imagination and keep their attention fully.
Specifically, this book intends to teach Java programming through the developments of
video games. That is, learning Java programming is the goal and video games are the topic. In
addition, the book tries to build up software architecture for video games so that after students
finish this book, they will be able (1) to familiarize themselves with the Java language for programming;
(2) to develop a general architecture for video games; (3) to increase the ability
forward analyzing problems and solving problems. Usually games are decorated with many
beautiful images. In order to reduce the complexity, the book is not going to use many images,
but concentrates on the technical aspects of programming.
Author(s): Chong-wei Xu
Edition: 1
Publisher: Springer
Year: 2018
Language: English
Commentary: True PDF
Pages: 563
City: Berlin/Heidelberg
Tags: Programming;Game Development;Java
Front Matter ....Pages i-xxiv
Front Matter ....Pages 1-1
Java Programming and Game Development: A Project HelloWorld (Chong-wei Xu)....Pages 3-15
Basics of Java Programming: A Project PrintXmasCard (Chong-wei Xu)....Pages 17-38
OO Programming Principle: A Game In-Text GuessInt (Chong-wei Xu)....Pages 39-58
UML and Its Usage: A Game WheelFortune In-Text (Chong-wei Xu)....Pages 59-81
Front Matter ....Pages 83-83
GUI Programming with Graphical Drawing: A Project PaintXmasCard (Chong-wei Xu)....Pages 85-105
Java Software Components and Event Handling: Projects CalculatorApp and ImageSlider (Chong-wei Xu)....Pages 107-129
Event-Driven: Adding a GUI for the Game Anagram In-Text (Chong-wei Xu)....Pages 131-154
Event-Driven with an Update-Repaint Chain: A Game Blackjack (Chong-wei Xu)....Pages 155-180
Key Control: A Game Sudoku (Chong-wei Xu)....Pages 181-204
Mouse Control: A Card Game Agnes (Chong-wei Xu)....Pages 205-230
Front Matter ....Pages 231-231
Animation Programming: A Digital Clock and an Analog Clock (Chong-wei Xu)....Pages 233-256
Merging Visualization, Event Driven, and Animation: A Game WheelVideo (Chong-wei Xu)....Pages 257-284
Animated Sprites and Collisions: A Game Pong (Chong-wei Xu)....Pages 285-304
Multiple Screens: An Extension of the Game Pong (Chong-wei Xu)....Pages 305-329
A Three-Layer Software Structure for Games: A Game PongStruTwo (Chong-wei Xu)....Pages 331-352
Usage of the Three-Layer Structure for Games: A Project SymBall and a Project Tornado (Chong-wei Xu)....Pages 353-373
Image Sprite and UML State Machine: A Game Breakout (Chong-wei Xu)....Pages 375-396
Sound Effect and Composite Class: Enriching the Game Breakout (Chong-wei Xu)....Pages 397-416
Changing the Structure of Sprites Dynamically: A Game Worm (Chong-wei Xu)....Pages 417-435
Chess-Like Games: A Game Othello (Chong-wei Xu)....Pages 437-461
An Introduction of Artificial Intelligence: Extensions of the Game Othello (Chong-wei Xu)....Pages 463-483
Front Matter ....Pages 485-485
Visualizing Sorting Array Algorithms (Chong-wei Xu)....Pages 487-510
Animating Conversions Between Binary and Decimal (Chong-wei Xu)....Pages 511-534
Animating Binary Arithmetic Computations (Chong-wei Xu)....Pages 535-561
Back Matter ....Pages 563-563