Gå til innhold

Hvilke språk blir brukt til å lage spill?


Anbefalte innlegg

Det lar seg åpenbart gjøre å lage 3d-spill kun ved å skrive Python:

 

Panda3D is a 3D engine: a library of subroutines for 3D rendering and game development. The library is C++ with a set of Python bindings. Game development with Panda3D usually consists of writing a Python program that controls the the Panda3D library.

 

Og til modellering: Blender - som scriptes med Python.

Lenke til kommentar
Videoannonse
Annonse

Doom1 og 2 er nesten helt like, men det er lagt til noen monster, og siden det aller meste er hardkodet i spillet, så er noen forandringer tilstede.

 

Hell knight, Pain elemental, Revenant osv. (fy søren, jeg er nerd...)

 

WAD formatet er forresten veldig enkelt, laget en Map viewer til Doom i VB6

Men jeg fikk ikke helt med meg BSP oppstyret.

Lenke til kommentar

//
// IdentifyVersion
// Checks availability of IWAD files by name,
// to determine whether registered/commercial features
// should be executed (notably loading PWAD's).
//
void IdentifyVersion (void)
{

   char*   doom1wad;
   char*   doomwad;
   char*   doomuwad;
   char*   doom2wad;

   char*   doom2fwad;
   char*   plutoniawad;
   char*   tntwad;

#ifdef NORMALUNIX
   char *home;
   char *doomwaddir;
   doomwaddir = getenv("DOOMWADDIR");
   if (!doomwaddir)
   doomwaddir = ".";
  
   // Commercial.
   doom2wad = malloc(strlen(doomwaddir)+1+9+1);
   sprintf(doom2wad, "%s/doom2.wad", doomwaddir);

   // Retail.
   doomuwad = malloc(strlen(doomwaddir)+1+8+1);
   sprintf(doomuwad, "%s/doomu.wad", doomwaddir);

   // Registered.
   doomwad = malloc(strlen(doomwaddir)+1+8+1);
   sprintf(doomwad, "%s/doom.wad", doomwaddir);

   // Shareware.
   doom1wad = malloc(strlen(doomwaddir)+1+9+1);
   sprintf(doom1wad, "%s/doom1.wad", doomwaddir);

    // Bug, dear Shawn.
   // Insufficient malloc, caused spurious realloc errors.
   plutoniawad = malloc(strlen(doomwaddir)+1+/*9*/12+1);
   sprintf(plutoniawad, "%s/plutonia.wad", doomwaddir);

   tntwad = malloc(strlen(doomwaddir)+1+9+1);
   sprintf(tntwad, "%s/tnt.wad", doomwaddir);


   // French stuff.
   doom2fwad = malloc(strlen(doomwaddir)+1+10+1);
   sprintf(doom2fwad, "%s/doom2f.wad", doomwaddir);

 

...med andre ord er Doom II Doom I med litt ekstra kode og osv. (?)

 

 

Apropos hardkodet, jeg synes denne linjen var litt interessant (...):

sprintf(name,"c:\\doomdata\\"SAVEGAMENAME"%d.dsg",savegameslot);

 

 

A_N_K:

// Emacs style mode select   -*- C++ -*- 
//-----------------------------------------------------------------------------
//
// $Id:$
//
// Copyright (C) 1993-1996 by id Software, Inc.
//
// This source is available for distribution and/or modification
// only under the terms of the DOOM Source Code License as
// published by id Software. All rights reserved.
//
// The source is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
// for more details.
//
// $Log:$
//
// DESCRIPTION:  none
//
//-----------------------------------------------------------------------------

 

Hva slags lisens er forresten Quake 3 under? Kunne vært interessant å se gjennom koden.

Lenke til kommentar

Jeg mener å huske å ha sett noe om at doom3 var det første spillet der ID brukte c++.

jeg har bare sett koden til quake 2 og det er C.

men etter det jeg hørte skulle ID til å legge ut q3 koden, men så var det noen som kjøpte en lisens og da mente de at det ikke var helt lurt å legge ut koden rett etterpå, så det kan vel ta litt tid før den kommer ut under GPL

Lenke til kommentar
  • 3 uker senere...

Jeg har også lest at LUA er populært skriptspråk for spill, det er lett og enkelt å eksponere funksjoner/klasser til LUA.

Så vidt jeg vet er Quake 1-3 skrevet i C, i likhet med Doom opptil versjon 3 (C++). Carmack sier at de standardiserte på C++ relativt sent fordi at det tok tid før språket var tilstrekkelig modent.

Carmack har hele tiden foretrukket å skrive i C. Alle id software sine spill motorer er C utennom Doom III motoren der alt utennom renderen er C++.

Lenke til kommentar
Carmack har hele tiden foretrukket å skrive i C. Alle id software sine spill motorer er C utennom Doom III motoren der alt utennom renderen er C++.

Hvorfor har han da flyttet over til C++, samtidig som han gir uttrykk for at han har vurdert det tidligere?

Lenke til kommentar

Jeg har lest at det er en del folk som har spurt han hvorfor han ikke har gått over til C++ for lenge siden, og svaret var noe sånt som at han foretrekker C og ikke ser særlig ulemper ved å bruke det fremfor C++ så lenge man kjenner godt til koden.

 

Jeg vil tippe de nå har gått over til C++ fordi id software har

1. fått flere programmerere med årene.

2. Mer komplisert spill motor

 

Spill motoren har blitt så stor at Carmack ikke lenger har tid til å skumme igjennom de andres kode, slik han gjorde for noen spill motorer tilbake. Lage mer black-box av hele spill motoren høres jo greit ut da.

 

Og, så vidt jeg vet skrev ikke Carmack annet en renderen, som er i C. (foruten lyd-systemet som han måtte skrive når han som egentlig jobbet med den gjorde en så dårlig jobb at det måtte gjøres på nytt fra scratch).

Lenke til kommentar
Ja hva mener han med "modent nok"? Er vel hastigheten på programmer som ikke har vært god nok i forhold til C.

Jeg mener det var snakk om standarden som kom på plass i 98, det tok også tid før denne ble skikkelig støttet av ulike kompilatorer.

 

Edit: Fant ikke det opprinnelige sitatet, men i talen på Quakecon uttaler han seg om overgangen fra C til C++.

Endret av A_N_K
Lenke til kommentar
  • 4 uker senere...

Regner med å få litt pepper nå, men etter min mening er java utmerket til å skrive små-medium spill. Hastighetsforskjellen mellom java og andre språk er ikkje så stor lenger (java er 1.1-1.2 ganger treigere enn c++ har eg lest en plass..)

 

Så noen nevnte Quake.net.. Her er en link til Jake, eller Quake 2 i java:

http://www.bytonic.de/html/jake2_webstart.html

 

Ulempen med java når det gjelder spillprogrammering er at java ikke er støttet på spillkonsoller...

Lenke til kommentar

Ulempen med java er at det ikke blir kompilert, og derfor heller ikke egnet for spillkonsoler, dette er selve grunnen til at consoler er raskere en PCer, fordi det ikke er noe stort operativsystem, Hardware Abstraction Layer eller Java Virtual Machine i gang, hvis alt dette blir implementert for at det skal bli lettere for programmereren (hvis jobb er å gjøre noe så grundig som mulig) ville teknologien satt flere år tilbake.

 

Enkelte ting er bare FY!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...