Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411278 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 12:53:29 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityJams & EventsCompetitionsOld CompetitionsCockpit CompetitionVenus Patrol [FINISHED]
Pages: [1] 2 3 4
Print
Author Topic: Venus Patrol [FINISHED]  (Read 45991 times)
Pishtaco
Level 10
*****


View Profile WWW
« on: February 28, 2009, 09:41:46 AM »

VENUS PATROL







Download Venus Patrol (13/4/09)
Original competition version

YouTube video


(If the game quits with an error about an "access violation", there is a workaround which may work for you here; in this version I disabled most of the HUD, since that seemed to be causing the problem.)

This is not a full game, just a space to fly around in with some possible enemies. Do not fly too deeply into the clouds; your plane won't like it.

The plane is controlled by moving the mouse. To roll, hold down the left button; this will keep the elevator reasonably centered but give you more control over the ailerons. The mouse wheel controls the throttle. Left control fires the guns.

Left shift switches between a free and a target-tracking camera. Holding down space moves to the internal camera. You can rotate the free camera using the mouse, by holding down the right button. You can zoom the external cameras by scrolling the mouse wheel while holding down the right button.

Tab selects the target nearest the centre of the screen. Z and X cycle between targets. You can press T to hide the clockface around your plane.

Wingman commands are F for "fly formation", A for "attack my target" and C for "choose your own targets."

The Esc key quits, and is the only way to leave the game.


(Edit: Added .dll file to download)
(Edit 8/4/09: People were still having problems with the .dll, so I have packaged the .exe differently and it should work now. I also fixed one last-minute bug that was making the clouds much too deadly.)
(Edit 9/4/09: Reactivated the console to give some feedback for any problems with the main download. Added a workaround version with no HUD.)
(Edit 13/4/09: Did some optimizations, changed keys.)
« Last Edit: January 02, 2010, 09:00:22 AM by Pishtaco » Logged

Pishtaco
Level 10
*****


View Profile WWW
« Reply #1 on: February 28, 2009, 09:42:10 AM »

Pitch from original first post:
Quote
It's 1960, and a squadron of the Royal Interplanetary Air Force has been stationed at New Adelaide, to show the flag, keep an eye on the natives and protect the refinery workers from the oversized wildlife.

No women, shameful food -- but amazing opportunities for a spot of shikar!



Prototype 1/3/09
The mouse moves the camera; if you hold down the left button, it moves the control stick. No engine yet, just gliding. The c key locks the camera to rotate with the plane.

My ideas at the moment: stiffen your upper lip, form echelon with your ghillie, and hunt big game across the skies of Venus! I am aiming for a flight sim with realistically-inspired physics. I would like it to be controllable naturally without a joystick, and to have a good view system, so that you do not feel confined to seeing a tunnel in front of the cockpit. This will probably be hard. The visual style I'm thinking of is 1950s-1970s stylized paperback cover; I haven't quite decided what that means yet.

The weather on our sister planet is terrible right now, and the ground is hidden behind thick layers of cloud; I'm hoping this will change, but I don't know how much I can do in a month. The Venusian megafauna can defend themselves in various ways, and many of them must be approached stealthily, with a good understanding of their senses of sight, hearing and, in some cases, primitive radar.
« Last Edit: April 07, 2009, 12:52:33 AM by Pishtaco » Logged

Synnah
Level 7
**


La la la la - oh, what fun!


View Profile WWW
« Reply #2 on: February 28, 2009, 09:50:04 AM »

Wow, this sounds really interesting! And I love the style of that image.
Logged

"What's that thing at the end of the large intestine? Because that's exactly what you've done here." - Ray Smuckles, Achewood.

My music. Will compose for free!
Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #3 on: February 28, 2009, 11:31:32 AM »

Yeah, the art style looks really nice, and I lol'ed at "realistically inspired physics" :D
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
Fuzz
Guest
« Reply #4 on: February 28, 2009, 01:35:43 PM »

Looks cool, and I love the 50s book cover art style, but filedropper doesn't work for me.  Cry
Logged
Pishtaco
Level 10
*****


View Profile WWW
« Reply #5 on: March 01, 2009, 05:47:33 AM »

I rehosted the prototype on WillHostforFood. I also just updated it to have friendlier controls, making them recenter themselves automatically and moving them closer to the middle of the screen. It's important to know effortlessly what the current position of the stick is, and that wasn't working with them at the edges. And I'm wondering if I should cheat and give the plane some extra stability in rolling, so that its easier to fly level without always having to fiddle with the mouse to stop yourself dropping off to one side. This would be less of a problem with a first-person view, and I have vague plans to make the game split-screen, with a sketchy cockpit view in the bottom-right corner that you can zoom in on to fill more of the screen when taking a shot.

I'm writing this in pyglet, and have so far been doing all of the graphics by hand in immediate-mode OpenGL. This hasn't caused problems yet, but as I start putting more things on the screen either I am going to have to learn more about c types and video-card memory management than I want to know, or I will need to learn how to use some existing engine, which might be just as hard.  Epileptic
Logged

