I find myself torn between making a game and playing a game.
Touch choices!
I have lost the ability to tell if my game is fun. What's "fun"? I don't get it.Once I started making games I ran out of time to play them ;p
I've had this problem the last week or two. Use the Wii U devkit? But I'm using the Wii U to play Mario instead!I find myself torn between making a game and playing a game.
Touch choices!
Once I started making games I ran out of time to play them ;p
Sorry GIF Warning!
Slowed down some 60fps footage to see the cool animations. We finally nailed the particles I think
And the Purge enemy
And the reaction to your ship. We decided for him not to do any damage, but to push you out of the way.
I have lost the ability to tell if my game is fun. What's "fun"? I don't get it.
That's cool, indeed. Especially when you combine scancodes together and sendAs crazy as you are, missile, you might as well write a virtual keyboard driver and/or a filter driver for added fun. I wrote a filter driver to take gamepad input in certain cases and generate keypresses from the virtual keyboard, for example.
But doing that sort of thing always makes me scared that I'm going to get VAC banned or something because the same technology could almost certainly be used to cheat/keylog/do all kinds of stuff.
Never used Direct{Input, 3D, Sound, ...} before. Glad those times have passedYes.
See the MSDN info here
Using the (deprecated) Direct Input calls is your best option. Obtain a Keyboard device, use SetDataFormat to prepare it for data retrieval, then call its
GetDeviceState method. This fills in the instantaneous state of all keys on the keyboard, indexed by scan codes, not virtual key codes. The number of simultaneous keys detected is dependent on your keyboard hardware.
Note that using this function makes many antivirus programs flip out, since this is the easiest way to implement a keylogger.
DirectInput8Create(hInst,
DIRECTINPUT_VERSION,
IID_IDirectInput8,
(void **) &pDI,
0);
pDI->CreateDevice(GUID_SysKeyboard, &pKB, 0);
pKB->SetDataFormat(&c_dfDIKeyboard);
pKB->SetCooperativeLevel(hWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE);
void KB_Poll(void)
{
pKB->GetDeviceState(256, (void **) &KB_state);
// for example
if((KB_state[DIK_PAUSE] & 0x80) != 0)
printf("0x%x\n", KB_state[DIK_PAUSE]);
}
Uhhhhh ... I love Raw Input!I'm going to disagree with Mikado. Noone should be using DirectInput in 2013. It's been deprecated for about a decade.
Raw Input is the best way to go.
Every Windows API for getting keyboard input is broken in it's own special unique way however, so expect some frustration.
RAWINPUT KB_ri;
KB_ri.usUsagePage = 1;
KB_ri.usUsage = 6;
KB_ri.dwFlags = 0; // RIDEV_NOLEGACY (disables WM_KEY{DOWN,UP} messages)
KB_ri.hwndTarget = hWnd;
RegisterRawInputDevices(&KB_ri, 1, sizeof(KB_ri)); // just one device
...
case WM_INPUT :
GetRawInputData((HRAWINPUT) msg->lParam,
RID_INPUT,
&rawinp,
pcbSize,
sizeof(RAWINPUTHEADER));
if(rawinp.header.dwType == RIM_TYPEKEYBOARD)
{
// RI_KEY_BREAK 1 The key is up.
// RI_KEY_E0 2
// RI_KEY_E1 4
// RI_KEY_MAKE 0 The key is down.
printf("----------\n");
printf("make: 0x%x\n", rawinp.data.keyboard.MakeCode);
printf("flags: 0x%x\n", rawinp.data.keyboard.Flags);
printf("vkey: 0x%x\n", rawinp.data.keyboard.VKey);
}
return 0;
break;
...
@Popstar: Cool hint, mate. Well, I plugged the DS3 controller into the
computer and it got recognize as an HID device. Cool. So instead of using any
lib to control the DS3 I'm hoping to be able to address the controller
directly, which would be way cool. Haven't gone any further at the moment, but
does someone already figured out the protocol to make sense of the bytes sent
by the controller, if this is even possible using Raw Input (it should be)?
// joystick (page 1, usage 4)
rawdevice[n].usUsagePage = 0x01;
rawdevice[n].usUsage = 0x04;
rawdevice[n].hwndTarget = hwnd;
rawdevice[n].dwFlags = RIDEV_DEVNOTIFY; // DEVNOTIFY flag only works on Vista or better
++n;
// gamepad (page 1, usage 5)
rawdevice[n].usUsagePage = 0x01;
rawdevice[n].usUsage = 0x05;
rawdevice[n].hwndTarget = hwnd;
rawdevice[n].dwFlags = RIDEV_DEVNOTIFY; // DEVNOTIFY flag only works on Vista or better
++n;
RegisterRawInputDevices( rawdevice, n, sizeof(RAWINPUTDEVICE) );
else if( raw->header.dwType == RIM_TYPEHID )
{
// Parse the Raw Input
PHIDP_PREPARSED_DATA ppd;
GetRawInputDeviceInfo( raw->header.hDevice, RIDI_PREPARSEDDATA, NULL, &dwSize );
ppd = (PHIDP_PREPARSED_DATA)_malloca( dwSize );
GetRawInputDeviceInfo( raw->header.hDevice, RIDI_PREPARSEDDATA, ppd, &dwSize );
// Get the gamepad's capabilities
HIDP_CAPS caps;
HidP_GetCaps( ppd, &caps );
// Button caps
PHIDP_BUTTON_CAPS buttoncaps = (PHIDP_BUTTON_CAPS)_malloca( sizeof(HIDP_BUTTON_CAPS) * caps.NumberInputButtonCaps );
USHORT buttonCapsLength;
HidP_GetButtonCaps( HidP_Input, buttoncaps, &buttonCapsLength, ppd );
//plInfof( "Number of buttons: %d\n", buttoncaps[0].Range.UsageMax - buttoncaps[0].Range.UsageMin + 1 );
Our designer loves excel. I think he might marry it. He's also started using evernote and seems to like it.Any tips besides the coding part suggested in this thread that can help during development?
Even Excel is an acceptable answer, i'd like to know what things devs use to support themselves while coding/designing
You may need to move those images to a publicly shared directory, because they are not showing up right now.Making some good progress and got a new model in
Bit of a zoom in on my new refinery model
Reusing my battleship model but these act like a squad of smaller fighters. Also shows off some asteroids which will be no move zones
Last but not least , showing off some of the ai (red team) and a bit of resource collection and movement
Dohh too much traffic so dropbox has stopped it
Whats another good public sharing site ? Currently reuploading them to skydrive
So I'm thinking I'd like to try making a really basic top-down shooter over my Christmas break in the upcoming weeks just for fun and to get back into programming a little bit, as well as have something to do with my free time. I was thinking that since Unity just released their 2D stuff that I could try that out, but I also just got Game Maker Standard edition so I'm wondering which engine you guys would use for a project like this? I'm assuming that either could work for this type of game but I'm not sure which would be better suited for a simple project like this.
Any recommendations? I'm open to working with other free engines too.
I'd say if you want to get something up and running quickly, roll with GM.
Holy huge file sizes, batman! You may want to find a way to make youtube videos or smaller GIFs. Cool graphics though.
Holy huge file sizes, batman! You may want to find a way to make youtube videos or smaller GIFs. Cool graphics though.
Yeh noted , these where just quick and dirty from gifcam . I really need to learn to compress them in the future
Nice particlesRecorded some generic gameplay, unfortunately i had to use youtube music...
http://www.youtube.com/watch?v=9rwSD0gwUEk
If you find any programs let us know!
Nice particles
Have it working under Linux as well. Yet the Windows port needs a little more... The DS3 however isn't quite HID compliant. It requires a special message (HID report) to be sent to it before it will start to send data. OS X / Linux recognize the DS3 and initialize it properly, but Windows does not.
@ConvenientBox: FX sounds?
I won't be home for about five hours, so I can't double check, but I think the answer is yes. I've been able use my DS4 just by plugging it in and checking DirectInput. xInput does not work as of yet. But I can double check when I get home.Any game developer here already holding a DS4 in his hands? If so, can you
check whether the controller is recognized as a HID compliant device while
putting it into a PC? Look at Device Manager (on Windows) / Input Devices
while plugging the controller in. Thx!
Any game developer here already holding a DS4 in his hands? If so, can you
check whether the controller is recognized as a HID compliant device while
putting it into a PC? Look at Device Manager (on Windows) / Input Devices
while plugging the controller in. Thx!
I'm working on the graphics side of my 2d isometric-ish rpg and currently looking at spell effects and visuals. I've been reading about particle systems and from a programming perspective the basics seem quite straight-forward.
I'm still a bit in the dark about the practical process of creating a particle effect though, that is defining the emitters and particle parameters that create something that actually looks like an explosion as opposed to say just an expanding circle of quadrangles. Are there any generic tools to help with this or is it usually just stuff specific to the engine you're using?
I'm particularly confused about how you create a "ray" like spell effect, as opposed to something like an explosion. For example something like a lightning bolt or this kind of thing:
I won't be home for about five hours, so I can't double check, but I think the answer is yes. I've been able use my DS4 just by plugging it in and checking DirectInput. xInput does not work as of yet. But I can double check when I get home.
Yep, it appeared as HID-compliant game controller. And my keyboard stopped working!
I don't actually have a PS4, that's still to be delivered, but I have CoD, BF4, and a controller!
Still, I'm busy making my new game, and playing Zelda on 3DS. Don't need the distraction!!
If you have run an DS3 on your system it may happen that the DS4 may
sneak under an existing driver as a non-HID compliant DS3 controller (being
perhaps compatible to a DS3) managed by some old installed DS3 driver leading
to a false positive. Just a thought. Anyhow. Within Input Devices there should
light up a new entry uniquely identifying the DS4 controller without any need
to install a new driver (for faking it to be compliant) or something, since a
compliant DS4 controller would sent the HID information itself with Windows'
HIDCLASS building a unique PDO for each Top Level Collection delivered by the
DS4s Report Descriptor.
The ray part is a camera facing quad with scrolling UVs. The texture fades out towards the edges so you don't see the hard edge. The texture is probably really long and repeating, so it can be scrolled super fast to look like an energy beam. Then there are particles moving all over it to make it looks less obvious.
Good luck!
Edit: By 'repeating', I mean tileable, and the addressing set to wrap rather than clamp. Not that the texture repeats within itself, that would be mad!
Toying around with death animations and gibs. Thanksgiving gibs.
This is just a test environment and stuff etc. Nevermind the environment.
[/img]http://www.ghostsonggame.com/miscd/zkill.gif[/img]
There's going to be blood and sparks and stuff too. Just looking at gibs right now.
Toying around with death animations and gibs. Thanksgiving gibs.
This is just a test environment and stuff etc. Nevermind the environment.
There's going to be blood and sparks and stuff too. Just looking at gibs right now.
Toying around with death animations and gibs. Thanksgiving gibs.
Toying around with death animations and gibs. Thanksgiving gibs.
This is just a test environment and stuff etc. Nevermind the environment.
There's going to be blood and sparks and stuff too. Just looking at gibs right now.
Loving this stuff, glad I backed it.
If someone really applied themselves, do you think they'd be able to reach that level of quality in a year or two?
Uh... I plugged it in. It installed. I went to the controller properties panel and the buttons, sticks, d-pad and triggers all worked. Then I looked in the panel you said about and a new item with HID-compliant in its title appeared when I plugged it in.
The new clicky pad is detected as a button, so that should differentiate it from a DS3.
@missile
I just checked in Device Manager, and it's registered as "HID-compliant game controller". In Control Panel, under "Setup USB Game Controllers" it's listed as "Wireless Game Controller" even though it's plugged in via USB. The button map is:
1:square
2:X
3:O
4:triangle
5:L1
6:R1
7:L2
8:R2
9:Share
10:Options
11:L3
12:R3
13S
14:Touchpad
PoVHat-Pad
XY-axis:L-stick
Z-axis/rotation:R-stick
X-rotation:L-trigger
Y-rotation:R-trigger
Same over here. I miss the time spending hours into a game mastering it to itsOnce I started making games I ran out of time to play them ;p
You can use Raw Input for gamepads too. As long as they're USB HID compliant.
Setting up is easy. You do it the same way as the keyboard
Code:// joystick (page 1, usage 4) rawdevice[n].usUsagePage = 0x01; rawdevice[n].usUsage = 0x04; rawdevice[n].hwndTarget = hwnd; rawdevice[n].dwFlags = RIDEV_DEVNOTIFY; // DEVNOTIFY flag only works on Vista or better ++n; // gamepad (page 1, usage 5) rawdevice[n].usUsagePage = 0x01; rawdevice[n].usUsage = 0x05; rawdevice[n].hwndTarget = hwnd; rawdevice[n].dwFlags = RIDEV_DEVNOTIFY; // DEVNOTIFY flag only works on Vista or better ++n; RegisterRawInputDevices( rawdevice, n, sizeof(RAWINPUTDEVICE) );
And then you parse the data from the WM_INPUT message
Code:else if( raw->header.dwType == RIM_TYPEHID ) { // Parse the Raw Input PHIDP_PREPARSED_DATA ppd; GetRawInputDeviceInfo( raw->header.hDevice, RIDI_PREPARSEDDATA, NULL, &dwSize ); ppd = (PHIDP_PREPARSED_DATA)_malloca( dwSize ); GetRawInputDeviceInfo( raw->header.hDevice, RIDI_PREPARSEDDATA, ppd, &dwSize ); // Get the gamepad's capabilities HIDP_CAPS caps; HidP_GetCaps( ppd, &caps ); // Button caps PHIDP_BUTTON_CAPS buttoncaps = (PHIDP_BUTTON_CAPS)_malloca( sizeof(HIDP_BUTTON_CAPS) * caps.NumberInputButtonCaps ); USHORT buttonCapsLength; HidP_GetButtonCaps( HidP_Input, buttoncaps, &buttonCapsLength, ppd ); //plInfof( "Number of buttons: %d\n", buttoncaps[0].Range.UsageMax - buttoncaps[0].Range.UsageMin + 1 );
The DS3 however isn't quite HID compliant. It requires a special message (HID report) to be sent to it before it will start to send data. OS X / Linux recognize the DS3 and initialize it properly, but Windows does not.