3D igra u 96 kb

3

3D igra u 96 kb

offline
  • Pridružio: 29 Apr 2005
  • Poruke: 570
  • Gde živiš: Ko kaze da sam ziv?

Stvarno nemogu da verujem da je to stalo u manje od 100 kb Shocked



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 03 Apr 2004
  • Poruke: 4513
  • Gde živiš: Novi Sad

Inace oruzje se menja na 1, 2, 3, 4, 5..... itd, kako se nekada menjalo.



offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

Nom ::nisam bas siguran da ce API tako da radi... naime, openGL NE MOZES da koristis ako ne ulinkujes potrebne lib-ove.... bez toga jok... bez obzira sto exe zove i dll-ove...

na primer, da bi samo inicializovao opengl tj. device context bindovao na gl-ov context (hglrc) ,moras da inkludujes <gl/gl.h> i linkujes opengl32.lib... bez toga... nece da moze....


ne mogu da pogledam, imam stari komp.

a sto se tice ovoga gore - opet netacno.
prvo, headeri nista ne povecavaju EXE, oni postoje samo da bi kompajler znao kako da linkuje funkcije.
a OpenGL32.DLL se linkuje dinamicki, i ne povecava uopste EXE.
povecava se vrlo malo, i to samo zato sto mora da se napravi tabela adresa funkcija.
Elem - evo dokaz - opengl u 6 kb - http://www.mycity.rs/fajlovi/loptice.exe

offline
  • SVITAC 
  • Legendarni građanin
  • Pridružio: 28 Apr 2003
  • Poruke: 5919
  • Gde živiš: Beograd

Smile .. e jesi blesav ..

offline
  • Nom  Male
  • Građanin
  • Pridružio: 17 Nov 2004
  • Poruke: 168
  • Gde živiš: Shanghai, China

Peca ::Nom ::nisam bas siguran da ce API tako da radi... naime, openGL NE MOZES da koristis ako ne ulinkujes potrebne lib-ove.... bez toga jok... bez obzira sto exe zove i dll-ove...

na primer, da bi samo inicializovao opengl tj. device context bindovao na gl-ov context (hglrc) ,moras da inkludujes <gl/gl.h> i linkujes opengl32.lib... bez toga... nece da moze....


ne mogu da pogledam, imam stari komp.

a sto se tice ovoga gore - opet netacno.
prvo, headeri nista ne povecavaju EXE, oni postoje samo da bi kompajler znao kako da linkuje funkcije.
a OpenGL32.DLL se linkuje dinamicki, i ne povecava uopste EXE.
povecava se vrlo malo, i to samo zato sto mora da se napravi tabela adresa funkcija.
Elem - evo dokaz - opengl u 6 kb - mycity.rs/fajlovi/loptice.exe


hm, malo sam pogledao, ispada da opengl32.lib u stvari linkuje dll-ove... tako da dll mozes i sam da ulinkujes... tako da teoretski, lib ti ne treba.

da, u pravu si.

ali sa druge strane, taj exe je kompresovan... exe od 1.6mb sam kompresovao u exe od 600kb... sto znaci da je ovaj njihov mozda bio i 220kb u originalu.. a tu vec moze da stane generisanje txtura i geometrije.... mada u svemu treba imati meru, pa zato onako lose performanse (probao sam je i na masini p4 2.7ghz, 4200ti, 1gb 333mhz i jos uvek se vuce) nikako ne mogu da se (bar po meni, to je moje misljenje) opravdaju velicinom fajla.. cemu sluzi demo ako ti treba zver od masine da bi to islo min 30fps???


dopuna:

sad sam video detalj: tabela adresa funkcija....

hmmmmmmmmmmmmmmmmmmmm..... kada instaliras novi drajver, zar stvarno mislis da ce adrese ostati iste...??? posle recimo 5te verzije drajvera...? ovo treba proveriti...

mada smo otisli offtopic...

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

naravno da nisu iste adrese
zato se koristi funkcija GetProcAddress
kada bi dekompresovali taj EXE od 96kb, video bi da se ta funkcija poziva i da se toj funkciji prosledjuju imena svih drugih WinAPI funkcija.

dakle, da se ispravim, ne postoji tabela sa adresama funkcija, ali postoji tabela sa imenima funkcija, kojima treba naci adresu.

offline
  • Nom  Male
  • Građanin
  • Pridružio: 17 Nov 2004
  • Poruke: 168
  • Gde živiš: Shanghai, China

Peca ::naravno da nisu iste adrese
zato se koristi funkcija GetProcAddress
kada bi dekompresovali taj EXE od 96kb, video bi da se ta funkcija poziva i da se toj funkciji prosledjuju imena svih drugih WinAPI funkcija.

dakle, da se ispravim, ne postoji tabela sa adresama funkcija, ali postoji tabela sa imenima funkcija, kojima treba naci adresu.


Jasno, samo sto opengl api sadrzi tonu funkcija, koje za bilo sta ozbiljnije moras da koristis... to znaci da bi explicitno morao da importujes sve potrebne f-je iz dll-a... sto je veliko smaranje i za vece projekte po meni izuzetno neprakticno, pogotovo ako radi vise ljudi odjednom... cemu sve to ako mozes jednostavno da ulinkujes opengl32.lib i pustis njega da to uradi umesto tebe? ;-) Ali naravno, mozes i sam, eto, radi fore ili pravljenja ultra malih demo-a...

Ko je trenutno na forumu
 

Ukupno su 1037 korisnika na forumu :: 30 registrovanih, 6 sakrivenih i 1001 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., AleksSE, amaterSRB, bokisha253, BratSrpska, comi_pfc, djuradj, draganca, elenemste, Faki-Valjevo, Futurama, kikisp, Kubovac, mean_machine, Milometer, moldway, Neutral-M, nikoladim, novator, pacika, Povratak1912, repac, Srle993, theNedjeljko, Toper, Tvrtko I, Valter071, Viceroy, Vlada78, Yellow Pinky