Smallball HD

Post screenshots, binaries and projectfiles of the projects you have made with ZGE that you want to share!

Moderator: Moderators

Post Reply
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Smallball HD

Post by Imerion »

There! Now I have finally made it far enough to feel I can show a first version of the game I have been working on. There are still many things I wish to add, and it needs a lot of tweaking still. It's also a bit too hard. But I would be interested to hear what everyone thinks and especially if anyone has any ideas for improvements!

One thing I was thinking of especially: would it be possible, maybe with some OpenGL code, to create some sort of post-processing effect and apply "on top" of the game?
I realize it might not be so easy, but I'd love to have some sort of feedback effect, or a slight glow to everything. :)

Finally, in case you wonder why the game is named what it is, it's a remake of a game I made long ago, but now in 3D. If you're interested you can find the original here : http://neotron-games.blogspot.se/2008/0 ... eland.html

Oh, and you have to press Space to begin. ;)
Attachments
SmallBallHD.zgeproj
(25.67 KiB) Downloaded 716 times
User avatar
Kjell
Posts: 1876
Joined: Sat Feb 23, 2008 11:15 pm

Re: Smallball HD

Post by Kjell »

Hi Imerion,

Nice effort for a first ZGameEditor project.
Imerion wrote:Would it be possible, maybe with some OpenGL code, to create some sort of post-processing effect and apply "on top" of the game?
Sure, you don't even need to use OpenGL calls for that.

Anyway, after briefly looking through the source I have a bunch of remarks that you might want to look into first.

- You ( generally ) don't want use Category 0 for collisions. That way you don't accidentally include Models ( such as ParticleBurst and Zoom ) in collision tests ( right now picking up the first Ball results in a endless stream of "Collision combination is not supported" warnings ).
- Only use Models when necessary. So, for instance use a ZExpression instead of spawning ( and directly deleting thereafter ) the CreateDynamicBackground Model.
- The camera Zoom & Rotate behaviors don't seem to be executing in the correct order, causing the camera to stutter.
- Using a RenderSetColor before UseMaterial ( like you did in StaticBackground ) doesn't do anything. RenderSetColor needs to be after UseMaterial to take effect.
- Don't use the build-in font, it uses a hack that slows down the IDE.
- Only name components when necessary. So, instead of naming your DefineCollision components, use the Comment property for a description.
- And you might want to use Folders to keep your project organised :wink:

Also, the fact that you're somehow using over 3000 models and almost 300 textures leaves a lot of room for optimization.

K
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

Thanks for the feedback!

I did a couple of changes based on your suggestions.

I no longer use Category 0 for collisions. For some reason this made my player model turn black and I can't seem to find the reason. Any idea why this is?

Using models for a few of these effects were only to get a practical way to use states to separate code blocks. But I could use appstates instead, or just better code. :)
The exception is the CreateDynamicBackground model. The reason for this is that I seemed to be unable to send position coordinates inside a @SpawnModel. Like this @SpawnModel(Model : DynamicBackgroundBlock, Position.X : x, Position.Y : y);
An error said position could not be used when calling the function like that. Maybe I just did it wrong?

Camera should work better now too, I removed a bunch of unused polygons and organised things in folders. ;) Will be using comments to describe objects from now on too.

I'm not sure I understand what you mean about the built in font though? The IDE seems to work just fine. Should I load an external font instead? I tried using the included "Dina" font, but the built in one looked better. :) Will see if I can find a better font somewhere.

The game also has two modes now, a classic mode without camera movements, which is started using the Left key, and a crazy mode with zoom and rotates, started with the right key.

Finally, what are those post processing techniques you mentioned? Made me very excited! :)
Attachments
SmallBallHD.zgeproj
(28.51 KiB) Downloaded 615 times
User avatar
Kjell
Posts: 1876
Joined: Sat Feb 23, 2008 11:15 pm

Post by Kjell »

Hi Imerion,
Imerion wrote:I no longer use Category 0 for collisions. For some reason this made my player model turn black and I can't seem to find the reason. Any idea why this is?
The Category number also controls the order in which Models are executed / rendered. Since you don't have a UseMaterial component in Smallball anymore, the active Material is / seems-to-be BackgroundMaterial. And a Material using a red texture + blue ( filter ) color ends up as black.
Imerion wrote:The exception is the CreateDynamicBackground model. The reason for this is that I seemed to be unable to send position coordinates inside a @SpawnModel. Maybe I just did it wrong?
That doesn't work ( yet ) no. But you can do the following ..

Code: Select all

Block.Position.X = myX;
Block.Position.Y = myY;
SpawnModel(Model : Block);
Imerion wrote:I'm not sure I understand what you mean about the built in font though? The IDE seems to work just fine.
It does work fine, but the "hack" causes the preview to delay for a second or so.
Imerion wrote:Should I load an external font instead?
If you don't want to create a font from scratch, simply download a font somewhere and use CBFG to create a texture that you can use with ZGE.
Imerion wrote:Finally, what are those post processing techniques you mentioned?
Take a look at the Post-Processing video tutorial. You don't ( necessarily ) need to use shaders though.

