Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[FreeBASIC] EliteTanks projekat

[es] :: Ostali programski jezici :: [FreeBASIC] EliteTanks projekat
(TOP topic, by Gojko Vujovic)
Strane: < .. 1 2 3 4 5 6 7 8 9 ... Dalje > >>

[ Pregleda: 52083 | Odgovora: 267 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat27.03.2008. u 22:05 - pre 117 meseci
Pa radimo, samo je pitanje: "sta radimo?". Ovaj salim se, ali nije daleko od istine, bar sto se mene tice, ja imam sad puno obaveza, pisem nesto komercijalno a i fax me malo "gusi", ali cim "ukradem" neko slobodno vreme bacam se na projekt, jako bih voleo da vidim da smo zapravo nesto uradili...

Pozz...
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat27.03.2008. u 22:29 - pre 117 meseci
I mi ostali bi voleli na kraju da vidimo kako je ispalo :)
Pozdrav
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat27.03.2008. u 22:30 - pre 117 meseci
ja mogu samo da kazem "Ready & Waiting" ili "Standing by" :P

samo cekam naredjenja :P
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat27.03.2008. u 22:31 - pre 117 meseci
Najkasnije do 6 ujutru, dobicete neko parce koda od mene. Evo sad sam poceo da radim, nesto.
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat28.03.2008. u 11:06 - pre 117 meseci
Nije bas 6 ujutru, ali mi se jako prispavalo sinoc oko 3 pa nisam mogao sve da zavrsim na vreme :(

Evo mali demo za dva igraca

kontrole su:
Code:

plavi tenk | zeleni tenk  | f-ja
    R       strelica gore | ubrzanje
    F       strelica dole | kocenje
    D       strelica levo | okretanje u levu stranu
    G       strelica desno| okretanje u desnu stranu
    A            CTRL     | pucanje


cilj je da se pogodi drugi igrac ali da se ne pogodi ptica

koristi se fb-ext-lib, tako da ce vam mozda traziti neke dodatnje dll-ove a mozda i nece jer ih ovaj primer ne koristi :)

sve u svemu za par sati pisanja, i nije toliko lose

samo kod je malo nevesto napisan jer nisam odmah isplanirao kako to sve treba da izgleda, nego sam dodavao deo po deo, opisao sam sve lepo u samom kodu

preporucujem da se broj metaka koji jedan igrac moze odjedanput da ispali sa 12 smanji na 5, mozda bi se malo popravila igrivost, to vam je promenljiva brMet = 4

'Ajd' da cujem komentare.

Mogao bi Aleksandar malo da se poigra sa zvukom....
Prikačeni fajlovi
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat28.03.2008. u 11:52 - pre 117 meseci
Ipak trebaju neki dll-ovi, za sad samo jpeg62.dll ali evo sva tri dll-a samo da se raspakuju u system32 ili pored aplikacije.
Prikačeni fajlovi
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat28.03.2008. u 15:06 - pre 117 meseci
Radi :) Mislim dobro je. Dobro si uradio "fiziku" :)
Jel jos grafika trosi mnogo CPU vremena ?
Sta se u FB koristi za net (ima neka biblioteka i sl) Ovo bi moglo da se napravi kao online (TCP , server je program koji prvi pokrene igru ...)
Gde moze da se nadje ova fb-ext-lib
Usput trebala je zlib1.dll (mislim ja je nisam imao)

 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat28.03.2008. u 15:22 - pre 117 meseci
Problem zauzeca procesora sam jednostavno resio sa sleep. A sto se tice igre u mrezi, free basic moze da koristi Winsock API iz biblioteke wsock32.dll mislim da je ima svako na racunaru.

fb-ext-lib ovde

ne znam zasto mu trebaju: freetype6.dll, jpeg62.dll i zlib1.dll kada ih ja nista ne koristim, to mi se malo ne svidja koz extlib-a a i povrsina koja je transparentna kod 32 bpp nije transparentna u 16 bpp kad se koristi f-ja za rotaciju.

