Hello guys, need testing of custom OpenGL engine. A friend and I started this invader remake to squash some bugs and remove some customizations from the engine. Although the game isnt finished, it still proves somewhat entertaining, and was made to help bug squashing to be more fun. It uses FMOD for sound and a custom GL engine in progress. Any Bugs are welcome for reporting. Edit, esc Quits, left right move ship, space shoot. Other commands on screen.
FMOD Ex - DSP header file. [PLATFORMS] Win32, Win64, Linux, Linux64, Macintosh, Xbox360, PlayStation 2, PlayStation Portable. The other is to use DSP::showConfigDialog. Can be used to display a dialog to configure the filter. Receiver 12.9 for Mac product software. My Account Citrix Cloud. Fix to enable Receiver auto-update. May 18, 2018. A new security certificate was recently released to further enhance the security of Citrix Receiver. However, this certificate disables Receiver Auto-Update functionality.
Link for Unfinished Game exe And for those who beleive in silly Sonar Type Technology, the Main Source for the Game.;Space Invaders;by Booger and Epidemicz;Started 10/2010;. CompilerIf #PBCompilerThread = 0 CompilerError 'Must be compiled in ThreadSafe Mode, no exceptions.' CompilerEndIf IncludeFile 'MediaPacker.pbi';Packs media into exe IncludeFile 'DumpFiles.pbi'; Dumps files to Temp Directory. Needs to be before FmodSoundLibrary.pb IncludeFile '. Fmod FmodSoundLibrary.pb';Sound Functions IncludeFile '.
OpenGLEngine openglGlobals.pb' IncludeFile '. It looks extremely close to the original space invaders. But yes of course, the graphics are not ours. They belong to Taito. This was a proof of concept project. Hence, its not our media, so it can never be uploaded in a finished state. They may not even like the unfinished state.
I'll talk to my friend later and see if he doesn't mind releasing the code to build the entire project. Although, the Sprite engine is quite a wreck, as I knew nothing about OpenGL when I started it. And on top of it all, its not 64bit friendly yet. @Flaith, I hope it to be cross platform someday. I tried to keep OS calls to minimum. The hardest conversion would be the setting up of the OpenGL itself which is specific to each OS.
The rest is, if my memory serves me correctly, purebasic and OpenGL Direct calls.;Generated by: Media Code Tool;(c) 2010 Booger;. DataSection FmodexXdll: IncludeBinary '.;Generated by: Media Code Tool;(c) 2010 Booger;.
Global TempDir.s=GetTemporaryDirectory Global TempFolder.s = 'GameData' Global TempLocation.s = TempDir + TempFolder + ' ' CreateDirectory(TempDir + ' '+ TempFolder) If OpenFile(1, TempLocation + 'fmodex.dll') WriteData(1,?FmodexXdll,?FmodexXdllEnd-?FmodexXdll) CloseFile(1) EndIf MediaUnpacker.pbi. Epidemicz load sound test;. Global SoundSystemObject.l, SoundSystemErrorResult.l;Object Globals To be accessed anywhere, anytime. Global fmod IncludeFile '. Fmod FmodExPrototypes.pbi';FMOD Interfaces;.;-To Do List??;IsSoundPlaying;UnloadSound;SoundVolume;SetSoundPosition;WhatPositionIsSound;StopSound;PanSound;PauseSound;SetSoundTempo;SetSoundEffect;. Procedure ERRCHECK(theresult.l) If theresult #FMODOK MessageRequester('FMOD error!
', Str(theresult) +' '+ FMODErrorString(theresult),#PBMessageRequesterOk ) Delay(2000) End EndIf EndProcedure Procedure FmodInit(NumberOfSounds.l);.;-Create a System object and initialize.;.;Global Fmod=InitFMOD; opens fmod library from dll; If fmodlib=0;Check to see if the dll was loaded correctly.; MessageRequester('Fmod Dll Error ','For one reason, or another, the FMOD Dll was not Loaded. Please make sure the FMODEX.dll is in your.EXE Directory. Fatal Error!' ,#PBMessageRequesterOk ); End;we cannot shutdown and free memory from within a procedure.; EndIf Global Dim SoundObject.l(NumberOfSounds);Sound Object Array Global Dim SoundChannelObject.l(NumberOfSounds);Sound channel Object Array Global SoundChannels.l=NumberOfSounds;Number of channels to be created. We cannot load more sounds then what is passed to the InitSound Procedure. SoundSystemErrorResult.l=FMODSystemCreate(@SoundSystemObject);creates a fmod sound object Debug 'FMODSystemCreate' Errcheck(SoundSystemErrorResult) SoundSystemErrorResult = FMODsystemgetVersion(SoundSystemObject,@version) Debug 'FMODsystemgetVersion' Errcheck(SoundSystemErrorResult) If version =SoundChannels MessageRequester('FmodLoadSoundFile','You have tried to load a sound ID greater than the allocated channels!
You cannot do this. Pay attention!'
/ FMODEX-include for fmodex 4.32.3;/ (it should work for later version with unchanged API, too);/;/ by Froggerprogger,::Edited by Epidemicz and Booger;/ for contact see the PB-forums at Structure FMODDSP userdata.l; 'in'out User created data the dsp plugin writer wants to attach to this object. EndStructure Enumeration; FMODDSPTYPE #FMODDSPTYPEUNKNOWN; This unit was created via a non FMOD plugin so has an unknown purpose. #FMODDSPTYPEMIXER; This unit does nothing but take inputs and mix them together then feed the result to the soundcard unit. #FMODDSPTYPEOSCILLATOR; This unit generates sine/square/saw/triangle or noise tones. #FMODDSPTYPELOWPASS; This unit filters sound using a high quality, resonant lowpass filter algorithm but consumes more CPU time. #FMODDSPTYPEITLOWPASS; This unit filters sound using a resonant lowpass filter algorithm that is used in Impulse Tracker, but with limited cutoff range (0 to 8060hz). #FMODDSPTYPEHIGHPASS; This unit filters sound using a resonant highpass filter algorithm.
#FMODDSPTYPEECHO; This unit produces an echo on the sound and fades out at the desired rate. #FMODDSPTYPEFLANGE; This unit produces a flange effect on the sound. #FMODDSPTYPEDISTORTION; This unit distorts the sound. #FMODDSPTYPENORMALIZE; This unit normalizes or amplifies the sound to a certain level. #FMODDSPTYPEPARAMEQ; This unit attenuates or amplifies a selected frequency range.
#FMODDSPTYPEPITCHSHIFT; This unit bends the pitch of a sound without changing the speed of playback. #FMODDSPTYPECHORUS; This unit produces a chorus effect on the sound.
#FMODDSPTYPEREVERB; This unit produces a reverb effect on the sound. #FMODDSPTYPEVSTPLUGIN; This unit allows the use of Steinberg VST plugins #FMODDSPTYPEWINAMPPLUGIN; This unit allows the use of Nullsoft Winamp plugins #FMODDSPTYPEITECHO; This unit produces an echo on the sound and fades out at the desired rate as is used in Impulse Tracker. #FMODDSPTYPECOMPRESSOR; This unit implements dynamic compression (linked multichannel, wideband) #FMODDSPTYPESFXREVERB; This unit implements SFX reverb #FMODDSPTYPELOWPASSSIMPLE; This unit filters sound using a simple lowpass with no resonance, but has flexible cutoff and is fast. EndEnumeration Structure FMODDSPPARAMETERDESC min.f; in Minimum value of the parameter (ie 100.0).
Max.f; in Maximum value of the parameter (ie 22050.0). Defaultval.f; in Default value of parameter. Name.s; in Name of the parameter to be displayed (ie 'Cutoff frequency'). Label.s; in Short string to be put next to value to denote the unit type (ie 'hz'). Description.s; in Description of the parameter to be displayed as a help item / tooltip for this parameter. EndStructure Enumeration; FMODDSPOSCILLATOR #FMODDSPOSCILLATORTYPE; Waveform type. 4 = triangle.
#FMODDSPOSCILLATORRATE; Frequency of the sinewave in hz. 1.0 to 22000.0. Default = 220.0. EndEnumeration Enumeration; FMODDSPLOWPASS #FMODDSPLOWPASSCUTOFF; Lowpass cutoff frequency in hz. 1.0 to 22000.0.
Default = 5000.0. #FMODDSPLOWPASSRESONANCE; Lowpass resonance Q value. Default = 1.0. EndEnumeration Enumeration; FMODDSPITLOWPASS #FMODDSPITLOWPASSCUTOFF; Lowpass cutoff frequency in hz.
1.0 to 22000.0. Default = 5000.0/ #FMODDSPITLOWPASSRESONANCE; Lowpass resonance Q value. 0.0 to 127.0. Default = 1.0.
EndEnumeration Enumeration; FMODDSPHIGHPASS #FMODDSPHIGHPASSCUTOFF; Highpass cutoff frequency in hz. 10.0 to output 22000.0. Default = 5000.0. #FMODDSPHIGHPASSRESONANCE; Highpass resonance Q value. Default = 1.0. EndEnumeration Enumeration; FMODDSPECHO #FMODDSPECHODELAY; Echo delay in ms.
Default = 500. #FMODDSPECHODECAYRATIO; Echo decay per delay. 1.0 = No decay, 0.0 = total decay. Default = 0.5.
#FMODDSPECHOMAXCHANNELS; Maximum channels supported. 0 = same as fmod's default output polyphony, 1 = mono, 2 = stereo etc. See remarks for more. It is suggested to leave at 0! #FMODDSPECHODRYMIX; Volume of original signal to pass to output. Default = 1.0. #FMODDSPECHOWETMIX; Volume of echo signal to pass to output.
Default = 1.0. EndEnumeration Enumeration; FMODDSPFLANGE #FMODDSPFLANGEDRYMIX; Volume of original signal to pass to output. Default = 0.45.
#FMODDSPFLANGEWETMIX; Volume of flange signal to pass to output. Default = 0.55. #FMODDSPFLANGEDEPTH; Flange depth. Default = 1.0. #FMODDSPFLANGERATE; Flange speed in hz. Default = 0.1. EndEnumeration Enumeration; FMODDSPDISTORTION #FMODDSPDISTORTIONLEVEL; Distortion value.
Default = 0.5. EndEnumeration Enumeration; FMODDSPNORMALIZE #FMODDSPNORMALIZEFADETIME; Time to ramp the silence to full in ms. 0.0 to 20000.0.
Default = 5000.0. #FMODDSPNORMALIZETHRESHHOLD; Lower volume range threshold to ignore. Default = 0.1. Raise higher to stop amplification of very quiet signals. #FMODDSPNORMALIZEMAXAMP; Maximum amplification allowed. 1.0 to 100000.0. Default = 20.0.
1.0 = no amplifaction, higher values allow more boost. EndEnumeration Enumeration; FMODDSPPARAMEQ #FMODDSPPARAMEQCENTER; Frequency center. 20.0 to 22000.0.
Default = 8000.0. #FMODDSPPARAMEQBANDWIDTH; Octave range around the center frequency to filter. Default = 1.0. #FMODDSPPARAMEQGAIN; Frequency Gain. Default = 1.0. EndEnumeration Enumeration; FMODDSPPITCHSHIFT #FMODDSPPITCHSHIFTPITCH; Pitch value. Default = 1.0.
0.5 = one octave down, 2.0 = one octave up. 1.0 does not change the pitch. #FMODDSPPITCHSHIFTFFTSIZE; FFT window size. 256, 512, 1024, 2048, 4096.
Default = 1024. Increase this to reduce 'smearing'. This effect is a warbling sound similar to when an mp3 is encoded at very low bitrates. #FMODDSPPITCHSHIFTOVERLAP; Window overlap.
Increase this to reduce 'tremolo' effect. Increasing it by a factor of 2 doubles the CPU usage. #FMODDSPPITCHSHIFTMAXCHANNELS; Maximum channels supported. 0 = same as fmod's default output polyphony, 1 = mono, 2 = stereo etc.
See remarks for more. It is suggested to leave at 0! EndEnumeration Enumeration; FMODDSPCHORUS #FMODDSPCHORUSDRYMIX; Volume of original signal to pass to output. Default = 0.5. #FMODDSPCHORUSWETMIX1; Volume of 1st chorus tap. Default = 0.5. #FMODDSPCHORUSWETMIX2; Volume of 2nd chorus tap.
This tap is 90 degrees out of phase of the first tap. Default = 0.5. #FMODDSPCHORUSWETMIX3; Volume of 3rd chorus tap. This tap is 90 degrees out of phase of the second tap.
Default = 0.5. #FMODDSPCHORUSDELAY; Chorus delay in ms. 0.1 to 100.0. Default = 40.0 ms.
#FMODDSPCHORUSRATE; Chorus modulation rate in hz. Default = 0.8 hz. #FMODDSPCHORUSDEPTH; Chorus modulation depth.
Default = 0.03. #FMODDSPCHORUSFEEDBACK; Chorus feedback. Controls how much of the wet signal gets fed back into the chorus buffer. Default = 0.0. EndEnumeration Enumeration; FMODDSPREVERB #FMODDSPREVERBROOMSIZE; Roomsize. Default = 0.5 #FMODDSPREVERBDAMP; Damp. Default = 0.5 #FMODDSPREVERBWETMIX; Wet mix.
Default = 0.33 #FMODDSPREVERBDRYMIX; Dry mix. Default = 0.0 #FMODDSPREVERBWIDTH; Width.
Default = 1.0 #FMODDSPREVERBMODE; Mode. 0 (normal), 1 (freeze).
Default = 0 EndEnumeration Enumeration; FMODDSPITECHO #FMODDSPITECHOWETDRYMIX; Ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from 0.0 through 100.0 (all wet). The default value is 50. #FMODDSPITECHOFEEDBACK; Percentage of output fed back into input, in the range from 0.0 through 100.0. The default value is 50. #FMODDSPITECHOLEFTDELAY; Delay for left channel, in milliseconds, in the range from 1.0 through 2000.0.
The default value is 500 ms. #FMODDSPITECHORIGHTDELAY; Delay for right channel, in milliseconds, in the range from 1.0 through 2000.0. The default value is 500 ms. #FMODDSPITECHOPANDELAY; Value that specifies whether to swap left and right delays with each successive echo. The default value is zero, meaning no swap. Possible values are defined as 0.0 (equivalent to FALSE) and 1.0 (equivalent to TRUE).
EndEnumeration Enumeration; FMODDSPCOMPRESSOR #FMODDSPCOMPRESSORTHRESHOLD; Threshold level (dB)in the range from -60 through 0. The default value is 50. #FMODDSPCOMPRESSORATTACK; Gain reduction attack time (milliseconds), in the range from 10 through 200. The default value is 50. #FMODDSPCOMPRESSORRELEASE; Gain reduction release time (milliseconds), in the range from 20 through 1000. The default value is 50. #FMODDSPCOMPRESSORGAINMAKEUP; Make-up gain applied after limiting, in the range from 0.0 through 100.0.
The default value is 50. EndEnumeration Enumeration; FMODDSPSFXREVERB #FMODDSPSFXREVERBDRYLEVEL; Dry Level: Mix level of dry signal in output in mB.
Ranges from -10000.0 to 0.0. Default is 0.0. #FMODDSPSFXREVERBROOM; Room: Room effect level at low frequencies in mB.
Ranges from -10000.0 to 0.0. Default is 0.0. #FMODDSPSFXREVERBROOMHF; Room HF: Room effect high-frequency level re. Low frequency level in mB. Ranges from -10000.0 to 0.0. Default is 0.0.
#FMODDSPSFXREVERBROOMROLLOFFFACTOR; Room Rolloff: Like DS3D flRolloffFactor but for room effect. Ranges from 0.0 to 10.0. Default is 10.0 #FMODDSPSFXREVERBDECAYTIME; Decay Time: Reverberation decay time at low-frequencies in seconds. Ranges from 0.1 to 20.0. Default is 1.0. #FMODDSPSFXREVERBDECAYHFRATIO; Decay HF Ratio: High-frequency to low-frequency decay time ratio. Ranges from 0.1 to 2.0.
Default is 0.5. #FMODDSPSFXREVERBREFLECTIONSLEVEL; Reflections: Early reflections level relative to room effect in mB. Ranges from -10000.0 to 1000.0. Default is -10000.0.
#FMODDSPSFXREVERBREFLECTIONSDELAY; Reflect Delay: Delay time of first reflection in seconds. Ranges from 0.0 to 0.3. Default is 0.02. #FMODDSPSFXREVERBREVERBLEVEL; Reverb: Late reverberation level relative to room effect in mB.
Ranges from -10000.0 to 2000.0. Default is 0.0. #FMODDSPSFXREVERBREVERBDELAY; Reverb Delay: Late reverberation delay time relative to first reflection in seconds. Ranges from 0.0 to 0.1. Default is 0.04. #FMODDSPSFXREVERBDIFFUSION; Diffusion: Reverberation diffusion (echo density) in percent.
Ranges from 0.0 to 100.0. Default is 100.0.
#FMODDSPSFXREVERBDENSITY; Density: Reverberation density (modal density) in percent. Ranges from 0.0 to 100.0. Default is 100.0. #FMODDSPSFXREVERBHFREFERENCE; HF Reference: Reference high frequency in Hz.
Ranges from 20.0 to 20000.0. Default is 5000.0. EndEnumeration Enumeration; FMODDSPLOWPASSSIMPLE #FMODDSPLOWPASSSIMPLECUTOFF; Lowpass cutoff frequency in hz. 10.0 to 22000.0.