K
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

Ah, so that is why! I added a Use Material.
Managed to remove the "Create" model using your code too.
Thanks again for all help!

Sorrry for taking so much of your time, but now something else turned up. I tried to create a mouse-navigated menu, currently just using a bunch of black squares. I want to check for a collision with my mouse pointer and menu object using this :

Code: Select all

if (CurrentModel.CollidedWith.Category==11); {
  GameMode=0;
  @SetAppState(State : InGame);
  @RemoveModel();
}
But somehow this crashes the whole program. Could there be a problem with category collisions? Crashing example is included.
Attachments
SmallBallHD.zgeproj
(30.36 KiB) Downloaded 630 times
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

New version with lots of improvements, if anyone wants to try it!

There is now mouse and (i hope) touch support, I have added some fake reflections, etc.

As always, suggestions for improvements are welcome!
Attachments
SmallBallHD.zgeproj
(34.33 KiB) Downloaded 804 times
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

After a lot of learning as well as help from this forum, Smallball 3D (changed the name) now works well in Android and is available on Google Play!

Check it out here :
https://play.google.com/store/apps/deta ... mallballhd

It's not as fancy as the desktop version, but it runs well and plays fine on all devices I've tried it on. Also, I attached the latest Windows version with lots of improvements, in case someone wants to try it.
Attachments
SmallBall3D.zip
(9.42 MiB) Downloaded 1769 times
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

After a year, I decided to load this game up again and fix all misses I did because I didn't really know how ZGE worked. I also decided to improve a bunch of other aspects of the game, from gameplay to graphics. The result is a new release!

If you want to try, you can play the PC version on Gamejolt : http://gamejolt.com/games/smallball-3d/78508#close

There is also an updated Android version : https://play.google.com/store/apps/deta ... mallballhd
Attachments
Screen7.png
Screen7.png (253.38 KiB) Viewed 24038 times
User avatar
rrTea
Posts: 475
Joined: Sat Feb 15, 2014 9:54 am

Great!

Post by rrTea »

I played the Windows version, very nice!

I did notice a few glitches:
Some of the glyphs had their lower part cut off, for example on the title screen "y" in "Crazy" and "p" in "Top Score" had the lower part missing.

At one point the music just gets cut off (after a minute or so?).

The framerate starts to fall a bit after a while but then I get killed anyway so can't say whether it's something permanent or just a fluctuation.

Other thoughts:
I can guess what were your reasons for going with the color choice but (without going into the physiological aspects of color theory and color perception) to me this is like having a tune composed of exclusively ultra high-pitched notes... I mean yeah it can be fun but after a while it's like "Hmm... is this right?"...

I really liked the effect with the patterned circles on the title screen and trails ingame!

The ball is maybe slightly too fast?

The single flashing mini rectangle on the title screen was nice, I wish there were more of them!

I usually manage to get to some 10-15 in both modes before getting killed.

btw I also use a similar idea for the background like the "normal" mode! 8D
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

Thanks for testing and for lots of useful feedback!

Nice to hear you liked the effects! How did the reflections feel to you? I experimented a lot with various alpha settings to make them look good, but I'm still not sure.

I knew I forgot something: autorepeat for the background music doesn't seem to work with the -1 flag, so I'll set it to 99.

I see what you mean with the colors, they are a bit strong. Might make them a bit softer, but it's something I'll think about for my next project!

Slightly lower speed would probably be good. Others have commented on that as well. And the font will be fixed too.

The mini-rectangle is actually the cursor, if you want to select an option with the mouse. But I'll add a few that is only for decoration. Should look good!

Once I'm home from my vacation I'll make a few improvements and upload a new version! :)
Imerion
Posts: 200
Joined: Sun Feb 09, 2014 4:42 pm

Post by Imerion »

Thanks for testing and for lots of useful feedback!

Nice to hear you liked the effects! How did the reflections feel to you? I experimented a lot with various alpha settings to make them look good, but I'm still not sure.

I knew I forgot something: autorepeat for the background music doesn't seem to work with the -1 flag, so I'll set it to 99.

I see what you mean with the colors, they are a bit strong. Might make them a bit softer, but it's something I'll think about for my next project!

Slightly lower speed would probably be good. Others have commented on that as well. And the font will be fixed too.

The mini-rectangle is actually the cursor, if you want to select an option with the mouse. But I'll add a few that is only for decoration. Should look good!

Once I'm home from my vacation I'll make a few improvements and upload a new version! :)
User avatar
rrTea
Posts: 475
Joined: Sat Feb 15, 2014 9:54 am

Post by rrTea »

Imerion wrote:How did the reflections feel to you? I experimented a lot with various alpha settings to make them look good, but I'm still not sure.
Fine with me, strong enough that one can see there's some reflection but not as strong that it'd get confusing what is the object and what is a reflection.
Post Reply