/Fdf

This project is about creating a simplified 3D graphic representation of a relief landscape.

Primary LanguageC

FDF

Pedagopedago@42.fr

Summary: This project is about creating a simplified 3D graphic representation of a relief landscape.

Contents

  • IForeword
  • II Introduction
  • III Objectives
  • IV General Instructions
  • V Mandatory part
  • VI Bonus part
  • VII Submission and peer correction

Chapter I

Foreword

This is what Wikipedia has to say aboutGhosts’n Goblins:

Ghosts’n Goblinsis a platform game where the player controls a knight, named Sir Arthur, who must defeat zombies, ogres, demons, cyclops, dragons and other monsters in order to rescue Princess Prin Prin, who has been kidnapped by Satan, king of Demon World. Along the way the player can pick up new weapons, bonuses and extra suits of armor that can help in this task..

The game is often considered very dicult by arcade standards and is commonly regarded as one of the most dicult games ever released. The player can only be hit twice before losing a life (the first hit takes away Arthur’s armor, and the player must continue on in his underwear until completing the level or finding replacement armor). If the player loses a life, he is returned to the start of the level, or the halfway point if he has managed to get that far. Furthermore, each life can only last a certain length of time (generally around three minutes), the clock being reset at the start of a level. If the clock does run out, the player instantly loses that life.

After defeating the final boss, but only with the cross weapon (if the player does not have the cross weapon, they will be prompted that it is needed to defeat the boss and restart at the beginning of level 5 and must repeat round 5 and 6 again regardless if the weapon is obtained immediately or not) for the first time the player is informed that the battle was a trap devised by Satan. The player must then replay the entire game on a higher diculty level to reach the genuine final battle.

FDF

  • Ports
Many conversions to home computers were produced by Elite Systems.
¶ The Commodore 64 version, released in 1986, is known for its music by Mark
Cooksey, which borrows from Frédéric Chopin’s Prelude No. 20. Due to the
limited resources on the Commodore 64, it was somewhat dierent from the
arcade version. It only features the Graveyard and Forest, The Ice Palace, The
Floating Platforms and Firebridge and The Caves in that order. The player
also starts the game with five lives. The demon that kidnapped the princess
replaces Astaroth in the title screen. Additionally, the cyclops (or “Unicorn”)
is the boss of levels one to three and the dragon is the final boss.
¶ The version for Commodore 16/116 and Commodore Plus/4, also released
in 1986 by Elite Systems, was even more limited than the C64 version. It
was written to work on a Commodore 16, which had only 16 KB of RAM.
Therefore, this version features only two levels and no music. In addition,
the remaining two levels and the gameplay are simplified. For example, in
the graveyard level, the attacking bird, the “plant monsters” and the winged
demon are all missing from the C16 version, and there is only one weapon.
The title screen features no graphics besides the stylised Ghosts ’n Goblins
lettering.
¶ A version for the Commodore Amiga was released in 1990. While the advanced
hardware of the Amiga allowed an almost perfect conversion of the arcade
game, it failed to emulate the success of the Commodore 64 version. The
player starts the game with six lives and no music is played unless the Amiga
was equipped with at least 1 Megabyte of RAM. The standard configuration
of an Amiga 500 was 512 Kilobytes.
¶ The NES version was developed by Micronics. This also serves as the basis
for the Game Boy Color version, which uses passwords to allow the player to
jump to certain levels. The NES version was ported to the Game Boy Advance
as part of Classic NES series, but only in Japan.
¶ The NES version was also re-released for download for Nintendo’s Virtual
Console in North America on December 10, 2007 (Wii) and October 25, 2012
(Nintendo 3DS) and in the PAL region on October 31, 2008 (Wii) and January
3, 2013 (Nintendo 3DS) while the Wii U version was released in both regions
on May 30, 2013. The arcade version was released on the Wii’s Virtual Console
Arcade in Japan on November 16, 2010, the PAL region on January 7, 2011
and in North America on January 10, 2011.
¶ Ghosts’n Goblins was also ported to the ZX Spectrum, Amstrad CPC, MSX,
Atari ST, IBM PC compatibles, Game Boy Color, Game Boy Advance. The
original arcade version of the game was also included in the compilation Cap-
com Generations Vol.2: Chronicles of Arthur for the PlayStation (in Japan
and Europe) and Sega Saturn (in Japan only), which also contained Ghouls’n
Ghosts and Super Ghouls’n Ghosts. The three games (based on their Capcom
Generation versions) were later collected as part of Capcom Classics Collec-
tion. The game was also featured in the compilation Capcom Arcade Cabinet
for the PlayStation 3 and Xbox 360.

FDF

  • Reception
Computer Gaming World called Ghosts’n Goblins "an excellent example of what
the [NES] can do ... while hardly groundbreaking, represents the kind of game
that made Nintendo famous". Ghosts ’n Goblins was runner-up in the category of
Arcade-Style Game of the Year at the Golden Joystick Awards. The NES version
of Ghosts ’n Goblins was rated the 129th best game made on a Nintendo System in
Nintendo Power’s Top 200 Games list. It was also a best seller for the NES, selling
1.64 million units. Ghosts ’n Goblins is often cited as an example of one of the
most dicult games of all time to beat, due to its extreme level of diculty and
the fact the player must play through the game twice in order to beat the game.
  • Legacy
