Forum Posts

Iurii Selinnyi
Jan 02, 2018
In Just Add Story tools
Created a chat room at Discord: https://discord.gg/vCackC
0
0
3
Iurii Selinnyi
Dec 27, 2017
In Crazy Ideas
They are secure but often slow. I think the future holds a form of a compromise: you will have a secure wallet similar to bitcoin to hold your main savings. But in addition there will be apps that let you buy credits. Lets say Starbucks credits. You get those as bonuses for your purchase or simply by buying them. Now when you need a coffee, you will just make a selection on your phone and let their camera scan the code generated on your phone. This could feel really unsafe if this sort of payment method could access your main wallet. But by providing buffer wallets you can invest some amount for your convenience. Surely the example is not perfect, I wouldn’t want to illiminate social aspect from Starbucks.
0
0
7
Iurii Selinnyi
Dec 23, 2017
In Offtop
A code for very basic educational game https://gist.github.com/94d7849ff5c426e8240bb99e53dddd42
0
0
3
Iurii Selinnyi
Nov 15, 2017
In Offtop
I may be creating some programming lessons. Yep, there are plenty of those, but I want to try and give it my own spin. Plus, recently, I got some pretty good opportunities. I will be posting my drafts here. 0 I will be using Unity 3D. Learning to program is like learning to speak, it's 90% of the work. Learning a specific programming language is more like learning a dialect - the remaining 10%. Mastering the language may be a different topic though. So it doesn't matter where you start learning, your progress will be moving in the same direction. There are perfect tutorials on how to actually create a game in a day and play it on your phone on Unity website. I wouldn't dream of making something even more accessible. This tutorial is aimed to give you a general understanding, to make you more comfortable with programming. This works for those developing in Unity or any other language. It starts from basic concepts, explores general misconceptions and later dives deeply into coding standards. It is expected that you'll be practicing in parallel. Here we go Many see unity as a fast tool to put together a game, but in reality it has a much more "blank slate" nature then some may think. Any application that needs 3D graphics can be and many are made with Unity. Unity doesn't revolve around the concept of player or gaming. In Unity you put geometrical shapes in a Scene, write C# code to make them do what you want. That is all there is to it, and that is all there is to programming. To understand code it's important to understand how processor works: it can do one thing at the time. It can do math operation, it can move data from one place to another, like when you copy or move a file, and when it executes code, it can jump, for example, from line 300 to line 600, and it can compare stuff. In the beginning programming languages were more similar to a machine code. And a machine code is a long list of instruction. No matter which language you use, before your code can be executed, it needs to turn into machine code. When you write a code, you name things: instead of using X, Y, Z, like in school, you can write: SALARY, DAYS_WORKED, OFF_DAYS to make it easy for you. The computer will blindly do what you told it to do, it doesn't need to know what those numbers are, so he doesn't need any of that naming stuff, he will replace those names with addresses to know where in memory that data is. And that address is also just a number. Generally, the code itself will not change after you started the program, it is the data that will change. For example, the grades of your students is the data. Code (or instructions), are what you will do with that data, like Add, Calculate average and so on. When you work with your typical calculator, you actually write data (numbers), and instructions (operators +, -, /, *). And if you have one of those fancy calculators, you can write complex formulas with X, Y, Z and whatever, and then just enter those X,Y,Z values to have them processed based on the formula. What most people find challenging when starting to learn programming, is how the math we learned in school is relevant to updating your twitter...? To answer that question, first of all we have IF THEN - it basically means that depending on some conditions program will do or not do certain operation. So it's no longer just a list of instructions. Back in a day, the old time I talked before, you would put GOTO markers in your code. You would write START: then do some operations, and if we need to do those same operations, we would write GOTO START; As you might imagine, it's really easy to end up with a huge page of code with tons of markers. But now, no markers, you will not see any in modern day code. We realized that there is a limited number of scenarios where you need to return and do something again, so why not make a special way to write them without creating new marker, and so the code (not an actual code) ... START_OF_THE_FRAME: If W is pressed then player position Y = player position Y + 1 if enemy Y < player position Y then player health = player health - 1 If player Health > 0 then GO_TO START_OF_THE_FRAME else GO_TO_DEATH_SCREEN ... turns into: while (player.health>0) { If (Input.GetKey(KeyCode.W)) player.position.y += 1; if (enemy.position.y < player.position.y) player.health -= 1; } ShowDeathScreen(); You may compare two pieces of code (again, first one is sort of a fake code), they do the exact same thing. Take your time, this right here is what programming basically is. In your first program first you will check if user pressed a certain button. Then you will write a code that will be changing some data if he did (like player position in current example). And in the end, based on all that, you will paint everything else on the screen: sky, hills, trees, enemies, flowers. But in slightly different position then you did last frame, because player moved. This is it for the introduction. Have to mention something: player.position.y = player.position.y + 1; player.position.y += 1; player.position.y ++; All three of those are the same thing. It just we use (A = A + X ) so much that special syntax (A += X) was created. And we often need to just add 1 to a number so A += 1 and A -= 1 turns into A++ and A--. There is not much depth behind it, just convenience. Because computer has such a limited number of basic operations it can do, you will soon realize programming to be more about learning to organize your code, rather then memorizing how to do something. At first it will feel like there are tons of things to learn, but reality is the opposite - under things that look unfamiliar most often you will find basic concepts you already know.
0
0
7
Iurii Selinnyi
Nov 09, 2017
In Offtop
Links to track stuff: https://forum.unity.com/threads/released-playtime-painter.503733/
0
0
6
Iurii Selinnyi
Oct 12, 2017
In Mesh Editor
Since edge smoothing will now be automated and UV will come from world space, plus edges with UV seam can be detected from CPU, mesh could be saved in form of vertices and triangles list only, and reconstructed on object initialisation.
0
0
2
Iurii Selinnyi
Oct 11, 2017
In Crazy Ideas
I saw a few adds for Travel Buddy website and checked it out. Too many pretty weman, and anyone who used Tinder or happn will notice that the website is fake. No way woman would write first, espacially to me. So that website is cheap and predatory, just like freemium games. But it doesn't have to be like that, the only reason this services have negative reputation is because their initial deception. What if they keep all the money making practices and the core, but play on the idea and remove the deception. For example: website where you can get connected to a bot, and you score points if person you are talking to thinks you are a bot, and vice versa. I think it's a good idea because if you go to my HOME page and check the "message" button, it says that you are talking to service AI, but in reality, I have a wix App, and I can respond to any message from my phone. It's tons of fun to talk to a person, who thinks you are a computer. They are super excited every time you make a joke, even bad one. And genuanly surprised when you actually understood what they are asking. So how about making it into a real thing. You chat with someone until you are sure that they are bot. After, they score points if you are wrong, and you can continue chatting if you want. Those free games and fake websites exist because aside from deception, they do have entertainment value (not that kind, the chatting kind), and if they embrace it, user can know exactly what it is, and still they will be able to make a big buck.
0
0
8
Iurii Selinnyi
Oct 11, 2017
In Mesh Editor
Yesterday in a bus I came up with better way to smooth. Instead of giving each vertex 2 normal vectors, it will have to be 4. One for each edge, one for area around the vertex, and one for the plane itself. Or, the 4th parameter could be weight, instead of packing it with color. Vector values will be as follows: edge vectors will be written in the same positions for adgasent vectors. Vertex normal will have negative power value, and in position as opposing edge. Two edges will have power of 1 so they will quicly fade due to negative value of the opposite one, where the sharp normal in 4th position will be visible.
0
0
9
Iurii Selinnyi
Oct 06, 2017
In Just Add Story tools
TSD is a thing I have been working on for a while, now I want to rebuild it on a single idea: project and version independent content. And it's more about story and logic triggers, not the environment. It's sort of a new standard of storing data, which doesn't really rely on any particular standard too much. And it only stores data which is different from default. Usually it would take some coding to make puzzle or interaction, but with that basic trigger system it could be done trough inspector. Tag system let's user link specific boolean values to tags and tags between each other. And by each tag a list of objects can be obtained. I'm writing this mainly to organize it all nicely in my own head. Even though there are quite a few elegant solutions in this concept, ideas like this are good only when technical implementation can be summed up in one clear vision. 1) In it's core stands a variable tree, so any object have avery single parameter, uninitialised. So there is no types and classes. And parameter doesn't need to have a name. 2) There is no scene, everything is loaded as player moves from place to place. And there are parenting objects that load it's detail when player is close enough. 3) Things are saved and loaded using unilink tags. Unrecognised data will be skipped. 4) Any interaction can be abbandoned at any moment and resumed. 5) System can be expended by adding more classes derrived from base control lasses. All data has it's Pegi functions. A very ambitious vision is in it's final form, you'll be able to open your phone, run the app and edit your world, then just update it like any other file on your server. New variables ang logic will be added, and users will not need to update their app to access it. Classes will be able to provide its methods in form of tags. PEGI functions will allow them to select what kind of data will be provided to a function. This way prefab can take any form with it's code, and be pooled. Any behaviour can be stored in form of a tag|size|data| format. World is independant of prefab and scene. Most of the world's content will be constructed on the go. Instead of word Page I should make full use of infinite universe class and have nodes separated by scale instantiate stuff by scale. Not have it as a part of core system, but as an implementation of it. Nodes could be saved in folders in their tree view. Nodes can have outside links to another server. NESTED SERIALISATION Another part of this is selecting the default state. Creating another.
0
0
17
Iurii Selinnyi
Oct 05, 2017
In Texture Editor
Early concept: Let's say there is a nice artsy picture, and it's visuals need to be replicated in the scene. Normally It will take some artistic fiddling, but in theory, brush shader could use that fancy picture to paint the diffuse color needed to perfectly recreate the desired colors under current lighting. So, artist sets light parameters and objects in the scene, using the picture. Special shader could project that picture onto the objects from predetermined projection source (Most likely: Main Camera). The same projection source will be used later to compute the color that needs to be painted onto texture for it to have needed color when lit. There will need to be a special deconstructor brush for different shaders though.
0
0
19
Iurii Selinnyi
Oct 03, 2017
In Texture Editor
This September update added an example prefabs and scripts that use painter to... well, paint stuff. A dirty ball, bullets, guts and stuff. In the picture at the top, left object is using Big Render Texture pair, right one - exclusive RenderTexture. You can paint on many objects with Worldspace brushes, but they need to have Render Textures. To be exact, new version of Sphere Brush actually renders a capsule, not a sphere. So if you move a brush or this painter ball very fast, it will not render circles, but a line between where it was last frame and where it is this frame. It uses formula to find the closest distance from a point to a line, nothing too difficult. Now you may be thinking "Can I use it to render damage onto a character, like from a bullet." Answer is yes, you can (video below). This is an early stage, shader will be available with the next update. Actually, it doesn't paint dirt and blood onto a texture, it just paints green and red color to a mask: green - dirt, red - blood. And shader uses that mask to cobine character texture with gore and dirt texture. Mask is also sampled in vertex function to indent mesh. Ideally there would be another mask with normals and max indent amount to really control deformation. In terms of performance: painting a sphere brush to an Exclusive RenderTexture will take same time as rendering a quad to a screen that has resolution of that Render Texture. It takes much more for RenderTexture Pair though. For regular brush, not sphere, it's much much faster, just like rendering a quad . Swapping render targets could eat up some performance though. But in general, performance is fine. Painter ball currently modifies only one texture at a time, to avoid additional renders. But you can make your own painting scripts so be mindful that when you try to paint on texture2D using RenderTexture target, it will first render texture2D to RenderTexture, and will have to do this again if you change paint target on snother texture. What is Render Texture Pair When using Render Texture as target, you can't read from it, but RenderTexture pair contains two copies of the same texture, which is updated after every stroke, so almost all possible brush effects can be reproduced with shader because fragment function can sample destination color (from copy). Thankfully, Sphere Brush Type doesn't need the pair, so it can paint on single(exclusive) Render Texture as well as on the Pair. Only Blit modes are limited: no Blur, Bloom or Volumetric Decals when using exclusive Render Texture. Tanks to Daniel for embracing Painter Tool and providing me with valuable feedback. He is using RenderTexture Pair here, I think.
Painter Ball content media
1
0
131
Iurii Selinnyi
Sep 29, 2017
In Just Add Story tools
This is a memento for self. Story file could also contain images, that are stored in form of strokes that PlaytimePainter will repeat to recreate the texture.
0
0
2
Iurii Selinnyi
Sep 29, 2017
In Texture Editor
I will explain the process:  In Unity you can render to screen, like you usually do, or to Render Texture. Effect like Blur, Bloom and many others, first render everything to Render Texture, and then frrom it to screen with some adjustments. If you create a Point Light and move it, the effect is similar as with my Sphere brush, but off course, light doesn't stay, doesn't create a line, it moves with the source. So what needs to be done is to Render it onto a texture. You may have heard about shaders that change vertex positions: like when you see trees move from wind, or water: mesh is not changed, but in graphics card, each vertex is moved. You may also know what is UV coordinates: it’s how texture is wrapped around a mesh. So if we think about mesh and texture as some sort of Origami, we could unwrap it into a square sheet by adding a few lines to vertex function, that replaces it's position with UV coordinates. Now the way Point Light works, is it divides the brightness by distance from world position of a pixel to world position of light source. So before unwraping our origamy, we also provide original world position as an additional argument, so we can still calculate that distance. Now we use the described shader to render unwrapped mesh with original texture and "Point Light" on top of it to that very same texture. The last part may be difficult to imagine. Crumble a sheet of paper into a ball, mess up one side of it and straighten it. That part you messed up will be our point light. Now Sphere brush actually takes two points, not one, and draws a line between them, but that is just details. The code could be used if you want a long neon light stick or light saber to cast light correctly, though.
How Sphere Brush works content media
0
2
48
Iurii Selinnyi
Sep 28, 2017
In Texture Editor
I was asked about this asset. Simple answer is yes, it works as expected, but it takes a bit of know how to set it up. I will describe the process below. I was using NeoFur 2.1 for this test. I will provide short list of steps, but recommend to read in full to understand. 1) Assign Fur Material as additional material on Mesh Renderer. 2) Configure Fur Material before pressing play (Select where to use Textures and where - single color) 3) In Playtime Painter disable Auto Select Material, select Fur Material and the Texture you want to edit. 4) Go for it) Now in detail: Without understanding of how materials, sub meshes and both assets work it's easy to get confused with painting Fur. NeoFur needs each object to have it's own material, but to save you some time you provide one material and it will clone it for every object. Playtime Painter can edit a texture, but to save you some time it lets you selected a material and textures to edit. Problem is, Fur Material is not attached to object's Mesh Renderer, so Painter can't just get it automatically. You could assign Fur Material to the Mesh Renderer and then Painter will let you select and edit those textures. But keep in mind that the Material you assigned to NeoFur script will be cloned, so any changes to original instance of Fur Material (that is assigned to NeoFur, and now to Renderer) during play will not change how fur looks, because Fur is Rendered with a Clone of that Material. So you need to configure it before pressing play: After selecting where we to use a single color, and where to use a texture, clones of the material will use the same textures, and in Playtime Editor you can select them and edit. But the reason fur is not assigned to the object's Mesh Renderer by default is because Fur does not just change one shader for another, you still have your object, with it's original "skin" shader and Material, and fur is rendered on top of it. To be able to see your "skin" material and edit Fur at the same time, don't replace object's "skin" Material. Add Fur material as another material on your Mesh Renderer: Unity let's you use many materials for meshes that are made of sub meshes. There is nothing complex about sub meshes, they are just a bunch of meshed stored as one, for usability. And if you have 5 sub meshes and 5 materials, each sub mesh will be rendered with it's own material. Again, it's almost the same as having 5 meshes each with different material stored under same parent GameObject. There may be more to it, I just haven't encountered any nuances to be mindful of, yet. Now, again, to save you some time, Playtime Painter automatically finds the submesh you are painting on and selects it's material. And if you select Fur Material, it will select skin Material. So disable that Auto Select Material under material selector Because Painter is not accessing Material that is actually used to render Fur, switching to Render Texture mode will not work: you can use it to edit texture, but changes will not show until you return to Texture2D mode. The solution is not perfect because as Warning Message above says, it will cause additional Draw Calls. So I'll contact the developer, maybe he'll offer a nice solution. Alternatively, in addition to NonMaterialTexture class I could create NonMeshRendererMaterial class for this kind of cases.
Can I use Playtime Painter with NeoFur? content media
0
0
30
Iurii Selinnyi
Sep 28, 2017
In Offtop
I'm from Ukraine, and it's a good country. Some people there are great in every way, like my friend Taras. But most feel unsafe due to constant discourse in power - a government that doesn't know how to handle Russia, by making the worst decision possible every bloody time. So, about me, where to start ... well, Taras, I mentioned him before, thinks it's impressive that I had many different jobs, including a year of Senior Waiter position in Burj Khalifa (Tallest building in the world, Dubai), a couple of month in the drilling company, an english tutor for kids, and at least five more jobs. I tried to avoid full time programming jobs as much as possible, because I would want to delete Unity from my home computer, just like Taras did. He develops applications with Unity, but not games, a cool AR projects. He is like super talented, he had his own Death Metal Band, and he was doing all the work: producing, postproduction, organising everyone. Now he is married, doesn't seem to be doing much of that. His wife is a musician too. How great is it to find someone with similar passion. I think he still plays, and he has a kid, probably will tech him to play too. The boy will be the next Mick Gordon. Taras was actually the one who helped me start programming, and also a few years back, when I said that I want to quickly write a game for mobile, what is the best language, he told me to learn Unity. And here I am now, same as before, but with my own website. This is basically my whole story. There was other life stuff, but this pretty much all you need to know about me.
0
0
7
Iurii Selinnyi
Sep 28, 2017
In Mesh Editor
It will take a lot of time to polish this Asset, but at the same time it is very cool, and innovative. So I'm thinking, publishing free version for people who want to start experimenting with it. And later, making payed asset: a wide range of shaders for those, who want to use technology in their project. In my mind I never have any problems with buying something I can make myself, if it will save me some time. And I think most people who can afford buying assets have similar mindset: even though you can make a shader you need by changing example that comes with free version, priced asset will bring more options and automation.
0
0
7
Iurii Selinnyi
Sep 10, 2017
In Toon Water
Link This Asset was made free because I wanted to focus Playtime Painter, which has similar shader, but developed in different direction. If you have any questions about Toon Water Asset, please feel free to ask them here. Some suggestions from the top of my head: * If water is not visible outside of the terrain, make sure clear color's alpha of your camera is set to 0 ( or 1, don't remember which). * Shadow strength of the directional light should be 1 to have that cartoonish feel.
0
0
27
Iurii Selinnyi
Sep 09, 2017
In Crazy Ideas
So every time I play X-Com, I save every few turns, if one of my best soldiers dies, he doesn't - I will reload the save. So hitting that quick save button basically feels like working on some document, feels like work. So idea is, make saving a game mechanic, to save you need to spend one move (each character gets 2 moves), so it's not a big difference, but it turns saving into strategic choice. To further advance this concept, it has to have narrative basis: mental time-travel. You can transfer memories into past, but only to a point when person was ready to receive it. So soldier will need to spend a turn to prepare his mind for receiving data. And to take this one more step, this technology needs to be researched. Not too late in the game, at least a few missions, which, as a result, basically, will turn into IRONMAN difficulty missions. And by the time when Save/Load tech is developed, player would have experienced loss and would have a squad that survived trough that. Optionally one save can be loaded only once, and if there are no saves, mission is aborted.
0
0
2
Iurii Selinnyi
Sep 09, 2017
In Crazy Ideas
Here is the logic trail: Using Instantiate is not good for performance, so a decent game needs some object pooling. If you ever did pools, you’d know there should be some sort of Reboot function, to get the object to its default state. Now if we have that, why not store only deviation data, sort of like nested prefabs. If we are doing that, we could save that data and use it to store entire scenes in small files that contain the minimal load of information. What if your game (At least part of it, it's world) could be launched from any other game. The user wouldn't need to load another app or WebGL window to enjoy what you created. CRAZY BUSINESS PLAN Now for the crazy business plan: Others can make content that can be locked behind the paywall of virtual currency. You’ll have lots of fresh content that can be played for free, like starting levels. And you earn virtual currency in-game. The cool part is, that you earn it based on the difficulty, popularity, and quality of the content. And players are the ones who rate it. And player’s rating is more meaningful if he played the game a lot. So, in theory, there could be a group of people who create a boring grind level and all rate it in the highest way to level up faster. But after it gets popular, highly rated players will try it and down-rate it. So, unless I’m missing something big, players have plenty of incentive to keep playing, and creators to create content. NOW THE CASHHH The actual money comes into play when players are allowed to pay real cash for virtual. It will not raise their rating but will allow playing any content they want without interruption. Others will have to, sometimes, check out other stories to collect enough credits and then come back to the ones they want to keep playing and unlock the full story. The creator can select a progression point at which players allowed to judge the overall game. But fairness and other criteria can judge from the get-go. Creators can earn if their creation is popular, people are spending points to unlock the full story, and some extra if people are spending real cash, and even more if they finish and like the story. HOW THE ASSET WORKS The whole thing is constructed around Custom Editors. So you could be editing one object, thanks to PEGI class it will allow you to explore another object and there you'll be able to get info, for example, tag name and data, and the first object will store it and could execute it back on the second object. In the end, there is no need for special compatibility between two objects. They could be developed by different people, but because of constant formatting, one object can store sort of a delegate to second objects, it's function and parameters that were set up during the editing in the inspector. Other part of this is the infinite world system: some solid math to let you construct the levels scale of the universe. World is saved on so-called pages, and there are parent and child pages, just like website. Root page could be galaxy, then solar system, ets. Players have radius, radius of the parent page will always include all the child pages. If player is inside the radius of the page, it will load it’s content, and child pages. I may need to create a pages stack: every loaded page will be placed there based on how much distance player has to travel to enter it’s radius. And as player travels, his traveled distace will be measured, and I will only need to compare it with the nearest page. May seem unimportant, but if someone makes thousands of galaxies and player is walking to the store, it will not make much sense to recalculate distance and compare it with radius every few seconds. GAME-PLAY Aside from the story, you would want some consistent action game-play. And while your story can be played from any App, different apps can offer different forms of battle. Default one could give you the clicker, alternatives - match 3, some logic puzzles that are based on enemies health. HOW'S THE ASSET DEVELOPMENT GOING? It's fine, I'm still making it. Think I'm close to finding the best approach. Every solution is like killing two rabbits with one hammer ... hmm, sounds more morbid then two birds with one stone. Maybe because when you think of throwing a stone it's more like hunting, for food. And the hammer is more about butchering them after they were caught, and it's more personal: you are controlling the action all the way through. And throwing the stone is only about the initial decision. Stone never kills the bird though, you'll have to finish the work manually. And not finishing it is cruelty, so you'll have to do it ... I grew up in a village, no McDonald's there. When we are eating meat, it's never a good day, means I'll have one less animal friend to play with. And when I had to do it, I'll have to pick one, and it's the hardest decision ever. If animal kicked me or bit me, I'm never choosing him, because it will be as if I'm punishing him for that, that just feels wrong. And then I would never know if other animals are nice to me because they like me or because they are scared. If it's second, then one day they could turn on me. And I never picked the fat one or the weak one, it would be wrong too, don't want to do fat shaming or survival of the fittest thing. I mean, the forum category says "Crazy ideas", I would be failing my own promise by writing a strait-forward post, wouldn't I?
Unity Browser content media
0
0
37
Iurii Selinnyi
Sep 09, 2017
In Offtop
Until I finish my story telling tools, there is a web forum where people play RPG games, and I practice my DM skills there. It is not as popular as it was, but it's still online as of 09.09.2017. http://frpg.su/ If you register, you get to see a really cool ".gif" menu here. And every location is it's own topic, there are a few investigations. It's in Russian though.
FRPG content media
0
0
10

Iurii Selinnyi

Admin
More actions