sve tri biblioteke imate u system32.rar, u predhodnoj poruci.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat28.03.2008. u 15:35 - pre 117 meseci
Valjda ih linkuje uvek kad se koristi ta ext lib
jpeg koristi zip kompresiju (to znam)
Sta mislis zar 640, 480 nije malo prevazidjena ? Mozda je bolje sa jednom rezolucijom vise ...
Mada sa druge stane ovo je onaj stari stil igara tako da i ta mala rezolucija daje neku car :)
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat28.03.2008. u 22:19 - pre 117 meseci
Sto se tice rezolucije, nije nikakav problem da se prebaci na 800x600 i vise, ali kao sto ti rece nekako mu ovo daje car, samo to cemo i onako resiti kad se uradi citanje mapa i grafika, ovo je samo za testiranje.

Evo malo ispravljene verzije:

Dodao sam malo stelovanja za timer tako da ce sad bolje raditi i na starim masinama. Takodje sad je ceo ekran "obojen" tj popunjen. Ali me brine to sto je igra nekako prezahtevna i ako nema gotovo nista ... samo malo grafike. Tako da se pitam da li iko zna kako da sve ovo ubrzamo malo? Imam neki osecaj da bi nesto ovakvo radilo i na C64, tako da bi ova danasnja "cudovista" od racunara trebala da pojedu ovo.
Prikačeni fajlovi
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat29.03.2008. u 12:46 - pre 117 meseci
Skinuo sam predzadnju verziju i ext lib da bi mogao da je kompajlujem da radi u prozoru (da bi mogao da vidim Task Manager). Ta verzija trosi otprilike 20% procesorskog vremena ... i tu je po meni problem (ili ova graficka biblioteka za FB nije dobro odradjena ili ima neka druga caka koja mi jos uvek nije poznata). Ti si rekao da se zbog timera smanjila iskoriscenost CPU (u onim ranijim primerima meni je tosilo 50% a sad 20%) ... trebalo bi pretraziti net ili FB forume za ovo. Po mom misljenju ovaj program nebi trebalo da uzima vise od 2% CPU vremena ...
Isto kad uhvatim vremena zavrsicu onaj Browser plugin framework za FB u browseru. Ideja mi je da svi fajlovi budu kompresovani u jedan fajl za plugin (kao sto si ti ovde stavio sve u rar). Da plugin downloaduje i dekompresuje sve u temp folder i pusti odatle (sve znaci sve i exe i dll koji su potrebni i ostalo). Isto cu da uradim i aplikaciju za distribuciju koja ce da ukompresuje sve u u jedan plugin fajl ... Ovakvim pristupom FB programer nece morati da se bavi mojim c++ like kodom nego kad zavrsi sve upakuje sa tom aplikacijom i postavi na net.

 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat29.03.2008. u 13:27 - pre 117 meseci
Nisi morao da je kompajliras da bi dobio prozor, moze i sa ALT-ENTER da se menja izmedju prozora i celog ekrana.

Ova aplikacija radi tako sto treba da 30 puta u sekundi prebaci iz RAM-a u VRAM po ~900KB(i jos malo vise zbog sprajtova) sto mu dodje preko 26Mb u sekundi. Kada bi mogao da slike prebacim u VRAM mislim da bi mnogo brze radilo sve. Takodje se razmisljam da dodam double buffer, ali ne obican double buffer vec da se u jednoj grafickoj strani nalazi pozadina, a sprajtovi se docrtavaju naknadno na vidljivoj strani. S tim da se prva strana ne menja ukoliko nema pomeraja u matrici.

