Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

What are you working on? (Game Making Thread)

Nathaniel3W":2ec11vw9 said:
StrawberrySmiles":2ec11vw9 said:
... this is both a UI and resolution test. :D

It looks good overall, but there was one thing that I thought needed attention. I'm not sure if this is a resolution-scaling-related thing, or if the original portraits are like that, but the jagged lines on the portraits are a little displeasing IMO. If that's just what the portraits looks like, you might want to consider another color for antialiasing. Or if it has to do with scaling the portraits, you might reconsider how to interpolate the pixels in-between.

The portraits aren't actually done. We just wanted to get the base of them finished.
 
And I made a thread for it, as such.

Now I have nothing to work on. D:





Just.

Kidding~

Vz786AK.png

V5S7U3n.png

nCN6OtL.png

I've got options.
 
I'm dissecting this MV game. I wanted to see the Img folder. But it was all archived as .asar
Took me a few hours to figure out how to extract. It was actually pretty simple. But I'm just clueless about Git repositories and all that junk for App development. So I'm downloading all these source codes and Node.js. Bumbling my way through it like, how do I install this command? Am I entering the file and folder destination right?

So I eventually got there. And now I'm reverse engineering to see how I can use this same method to obscure my own project files.
It's not fool proof. After all, I was able to extract files from someone else project. But it's was tricker than just downloading RM decryption tools that would take only minutes.
 
Apparently patch 1.5.0 made RM SLO

But then Yanfly fixed it and made it FAST

Blessed be Based Yanfly

So now I'm having fun working on Fantasia again.
http://www.youtube.com/watch?v=lOpz96Xwm28
 
So a long time ago I came in here with some really crappy mountains on my world map and I was wondering what I should do about it. I tried using a mountain pack from the Unity Asset store, but it didn't give me quite what I wanted. For one thing, I didn't have the original textures for those mountains so I couldn't blend them into my existing landscapes. And I didn't have splat maps for them, so I was dependent on the single texture that each mountain was covered in, and as I scaled up the mountains they got blurrier. And they were just kind of an inconvenient shape and scale for what I needed.

Eventually I tried out World Machine and started making entire levels there. But that takes a long time. And when I import the World Machine level into UE3, I have to do a lot of touch-up to make it playable anyway.

What I needed was the speed and convenience of placing features in the game editor, but with all the detail and control of what I can get from World Machine. I want to be able to scale features to any size without worrying about mismatched texture density. And I want to have all of the original textures so that I can put them into the landscape editor and have everything match. And so today I put together everything that I've learned about World Machine and made these:

SplatMountains.jpg


