Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411631 Posts in 69393 Topics- by 58447 Members - Latest Member: sinsofsven

May 12, 2024, 04:52:42 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsValchion - 3D GBC-Styled Zelda-like - Win / Mac / Linux Demo #2
Pages: 1 ... 5 6 [7] 8 9 ... 28
Print
Author Topic: Valchion - 3D GBC-Styled Zelda-like - Win / Mac / Linux Demo #2  (Read 94858 times)
poe
Guest
« Reply #120 on: April 14, 2012, 05:51:50 PM »

Why is this project so awesome?
Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #121 on: April 14, 2012, 06:59:01 PM »

hey solarlune, would u mind devlogging a little about the technical details.. python scripting, fixing the camera, using axis aligned quads etc.. ?
Logged

SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #122 on: April 14, 2012, 08:36:11 PM »

@poe - Not sure. Thanks, though!

@eigenbom - Alright, sure.

Python scripting's pretty easy to use, and you use a special API for scripting with the BGE to do what you need to do.

I do scripting with Geany, which supports some basic code-completion and code folding, which is a really nice feature to have. Blender can use external Python script files, and compiles them when it does so, as well, giving you a bit more of a speed increase as opposed to simply using .py files. The Python module for working with the BGE comes with a lot of good features and functionality, even apart from actual game development. It has stuff like adding game objects in and orienting objects to other objects, but also has features like Vectors and Eulers built-in, which are really helpful, as well.

The camera's being fixed is simple - I parented the camera to a 'helper' cube, which sets its position to be its target's position, which is the Player's position in the world. I didn't have to use the Helper cube, but it's helpful since I have fairly complete control over the camera - how far away it is from its target, how fast it moves to its target, etc., although the camera probably won't change for this game.

Axis aligned quads are also simple to implement. Each sprite frame is present in the game scene in a hidden layer as a simple plane, facing upwards on the +Z axis. This is done so that I can replace the mesh of the sprite object easily to make animation.

I could also move around the UV values of the sprite objects, but duplicated objects share meshes in the BGE, and so would share sprite images when animating (i.e. explosions created at two different times would have the same UV values). However, this can be greatly useful when you want to have many, many sprites that share a single animation, like a series of torches in a level. Rather than giving them all logic to animate, you can make all but one of them copies of the original, and animate just that one. So, by manually replacing the mesh of each object, each object, even duplicates, can have unique animations.

In my game, any "2D" object's sprite is rotated 45 degrees on the global X axis to face the camera. Because the sprite object is rotated, the sprite frames (the mesh of the sprite object) are also rotated. I could use the Halo setting for this, like particles would use, but then the sprites would rotate around on their local X axes, 'spinning' to face the camera.

Mirroring a sprite is simple if it's straight on, but with a true 3D top-down view, it's a bit more complex. Doing this with a global Z-rotation (with a two-sided sprite) will have the sprite rotated 45 degrees in the opposite direction.

Think of it like an object that you want to rotate is on a stand. You want to rotate the object, so you rotate that stand by 180 degrees. If the object is rotated 45 degrees to face you, then 180 degrees later, it's facing away from you, both on the Z axis (around) as well as the X axis (up and down).

I have to do two rotations - rotate the sprite by 90 degrees on its local X-axis to face me, and then rotate it 180 degrees around on the Y axis if the object should be mirrored. This is an example of where the BGE's Euler class helps out a lot. Here's an example:

Quote
ori = Euler()
ori.x += pi * 0.25
if flip:
   ori.rotate_axis('Y', pi)
obj['sprite'].orientation = ori
      
I create a Euler object, rotate it by 45 degrees (a quarter of pi) on the global X axis to face the camera, then rotate it on its local Y-axis by a 180 degree rotation if the object should be mirrored, so that you don't have the object face away if it's mirrored. Then, I assign the Euler directly back to the sprite's orientation matrix (the BGE handles conversion).

So, that's about it.

I recently got an idea to implement actual enemy bases, since Kitheif suggested stealth and cover. I think those would be a nice change of locale.
« Last Edit: April 14, 2012, 08:46:46 PM by SolarLune » Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #123 on: April 14, 2012, 09:24:38 PM »

So when you add a new game object, e.g., a barrel, you create the mesh and texture and add it the blender scene, and then in the script you can instantiate it into the scene? I've only used Blender's modelling and animation, so I'm trying to get a sense for how the BGE actually comes into the whole workflow... (I could just do a tutorial but it's more fun to ask! Smiley )
Logged

SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #124 on: April 14, 2012, 09:45:46 PM »

Yeah, basically that's it. It's pretty simple. When you create a game object in-game, the object you prepared beforehand is basically a template, and so the added objects run the same logic as the original.
« Last Edit: April 14, 2012, 10:05:15 PM by SolarLune » Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #125 on: April 14, 2012, 10:09:25 PM »