To za plugin u koji mogu samo da posaljem jednu datoteku (tipa rar ili zip ili bilo koji format) i da ne mislim o tome kako radi vec samo da radi je super. Samo me zanima jel je sve to ograniceno na Windows okruzenje ili moze da radi i pod Linux-om i MAC OS-om?
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat30.03.2008. u 00:25 - pre 117 meseci
Eto ovo za ALT-ENTER nisam ni znao :) Hvala ...
To o sprajtovima i buferovanju tu vidim da imas dosta iskustva ... ja nisam radio u FB ranije. Prvi put sam cuo za njega od vas ovde na forumu a jedina ozbiljnija stvar koju sam napravio u njemu je onaj plugin. Video sam (po forumu) da si se ti mnogo vise bavio time a imas i solidno opste znanje tako da tu mogu samo da potvrdim (prihvatim) ono sto kazete ti i Aleksandar. Ja sam se bavio vise nekim sistemskim stvarima u c/c++ i asm a za ove "svakodnevne programe" VB6 i sad malo java. Ocu da kazem mogao bi da vam napisem neku funkciju u FB inline assembleru za brzo (najbrze :) ) prepisivanje memorije sa nekog dela memorije u neki drugi ali mislim da ti to ovde nebi resilo problem jer vidi. Probao sam u FB da napravim OGL window sa screenres (samo jedna linija koda) i jedan loop za izlaz i tu je trosio 50% procesora (imam dualni sto znaci 100% jednog). Znaci nesto u tim FB bibliotekama nije ok ili postoji neka caka. Istovetna c++ aplikacija bi trosila mizerno malo CPU vremena. (ove FB biblioteke su verovatno bazirane na c jeziku znaci brzina skoro kao asm ali negde nesto ne radi kako treba).
Ovaj plugin framework je za win32 (dll i exe su windows executables) na Linuxu i MAC-u ovi fajlovi mogu da rade samo na emulatoru ili slicnom softveru.
Nisu Fles i Java dzabe toliko popularni :) Ljudi su dosta radili da naprave to za vise platformi

I ovo
Slicno ponasanja (trosenje CPU vremena) u c++ moze da se desi kad je u window proceduri (funkciji koja obradjuje GUI window messages) napravljena neka graska. To i ovo sto si rekao za timer u msg loop me navodi na taj zakljucak koji sam ti rekao ...



[Ovu poruku je menjao Eurora3D Team dana 30.03.2008. u 01:37 GMT+1]
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat30.03.2008. u 11:03 - pre 117 meseci
nemojte se smejati ako lupetam,a mozda da pokushash da smanjih tih 900kb/s :D
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat30.03.2008. u 14:13 - pre 117 meseci
Code:

&HFFFFFF - 24 bita
  RRGGBB


E sad kod - 32 bita tu je 3 bajta za RGB i jedan bajt za AplhaBlend

Code:

&HFFFFFFFF
  RRGGBBAA


(640 x 480 pixela) x 3 bita = 900 KB ali posto mi koristimo 32 bpp to mu dodje ne puta 3 kako sam ja racunao nego puta 4. pa mu dodje 1.17 MB + Sprajtovi pa sve to 30 puta u sekundi...

Sto mu dodje da tih 900 KB moze da se smanji samo ako se smanji rezolucija ekrana. Ali postoji i drugi "lek" za tu "boljku" a to je da se grafika ne prebacuje iz RAM-a u VRAM, nego da se slike uskladiste u VRAM i odatle prebacuju na vidljivi ekran. Za to se koristi DirectX ili OpenGL. Ali smo se mi dogovorili da radimo samo FreeBASIC.

@ EURORA3D

Nema to zauzece procesora veze sa grafikom, jer u FB-u da stavis i samo:

Code:

do while not multikey(1)
     ' Ne mora nista da se radi u petlji
loop


i zauzece procesora ce biti 100% t.j. na dva procesora 50%. Jer ce se vrteti u petlji koliko god procesor moze da postigne.

E sad kada se koristi SLEEP [milisecond] procesor je slobodan za to vreme u ms. I onda ce zauzece da jako da opadne...

znaci:
Code:

do while not multikey(1)
sleep 30
loop


i nece biti veliko zauzece.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat30.03.2008. u 19:30 - pre 117 meseci
Ok kapiram ... tebi nije valjala msg loop
Evo ti kod iz FB helpa za dobru msg loop za GL window. Ovaj program kod mene angazuje 0% CPU vremena (nemerljivo malo) i 2000 K Memorije
Code:

'' include fbgfx.bi for some useful definitions
#include "fbgfx.bi"

Using fb

Dim e As EVENT
Dim As Integer x, y, pressed, col
Dim As Any Ptr img

