Author Topic: Side-scroller game for OUYA  (Read 75971 times)

Offline shuy3n

  • long
  • ***
  • Posts: 111
    • View Profile
Re: Side-scroller game for OUYA
« Reply #75 on: March 06, 2013, 08:19:28 AM »

/deleted/

Not too bad.  Much better than I would have done, haha!

i was doing someones website and their ftp was being shockingly slow so i kinda scribbled in the 5 mins it took for 4 pictures to upload lol

I'm horribly poor at the weirdly unique chibi Nintendo style
« Last Edit: April 11, 2013, 06:50:59 AM by shuy3n »

Offline Jimlarck

  • bit
  • Posts: 8
    • View Profile
Re: Side-scroller game for OUYA
« Reply #76 on: March 18, 2013, 07:28:01 AM »
I'm really excited about this project.

Please no leveling up system to get to another spot to be able to defeat other enemies. I've played Advena and found myself getting bored of it rather quick. The gameplay became repetitive, defeat enemies until you level up to move on to the next area, if enemies where to strong move to the area before to level up. The only thing that made it fun was the story. It was a pain to play.

Also another suggestion. To keep the player from getting bored after finishing the game why not make a Level editor? Simple blank map with different blocks to add and enemies to make a level.

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3496
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Side-scroller game for OUYA
« Reply #77 on: March 18, 2013, 07:54:36 AM »
I actually am considering making a level maker and import/ export functions (so folks can share their work with other players).  Like you suggest it would probably start with  a simple system of making a map and placing enemies and objects on it, but eventually I want to include an events-based language that could be used to control AI's, make things reactive, etc.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Epic_bubble

  • long
  • ***
  • Posts: 235
    • View Profile
Re: Side-scroller game for OUYA
« Reply #78 on: April 10, 2013, 08:42:57 AM »
Speaking of platforming games I actually made a prototype for my own html5 platforming game during the last ludum dare. I never finished it (probably never will) but it still felt awesome to have a working game with proper graphics sound effects and music. :)

Controls are W, A, D.

Link: http://midgard.on-rev.com/daniel/main/games/

I also made a slightly more advanced version of the engine with wall jumping but I made it in flash rather than html5.

Link: http://midgard.on-rev.com/daniel/main/games/flash/

I also made in in XNA with xbox controller support, I managed to get parallax scrolling working in the XNA version.
It kinda sucks that XNA is getting phased out, it was pretty nice to use.

I cant remember if I already mentioned it a while back in the shoutbox.
« Last Edit: April 10, 2013, 08:49:15 AM by Epic_bubble »
Device: Xperia play
CPU: Qualcomm 1 GHz Scorpion (Snapdragon)
GPU: Adreno 205
RAM: 512 MB
Screen res: 854 ? 480
ROM: stock android 2.3.4 rooted

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3496
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Side-scroller game for OUYA
« Reply #79 on: April 10, 2013, 09:41:33 AM »
I think what I'll do next is write a very basic core for the engine (something without any "bells and whistles"), probably in a web applet (using jPCT, since it can be easily ported to jPCT AE which I'll be using for the 3D engine in the OUYA game).  I feel like I'll be able to generate more interest in the project if I have a simple demo for folks to look at, and we can tinker around with it while brainstorming.

The demo will be a single screen, a ground, a background, a single platform, a single 3D enemy, and a single 3D object.  You'll be able to walk, maybe jump, possess the enemy and object, and control them once possessed.  I'll make some simple placeholder images and models for the demo (unless anyone has some stuff I could borrow)

I started writing the basic engine for the demo yesterday.  I have the placeholder models I'll be using for the Caped Soul and enemy, but wanted to see if anyone had some placeholder tile images, music, sound effects, and object.  I can make these myself as well, just seeing if anyone has something sitting around they wouldn't mind lending me.  I will need the following:

Object model, .3ds format
- Something simple (like a rock)

