Dev Magazine

DEV was one of several magazines published by Infomedia in Italy, a renowned publishing house specializing in scientific and technical publications, which experienced its peak expansion during the 1990s.

By coincidence, I had the opportunity to meet Roberto Casarini, the editor-in-chief of the magazine, who offered me an exciting proposition to be part of their project.

Our primary focus was to write articles on video game development, and we were both incredibly enthusiastic about this idea. As a result, a new section called Game DEV was created within the magazine specifically for me.

Between 2005 and 2006, I had the privilege of publishing 15 articles across nine monthly issues. These articles covered a range of topics, from game creation using Game Maker 6 to exploring OpenGL and discussing the potential of the J2ME platform as a gateway to new horizons in mobile gaming.

Regrettably, the publication of the magazine was discontinued shortly afterward, marking the end of my authorship.

In this section, I take great pride in presenting the original versions of all my articles, meticulously translated into English.

DEV 129 – May 2005

Introduction to GameMaker 6

The article introduces Game Maker, a software that simplifies the process of game development by providing a user-friendly interface and a range of tools.  It emphasizes the power of drag and drop graphical interfaces, which allow users to easily load sprites, sounds, and create characters and levels.

The software supports various features such as OpenGL for 3D game development, multiplayer gaming, and sound effects. It also offers a scripting language called GML and the ability to create external DLLs.

Also the anatomy of a Game Maker game is explained, including objects, rooms, sprites, backgrounds, sounds, and scripts. Particular highlight are put on the ease of creating objects, defining their behavior through events and actions, and using sprites and backgrounds. It also mentions the importance of rooms for object placement and interaction.

In conclusion briefly touches on backgrounds, sounds, and scripts, and concludes by mentioning that Game Maker is not a freeware product and recommends registration for full functionality. It notes that while Game Maker lacks a comprehensive debugging system, the code produced is tested and safe for distribution.

Read article >>

DEV 130 – June 2005

Creating a videogame in GameMaker 6 – part 1 of 3

This article is the first part of a three-part series aimed at creating and distributing a full video game using GameMaker 6. The article focuses on defining the necessary features for the game.

In the introduction, a brief overview of Game Maker 6 is presented, explaining the key concepts needed to create a video game with this development environment. The concept of a “room” is introduced, which is comparable to a game level and serves as an area where objects come to life. Objects are the main building blocks of game creation in Game Maker, representing animated entities that can respond to events and perform predefined actions. The article also provides an introduction to the Drag and Drop interface, which simplifies and accelerates development activities.

The chosen game concept for this series is based on the classic arcade game “Asteroids” from the ’70s and ’80s. However, the author plans to make some changes and enhancements to make it more exciting. The article discusses the essential aspects of the project, such as the gameplay mechanics, the main menu, high scores, and player interactions.

The project organization is also discussed, including the identification of different game components and their responsibilities. The article presents a unified use cases diagram to depict the functionality and interactions between different entities in the game.

The article concludes by outlining the main objects that will be part of the game, including the player’s ship, asteroids, the enemy ship, and bonuses. It describes their characteristics, interactions, and the challenges they present in the gameplay.

In the next article, the development work will begin, focusing on sprites, sounds, and backgrounds, as well as how to prepare the environment and use the built-in tools like the Sprite Editor and Image Editor for graphic refinement.

Read article >>

DEV 131 – July/August 2005

Creating a videogame in GameMaker 6 – part 2 of 3

This article is the second part of a three-part series focused on creating a video game using GameMaker 6. It begins the construction of the game that was proposed in the previous article, exploring the GameMaker environment in more depth and discussing the preparation of resources such as sprites, backgrounds, and sounds.

The article starts by introducing the GameMaker environment and its main window, explaining the menu options and the difference between the Advanced and Simple modes. It also covers the functionality provided by each mode, including sprites, sounds, backgrounds, paths, scripts, fonts, timelines, objects, rooms, game information, and global game settings.

Then I delve into the preparation of the project by creating and organizing sprites, backgrounds, and sounds, how to add sprites to the project, using the Sprite Editor to create animations, and setting sprite properties such as transparency and collision checking. I also discuss the creation of backgrounds using the Image Editor and the addition of sounds with various properties.

Next, the article focuses on rooms, which serve as play areas in the game and how to add objects to the rooms, set room properties such as size and refresh rate, and manage backgrounds and views within the rooms.

The article concludes by mentioning the Global Game Settings, which allow for customization of various aspects of the project, and the Informations page, which provides a mechanism for adding information about the game.

In the next, is explained how to create objects and implement their behavior using scripts in GML (Game Maker Language).

Read article >>

