Monday, March 26, 2018

So now it's a sidescroller

Update?





The genre of the game doesn't matter, really. It's a narrative media, and after a long time it's now finally able to deliver some story. Even though the current setting is about a world in the process of a creation cycle, in other words, a half-done world.

So it's been a long time since the last post. The past few years it's been a programming fest, and without much graphical stuff to post, it's hard to come up with an interesting development progress post.
I've had unrelated day job (labor, farm) that it's getting tiring to make time to make games.
Coding is probably the last skillset I'll keep developing, and no more unrelated skills like construction. Self-sustainability stuff is always good though, and it IS a theme of the story too.

Now, I'll start taking coding(and other digital stuff) as a way to make a living. (Website, logo design, lets go freelance!) Unless I set up a donation like Patreon. If there's enough people willing to help fund this project, then I'll consider it.

Project:Spirits is part 1 of Godplay, focusing on the era of Spirits, before any sentient lifeforms establishing any kind of society. The spirits just exists, interacting with everything and taking with them the history of the flow of elements.

They're the one responsible for the movement of matter and energy. Thermodynamics, Fluid simulation, and Light/Dark scatters.
This part of the game is still under development, and in the above video, it's turned off completely. The amount of headache it's giving me is too much to keep going. The TerrainStat is mentioned in the vid, and that's just a part of it. The Atmosphere is related to fluid dynamics and I was making it from scratch without satisfying results.
Here's the unfinished Atmosphere:

The active balls move around due to buoyancy effectors(physics), and the blinking random colored lights are the content of each grid, doing computed flows(non physics).
Green is air, which is ideal gas proportion (Contains N, O2) mol mass 28
Cyan is water (not flowing yet, but holds in place as clouds), mol mass 18
Yellow is smoke, mostly CO2 or input of trees from surrounding grid. mol mass 44.
Fire is not a "Molecule", but a variable in each, determining the density.
This can't be a proper simulation, of course. Those balls are treated as balloons which won't expand in volume but can increase in density <--- VERY not realistic. But alas, what else can I do? Gotta figure out a balance between real physics and fun gameplay.


Burning FireWall takes the "Fuel" of the terrain. Items decompose to the ground, each have Water content, fuel, earth, and temperature, which transfers to the corresponding terrain.
The yellow balls (CO2), got some "field" to simulate dense areas overflowing with smoke.
I'm not sure how to extend this any further. Smoke generated in caves really doesn't "flow" as I expected, because air pressure of grids is simulated linearly, not really instantly to determine flow path.
Also, shapes of caves are not very "grid"-y...A cave above might take the grid below, although it's a different tunnel.

The Atmosphere development quickly became a development-hell, and the only way to actually finish it is to remake a lot of the other aspect of the game. I considered dropping this mechanics altogether...
Until I saw this, just recently:
http://www.jgallant.com/2d-liquid-simulator-with-cellular-automaton-in-unity/

Ok, maybe I'll base it off that.The current atmosphere IS cellular automata, apparently, but the rest of the environment is not suitable for it that it needs to compute a lot of other stuff to make it worthwhile. This one only handles flows between grids, while what I'm trying to do is use the grid as a "background" storage, and let the fireballs, projectiles, and such be physics based that's in the "frontground", until it's deactivated and recycled back to the background.

Anyways, I've decided to NOT continue with the atmosphere, at least not now. Currently ProjectSpirits is capable of delivering a story, and it's multiplayer. This simulation stuff are a bit too far off for me right now. If I'll ever gonna finish a game solo, I can't be making things too farfetched. I learned a lot, for sure, but I'm over learning and making things from scratch, when there are other published papers/gits that I can extend..

The story of Spirits is very dependant on the elemental simulation, so perhaps, it's not the time to finish this.
I'm gonna take what Spirits is now, and make a more RPG, story-driven, and a bit of multiplayer in it. Story telling, something I've been missing for so long, and the whole reason why I chose "game" as the media, from novel and comic and whatever else in the past.

The above vid is a showcase of what I can achieve without any paid assets. The 2 mentioned, PUN I don't even use the multiplayer in this vid. A* is a basic one without path movement type and node type, which I gotta extend myself to fit the movement method I used.
I needed to make a portfolio, and so I quickly wrapped up Spirits to make this vid. There are many things that I'd like to rework, mainly:
-the Physics based movement to CustomChar controller. This means I'll lose the ability to "push" each other over network, but there must be another, better way to do that.
-Dialogue system. The current one's made from scratch, and I don't know how I managed to pull it off through all this time with a half-thought up system. For this I'm gonna buy Dialogue System for Unity: https://assetstore.unity.com/packages/tools/ai/dialogue-system-for-unity-11672 It'll be worth it, especially the Cinemachine integration
-Cinemachine, well. The camera really does need work. Jittery chat bubble when moving to sides, just don't have time to fine tune these.
-AI and Pathfinding. https://assetstore.unity.com/packages/tools/ai/a-pathfinding-project-pro-87744 . Or not. Pathfinding for 2D sidescroller (with gravity) is not built-in in Unity, although I've achieved a working system already based from the free asset. 100$ is not cheap, and I do enjoy making the AI. I thought making a "run away" behavior would be hard, but turned out not really. Simple "move away" is easy, but Aron's A* claims it's got a different node lookup modes that allows for "keep searching until lands on an ideal node" function. Perhaps I can figure that out, but really, paid assets has got to be good, and you get the support.

I posted a job offer in UnityConnect some months ago when I was so busy with my day job and travelling/living in the mountains, barely got time to even be in the comp, and almost paid them to fix things up in Spirits. But all the problems I got are from my own implementation of the systems, and if I pay them 20$/hour (minimum), for 5 hours I could get a paid asset that is a good, finished, working system, and I get support further after. It's just worth more in the end, and the best part is, the asset is out there and other people are using and working with it. Compared to if I make everything from scratch, I can't really talk and find solution about my system because it's not public.

Well. That's that.
This blog got 3 parts, the Philosophy, the Development(this one), and the Story. The Story is still empty, and I can't wait to start posting there..
But for now, I need to get some freelance job. Never done this before, but seeing the jobs in UConnect, I think I can handle it. Don't know why I didn't start doing this way earlier, I would've learned much more and develop much related skills in game dev..
Well,
Cheers