ScreenRes 384, 64, 32,, GFX_SHAPED_WINDOW

'' create a fancy window shape
img = ImageCreate(48,8)
Draw String img, (0, 0), "GfxLib"
For y = 0 To 63
    For x = 0 To 383
        col = Point(x \ 8, y \ 8, img)
        If (col <> RGB(255, 0, 255)) Then
            col = RGB((x + y) And &hFF, (x + y) And &hFF, (x + y) And &hFF)
        End If
        PSet (x, y), col
    Next x
Next y

pressed = 0
Do
    If (ScreenEvent(@e)) Then
        Select Case e.type
        Case EVENT_MOUSE_BUTTON_PRESS
            pressed = -1
        Case EVENT_MOUSE_BUTTON_RELEASE
            pressed = 0
        Case EVENT_MOUSE_MOVE
            If (pressed) Then
                ScreenControl GET_WINDOW_POS, x, y
                ScreenControl SET_WINDOW_POS, x + e.dx, y + e.dy
            End If
        End Select
    End If
    Sleep 5
Loop While Not MultiKey(1)


 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat30.03.2008. u 20:33 - pre 117 meseci
Ovaj kod angazuje 0% cpu zato sto radi sledece:

Code:

do
    sleep 5
loop until mutlikey(1)


Tj skoro se nista ne desava u 99.99 % rada programa (ScreenEvent(@e) je sve vreme FALSE osim kad se prozor provlaci)...

Isto bi zauzimala i ona moja petlja da nije opterecena crtanjem grafike.



Za one koji nisu videli:
EliteTanks 360
https://static.elitesecurity.o...ads/1/9/1901925/tank%20360.rar
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat31.03.2008. u 00:36 - pre 117 meseci
Jeste ... upravu si. Doduse kod tebe sleep interval ima mnogo veci znacaj (probao sam sa 100 ms i CPU vreme je 6% al zato i sve ostalo u do while loop normalno radi spoije). Kad sam ja (nekad davno :) ) radio sa ovakvim stvarima secam se da nisam brisao ceo ekran nego samo objekte koji su promenili poziciju od proslog iscrtavanje a ako se nista nije promenilo odma sam prelazio u sledeci krug (ocitavanje tastature i ostalo)...
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.186.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat31.03.2008. u 16:43 - pre 117 meseci
Sacekacemo Krcka da se javi, da vidimo dali ima neki konstruktivan predlog.

Malo bi bilo zamorno da se prati svaki pomeraj i sl... Ipak postoje Api f-je koje to mogu da odrade mnogo brze, i manje nerviranja. Ali ako mozes u ASM da napravis f-ju koja bi mogla da se poziva iz FB i da najbrze moguce kopira sadrzaj sa nekih lokacija iz video memorije na vidljivu stranu, i f-ju koja bi nam omogucavala da prebacimo neke slike u video memoriju. To bi moglo da resi problem.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat31.03.2008. u 19:32 - pre 117 meseci
sad sam pogledao ovo sto je Stefan radio i nije lose, ja se nisam javljao neko vreme jer imam mnogo obaveza na poslu, i jos uvek nemam dovoljno vremena da zavrsim engine koji sam poceo, ali uskoro cu ga zavrsiti pa kacim ovde.

sto se tice engine-a, gotovo je ucitavanje png slika (alpha-channel jos uvek malo zeza ali sredicu to) i delimicno je kompletan redraw sistem (engine koristi tehniku dirty rectangles sto znaci da se iscrtavaju samo oni delovi ekrana na kojima je nastala neka promena)

sto se tice kompajlera za EliteScript, on napreduje polako i verovatno ce biti gotov pre gfx engine-a (sto je bolje, jer ce imati vise vremena da se sam kompajler istestira)

k'o sto rekoh, cim stignem da zavrsim nesto postujem kod!
 
Odgovor na temu

[es] :: Ostali programski jezici :: [FreeBASIC] EliteTanks projekat
(TOP topic, by Gojko Vujovic)
Strane: < .. 1 2 3 4 5 6 7 8 9 ... Dalje > >>

[ Pregleda: 52083 | Odgovora: 267 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.