Jump to content
  • Advertisement

firlefanz

Member
  • Content Count

    116
  • Joined

  • Last visited

Community Reputation

126 Neutral

About firlefanz

  • Rank
    Member
  1. firlefanz

    Bouldermouse

    Yes, sure there are. Just right now I don't know of any ;)
  2. firlefanz

    Bouldermouse

    Hello Folks, this is our latest game Bouldermouse! Scaled down screenies It is a 2D Game with 3D GFX. Collect all diamonds. Pay attention to falling rocks and the monsters! Use dynamite to blow up disturbing walls... True 3D meshes, particles etc. using optional pixel- and vertexshaders. Made with Delphi 7 Pro using DanJetX Components for GFX (DX9, all resolutions possible) and Squallsound for Music and Sound (using OGG). It is a shareware game with 5 Levels full playable, 40 Level and Leveleditor for own Levelsets in Full. I hope you like it, please give it a try, comments welcome! Current Version is 1.1 there maybe a patch later but I don't know of any existing bugs... Project Page with Download, Screens, OnlineHiscores, Order: http://www.magicstorm.de/bouldermouse.html Direct Link: Download: Bouldermouse (19mb) Have fun and Thanks! firlefanz
  3. firlefanz

    Pathfinding for Delphi in 3D

    Hello, Thanks for your ideas. I guess to remove nodes I don't need is the necessary way. I am using a 2 dim array. I will try to find a A* pathfinding sample for Delphi and enhance it. firle
  4. Hi! I am working on a 3D game using Delphi. Right now I am searching for a Pathfinding. The samples I found have one big disadvantage for 3D, they have every single step as a waypoint so only use 45° steps. I don't wanna use 45° only, if possible. I don't want all points like this: I only want the points I need so I can set my angle to next point until I am there: Is this possible somehow? Or is there an Other Sample / Algo to do so? Thanks, Firle
  5. firlefanz

    Commando Xenidis Release

    Hello, I just released our shareware game 'Commando Xenidis'. It is a 2D shooter with missions in Space and on Surface, a shop with many weapons, 3D sequences etc. Requires DirectX9.0c. Project homepage with screens and downloads: Website Thanks! Firle
  6. Hi! I need some images for my 2D Particleengine and my 2D shooter game for all kind of GFX. Blood images (small) Sparks Clouds Explosion smoke Clouds can be made using Perlin noise, but I cannot animate them this way. Blood sound easy to create, but it does not look very good. I also need small iamges for using in my particleengine all kinds of small particles, like small clouds, sparks etc. Is there a special freeware tool for creating clouds or blood? Is there a tool for creating small particle images? Are there free ones to look how they could be done? How do you make your PArticles, Clouds and blood? What special GFX do you add to your game? Thanks a lot, Firle
  7. Hello, in my Game demo one of my Beta testers has a bug in a 3D sequence, the screens freezes, but in the background it continues. I cannot reproduze this error myself, everything fine here. I build in some error messages to find out where the errors come from. They are coming from my 3D Particles. I included them from the SDK sample. So here is the code how I render those particles (please not exceptionmsg is a function that writes the string into a textfile): function CParticleSystem.Render(pd3dDevice: IDirect3DDevice9;nsize: single): HResult; var p_Particle: P3DParticle; pVertices: PPointVertex; dwNumParticlesToRender: DWord; Flags: DWord; vPos, vVel: TD3DXVector3; fLengthSq: Single; dwSteps: DWord; clrDiffuse: TD3DXColor; dwDiffuse: DWORD; i: Integer; begin try // Set the render states for using point sprites pd3dDevice.SetRenderState(D3DRS_POINTSPRITEENABLE, iTRUE); pd3dDevice.SetRenderState(D3DRS_POINTSCALEENABLE, iTRUE); pd3dDevice.SetRenderState(D3DRS_POINTSIZE, FtoDW(nsize)); //Größe Partikel pd3dDevice.SetRenderState(D3DRS_POINTSIZE_MIN, FtoDW(0.01)); pd3dDevice.SetRenderState(D3DRS_POINTSCALE_A, FtoDW(0.01)); pd3dDevice.SetRenderState(D3DRS_POINTSCALE_B, FtoDW(0.01)); pd3dDevice.SetRenderState(D3DRS_POINTSCALE_C, FtoDW(1.00)); // Set up the vertex buffer to be rendered pd3dDevice.SetStreamSource(0, m_pVB, SizeOf(TPointVertex),SizeOf(TPointVertex)); //dx9 letzter Param size in byte pd3dDevice.SetFVF(D3DFVF_POINTVERTEX); if m_pParticles=nil then exit; p_Particle := m_pParticles; if p_particle=nil then exit; dwNumParticlesToRender := 0; // Lock the vertex buffer. We fill the vertex buffer in small // chunks, using D3DLOCK_NOOVERWRITE. When we are done filling // each chunk, we call DrawPrim, and lock the next chunk. When // we run out of space in the vertex buffer, we start over at // the beginning, using D3DLOCK_DISCARD. Inc(m_dwBase, m_dwFlush); if (m_dwBase >= m_dwDiscard) then m_dwBase:= 0; if m_dwBase = 0 then Flags:= D3DLOCK_DISCARD else Flags:= D3DLOCK_NOOVERWRITE; if m_pvb=nil then exit; if failed(m_pVB.Lock(m_dwBase * SizeOf(TPointVertex), m_dwFlush * SizeOf(TPointVertex), Pointer(pVertices), Flags)) then begin commandoform.ExceptionMsg('ParticleLock'); exit; end; // Render each particle while Assigned(p_Particle) do begin vPos:= p_Particle.m_vPos; vVel:= p_Particle.m_vVel; fLengthSq := D3DXVec3LengthSq(vVel); if (fLengthSq < 1.0) then dwSteps := 2 else if (fLengthSq < 4.00) then dwSteps := 3 else if (fLengthSq < 9.00) then dwSteps := 4 else if (fLengthSq < 12.25) then dwSteps := 5 else if (fLengthSq < 16.00) then dwSteps := 6 else if (fLengthSq < 20.25) then dwSteps := 7 else dwSteps := 8; D3DXVec3Scale(vVel, vVel, -0.04 / dwSteps); D3DXColorLerp(clrDiffuse, p_Particle.m_clrFade, p_Particle.m_clrDiffuse, p_Particle.m_fFade); dwDiffuse:= D3DXColorToDWord(clrDiffuse); // Render each particle a bunch of times to get a blurring effect for i:= 0 to dwSteps - 1 do begin pVertices.v := vPos; pVertices.color := dwDiffuse; Inc(pVertices); Inc(dwNumParticlesToRender); if (dwNumParticlesToRender = m_dwFlush) then begin // Done filling this chunk of the vertex buffer. Lets unlock and // draw this portion so we can begin filling the next chunk. if failed(m_pVB.Unlock) then begin commandoform.exceptionmsg('ParticleUnLock'); exit; end; Result:= pd3dDevice.DrawPrimitive(D3DPT_POINTLIST, m_dwBase, dwNumParticlesToRender); if FAILED(Result) then begin commandoform.exceptionmsg('Rendererror DrawPrimitive'); Exit; end; // Lock the next chunk of the vertex buffer. If we are at the // end of the vertex buffer, DISCARD the vertex buffer and start // at the beginning. Otherwise, specify NOOVERWRITE, so we can // continue filling the VB while the previous chunk is drawing. Inc(m_dwBase, m_dwFlush); if (m_dwBase >= m_dwDiscard) then m_dwBase:= 0; if m_dwBase = 0 then Flags:= D3DLOCK_DISCARD else Flags:= D3DLOCK_NOOVERWRITE; if failed(m_pVB.Lock(m_dwBase * SizeOf(TPointVertex), m_dwFlush * SizeOf(TPointVertex), Pointer(pVertices), Flags)) then begin commandoform.exceptionmsg('ParticleLock2'); exit; end; dwNumParticlesToRender := 0; end; D3DXVec3Add(vPos, vPos, vVel); end; if p_Particle.m_pNext=nil then exit; p_Particle := p_Particle.m_pNext; end; // Unlock the vertex buffer m_pVB.Unlock; // Render any remaining particles if (dwNumParticlesToRender <> 0) then begin Result:= pd3dDevice.DrawPrimitive(D3DPT_POINTLIST, m_dwBase, dwNumParticlesToRender); if FAILED(Result) then Exit; end; // Reset render states pd3dDevice.SetRenderState(D3DRS_POINTSPRITEENABLE, iFALSE); pd3dDevice.SetRenderState(D3DRS_POINTSCALEENABLE, iFALSE); Result := S_OK; except commandoform.exceptionmsg('Rendererror Particles'); end; end; My betatester reports the error is Particlelock and then it freezes. Here is the code I use to render the particles: //für partikel setzen setrenderstate(d3drs_alphablendenable,dword(true)); setrenderstate(d3drs_srcblend,d3dblend_srcalpha); setrenderstate(d3drs_destblend,d3dblend_destalpha); setmaterial(m_pParticleMaterial); try if m_pParticleTexture<>nil then SetTexture(0, m_pParticleTexture ) else exceptionmsg('3D Particle Nil'); except exceptionmsg('3D Particle Error'); end; setTextureStageState(0, D3DTSS_COLORARG1, D3DTA_Texture); setTextureStageState(0, D3DTSS_COLOROP, D3DTOP_selectarg1); setTextureStageState(1, D3DTSS_COLOROP, D3DTOP_disable); m_pParticleSystem.Render(XenScreen.Device,0.3); setrenderstate(d3drs_alphablendenable,dword(false)); setrenderstate(d3drs_specularenable,dword(false)); //für skybox setzen setTextureStageState(0, D3DTSS_COLOROP, d3dtop_modulate); setTextureStageState(1, D3DTSS_COLOROP, d3dtop_modulate); setRenderState(D3DRS_NORMALIZENORMALS, 0); setTextureStageState(1, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_PASSTHRU or 1); setTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE); So do you have any idea, how to fix that bug? I have a htm file with the devicecaps of my testers graficx card here: http://www.ericbehme.de/download/DeviceCaps.htm Any idea how to fix that error or at least make the screen not freeze or what to do next? Thanks a lot, Firle
  8. firlefanz

    Got a game? Love to review it!

    Hello, the layout of the site is awesome I must say. Very nice! I am always interested in reviews, I am a hobby game developer with a small team (right now 3 people for my new peoject, made older projects with 2 people). Here is my games site, with currently 2 finished game and a nearly finished game, with screenshots, downloads etc. http://www.ericbehme.de/downloads_e.html Xenidis is 3 years old, TombClimber is 1,5 years old and Commando Xenidis is very soon finished. Is anything of that worth a review? Please let me know! Thanks, Firle
  9. firlefanz

    Got a game? Love to review it!

    Hello, the layout of the site is awesome I must say. Very nice! I am always interested in reviews, I am a hobby game developer with a small team (right now 3 people for my new peoject, made older projects with 2 people). Here is my games site, with currently 2 finished game and a nearly finished game, with screenshots, downloads etc. http://www.ericbehme.de/downloads_e.html Xenidis is 3 years old, TombClimber is 1,5 years old and Commando Xenidis is very soon finished. Is anything of that worth a review? Please let me know! Thanks, Firle
  10. Hello! I am using the Omega headers (Delphi DirectX headers based on Clooties DX headers) and I am also a member there. This is a problem of Omega, but everybody with knowledge in DirectX could help, so DirectX Experts please read and tell me a way how to do it. Omega has his own OmegaImagelists (like in DelphiX) which can store images. My problem is I have 19 mb of huge imagelists and it takes a long time to load them all, too long for me. A solution would be having all images standalone on the harddisc, but I don't like that solution, 600+ images. The problem is the Init method takes too long, and I am sure there can be an easier and faster solution. How it works (in my understanding) 1) Loadfromfile loads the imagelist in a stream. 2) Init calls no 3 for every item 3) Item.Init saves the TPicture to a stream, then creates the texture needed from the new stream. This one is called first to load the imagelist. procedure TImageListCollection.LoadFromFile(const Filename: string); var Stream: TMemoryStream; begin Stream := TMemoryStream.Create; Stream.LoadFromFile(Filename); self.LoadFromStream(Stream); Stream.Free; end; Then the Init is called. procedure TOmegaImageList.Init; var i: integer; begin if FOmegaScreen = nil then exit; FRenderer.OmegaScreen := FOmegaScreen; FRenderer.Init; if FOmegaScreen.Device = nil then exit; for i := 0 to ImageList.Count - 1 do ImageList.Items.Init; end; This one is calling the init of each ImagelistItem then. procedure TImageListItem.Init; var FD3DSurfaceDesc: TD3DSurface_DESC; Stream: TMemoryStream; sRealFilePath: string; begin //Load picture from filepath if present FFilePath := Trim(FFilePath); if Length(FFilepath) > 0 then begin //Make relative paths absolute if (Pos(':', FFilepath) = 0) and (Pos('\\', FFilepath) = 0) then begin ChDir(ExtractFilePath(Application.ExeName)); sRealFilepath := ExpandFileName(FFilepath); end else sRealFilepath := FFilepath; if FileExists(sRealFilePath) then FPicture.LoadFromFile(sRealFilepath); end; if (FPicture.Graphic = nil) then exit; FDevice := TOmegaImageList(TImageListCollection(Collection).GetOwner).FOmegaScreen.Device; FRenderer := TOmegaImageList(TImageListCollection(Collection).GetOwner).FRenderer; { If (FDevice = nil) then begin MessageBox(0, pChar('Error: no device assigned!'), 'Error', MB_ICONERROR); Application.Terminate; end; If (FRenderer = nil) then begin MessageBox(0, pChar('Error: no renderer assigned!'), 'Error', MB_ICONERROR); Application.Terminate; end; } Stream := TMemoryStream.Create; try FPicture.Graphic.SaveToStream(Stream); if FTileHeight <= 0 then FTileHeight := FPicture.Graphic.Height; if FTileWidth <= 0 then FTileWidth := FPicture.Graphic.Width; if not assigned(self.FImage) then if Self.Transparent = true then begin if failed(D3DXCreateTextureFromFileInMemoryEx( FDevice, Stream.Memory, Stream.Size, 0, 0, 0, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_FILTER_NONE, $FF000000 or Cardinal(TColor(OmegaColor(self.TransparentColor, 0))), //Self.TransparentColor, nil, nil, Self.FImage)) then begin MessageBox(0, pChar('Error creating texture ' + Self.FName), 'Error', MB_ICONERROR); Stream.Free; Application.Terminate; end; end else begin if failed(D3DXCreateTextureFromFileInMemoryEx( FDevice, Stream.Memory, Stream.Size, 0, 0, 0, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_FILTER_NONE, 0, nil, nil, Self.FImage)) then begin MessageBox(0, pChar('Error creating texture ' + Self.FName), 'Error', MB_ICONERROR); Stream.Free; Application.Terminate; end; end; Self.FImage.GetLevelDesc(0, FD3DSurfaceDesc); FRealWidth := FD3DSurfaceDesc.Width; FRealHeight := FD3DSurfaceDesc.Height; if FRealWidth < 2 then FRealWidth := 2; if FRealHeight < 2 then FRealHeight := 2; FHeight := FPicture.Height; if FHeight = 0 then FHeight := 1; FWidth := FPicture.Width; if FWidth = 0 then FWidth := 1; FNumOfRows := FHeight div FTileHeight; FNumOfColumns := FWidth div FTileWidth; finally Stream.Free; if Length(FFilePath) > 0 then begin FPicture.Free; FPicture := TPicture.Create; end; end; end; So isn't it possible to make a new methode called 'LoadandInit' that loads all and makes the textures and works somehow faster, maybe without that TPicture and Savetostream etc? How can I make it faster? Thanks, Firle
  11. firlefanz

    Snowboard Assassins - final freeware release

    Nice game! Nice grafics, enemies could be better, and nice gameplay! I like it, thanks :) Firle
  12. Hello, we have decided to release our SpriteDesigner Opensource. We used it for 4 years now and made most graphics in our games 'Xenidis' and 'TombClimber' with that tool. Now we are mostly working with 3D modelers and so I hope maybe anybody can use our tool or use some parts of the code or something. The GUI looks terrible because we only used it for ourselves and added a new function all few weeks for over 4 years. There is also no documentation and some parts are in german, other parts in english. But in my forum I started a Tutorial topic, where I teach some basic things, screenshots included. I think for a 2D game developer my tool has a lot to offer, for painting small sprites and animating them it has a lot of functions! If you are interested in learning more, please tell me. If nobody is interested, I won't add more lessons, if I feel somebody is interested, I'll continue, most functions are missing but I descripted some basic functions. A download link is in the intro of the topic. Tutorial with Download Some screens: Screen Screen If you find it useful, let me know, I'll keep adding lessons as long as I get some response. And I can tell you, there are many nice features! If there is a lot of interest, I might translate the GUI to english and enhance it a bit. :D Firle
  13. firlefanz

    lava rock

    Nice! for a self-created 3D object I like it. Too bad the source is not Delphi ;) Draw a dozen different ones instead of only one! Firle
  14. Hello, we updated our website of Commando Xenidis.It is a 1-4 player space and on planet shooter. Please take a look, there are some screens and a preview movie. Website Please tell us if you'd like a game like this. If somebody maybe interested in Beta-Testing or Level-Making, please write us a line here or in our Forum. Forum Thanks Firlefanz
  15. firlefanz

    Commando Xendis

    Hi! Thanks! We have lots of weapons, in the space part we have 3 primary weapons and 3 secondary weapons to switch and they can be upgraded. There are also Satelites and drones. In the surface part we only have 1 weapon until now, but there will be more. firle
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!