jph wacheski
Level 1
*


It's only a matter of folding time and space,..


View Profile WWW
« Reply #6 on: March 01, 2009, 07:50:42 AM »

well it is very interesting,. I quite like the tracers flowing off the back of the plane,. what are they?  tinny boxes?   must be a million of them..,

not sure how this will be played yet,. the controles now are quite strange to me,. but fun to see the plane stall an spin about,. not sure I could sully glide with out massive casualties though,. perhaps with stick controles and a first person view.

try the ZGameEditor if you don't want to worry about the GL crap,. .
Logged

http://iterationGAMES.com
http://jph_wacheski.itch.io/
all my itch.io games are now pay-what-you-like Wink
Pishtaco
Level 10
*****


View Profile WWW
« Reply #7 on: March 15, 2009, 03:15:19 AM »


Prototype March 15th: http://willhostforfood.com/access.php?fileid=58740

I spent a while laying out the code in a more sensible way, and have since been able to add things to it fairly painlessly. So the flight model and interface are in. I left the engines till last; it was very satisfying to finally add the line "max_thrust = 2*16000" and see the plane come alive straightaway (well, after fixing a couple of bugs).

The mouse controls the yoke and the mouse wheel the throttle. If you hold down the left mouse button, then the mouse controls the camera and the mouse wheel zooms. I'm pretty happy with how it controls; I get a good feeling that I can zip around the sky the way I want. Although it may be a bit too responsive at high speed right now. Any comments very much appreciated.  Gentleman

I'm running out of time to put any sort of game in there, but we will see what happens. Next up, I think, is animals. The plan is to model them after Soviet planes and ships, give them some simple flocking-style behaviour, and see how many can be crammed in before Python chokes.
Logged

PGGB
Level 8
***



View Profile
« Reply #8 on: March 15, 2009, 05:17:09 AM »

Looking mighty fine. I can't run that prototype though:
Code:
Traceback (most recent call last):
  File "<string>", line 4, in <module>
  File "C:\Python25\pyinstaller-1.3\iu.py", line 312, in importHook
  File "C:\Python25\pyinstaller-1.3\iu.py", line 398, in doimport
  File "C:\flight\buildflight\out1.pyz/view", line 10, in <module>
  File "C:\Python25\pyinstaller-1.3\iu.py", line 312, in importHook
  File "C:\Python25\pyinstaller-1.3\iu.py", line 398, in doimport
  File "C:\flight\buildflight\out1.pyz/sound", line 4, in <module>
  File "C:\Python25\pyinstaller-1.3\iu.py", line 312, in importHook
  File "C:\Python25\pyinstaller-1.3\iu.py", line 398, in doimport
  File "C:\flight\buildflight\out1.pyz/pyglet.media", line 1355, in <module>
AttributeError: 'module' object has no attribute 'AVbinSource'
Logged
Pishtaco
Level 10
*****


View Profile WWW
« Reply #9 on: March 15, 2009, 06:27:52 AM »

Thanks for the report. I tried it on the other computer at work, and got the same problem. On the assumption that it was pyinstall not agreeing with the sound libraries in pyglet, I tried packaging it using pyexe instead: http://www.willhostforfood.com/access.php?fileid=58751

For me, this works on the other computer for a few seconds, then quits with a different error about playing sounds. I don't expect much from that computer, so am not too worried; but I did find the pyglet documentation slightly vague about whether you need "openAL" installed or not to use positional audio.
Logged

nihilocrat
Level 10
*****


Full of stars.


View Profile WWW
« Reply #10 on: March 15, 2009, 06:52:36 AM »

By the look of the framerate meter and the AVbin bug it looks like you're coding it in Pyglet. I've never seen anyone do proper 3d with it, though it does cleanly expose the OpenGL API, so good job there.