DEV 132 – September 2005

Using OpenGL – part 1 o 4

This is the first part of a four-part series focused on learning OpenGL, a widely used graphics library. The purpose of this article is to provide an introduction to the fundamental characteristics of OpenGL.

It begins by explaining the importance of utilizing powerful 3D graphics hardware in game development and introduces libraries like Direct3D and OpenGL that allow developers to access these hardware features. Provides a brief history of OpenGL, from its origins as IRIS GL to its evolution into an open standard for graphics programming.

OpenGL is described as a software interface to graphics hardware and is known for its portability and speed. It can be used in various software fields that utilize graphics functions, including CAD, scientific applications, and video games. The article clarifies that OpenGL is not a programming language but rather a series of APIs that can be accessed using different programming languages with the help of a special interface.

It explains how OpenGL works with a pipeline system that processes commands given to the API, transforming data and producing the final image, highlighting that OpenGL is designed exclusively for graphics programming and does not include features for managing GUI or I/O devices, which can be supplemented with other libraries like DirectX.

Then an overview of the effects that can be achieved with OpenGL is shown, such as rendering 3D objects, adding color, lighting, shadows, and textures also mentioning additional effects like fogging, blending, and antialiasing.

Next, the article introduces the principles of 3D programming, including the concept of a coordinate system and how OpenGL translates Cartesian coordinates to the screen and the concepts of clipping area and viewport, which control the visible portion of the output and the scaling of coordinates to pixels.

Read article >>

Using OpenGL – part 2 of 4

In this article is introduced the GLUT (OpenGL Utility Toolkit) library and explained its importance in creating platform-independent applications.

The article begins by highlighting that OpenGL is a sophisticated API with over 300 commands for creating complex and realistic 3D graphics. However, OpenGL itself lacks functions for display management, keyboard input, mouse activity, and audio capabilities. The decision to exclude these features was made to maintain platform independence. To address these limitations, the GLUT library was introduced.

Then is discussed the importance of standardized naming conventions in OpenGL functions and the need to handle data types correctly. For this reason it provides a list of the defined data types in OpenGL, along with their corresponding C types and internal representations.

Next, the GLUT library is introduced, explaining that it is a cross-platform library that simplifies the creation of windows, pop-up menus, and the management of input devices like the keyboard and joystick. GLUT is designed to facilitate learning and development but may not meet the needs of commercial applications.

The article presents a basic example program that utilizes GLUT to create a blank window. It explains the function calls used to initialize the display mode, set the window size, create the window, and enter the main event loop and the most used functions for to displaying the rendered image on the screen, for the setting the size and position of the output within the window, and others.

In conclusion, the article covers the basics of using GLUT to implement test applications with OpenGL and suggests referring to the documentation for more advanced features like joystick input, mouse interaction, and 3D texts.

Read article >>

Using OpenGL – part 3 of 4

This this part focuses on working with primitives and introduces different types of shapes that can be created using OpenGL. The article begins by explaining that scenes and objects in 3D graphics are composed of two-dimensional shapes called primitives. It then lists the various types of primitive shapes supported by OpenGL, such as points, lines, triangles, quadrilaterals, and polygons.

Here how to draw each type of primitive shape using OpenGL functions like glBegin() and glEnd() is explained. Some code examples are provided for drawing points, lines, triangles, quadrilaterals, and polygons. It also introduces advanced techniques like using GL_LINE_STRIP and GL_LINE_LOOP to optimize the drawing of lines, and GL_TRIANGLE_STRIP and GL_TRIANGLE_FAN to create chains of triangles.

Then it discusses concepts like back face culling, which allows for the removal of hidden faces, and color interpolation, which creates smooth color gradients between vertices. It also covers depth testing, which helps determine the order in which objects are drawn to create a realistic 3D scene.

It concludes by introducing transformations in OpenGL, including viewing transformations, modeling transformations (for translation, rotation, and scaling of objects), and projection transformations (for defining the visible parts of a 3D scene and how it is projected onto a 2D screen).

Read article >>

Using OpenGL – part 4 of 4

DEV 133 – October 2005

Creating a videogame in GameMaker 6 – part 3 of 3

DEV 134 – November 2005

Build an application in J2ME using MIDP 2

DEV 135 – December 2005

J2ME and graphics

DEV 143 – September 2006

JSR184 – Using 3D in J2ME – part 1 of 3

JSR184 – Using 3D in J2ME – part 2 of 3

JSR184 – Using 3D in J2ME – part 3 of 3

DEV 145 – Novembre 2006

JSR184 in Retained Mode – part 1 of 2

JSR184 in Retained Mode – part 2 of 2