Ghosts’n Goblins was followed by a series of sequels and spin-os eventually be-
coming Capcom’s 8th best-selling game franchise, selling over 4.4 million units. Its
sequels include Ghouls’n Ghosts, Super Ghouls’n Ghosts, and Ultimate Ghosts’n
Goblins in addition to producing the Gargoyle’s Quest and Maximo spin-oseries.
Though originating as an arcade title, the franchise has been featured on a vari-
ety of PC and video game consoles with the latest entries in the series, Ghosts ’n
Goblins: Gold Knights, released on the iOS. Additionally, the franchise frequently
makes cameo appearances—the character of Arthur in particular—in other Capcom
titles, the latest of which being Ultimate Marvel vs. Capcom 3.
Figure I.1: Game’s cover

Chapter II

Introduction

The representation in 3D of a landscape is a critical aspect of modern mapping. For example, in these times of spatial exploration, to have a 3D representation of Mars is a prerequisite condition to its conquest. As another example, comparing various 3D repre- sentations of an area of high tectonic activity will allow you to better understand these phenomenon and their evolution, and as a result be better prepared.

It’s your turn today to modelize in 3D some magnificent landscapes, imaginary or not...

Chapter III

Objectives

In this project you will discover the basics of graphic programming, and in particular how to place points in space, how to join them with segments and most importantly how to observe the scene from a particular viewpoint.

You will also discover your first graphic library:miniLibX. This library was developed internally and includes the minimum necessary to open a window, light a pixel and deal with events linked to this window: keyboard and mouse. This project introduces you to “events” programming. Don’t forget to watch the e-learning videos!

Chapter IV

General Instructions

  • This project will be corrected by humans only. So, feel free to organize and name your files as you wish, but within the constraints listed here.
  • The executable file must be namedfdf.
  • You must submit aMakefile.
  • YourMakefilemust compile the project and must contain the usual rules. It must not recompile and re-link the program unless necessary.
  • If you are clever, you will use your library for yourfdf. Submit also yourlibft folder, including its ownMakefileat the root of your repository. Yourfdf Makefile will have to compile the library, and then compile your project.
  • You cannot use global variables.
  • Your project must followthe Norm.
  • You have to handle errors carefully. In no way can your program quit in an unex- pected manner (Segmentation fault, bus error, double free, etc).
  • You’ll have to submit a file namedauthorcontaining your username followed by a ’\n’ at the root of your repository. $>cat -e author xlogin$
  • You mustuse theminiLibX. Either in the version that is available on the system, or from its sources. If you choose to work with the sources, you will need to apply the same rules for yourlibftas those written above.

FDF

  • For your mandatory part, you are allowed to use the following functions:
¶ open, read, write, close
¶ malloc, free
¶ perror, strerror
¶ exit
¶ All the functions defined in themathlibrary (-lm and man 3 math)
¶ All the functions defined in theminiLibXlibrary.
  • You are allowed to use other functions to complete the bonus part as long as their use is justified during your evaluation. Be smart!
  • You can ask your questions on the forum, Slack, etc.

Chapter V

Mandatory part

This project is about creating a simplified graphic “wireframe” (“fils de fer” in french, hence the name of the project) representation of a relief landscape linking various points (x, y, z)via segments. The coordinates of this landscape are stored in a file passed as a parameter to your program. Here is an example:

$>cat 42.fdf 0000000000000000000 0000000000000000000 0010100010100001010101010000 0010100010100000000101000 0010100010100000000101000 00101010101010000010101010000 00010101010100001010000000 00000010100001010000000 000000101000010101010101000 0000000000000000000 0000000000000000000 $>

Each number corresponds to a point in space:
  • The horizontal position corresponds to its axis.
  • The vertical position corresponds to its ordinate.
  • The value corresponds to its altitude.

FDF

If you execute your programfdfon this file, we should see something like this:

$>./fdf 42.fdf $>

Remember to make optimum use of yourlibft! The use ofget_next_line,ft_split andft_getnbrwill allow you to quickly and simply read data from the file.

Regarding the graphic representation:
  • You can choose the type of projection: parallel, iso, conic.
  • You must be able to quit the program by pressing’esc’.
  • The use ofimagesfromminilibXis strongly encouraged.
  • Find attached a binary calledfdfas well as the example42.fdfinsidefdf.zip).
manmlx

Chapter VI

Bonus part

Here are a few interesting ideas of bonuses to create, or even to use. You can of course add your own original bonuses that will then be evaluated directly by your correctors. You will gain points if you are able to:

  • Fill the boxes with a color according to altitude (green at the bottom, then brown, then white on top for ex.)
  • Specify the color spectrum in parameter.
  • Manage correctly the hidden surfaces.
  • Change types of projection.

Chapter VII

Submission and peer correction

Submit your work on yourGiTrepository as usual. Only the work on your repository will be graded.