Those are four meshes ranging from about 1500-1800 triangles, with 1024x1024 normal maps that give sufficient detail. (And you'll never know how low-poly they are in my game, which will have kind of a faraway tactical camera.) The shader blends three textures together according to a splat map for each mesh. And with a little bit of shader magic, I made the scale of the textures independent of the scale of the mountains, so I can scale them up or down and the textures stay the same size. (The big green valley is actually just the foot of a mountain offscreen that I blew up really big.) Any time I want a new landscape palette or textures, I keep the same splat maps and just change the textures they use. And I can load those textures into the UE3 landscape tool and hand-draw any details I want, and it all looks perfectly blended. If I want a new mountain shape, I already have a template saved in World Machine, and I can crank out more with very little effort.

It feels good to get something done that I know will help me to do stuff better and faster.
 
Splat maps blending some cartoonier textures on the mountains, plus some hills that I covered up with trees, so you can't see those, but I promise they look great. :sad: Triplanar projection and constant-scale texturing on everything made of grass, dirt, rock, or water, so you can scale it up or down, and everything stays consistent.

HS_NewMaterials_optimized.gif


And that is the most complicated water shader I've ever done.

HS_Water_optimized.gif


That's over 300 instructions to make the water flow in 8 different directions or just sit there, to get the normal vector and blend the flow based on which way is downhill, to switch to a waterfall when the surface is steep, to reflect the sun and the sky (simulated, because as you can see in the top gif, there is no sun or sky), to fade the opacity near the edges, to distort the shallows, to displace the pixels with a combined normal map and bump map (bump saved in the alpha channel of the normal to reduce total texture count) and animate the displacement to simulate waves.

In my earlier builds, a lot of people complained about inconsistent art direction and 3D backgrounds that clash with the 2D characters. Hopefully now I have the right look to make a bunch of cartoony 2D sprites feel at home. And hopefully now that I have the right building blocks for the world, I can crank out better-looking levels faster. The pixel-density difference between the characters and the world will still be an issue, but I'm just going to have to press on.
 
Nathaniel3W":2x43kodk said:
The pixel-density difference between the characters and the world will still be an issue, but I'm just going to have to press on.
Try rendering the background at a similar resolution to what the sprites use.
Pokemon D/P/P pulled it off, and they didn't even use the same res either.
 
ZenVirZan":3gizermn said:
Nathaniel3W":3gizermn said:
The pixel-density difference between the characters and the world will still be an issue, but I'm just going to have to press on.
Try rendering the background at a similar resolution to what the sprites use.
Pokemon D/P/P pulled it off, and they didn't even use the same res either.

Thanks for the advice! I wonder how I can do that... I tried earlier with reducing the texture resolution and then forcing the game to use the nearest color instead of interpolating. I haven't tried that in a while though. Maybe there's something I haven't thought of. Maybe there's a post-process effect I could use...
 
Nathaniel3W":1uppa8sm said:
Thanks for the advice! I wonder how I can do that... I tried earlier with reducing the texture resolution and then forcing the game to use the nearest color instead of interpolating. I haven't tried that in a while though. Maybe there's something I haven't thought of. Maybe there's a post-process effect I could use...
Post-process down-scaling does not work; I wrote a shader for RPG Maker VX Ace a while ago to do this (and later MV).

The problem is that if you're down-sampling 2x then you've got yourself 4 pixels (2x2 grid) fighting over 1 pixel, so that 1 pixel blinks constantly if the camera moves even slightly - adjusting the pixel boundary. If you decide to smoothly interpolate the pixels instead of having them fight, then you'll end up with a blurry mess. Don't even think about using post-processing to down-sample anything more than a static-image, its more trouble than you imagine.

If you're going to lower the texture resolution and use nearest-neighbour sampling, then you should probably attempt to go after the PS1-style aesthetic and use affine texture mapping and a lower-resolution buffer.

I think what I'd try is up-scaling the sprites to match the background. I've already mentioned a few times the billboarding problem, that would solve the disconnected-style.
Try Waifu2x on your sprites and see how they look in-game: http://waifu2x.udp.jp/
 

Hybrida

☆ Biggest Ego ☆
Member

I added a character selection screen for Omega Force Hybrida. I added a new battle mode, and boss battle mode. Although the artwork is inadequate, my animations and SFX are epic.

Currently I'm trying to balance a character named Alice Veen. She's an Angel/Demon. Alice can transform into a demon or an Angel mid battle. Her entire move set, attribute, and appearance changes. I believe she's overpowered in demon form. I may apply slip damaged to her in demon form. 5% HP every turn sounds about right. Oddly enough Alice is the narrator of the story and only playable in battle mode.

(Unfortunately I can't screenshot. Photobucket is lame...)
 
Been having fun working on Fantasia and it's rather minimal as it stands, but intriguing mechanics.
http://www.youtube.com/watch?v=q6WproGkS0Q
http://www.youtube.com/watch?v=zH46Yw12tYQ
Having fun developing the story and characters, too.
 
New starting town. Trying to get the lighting right.

SunriseFalls_Noon.jpg

SunriseFalls_Sunrise.jpg

SunriseFalls_Night.jpg


I'm also trying to bake the lighting, but it's crashing my editor. The error message is completely meaningless to me, but if I had to guess I would take a look at my lightmap UVs. Maybe some of those are messed up and the toggleable lights don't like that.
 
D'awww, i like that. Make me think of Warcraft II. Everything is so cozy looking!

I've been doing some minor (so far) updates to PFC, Soulcatchers are getting better AI in the next build, and will be a fair bit more dangerous, their appearance is also receiving an update.
ca8dFp6.png

After a couple concepts and such, this is how it's gone.
 
I'm back with another video of pixel-movement.
http://www.youtube.com/watch?v=kDC74IJvE4A

In this version you can define your own convex hull for the collision; in the video I show off some regular polygons (triangle, pentagon, octagon) as well as the circle collision that's been there for a while.

In the future I'll add the ability to have multiple hulls; this would allow a detailed collision mesh to be used with maps, that would really show off how good this kind of Plugin can be.

I'm actually going to solve the issues related to event collision and map looping before I move onto the map collision. Got some new ideas.
 
That's interesting Xilef. I've never had to work on anything that low-level in a game engine before. What's the default collision shape for MV? What technique do you use for not testing collision of everything against everything? Do you test only when an actor moves, and only against things in its own quadtree node?
 
Nathaniel3W":27vic9hb said:
That's interesting Xilef. I've never had to work on anything that low-level in a game engine before. What's the default collision shape for MV? What technique do you use for not testing collision of everything against everything? Do you test only when an actor moves, and only against things in its own quadtree node?
Collision detection considered low level? Jesus Christ...

MV is tile-based collision with a 1x1 tile size. The MV logic is basically [point in a direction] -> [move straight] and that move straight will check if the next tile is passable or not. If it is, then the target X&Y for the character is moved 1 step over and the separate animation system takes over for smoothly transitioning the character. This is why when events walk towards each other, one will stop and leave the tile in-front free so the other one can step into it and avoid a collision during the animation.

What I've done here is made that 1-tile step into a 1-animation-frame-distance step. So when you move forward, it will move you 1 frame of that smooth animation I mentioned before.

After that, I changed the logic so rather than "check if next tile is passable or not" it checks the collision engine using the movement direction as a physics vector, that vector is corrected if a collision has occurred (so moving into the side of a shape will push your shape away from it so it is neatly touching) - it also slides along the shape if possible because it uses the normal direction as the "correction" direction, this lets shapes smoothly pass each other and in some cases slot neatly into a gap that they can fit inside (handy for a player trying to enter a tight doorway).


The collision algorithm is separating axis theorem, which works by projecting the 2D shapes onto a number of 1D planes and checking if their projection has a gap between them; if yes, no collision, if no, then the distance between the two projections is how far along the plane the shape needs to move to correct the collision. The 1D planes used for the projections are the normal-vectors to each of the lines on the polygon (in the circle's case, which is 100% normals, it's specifically the shortest distance from the circle to one of the polygon vertices). It's the ideal way to do polygon collisions and is fast enough for 2D shapes.


The easy part is getting this working for player characters. For events, there's a lot that can go wrong and there's also the question of "how should move-routes behave?". I think everything should be as compatible with default MV as much as possible, but if a move-route fails with the player sitting half-way across a tile, should the event be corrected against the player or should they wait until the tile is free?


This time round, I haven't optimised much at all. I'll be optimising last. There's no quadtree and every single event is looped. The collision is quickly discarded by an axis-aligned bounding box check, that's the only optimisation used.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top