oh cool, well thx for the chat :D
Logged

JWK5
Guest
« Reply #126 on: April 15, 2012, 07:16:16 PM »

I think thus far this is the indie game I am most looking forward to, I really like what you are doing with this project. Keep up the good work! Coffee
Logged
SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #127 on: April 16, 2012, 03:35:09 PM »

@JWK5 - Wow, I'm surprised. Thanks!

In other news, yeaay, progress.



HP indicator works in the top-right, and more progress on maps (both worked on this one as well as the map one room over). Starting to not care so much about logic and just make excuses for interesting ideas and maps. :p

But now I'm feeling a bit antsy about taking damage in the gameplay - it's pretty easy to get shot. Like, REALLY easy. I'm not sure how to alleviate it. I might have to re-tool all weaponry to fire actual bullets than have the 'realistic' gunfire that I have now. :S

EDIT: I think the lighting in the sewer's better now. Experimenting can only lead to more options, right?  Smiley Perhaps it's a tad too dark, though.



Still have yet to implement grenade awareness into enemy guards. But I have an idea for how the next map should look, so that's something to work on.
« Last Edit: April 16, 2012, 05:40:17 PM by SolarLune » Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #128 on: April 16, 2012, 04:25:24 PM »

Demo or it doesn't exist.. Wink
Logged

Sir Raptor
Level 6
*



View Profile
« Reply #129 on: April 16, 2012, 05:54:41 PM »

For the record, Metroidvanias are typically sidescrollers. This seems more like a Zeldalike.
Logged
BomberTREE
Level 9
****



View Profile
« Reply #130 on: April 16, 2012, 06:59:25 PM »

For the record, Metroidvanias are typically sidescrollers. This seems more like a Zeldalike.
Trolls don't have records. OHHHHHHHHHHHHHHHHHHHHHHH  Big Laff
Sorry about that.

That shadow blue atmosphere mixed with your sunvox skills will be an amazing feel, can't wait SolarLune!
Logged
Squid Party
Level 5
*****


Oh hi mark.


View Profile WWW
« Reply #131 on: April 17, 2012, 07:29:40 AM »

For the record, Metroidvanias are typically sidescrollers. This seems more like a Zeldalike.

I think there called rougelikes  Shrug
Logged

[img]http://i1170.photobucket.com/albums/r527/Daniel_Sharman/areyouonyourperiod.gif[img/]
SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #132 on: April 17, 2012, 07:31:16 AM »

@kitheif - Hilarious.
@Sir Raptor - You're right, though. Metroid + Castlevania = Metroidvania, so that's usually 2D titles. I'll switch the description... Name.... Thing.
@eigenbom - Soon enough. Smiley
« Last Edit: April 17, 2012, 07:56:53 AM by SolarLune » Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #133 on: April 17, 2012, 02:20:49 PM »

Demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo. plz.
Logged

Squid Party
Level 5
*****


Oh hi mark.


View Profile WWW
« Reply #134 on: April 18, 2012, 10:43:25 AM »

Demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo. plz.

yes, give to us solar lune!  Smiley Its ok do it in your own time!
Logged

[img]http://i1170.photobucket.com/albums/r527/Daniel_Sharman/areyouonyourperiod.gif[img/]
SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #135 on: April 21, 2012, 10:30:50 PM »

@Squid Party / eigenbom - I'll put out a demo soon. I'm pretty much just holding back because I want to actually put the implemented items in the game first. Maybe it would be best to release just a gameplay demo, though.

Anywho, worked on a new map. It's pretty busy, I know, but I'm still working on it.

Logged

SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #136 on: April 22, 2012, 03:18:03 PM »

Switches have been implemented. You can shoot cranks and have them influence the environment, usually blocks.



EDIT: This is just a test - the blocks won't be free-floating like that in the future. Cheesy

In addition, I want to make the blocks 'shake' when they rise, like they're grinding. Right now, they're pretty smooth.

Maybe I should make it so that you have to shoot the cranks from the sides to make them operate. Does that seem obvious? Kinda seems like something that you would spend a few minutes doing, thinking, "Why won't it rise? Is it stuck? Am I... Oh."
Logged

Irock
Level 5
*****


why's my avatar so big


View Profile WWW
« Reply #137 on: April 22, 2012, 04:28:57 PM »

I had no idea those blocks were floating! I thought they were just sliding north-east. Cheesy
Logged

SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #138 on: April 22, 2012, 04:37:23 PM »

They're on the ground until you activate the crank - then they float up into the air. I meant that they'll have rails in the future. Smiley
Logged

JWK5
Guest
« Reply #139 on: April 22, 2012, 04:49:59 PM »

What if you have no ammo to shoot the crank with?
Logged
Pages: 1 ... 5 6 [7] 8 9 ... 28
Print
Jump to:  

Theme orange-lt created by panic