Tiles, 32x32
- Two different floor or ground tiles (can include a couple transition tiles if necessary)
- One platform tile
- Set of background tiles (something simple - sky, cloud, and tree.  No layering at this point)
- Set of midground tiles (something simple, like a tree, will scroll at slower speed than foreground)

Skybox, 640x480 (may be higher-def if desired)
- One horizontally-repeatable image (will scroll at slower speed than midground)

Music,  Vorbis (.ogg) or IXBM (.s2m, .mod, or .xm)
- Loopable (may include a separate lead-in.  I can convert from other formats)

Sound Effects, Vorbis (.ogg)
- Jump
- Damage (possessed enemy)
- Die (Caped Soul and "red caped" enemy.  May be the same sound, or separate sounds)
- Successful possession (object and "blue caped" enemy.  May be the same sound, or separate sounds)
- Failed possession (enemy refuses)
« Last Edit: April 10, 2013, 12:38:56 PM by Paul »
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Epic_bubble

  • long
  • ***
  • Posts: 235
    • View Profile
Re: Side-scroller game for OUYA
« Reply #80 on: April 10, 2013, 11:22:10 AM »
You can use some of the assets I made for my prototype http://midgard.on-rev.com/daniel/browse.php?dir=main/games/sounds

I will never finish the game so somebody might as well put them to use. :D

When I have some free time I wouldn't mind making some proper music for your game. The one in the folder linked above is more suited to a 8bit style game.

Heres a simple tile and platform image too. (32x32)



« Last Edit: April 10, 2013, 11:35:44 AM by Epic_bubble »
Device: Xperia play
CPU: Qualcomm 1 GHz Scorpion (Snapdragon)
GPU: Adreno 205
RAM: 512 MB
Screen res: 854 ? 480
ROM: stock android 2.3.4 rooted

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3496
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Side-scroller game for OUYA
« Reply #81 on: April 10, 2013, 12:33:35 PM »
Thanks!

I've been thinking about the background piece, and I think a better way to do that instead of tiling is to use a scrollable skybox instead.  Instead of a grid of 32x32 tiles, the background will instead be a series of large images (or a single repeated large image).  Then there would be a midground layer with simple tiling (for things like trees).  This setup will be better optimized (fewer textures and polygons) and be more visually appealing (background more detailed and less "blocky").

I updated the resource list.
« Last Edit: April 10, 2013, 12:39:23 PM by Paul »
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Epic_bubble

  • long
  • ***
  • Posts: 235
    • View Profile
Re: Side-scroller game for OUYA
« Reply #82 on: April 10, 2013, 02:05:36 PM »
Thats more or less what I did for the XNA version of my game. I used 32x32 tiles for the foreground to create the actual level itself (Walls, platforms etc) and the background consisted of 3 layers which used parallax scolling to give a nice effect when the character moves. The background images repeat over and over kind of how old cartoons used to be animated.

I can imagine doing this in a 3D setting is much more complicated :D
Device: Xperia play
CPU: Qualcomm 1 GHz Scorpion (Snapdragon)
GPU: Adreno 205
RAM: 512 MB
Screen res: 854 ? 480
ROM: stock android 2.3.4 rooted

Offline Tom.K

  • Green Team
  • long
  • *
  • Posts: 130
    • View Profile
Re: Side-scroller game for OUYA
« Reply #83 on: April 10, 2013, 03:08:16 PM »
I have this skybox if needed, horizontally repeatable: http://i.imgur.com/Pe3zSUo.png

