Release Flying Snake


undexsym

dreamcast.
Joined
Nov 16, 2013
Messages
166
Age
124
Location
dreamcast.
Website
www.dreamcast.com
WEBSITE
dreamcast.
YAHOO
dreamcast.
AOL
dreamcast.
LOCATION
dreamcast.
FACEBOOK
dreamcast.
SKYPE
dreamcast.
YOUTUBE
dreamcast.
I made a snake game. It's 3D and the snake kinda moves like an aircraft.

http://repo.openpandora.org/?page=detail&app=flyingsnake_undexsym

Controls:

Left/Right - Yaw

Up/Down - Pitch

L/R - Roll

ABXY - Speed up

Start - Start game/pause

Select - Mute/Unmute audio

ESC/Q - Quit

If people find it enjoyable I'll put some more time into it. Enjoy this weird experiment for now.
 
Last edited by a moderator:
It looks great but it doesnt run for me.

pndrun.out produces this:

Code:
=======================================================================================
PND             : /media/32GB_DATA/pandora/menu/flyingsnake_undexsym.pnd
PND_FSTYPE      : Squashfs
APPDATADIR      : /media/32GB_DATA/pandora/appdata/flyingsnake
APPDD_FSTYPE    : vfat
PND_CPUSPEED    : <unset>
EXENAME         : script
ARGUMENTS       : <unset>
=======================================================================================
[ START ]--- Mount the PND ----------
Mounting : mount -t squashfs -o ro "/dev/loop2" "/mnt/utmp/flyingsnake"
Mounting the Union FS : mount -t aufs -o exec,noplink,dirs="/media/32GB_DATA/pandora/appdata/flyingsnake=rw+nolwh":"/mnt/pnd/flyingsnake=rr" none "/mnt/utmp/flyingsnake"
[SUCCESS]--- Mount the PND ----------
[ START ]--- Starting the application ( script  ) ----------
Keyboard layout unknown, please send the following to the SDL mailing list (sdl@libsdl.org):
code = 1, sym = 0xFF1B (Escape) scancode = 41 (Escape)
code = 2, sym = 0x31 (1) scancode = 40 (Return)
code = 3, sym = 0x32 (2) scancode = 41 (Escape)
code = 4, sym = 0x33 (3) scancode = 42 (Backspace)
code = 5, sym = 0x34 (4) scancode = 43 (Tab)
code = 6, sym = 0x35 (5) scancode = 44 (Space)
code = 7, sym = 0x36 (6) scancode = 45 (-)
code = 8, sym = 0x37 (7) scancode = 46 (=)
code = 9, sym = 0x38 (8) scancode = 47 ([)
code = 10, sym = 0x39 (9) scancode = 48 (])
code = 11, sym = 0x30 (0) scancode = 39 (0)
code = 12, sym = 0x2D (minus) scancode not found
code = 13, sym = 0x3D (equal) scancode not found
code = 14, sym = 0xFF08 (BackSpace) scancode = 42 (Backspace)
code = 15, sym = 0xFF09 (Tab) scancode = 43 (Tab)
code = 16, sym = 0x71 (q) scancode not found
code = 17, sym = 0x77 (w) scancode not found
code = 18, sym = 0x65 (e) scancode not found
code = 19, sym = 0x72 (r) scancode not found
code = 20, sym = 0x74 (t) scancode not found
code = 21, sym = 0x79 (y) scancode not found
code = 22, sym = 0x75 (u) scancode not found
code = 23, sym = 0x69 (i) scancode not found
code = 24, sym = 0x6F (o) scancode not found
code = 25, sym = 0x70 (p) scancode not found
code = 26, sym = 0x28 (parenleft) scancode not found
code = 27, sym = 0x29 (parenright) scancode not found
code = 28, sym = 0xFF0D (Return) scancode = 40 (Return)
code = 29, sym = 0xFFE3 (Control_L) scancode = 224 (Left Ctrl)
code = 30, sym = 0x61 (a) scancode not found
code = 31, sym = 0x73 (s) scancode not found
code = 32, sym = 0x64 (d) scancode not found
code = 33, sym = 0x66 (f) scancode not found
code = 34, sym = 0x67 (g) scancode not found
code = 35, sym = 0x68 (h) scancode not found
code = 36, sym = 0x6A (j) scancode not found
code = 37, sym = 0x6B (k) scancode not found
code = 38, sym = 0x6C (l) scancode not found
code = 39, sym = 0x3B (semicolon) scancode not found
code = 40, sym = 0x27 (apostrophe) scancode not found
code = 41, sym = 0x60 (grave) scancode not found
code = 42, sym = 0xFFE1 (Shift_L) scancode = 225 (Left Shift)
code = 43, sym = 0x5C (backslash) scancode not found
code = 44, sym = 0x7A (z) scancode not found
code = 45, sym = 0x78 (x) scancode not found
code = 46, sym = 0x63 (c) scancode not found
code = 47, sym = 0x76 (v) scancode not found
code = 48, sym = 0x62 ( scancode not found
code = 49, sym = 0x6E (n) scancode not found
code = 50, sym = 0x6D (m) scancode not found
code = 51, sym = 0x2C (comma) scancode not found
code = 52, sym = 0x2E (period) scancode not found
code = 53, sym = 0x2F (slash) scancode not found
code = 54, sym = 0xFFE2 (Shift_R) scancode = 229 (Right Shift)
code = 55, sym = 0xFFAA (KP_Multiply) scancode = 85 (Keypad *)
code = 56, sym = 0xFFE9 (Alt_L) scancode = 226 (Left Alt)
code = 57, sym = 0x20 (space) scancode not found
code = 58, sym = 0xFFE5 (Caps_Lock) scancode = 57 (CapsLock)
code = 59, sym = 0xFFBE (F1) scancode = 58 (F1)
code = 60, sym = 0xFFBF (F2) scancode = 59 (F2)
code = 61, sym = 0xFFC0 (F3) scancode = 60 (F3)
code = 62, sym = 0xFFC1 (F4) scancode = 61 (F4)
code = 63, sym = 0xFFC2 (F5) scancode = 62 (F5)
code = 64, sym = 0xFFC3 (F6) scancode = 63 (F6)
code = 65, sym = 0xFFC4 (F7) scancode = 64 (F7)
code = 66, sym = 0xFFC5 (F8) scancode = 65 (F8)
code = 67, sym = 0xFFC6 (F9) scancode = 66 (F9)
code = 68, sym = 0xFFC7 (F10) scancode = 67 (F10)
code = 69, sym = 0xFF7F (Num_Lock) scancode = 83 (Numlock)
code = 70, sym = 0xFF14 (Scroll_Lock) scancode = 71 (ScrollLock)
code = 71, sym = 0xFF95 (KP_Home) scancode = 95 (Keypad 7)
code = 72, sym = 0xFF97 (KP_Up) scancode = 96 (Keypad 8)
code = 73, sym = 0xFF9A (KP_Prior) scancode = 97 (Keypad 9)
code = 74, sym = 0x2D (minus) scancode not found
code = 75, sym = 0xFF50 (Home) scancode = 74 (Home)
code = 76, sym = 0xFF9D (KP_Begin) scancode = 93 (Keypad 5)
code = 77, sym = 0xFF98 (KP_Right) scancode = 94 (Keypad 6)
code = 78, sym = 0x2B (plus) scancode not found
code = 79, sym = 0xFF55 (Prior) scancode = 75 (PageUp)
code = 80, sym = 0xFF57 (End) scancode = 77 (End)
code = 81, sym = 0xFF56 (Next) scancode = 78 (PageDown)
code = 82, sym = 0xFF9E (KP_Insert) scancode = 98 (Keypad 0)
code = 83, sym = 0xFF9F (KP_Delete) scancode = 99 (Keypad .)
code = 84, sym = 0xFE03 (ISO_Level3_Shift) scancode not found
code = 85, sym = 0xFF2A (Zenkaku_Hankaku) scancode not found
code = 86, sym = 0x3C (less) scancode not found
code = 87, sym = 0xFFC8 (F11) scancode = 68 (F11)
code = 88, sym = 0xFFC9 (F12) scancode = 69 (F12)
code = 90, sym = 0xFF26 (Katakana) scancode not found
code = 91, sym = 0xFF25 (Hiragana) scancode not found
code = 92, sym = 0xFF23 (Henkan_Mode) scancode not found
code = 93, sym = 0xFF27 (Hiragana_Katakana) scancode not found
code = 94, sym = 0xFF22 (Muhenkan) scancode not found
code = 96, sym = 0xFF8D (KP_Enter) scancode = 88 (Keypad Enter)
code = 97, sym = 0xFFE4 (Control_R) scancode = 228 (Right Ctrl)
code = 98, sym = 0xFFAF (KP_Divide) scancode = 84 (Keypad /)
code = 99, sym = 0xFF61 (Print) scancode = 70 (PrintScreen)
code = 100, sym = 0xFFEA (Alt_R) scancode = 230 (Right Alt)
code = 101, sym = 0xFF0A (Linefeed) scancode not found
code = 102, sym = 0xFF50 (Home) scancode = 74 (Home)
code = 103, sym = 0xFF52 (Up) scancode = 82 (Up)
code = 104, sym = 0xFF55 (Prior) scancode = 75 (PageUp)
code = 105, sym = 0xFF51 (Left) scancode = 80 (Left)
code = 106, sym = 0xFF53 (Right) scancode = 79 (Right)
code = 107, sym = 0xFF57 (End) scancode = 77 (End)
code = 108, sym = 0xFF54 (Down) scancode = 81 (Down)
code = 109, sym = 0xFF56 (Next) scancode = 78 (PageDown)
code = 110, sym = 0xFF63 (Insert) scancode = 73 (Insert)
code = 111, sym = 0xFFFF (Delete) scancode = 76 (Delete)
code = 113, sym = 0x1008FF12 (XF86AudioMute) scancode not found
code = 114, sym = 0x1008FF11 (XF86AudioLowerVolume) scancode not found
code = 115, sym = 0x1008FF13 (XF86AudioRaiseVolume) scancode not found
code = 116, sym = 0x1008FF2A (XF86PowerOff) scancode not found
code = 117, sym = 0xFFBD (KP_Equal) scancode = 103 (Keypad =)
code = 118, sym = 0xB1 (plusminus) scancode not found
code = 119, sym = 0xFF13 (Pause) scancode = 72 (Pause)
code = 121, sym = 0xFFAC (KP_Separator) scancode = 133 (Keypad ,)
code = 122, sym = 0xFF31 (Hangul) scancode not found
code = 123, sym = 0xFF34 (Hangul_Hanja) scancode not found
code = 124, sym = 0xA5 (yen) scancode not found
code = 125, sym = 0xFFEB (Super_L) scancode = 227 (Left GUI)
code = 126, sym = 0xFFEC (Super_R) scancode = 231 (Right GUI)
code = 127, sym = 0xFF67 (Menu) scancode = 118 (Menu)
code = 128, sym = 0xFF69 (Cancel) scancode = 120 (Stop)
code = 129, sym = 0xFF66 (Redo) scancode = 121 (Again)
code = 130, sym = 0x1005FF70 (SunProps) scancode not found
code = 131, sym = 0xFF65 (Undo) scancode = 122 (Undo)
code = 132, sym = 0x1005FF71 (SunFront) scancode not found
code = 133, sym = 0x1008FF57 (XF86Copy) scancode not found
code = 134, sym = 0x1005FF73 (SunOpen) scancode not found
code = 135, sym = 0x1008FF6D (XF86Paste) scancode not found
code = 136, sym = 0xFF68 (Find) scancode = 126 (Find)
code = 137, sym = 0x1008FF58 (XF86Cut) scancode not found
code = 138, sym = 0xFF6A (Help) scancode = 117 (Help)
code = 139, sym = 0x1008FF65 (XF86MenuKB) scancode not found
code = 140, sym = 0x1008FF1D (XF86Calculator) scancode not found
code = 142, sym = 0x1008FF2F (XF86Sleep) scancode not found
code = 143, sym = 0x1008FF2B (XF86WakeUp) scancode not found
code = 144, sym = 0x1008FF5D (XF86Explorer) scancode not found
code = 145, sym = 0x1008FF7B (XF86Send) scancode not found
code = 147, sym = 0x1008FF8A (XF86Xfer) scancode not found
code = 148, sym = 0x1008FF41 (XF86Launch1) scancode not found
code = 149, sym = 0x1008FF42 (XF86Launch2) scancode not found
code = 150, sym = 0x1008FF2E (XF86WWW) scancode not found
code = 151, sym = 0x1008FF5A (XF86DOS) scancode not found
code = 152, sym = 0x1008FF2D (XF86ScreenSaver) scancode not found
code = 154, sym = 0x1008FF74 (XF86RotateWindows) scancode not found
code = 155, sym = 0x1008FF19 (XF86Mail) scancode not found
code = 156, sym = 0x1008FF30 (XF86Favorites) scancode not found
code = 157, sym = 0x1008FF33 (XF86MyComputer) scancode not found
code = 158, sym = WSEGL_InitialiseDisplay: DRI2OpenConnection failed
0x1008FF26 (XF86Back) scancode not found
code = 159, sym = 0x1008FF27 (XF86Forward) scancode not found
code = 161, sym = 0x1008FF2C (XF86Eject) scancode not found
code = 162, sym = 0x1008FF2C (XF86Eject) scancode not found
code = 163, sym = 0x1008FF17 (XF86AudioNext) scancode not found
code = 164, sym = 0x1008FF14 (XF86AudioPlay) scancode not found
code = 165, sym = 0x1008FF16 (XF86AudioPrev) scancode not found
code = 166, sym = 0x1008FF15 (XF86AudioStop) scancode not found
code = 167, sym = 0x1008FF1C (XF86AudioRecord) scancode not found
code = 168, sym = 0x1008FF3E (XF86AudioRewind) scancode not found
code = 169, sym = 0x1008FF6E (XF86Phone) scancode not found
code = 171, sym = 0x1008FF81 (XF86Tools) scancode not found
code = 172, sym = 0x1008FF18 (XF86HomePage) scancode not found
code = 173, sym = 0x1008FF29 (XF86Refresh) scancode not found
code = 174, sym = 0x1008FF56 (XF86Close) scancode not found
code = 177, sym = 0x1008FF78 (XF86ScrollUp) scancode not found
code = 178, sym = 0x1008FF79 (XF86ScrollDown) scancode not found
code = 179, sym = 0x28 (parenleft) scancode not found
code = 180, sym = 0x29 (parenright) scancode not found
code = 181, sym = 0x1008FF68 (XF86New) scancode not found
code = 182, sym = 0xFF66 (Redo) scancode = 121 (Again)
code = 183, sym = 0xB4 (acute) scancode not found
code = 184, sym = 0x7C (bar) scancode not found
code = 185, sym = 0x5F (underscore) scancode not found
code = 186, sym = 0x23 (numbersign) scancode not found
code = 187, sym = 0x21 (exclam) scancode not found
code = 188, sym = 0xA3 (sterling) scancode not found
code = 189, sym = 0x22 (quotedbl) scancode not found
code = 190, sym = 0x40 (at) scancode not found
code = 191, sym = 0x3A (colon) scancode not found
code = 192, sym = 0x24 (dollar) scancode not found
code = 193, sym = 0x20AC (EuroSign) scancode not found
code = 195, sym = 0xFF7E (Mode_switch) scancode = 257 (ModeSwitch)
code = 200, sym = 0x1008FF14 (XF86AudioPlay) scancode not found
code = 201, sym = 0x1008FF31 (XF86AudioPause) scancode not found
code = 202, sym = 0x1008FF43 (XF86Launch3) scancode not found
code = 203, sym = 0x1008FF44 (XF86Launch4) scancode not found
code = 205, sym = 0x1008FF10 (XF86Standby) scancode not found
code = 206, sym = 0x1008FF56 (XF86Close) scancode not found
code = 207, sym = 0x1008FF14 (XF86AudioPlay) scancode not found
code = 208, sym = 0x1008FF27 (XF86Forward) scancode not found
code = 210, sym = 0xFF61 (Print) scancode = 70 (PrintScreen)
code = 212, sym = 0x1008FF8F (XF86WebCam) scancode not found
code = 214, sym = 0x3F (question) scancode not found
code = 215, sym = 0x1008FF19 (XF86Mail) scancode not found
code = 217, sym = 0x1008FF1B (XF86Search) scancode not found
code = 219, sym = 0x1008FF3C (XF86Finance) scancode not found
code = 221, sym = 0x1008FF36 (XF86Shop) scancode not found
code = 223, sym = 0xFF69 (Cancel) scancode = 120 (Stop)
code = 224, sym = 0x1008FF03 (XF86MonBrightnessDown) scancode not found
code = 225, sym = 0x1008FF02 (XF86MonBrightnessUp) scancode not found
code = 226, sym = 0x1008FF32 (XF86AudioMedia) scancode not found
code = 227, sym = 0xFF09 (Tab) scancode = 43 (Tab)
code = 228, sym = 0x1008FF04 (XF86KbdLightOnOff) scancode not found
code = 229, sym = 0x1008FF06 (XF86KbdBrightnessDown) scancode not found
code = 230, sym = 0x1008FF05 (XF86KbdBrightnessUp) scancode not found
code = 231, sym = 0x1008FF7B (XF86Send) scancode not found
code = 232, sym = 0x1008FF72 (XF86Reply) scancode not found
code = 233, sym = 0x1008FF90 (XF86MailForward) scancode not found
code = 234, sym = 0x1008FF77 (XF86Save) scancode not found
code = 235, sym = 0x1008FF5B (XF86Documents) scancode not found
framebuffer dead: 0
[SUCCESS]--- Starting the application ( script  ) ----------
[ START ]--- Restoring the frame buffer status ----------
[SUCCESS]--- Restoring the frame buffer status ----------
[ START ]--- uMount the PND ----------
[ START ]--- Waiting the Union to be available ----------
[SUCCESS]--- Waiting the Union to be available ----------
auplink:plink.c:223: AUFS_CTL_PLINK_MAINT: Inappropriate ioctl for device
rmdir: failed to remove `/mnt/utmp/flyingsnake': Device or resource busy
[ START ]--- Waiting the PND mount dir to be free ----------
[SUCCESS]--- Waiting the PND mount dir to be free ----------
cleanup done
[SUCCESS]--- uMount the PND ----------
=======================================================================================
Return code is : 2
 
Last edited by a moderator:
It looks like an issue with the framebuffer but it's not a very descriptive error code... Have you tried turning it off and on again? :unsure:

Anyone else getting "framebuffer dead: 0"? 0 is the error code returned by glCheckFramebufferStatus. I'm not sure what to do about that right now...
 
Yep. I had this issue. I believe it is an issue with the 4.10 SGX driver. Try switching back to default/4.03. Worked after I switched.


Edit: the game is fun! Does it support c4a?
 
Last edited by a moderator:
Yay, someone likes it! Did you get used to the controls?

No c4a right now. I'll probably work on supporting it later.
 
I got it to work, the driver change fixed it.

Fun game indeed, though I find the cage a bit too small and I need a score somewhere :)

The controls are a bit getting used too but after a few tries I did decent already. Analog nub control would be nice.

Very good job and nice idea to make a 3d snake!
 
+1 for nub support. Controls worked just fine using the d-pad, but I think this game is a perfect candidate for analog control.
 
@undexsym: looks like a nice game.

About SDL2, you should take my patch (that is somewhere in the forum, at least 2 times), to have the lib compatible with newer driver and compatible with pandora Keyboard also.

byt I still have no solution for the Nub as joystick.
 
So what do you all think of the controls? I can appreciate that this might be an unconventional way of piloting a flying snake in space so I'd like to hear your thoughts. For me, it took a little while to get used to but it became pretty natural. Are there many who want yaw?

Also, does the game make anyone feel nauseous?
 
Not nauseous here, but the controls suck :p Sorry, but using a Dpad in space is just not my thing... :) this calls for the nubs. I know there are SDL2 issues there, but that would be great if nubs could work. :D
 
I always found Elite easier to play using the keyboard than the joystick for some reason.


I've not had a chance to play this yet, as my Pandora is out of action at the moment, but I wonder if they problem might be more to do with the lack of yaw than the d-pad. People I've seen playing Elite Dangerous recently seem to play it with pitch and yaw rather than pitch and roll.


Still it would definitely be an improvement if the user could use either d-pad or nub, depending on preference.
 
Controls worked just fine for me. I would certainly help test other options, but I had no trouble with the pitch+roll combo at the moment.
 
I've updated the game.

I changed the controls. It's now Up/Down to pitch, Left/Right to yaw and L/R to roll. It's much easier to control now.

There's a score now. High scores are recorded too.

NearTao composed a track for it! It's now the game theme. Title screen music is by Kevin MacLeod.
 
More updates.

The following should make the game more exciting:

  • The snake moves a bit faster.
  • The snake turns quicker, but the maximum rotation speed is slower.
  • The snake grows five times faster.

The following should help with the depth perception problem:

  • The bars of the cage turn red as the snake approaches them.
  • An alarm can be heard and gets louder as the snake approaches the bars.

The audio can be muted with the select button. This should help with the audio-related crash until I properly fix it.

GOTY
 
Hi :)

@ undexsym: thank you very much for this game, I really like it !

While waiting for C4A to be implemented, my high score so far is 180. What about you guys ?

Cheers, Magic Sam
 
The updates are great! The updated controls are indeed a bit easier. I got it working with an external controller, QJoyPad, and TV-out, and it looked great on my projector. 215 is my best so far, but I'm sure I can do better.

Would there be any way to make the first  bit of snake semi-transparent? It often gets in the way of the screen and can make it hard to see.

Thanks, and kudos on a great game.  :rolleyes:
 
Last edited by a moderator:
I'm glad you guys like the game.

I'm currently going through the extremely enjoyable process of upgrading my development tools. Don't hold your breath for new features :)

@magic_sam: After having a closer look at C4A I realised it might take me a little longer than I originally thought. Prepare to wait up to an infinite amount of time for C4A support. You reminded me of Rygel.

@edgex004: Wow, gamepad and TV. I feel like a celebrity  B)   I'll see if the transparency thing is possible when I get stuff running again.

My current high score is 860.
 
Nice game!

Got me entertained over an hour straight while trying it the first time.

Good job. :)
 
Back
Top