R67en

Members
  • Content count

    62
  • Joined

  • Last visited

Community Reputation

126 Neutral

About R67en

  • Rank
    Member
  1. Project name: The 13th Doll - The 7th Guest III Brief description: The 7th Guest and the 11th Hour were puzzle games released between 1993-1995 by Trilobyte. Since then, it appears that a sequel was never meant to be, until now. A group of fans of the original games are now collaborating on a 3rd installment in the series. We have been given the green light to pursue this project by Rob Landeros, a cocreator of the original, so long as the game is freeware. The original game was a point and click adventure game set in the mansion of a mysterious toymaker, who invited 7 guests to dinner one evening; all of whom were never heard from again. Our game continues where the original story left off. The game is fairly representational of the original, it is a 1st person adventure game with prerendered graphics, and a point and click interface. The bulk of the game is devoted to solving puzzles which unlock FMV sequences to unravel the story. Website: http://www.t7g3.com Forum: http://www.ghostmaster.net/bb Project Status: We hope to release the game Fall 2006. Currently: The game engine is 75% complete Plot is 50% complete Puzzle design 50% complete Press: We have quite the buzz going so far - take a look: http://www.justadventure.com/Previews/7thGuest3/7G3.shtm http://pc.ign.com/objects/734/734195.html?fromint=1 http://pc.gamespy.com/pc/the-7th-guest-iii-the-13th-doll/?fromint=1 http://www.adventuregamers.com/underground/gameinfo.php?id=517 A google search for The 13th Doll or The 7th Guest III result in links to us as well.
  2. Bridge Puzzle

    I'd like to program a puzzle game similar to this one: http://puzzles.puzzled.com/bridges/ I'm not sure how to attack the AI for such a puzzle. Any suggestions?
  3. I'd like to design a game engine in Macromedia Director. I'm not able to find information on some things I'd like to do: I want to have an external text file that lists the path of various media files: a QT animation, a bitmap, a sound file, etc. I want to read text from the text file, and play the sound, video, display the image, etc from the path. Basically, I do not want to have unique cast members for every single media file I need to display. The game engine will be a myst style engine; click on a hotspot, show an animation, then show a bitmap. Any help would be greatly appreciated.
  4. DirectShow HELP!!!

    Thanks for the help! I am able to get DirectShow to play video in my application now. I still have a couple problems, though. The video usually plays through it's duration, then stops and resumes gameplay. On some occasions, the animation flashes for a second, then stops. The pattern seems to be random, and I cannot predict failure. The program seems to succeed on the first run, then after closing the app and restarting, it fails. However, this isn't always the case. Any ideas what may cause this? What should i look for? The game loop calls a redrawFrame function that sends an image to the backbuffer, then to the screen, but I have set flags when in video mode to cease this until the video is complete. I have set up a windows event handler to check for the end of the video; the animation fails to run even when the event handler is bypassed. I'm not sure what else to look for. Any ideas?
  5. I want to play animations when the player clicks a hotspot on the screen. Im using VC++ 6.0 and DirectX 8.1. I simply want to play video with sound, then resume as I left off before the video. I have looked at some tutorials for DirectShow, but am fairly lost with it. The DX 8.1 SDK includes a program titled Cutscene that provides a function to play a video. I would like to integrate this into my program, but am having trouble. The cutscene function creates a new window, then changes the video settings and goes to fullscreen mode. I can get the program to play my video, but the program does not resume correctly. How can I integrate the Cutscene function into my existing window so that the video just plays on top of what is already there without changing any video settings, then resumes? The relevant code is at: http://www.t7g3.com/Pages/source.zip
  6. Playing Video - HELP!!

    Can anyone help me with this?
  7. Playing Video - HELP!!

    Im using VC++ 6.0 and DirectX 8.1. I simply want to play video with sound, then resume as I left off before the video. I have looked at some tutorials for DirectShow, but am fairly lost with it. The DX 8.1 SDK includes a program titled Cutscene that provides a function to play a video. I would like to integrate this into my program, but am having trouble. The cutscene function creates a new window, then changes the video settings and goes to fullscreen mode. I can get the program to play my video, but the program does not resume correctly. How can I integrate the Cutscene function into my existing window so that the video just plays on top of what is already there without changing any video settings, then resumes? The relevant code is at: http://www.t7g3.com/Pages/source.zip
  8. BLENDER?

    I've been working on a game using VC++ and DirectX 8.1. The game will use rerendered graphics that I'd planned to have modeled in 3DSMax. I recently heard of Blender, and wanted to get your opinion. Of course using DirectX limits the game to Windows users. I would like the game to be cross platform, and was told that I could code the game in Blender as well as modeling it there. Does anyone have any experience with using Blender to create a game? I looked for some tutorials, but found nothing relevant to actually designing a game there(though I've seen a few game demos written with the program). My intention is to create a Myst style navigation game; is this something that Blender would lend itself to aside from modeling the prerendered graphics? If not, is there a viable solution to porting the game to a Mac? What about Linux? I've recently come across Wine, the Windows emulator for linux. Will this run DirectX apps? I guess what it boils down to is this: Blender has been advertised to me as a tool to design cross platform games in addition to being a 3D modeler. Is this true? Is there a catch? Pros/cons? Thanks for the input.
  9. Drawing Lines

    Im using DirectX 8.1 with VC++ 6.0. My program shows an image on the screen. I would like to draw primitives like lines on this image depending on user input. Here is the relevant code: //constants //window class name const char* WINDOWCLASS = "StarPuzzle" ; //window title const char* WINDOWTITLE = "Star" ; //screen width and height const int SCREENWIDTH = 640 ; const int SCREENHEIGHT = 480 ; //globals //instance handle HINSTANCE g_hInstance = NULL ; //window handle HWND g_hWnd = NULL ; //IDirect3D8 pointer IDirect3D8* g_pd3d = NULL ; //device type in use D3DDEVTYPE g_devtype ; //device pointer IDirect3DDevice8* g_pd3ddev = NULL ; //main viewport D3DVIEWPORT8 g_vpmain ; //image surface IDirect3DSurface8* g_pImageSurface = NULL ; IDirect3DSurface8* star ; IDirect3DSurface8* Solved = NULL ; D3DDISPLAYMODE mode ; //initialization void Prog_Init ( ) { if(testing) { fstream file; file.open("zpoints.txt", ios::out); file.close(); file.open("zclickedpoints.txt", ios::out); file.close(); file.open("xys.txt", ios::out); file.close(); } //create the IDirect3D8 object g_pd3d = Direct3DCreate8 ( D3D_SDK_VERSION ) ; //error check if ( g_pd3d ) { //success fprintf ( stdout , "IDirect3D8 object created successfully.\n" ) ; } else { //failure fprintf ( stdout , "IDirect3D8 object creation failed.\n" ) ; //cannot proceed, so return return ; } //find display mode // D3DDISPLAYMODE mode ; UINT nDisplayModeCount = g_pd3d->GetAdapterModeCount ( D3DADAPTER_DEFAULT ) ; //loop through display modes for ( UINT nDisplayMode = 0 ; nDisplayMode < nDisplayModeCount ; nDisplayMode ++ ) { //check next display mode g_pd3d->EnumAdapterModes ( D3DADAPTER_DEFAULT , nDisplayMode , &mode ) ; //if it matches desired screen width, break out of loop if ( mode.Width == SCREENWIDTH && mode.Height == SCREENHEIGHT ) break ; } //check for proper sized mode if ( mode.Width != SCREENWIDTH || mode.Height != SCREENHEIGHT ) { //did not find mode //post quit message PostQuitMessage ( 0 ) ; //report fprintf ( stdout , "Did not find display mode!\n" ) ; //return return ; } else { //found mode //report fprintf ( stdout , "Found display mode.\n" ) ; } //set up presentation parameters D3DPRESENT_PARAMETERS parms; //back buffer information parms.BackBufferWidth = mode.Width ; //use mode width parms.BackBufferHeight = mode.Height ; //use mode height parms.BackBufferFormat = mode.Format ; //use format of mode parms.BackBufferCount = 1 ; //make one back buffer //multisampling parms.MultiSampleType = D3DMULTISAMPLE_NONE ; //swap effect parms.SwapEffect = D3DSWAPEFFECT_FLIP ; //we want to copy from back buffer to screen //destination window parms.hDeviceWindow = g_hWnd ; parms.Windowed = FALSE ; //depth buffer information parms.EnableAutoDepthStencil = FALSE ; parms.AutoDepthStencilFormat = D3DFMT_UNKNOWN ; //flags parms.Flags = 0 ; //refresh rate and presentation interval parms.FullScreen_RefreshRateInHz = mode.RefreshRate ; //use mode's refresh rate parms.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT ; //attempt to create a HAL device HRESULT hr ; //store return values in this variable hr = g_pd3d->CreateDevice ( D3DADAPTER_DEFAULT , D3DDEVTYPE_HAL , g_hWnd , D3DCREATE_SOFTWARE_VERTEXPROCESSING , &parms , &g_pd3ddev ) ; //error check if ( FAILED ( hr ) ) { //could not create HAL device fprintf ( stdout , "Could not create HAL device!\n" ) ; //attempt to make REF device hr = g_pd3d->CreateDevice ( D3DADAPTER_DEFAULT , D3DDEVTYPE_REF , g_hWnd , D3DCREATE_SOFTWARE_VERTEXPROCESSING , &parms , &g_pd3ddev ) ; if ( FAILED ( hr ) ) { //could not create REF device fprintf ( stdout , "Could not create REF device!\n" ) ; //post a quit message PostQuitMessage ( 0 ) ; } else { //successfully made REF device, store this value in a global g_devtype = D3DDEVTYPE_REF ; //report fprintf ( stdout , "Successfully created REF device.\n" ) ; } } else { //successfully made a HAL device, store this value in a global g_devtype = D3DDEVTYPE_HAL ; //report fprintf ( stdout , "Successfully created HAL device.\n" ) ; } //set up viewports //main viewport g_vpmain.X = 0 ; g_vpmain.Y = 0 ; g_vpmain.Width = SCREENWIDTH ; g_vpmain.Height = SCREENHEIGHT ; g_vpmain.MinZ = 0.0f ; g_vpmain.MaxZ = 1.0f ; //set the viewport g_pd3ddev->SetViewport ( &g_vpmain ) ; //memory dc HDC hdc = CreateCompatibleDC ( NULL ) ; //load in image HBITMAP hbmnew = ( HBITMAP ) LoadImage ( NULL , "StarPuzzle.t7g" , IMAGE_BITMAP , 0 , 0 , LR_LOADFROMFILE ) ; //get width and height of bitmap BITMAP bmp ; GetObject ( hbmnew , sizeof ( BITMAP ) , &bmp ) ; //select bitmap into dc HBITMAP hbmold = ( HBITMAP ) SelectObject ( hdc , hbmnew ) ; //set up image surface hr = g_pd3ddev->CreateImageSurface ( bmp.bmWidth , bmp.bmHeight , mode.Format , &g_pImageSurface ) ; star = ImageSurfaceFromBMP ( g_pd3ddev , "star.t7g" , mode.Format ) ; //error check if ( FAILED ( hr ) ) { //error //report fprintf ( stdout , "Failed to create image surface!\n" ) ; //quit PostQuitMessage ( 0 ) ; //return return ; } else { //no error //report fprintf ( stdout , "Created image surface.\n" ) ; } //lock the surface D3DLOCKED_RECT lockedrect ; g_pImageSurface->LockRect ( &lockedrect , NULL , 0 ) ; //variables for color scan COLORREF crColor ; //source color DWORD dwColor ; //destination color DWORD dwRed ; //red component DWORD dwGreen ; //green component DWORD dwBlue ; //blue component DWORD dwRedShiftL = 8 - GetFormatRBits ( mode.Format ) ; //shift left red value DWORD dwGreenShiftL = 8 - GetFormatGBits ( mode.Format ) ; //shift left green value DWORD dwBlueShiftL = 8 - GetFormatBBits ( mode.Format ) ; //shift left blue value DWORD dwRedShiftR = GetFormatGBits ( mode.Format ) + GetFormatBBits ( mode.Format ) ; //shift right red value DWORD dwGreenShiftR = GetFormatBBits ( mode.Format ) ; //shift right green value DWORD dwBlueShiftR = 0 ; //shift right blue value //rh DWORD dwBytesPerPixel = ( //GetFormatXBits ( mode.Format ) + GetFormatABits ( mode.Format ) + GetFormatRBits ( mode.Format ) + GetFormatGBits ( mode.Format ) + GetFormatBBits ( mode.Format ) ) / 8 ;//bytes per pixel BYTE* pbyBuffer = ( BYTE* ) lockedrect.pBits ; //buffer to image data int iBufferPosition ; //scan the image for ( int y = 0 ; y < bmp.bmHeight ; y ++ ) { for ( int x = 0 ; x < bmp.bmWidth ; x ++ ) { //calculate position in buffer iBufferPosition = y * lockedrect.Pitch + x * dwBytesPerPixel ; //grab pixel crColor = GetPixel ( hdc , x , y ) ; //dissect pixel dwRed = GetRValue ( crColor ) ; dwGreen = GetGValue ( crColor ) ; dwBlue = GetBValue ( crColor ) ; //shift pixel data left dwRed >>= dwRedShiftL ; dwGreen >>= dwGreenShiftL ; dwBlue >>= dwBlueShiftL ; //shift pixel data right dwRed <<= dwRedShiftR ; dwGreen <<= dwGreenShiftR ; dwBlue <<= dwBlueShiftR ; //recombine pixel data dwColor = dwRed | dwGreen | dwBlue ; //copy to surface memcpy ( &pbyBuffer [ iBufferPosition ] , &dwColor , dwBytesPerPixel ) ; } } //set up for alpha testing g_pd3ddev->SetRenderState ( D3DRS_ALPHATESTENABLE , TRUE ) ; g_pd3ddev->SetRenderState ( D3DRS_ALPHAFUNC , D3DCMP_GREATEREQUAL ) ; g_pd3ddev->SetRenderState ( D3DRS_ALPHAREF , 0) ; //unlock the surface g_pImageSurface->UnlockRect ( ) ; //restore old bitmap SelectObject ( hdc , hbmold ) ; //destroy bitmap DeleteObject ( hbmnew ) ; //destroy dc DeleteDC ( hdc ) ; //redraw the frame RedrawFrame ( ) ; AllowPlay(true); } //redraw frame void RedrawFrame ( ) { //clear the screen g_pd3ddev->Clear ( 0 , NULL , D3DCLEAR_TARGET , D3DCOLOR_XRGB ( 255 , 255 , 255 ) , 0.0f, 0 ) ; //source rectangle RECT rcSrc ; SetRect ( &rcSrc , 0 , 0 , SCREENWIDTH , SCREENHEIGHT ) ; //destination point POINT ptDst ; ptDst.x = 0 ; ptDst.y = 0 ; //back buffer surface IDirect3DSurface8* pBackBuffer ; //grab back buffer g_pd3ddev->GetBackBuffer ( 0 , D3DBACKBUFFER_TYPE_MONO , &pBackBuffer ) ; //copy rectangle g_pd3ddev->CopyRects ( g_pImageSurface , &rcSrc , 1 , pBackBuffer , &ptDst ) ; //release the back buffer surface pBackBuffer->Release ( ) ; //present the scene g_pd3ddev->Present ( NULL , NULL , NULL , NULL ) ; } [Edit: Added [source] tags. In the future, paste only relevant code - Oluseyi] I have tried several things that work without using the CopyRects line in the RedrawFrame function, How do I draw to the backbuffer after the CopyRects line? Any help would be greatly appreciated. Thanks. [Edited by - Oluseyi on September 21, 2004 8:43:05 AM]