I have managed to play the game using the first one you posted (http://willhostforfood.com/access.php?fileid=58740) by just including avbin.dll in the same directory as the .exe. A safe version of the dll should be available somewhere online, I had it sitting in one of my Pyglet projects so I don't know where off the top of my head. I also have OpenAL already installed on my system, so that might help.

Anyways, cool stuff! Neat sounds, and nice flight model; I already managed to stall my plane. It seems there are some strong winds that you have to fight, so it's hard to pull off a clean barrel roll.

Also, you can get some speedup if you echew immediate mode rendering and instead use vertex buffers. I actually can't find an example of it on this particular machine, but there should be examples in the pymunk demos, and maybe in the pyglet ones as well. I would generally suggest implementing all the features you want, then going about doing some simple well-known high-level optimizations (making it so that your central update loop uses only local variables; remember you have to pay a small price for each dot because "pyglet.foo.bar" is evaluated at runtime) before going closer to the bare metal with C and any video card shenanigans. Performing an oft-repeated operation more elegantly can often net you a lot more speedup than making sure every little function in your code is optimized.
« Last Edit: March 15, 2009, 07:09:46 AM by nihilocrat » Logged

Pishtaco
Level 10
*****


View Profile WWW
« Reply #11 on: March 15, 2009, 07:39:05 AM »

There isn't any wind in the game at the moment, but it's tough to do precise rolls because of the way the aileron control works. The warning that a wing is close to stalling is when gaps appear in the trail it leaves.

Thanks very much for the pyglet tips. I've actually been getting into the vertex list and batch stuff today. From some tests it looks like it will be necessary if I want to have lots of enemies, or to put in interesting clouds or terrain. However what the documentation says about batches doesn't seem useful for what I am trying to do right now. I want to draw dozens of enemies, all moving around independently; can this be done as a batch? It looks like I am going to have to transform each enemy's vertex list myself, outside openGL, before calling batch.draw() each frame; I would like to get OpenGL to do these transformations for me, but I don't see how I can do that. There are the group commands, which OpenGl will call inbetween vertex lists in a batch, but from the documentation it looks they are only used to switch things on and off, not to transform things. And anyway, what would be the point of storing dozens of identical vertex lists?

I read somewhere that Numpy was useful for processing large amounts of data quickly in a way that's compatible with opengl; maybe that's something to try, down the line.
Logged

PGGB
Level 8
***



View Profile
« Reply #12 on: March 15, 2009, 08:33:56 AM »

Ok, the second version quits after a few seconds with this error:
Code:
Traceback (most recent call last):
  File "flight.py", line 63, in <module>
  File "pyglet\app\__init__.pyc", line 264, in run
  File "pyglet\app\win32.pyc", line 63, in run
  File "pyglet\app\win32.pyc", line 84, in _timer_func
  File "pyglet\app\__init__.pyc", line 187, in idle
  File "pyglet\clock.pyc", line 696, in tick
  File "pyglet\clock.pyc", line 303, in tick
  File "pyglet\media\__init__.pyc", line 934, in dispatch_events
  File "pyglet\media\__init__.pyc", line 712, in _fill_audio
  File "pyglet\media\__init__.pyc", line 761, in _get_audio_data
  File "pyglet\media\__init__.pyc", line 474, in _seek
pyglet.media.CannotSeekException

If you put in the avbin.dll as suggested by nihilocrat both versions work though the framerate drops in the second one.

The visuals are really really nice and the controls seem to work really well except for the rolling part.
Logged
Pishtaco
Level 10
*****


View Profile WWW
« Reply #13 on: March 15, 2009, 09:07:42 AM »

Thanks!

Nihilocrat: what do you mean by a 'safe' version of the dll?

Meanwhile, I have been having more troubles with basic linear algebra in python. There's no built in support for it in the language, and OpenGL and pyode seem to like their vectors in slightly different formats. I had been using euclid.py for internal stuff, although it took me ages to understand how to set up matrices in it, but now I've found out that, despite it not allowing you to multiply 3-vectors by 3x3 matrices but only by 4x4 matrices, it doesn't even use the bottom row of the 4x4 matrix. I had assumed that it would automatically treat it as a translation, but no. However, I have found a way to cheat: Pyode has a utility function which transforms vectors from space relative to a body to world space. I'm now using this to prepare my vertex lists for Opengl, and it's actually running faster than matrix multiplication in Python.
Logged

nihilocrat
Level 10
*****


Full of stars.


View Profile WWW
« Reply #14 on: March 16, 2009, 04:52:15 PM »

Nihilocrat: what do you mean by a 'safe' version of the dll?

I just mean a) the correct version and b) not some virus-ridden binary blob. I always feel a little iffy when I download a .dll from one of those .dll sites, though I've never had any issues.
Logged

trabitboy
Level 0
***


View Profile WWW
« Reply #15 on: March 17, 2009, 02:47:42 AM »

quits after a few seconds,
which is a shame cause it feels very fun   Hand Fork Left Hand Knife Right
feels like a winner if you can get a stable release out  Coffee Gentleman
Logged

Pishtaco
Level 10
*****


View Profile WWW
« Reply #16 on: March 17, 2009, 04:41:27 AM »

I've rehosted it, with avbin included: http://www.willhostforfood.com/access.php?fileid=58921 . Just running flight.exe should hopefully work.

I think the trouble with rolling is that I've included some automatic rudder when you bank, because I read something once about co-ordinated turns. I will change it so that at higher speeds the elevator and ailerons have reduced effects and the rudder doesn't do anything; maybe that will take care of it.
Logged

fiber optic asparagus
Level 0
***


View Profile
« Reply #17 on: March 17, 2009, 02:41:40 PM »

this is one of my favorite games already
Logged

I have mooselike reflexes
trabitboy
Level 0
***


View Profile WWW
« Reply #18 on: March 18, 2009, 01:14:49 AM »

works perfectly now  Gentleman
Logged

agj
Level 10
*****



View Profile WWW
« Reply #19 on: March 19, 2009, 12:09:41 AM »

Amazing aesthetics, nice feel, though I have a hard time getting the plane to go anywhere but down...
Logged

Pages: [1] 2 3 4
Print
Jump to:  

Theme orange-lt created by panic