Not sure if placeholder images require to be themed properly. If they do, I'll try to make them that way if possible.

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3496
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Side-scroller game for OUYA
« Reply #84 on: April 10, 2013, 06:06:14 PM »
No theming necessary at this stage.  It is just to have something range able to tinker with while we're brainstorming.  We can swap things out as we go.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3496
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Side-scroller game for OUYA
« Reply #85 on: April 11, 2013, 09:17:11 AM »
I've been thinking about it some more, and actually I can take advantage of the fact that this is a 2D world simulated in a 3D context, to even further optimize and improve the visual quality with respect to the "midground".  Instead of using tiles for the midground, I can use billboarded squares at different depths.  This will cause them to scroll at a realistic speed and be scaled to a realistic size based on how far away they are.  For anyone who is not familiar with billboarding, it is used extensively in N64 games (most notable that come to mind are the vehicles in Mario Kart, and the Bomb King in Mario64).  The idea is that if you have an object that is symmetrical (looks more or less the same from any angle you'll be looking at it from), then you can draw it as a 2D image onto a single square (only 2 polygons) and have that square always pointed at the camera.  In the case of a side-scroller, we will only ever be looking at objects on the X/Z plane (no tilting the camera "up" or "down"), so the symmetry only needs to be horizontal.  In other words things like trees, grass, mountains, etc could all be billboarded (and the textures could be as detailed as we like -- can easily get away from an 8-bit look without drastically increasing the polygon count or impacting performance).

For anyone having trouble visualizing what I'm talking about, I drew up a basic diagram of how the layers of the world would be set up (this is a top-down look at the world).  It is surprisingly simple, now that I am looking at it.

Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3496
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Side-scroller game for OUYA
« Reply #86 on: April 11, 2013, 10:22:54 AM »
With every advantage comes some disadvantage.  A couple of extra things I thought of that will need to be dealt with in a setup like this:

1) The further away a 3D object is, the closer it approaches a vanishing point.  What this means is if trees/ midground objects are given the same y-coordinate as the ground, they will appear to "float" off the ground the further away they are.  To counter this, they'll have to be placed on a "ground plane" with a downward slope.  Will take a little math to calculate this plane (jPCT provides some nice interface methods that should make this relatively painless).

2) Pits will need to extend out like a triangle (when viewed from overhead), and no midground objects should be placed within this triangle (otherwise trees, etc will appear to float over the pits).
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Developer
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Side-scroller game for OUYA
« Reply #87 on: April 11, 2013, 10:48:39 AM »
I wonder, is it mathematically possible to create a camera projection matrix that is orthographic in y and perspective in x?  The view volume being a trapezoid when seen from above (down the y-axis) and a rectangle when seen from the side (down the x-axis)....

Edit: here's the math http://www.songho.ca/opengl/gl_projectionmatrix.html
Need to look at it closer to see if a hybrid matrix is even realizable.
« Last Edit: April 11, 2013, 10:54:33 AM by littleguy »
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3496
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Side-scroller game for OUYA
« Reply #88 on: April 11, 2013, 10:59:03 AM »
I'm not the best with geometry (I don't even know the definition of "orthographic" off the top of my head, but gather the meaning from context here), but wouldn't that result in the objects maintaining a constant height regardless of depth? (in other words, they would be more tall and thin the further away they were).  I think I want the objects to be fully perspective so they scale properly.  They will just need to be positioned such that they essentially have a constant visual y value.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Developer
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Side-scroller game for OUYA
« Reply #89 on: April 11, 2013, 11:12:05 AM »
Yes, you'd have to squash/stretch the aspect ratio of the image depending on its depth I guess.  If you're placing the background at arbitrary depths, I guess you squash the billboard on the fly.  If you're only using a few "layers" of background, then you could optimize the source images for the necessary aspect ratio.

Of course the alternative to this, while staying in the GL world, is to simply use an orthographic projection matrix and programmatically move the background billboards on "conveyor belts" as you scroll.  I assume that's the default approach for a side-scroller implemented in GL?

The easy way to think of orthographic is that the size of the object on the screen is independent of its z-coordinate.  Like a detailed engineering drawing, where you want an undistorted representation of dimensions.  With perspective, the size on screen is inversely proportional to its z-coordinate, technically speaking.
« Last Edit: April 11, 2013, 11:15:31 AM by littleguy »
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version