Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1356157 Posts in 62809 Topics- by 54599 Members - Latest Member: ManicMatt

February 20, 2019, 06:46:15 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsuntitled (dm for itch demo, post-cyberpunk zelda in transforming urbanscape)
Pages: 1 ... 7 8 [9]
Print
Author Topic: untitled (dm for itch demo, post-cyberpunk zelda in transforming urbanscape)  (Read 35043 times)
JobLeonard
Level 10
*****



View Profile
« Reply #160 on: January 14, 2019, 07:09:33 AM »

EDIT: Anti-Paging quote

@NajibSG: Thanks! Still a WIP, working on detailing atm.

@JobLeonard: Coming form an architecture school, "Urban" and "Urbanism" have always been super neutral and disciplinary sounding to me, but maybe they mean something else to others? You are totally right, Sentimental could take care of those negative sprawl connotations, or at least create an interesting tension between them. LOL what if we just go crazy with alliteration and do "Sentimental Sprawl Stroll Simulator". I wonder what the difference is between a walking simulator and a stroll simulator...

"A Blade Runner sequel where Deckard just walks around the city trying different ramen joints"



Thanks for the follow, I try and keep it mostly game related, but there's the occasional code, beats, and architecture projects from friends too!


Sentimental Sprawl: A Chillbeat Strolling Simulator

Quote
I wonder what the difference is between a walking simulator and a stroll simulator...

The alliteration

Strolling is more street.

Actually, I think "strut" is more street than "stroll" or "walk".

Strutting Simulator

Swagger Simulator (oh god that's terrible hahaha, please don't use this Tongue)

Ok, this is getting completely off-topic but I can't hear the word "strut" any more without thinking about this clip:





It used to have a comment that said "That is how you strut!" and somehow that always stuck with me because I thought it was hilarious that someone looks up to Harold Shand's character as a role-model. Not exactly the mood you are going for though Wink
« Last Edit: January 14, 2019, 08:38:58 AM by JobLeonard » Logged
archgame
Level 2
**


I program architecture and build video games


View Profile WWW
« Reply #161 on: January 20, 2019, 02:13:17 PM »

For 2019 I've been trying to focus on a different aspect of the game each month (previously we had quarterly focuses, but i felt that things were getting lost). For this month, I'm trying to determine the level of detail needed for the city's vernacular buildings. Once I have a few analog examples, I'll work on auto-generating it as I've done for the rest of the city. This is really the first time I've gotten into texturing, so if anyone has any advice, I'm all ears (same with mesh modeling, I'm coming from a background in NURBS modeling for architecture, so I'm a relative noob at mesh modeling too).

Here's a side by side of the old (bottom) and new (top). It's significantly more polygons and textures, but obviously have to start somewhere. I'm happy with this density of detail for the building. I'm not set on the pixel textures, they were just the easiest textures to block out. After making this, I'm thinking more about what the style of the environment will be. I think this is a good base to work from, but now I want to get the feeling right for the game, it's supposed to have a soft-cyberpunk feel, with a splash of surrealism/pomo in there too. How have ya'll experimented/iterated/decided on environmental styles for your games?



Logged

JobLeonard
Level 10
*****



View Profile
« Reply #162 on: January 21, 2019, 01:04:46 PM »

> NURBS

There's an Urban pun in there somewhere, I just know it Tongue
Logged
archgame
Level 2
**


I program architecture and build video games


View Profile WWW
« Reply #163 on: January 28, 2019, 07:30:22 PM »

@JobLeonard: NURBIN Sprawl (the sad part is I don't actually use NURBS so much in making the city, the whole workflow is pretty convoluted, I'll explain it over the weekend more).



Still working on some examples of detailed buildings in the city. I took neko.works advice and added some ambient occlusion, but it still feels lifeless and flat in a way. I think going forward I'm going to have one moving item on each building to make the city feel alive and continue to play with color grading. Another weird thing I noticed was that the exact same emissive material can be on two different meshes and have very different emissive intensity depending on what mesh it is on, does anyone know what this is about (bottom right image)? Also, I've UV-Light Mapped my imported meshes, but I'm not seeing a big difference even with things set to static.




I'm posting a kickstarter update on Friday with the main goal being comparing old and new vernacular architecture.

I went to LA Game Night last night and had a good time. Most the games were pretty polished and I feel mine isn't ready for something like that yet. Does anyone know of any good playtesting meetups in LA that are more conducive to very WIP builds?

I'm also still working on the rendering style. I'd like something more illustrative, like a ghibli background, but I also enjoy saturated flat colors, so any visual feedback towards this end is most appreciated!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #164 on: January 29, 2019, 12:48:04 AM »

Quote
NURBIN Sprawl (the sad part is I don't actually use NURBS so much in making the city, the whole workflow is pretty convoluted, I'll explain it over the weekend more).
M'NURBIN *tips fedora*

Quote
Still working on some examples of detailed buildings in the city. I took neko.works advice and added some ambient occlusion, but it still feels lifeless and flat in a way.
Well, it has no other actors except the player, making it feel like a ghost town. You can't solve that with architecture alone, you need other living things moving about!
Logged
archgame
Level 2
**


I program architecture and build video games


View Profile WWW
« Reply #165 on: January 30, 2019, 08:26:05 AM »

@JobLeonard: I have a spreadsheet that details out all the neighborhoods of the city, including occupancy, but alas the one part of gamedev I don't have technical skill in is animation! Maybe I'll have to finally learn. I've always wanted each neighborhood to have a really distinct group living there, sort of like the goron and zora in the zelda series, but then as the city changes, these different populations begin to mingle based on how the player has changed the city.




Still pushing to get all my examples done by Friday. I'm still worried about the flatness of everything and I've also become slightly concerned that I might be getting too repetitive with the type of detail I'm applying (also the mesh edges are a bit hard yeah?). I need to find that flow wherein one is sort of bored and it forces new creations.

If you can name where all the signs come from I'll send ya a free demo of the game (jk, i'll send the demo just dm me).

Another thing I've noticed is that it's hard to tell the foreground from the background and I'd really like to create a shakkei effect, so I think I'll add a distance parameter to the urban city shader so that I can control the buildings farther away differently. I probably won't get to this until next week though.
Logged

archgame
Level 2
**


I program architecture and build video games


View Profile WWW
« Reply #166 on: February 01, 2019, 10:52:07 PM »



Coming from the world of architecture, I've always been more comfortable modeling in Rhino and Grasshopper than Unity (not to mention that the scene navigation camera makes working in the interior sphere very difficult to navigate and Unity was going through a number of versions and the placed models would break their links, and since I've created the octree loading system, the city is fragmented into a number of scenes, while it is still a single file in Rhino), however Rhino has certain limitations as far as types of objects unity can import. To circumvent this issue, I've made some editor tools that help us translate information from rhino into Unity. I've provided the source code for anyone looking to begin making their own editor tools at the bottom. In the images you can see that the tools take points and lines from rhino and turn them into lights in unity, while also taking surfaces from rhino and turning them into climbing surfaces in unity by making their origin point not 0,0,0 and adding the required colliders and materials. I've made a number of other scripts, but most of them aren't Unity focused, but more focused on automatically exporting meshes from rhino and putting them in the right location within the Unity project. (also made a few gifs showing the before and after detailing of the architecture).




Code:
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEditor;

namespace RhinoInside
{
    public class RhinoIn : ScriptableWizard
    {
        #region MenuItem
        //[ExecuteInEditMode]
        [MenuItem("Window/Rhino/Lights")]
        private static void RhinoLights()
        {
            Debug.Log("Rhino/Lights");
            //CSV structure: Light Type, posX, posY, posZ, rotX, rotY, rotZ, scene, R, G, B, Intensity, Optional: EposX, EposY, EposZ
            List<string[]> parsedData = parseCSV(Application.dataPath + "/LIGHT.csv");

            //set up parent
            GameObject parent = new GameObject("Lights");

            for (int i = 0; i < parsedData.Count; i++)
            {
                Debug.Log("parsedData.Count: " + parsedData.Count);
                string[] row = parsedData[i];
                if (row[0] == "Point") //instantiate point light from csv info
                {
                    GameObject obj = InstPointLight(
                        float.Parse(row[1]), float.Parse(row[2]), float.Parse(row[3]),
                        row[7],
                        float.Parse(row[8]), float.Parse(row[9]), float.Parse(row[10]),
                        float.Parse(row[11]));
                    obj.transform.SetParent(parent.transform);
                }
                else if (row[0] == "Spot") //instantiate spot light from csv info
                {
                    GameObject obj = InstSpotLight(
                        float.Parse(row[1]), float.Parse(row[2]), float.Parse(row[3]),
                        float.Parse(row[4]), float.Parse(row[5]), float.Parse(row[6]),
                        row[7],
                        float.Parse(row[8]), float.Parse(row[9]), float.Parse(row[10]),
                        float.Parse(row[11]));
                    obj.transform.SetParent(parent.transform);
                }

            }
        }

        [MenuItem("Window/Rhino/Climbing Surfaces")]
        private static void RhinoClimbingSurfaces()
        {
            Debug.Log("Rhino/Climbing Surfaces");
            //CSV structure: Name, posX, posY, posZ, LookX, LookY, LookZ, UpX, UpY, UpZ, scene, width, height
            List<string[]> parsedData = parseCSV(Application.dataPath + "\\CLIMB.csv");

            //set up parent
            GameObject parent = new GameObject("Climbing");
            PhysicMaterial NoFriction = null;
            string[] filenames = Directory.GetFiles(Application.dataPath, "*.physicMaterial", SearchOption.AllDirectories);
            for (int i = 0; i<filenames.Length;i++)
            {
                if(filenames[i].Contains("NoFriction.physicMaterial"))
                {
                    NoFriction = (PhysicMaterial)AssetDatabase.LoadAssetAtPath(filenames[i].Replace(Application.dataPath, "Assets"), typeof(PhysicMaterial));
                }
            }

            for (int i = 0; i < parsedData.Count; i++)
            {
                string[] row = parsedData[i];
                GameObject obj = InstClimbingSurface(
                float.Parse(row[1]), float.Parse(row[2]), float.Parse(row[3]),  //position
                float.Parse(row[4]), float.Parse(row[5]), float.Parse(row[6]),  //look at vector
                float.Parse(row[7]), float.Parse(row[8]), float.Parse(row[9]),  //up vector
                row[10],                                                        //scene
                float.Parse(row[11]), float.Parse(row[12]),                     //width/height
                NoFriction);                                                    //phsyical material
                obj.transform.SetParent(parent.transform);
            }
        }
        #endregion

        #region Instantiation Functions
        private static GameObject InstPointLight(float posX, float posY, float posZ, string scene, float R, float G, float B, float Intensity)
        {
            GameObject obj = new GameObject("PointLight");
            obj.transform.position = new Vector3(posX, posY, posZ);

            Light light = obj.AddComponent<Light>();
            light.color = new Color(R, G, B);
            light.intensity = Intensity;
            return obj;
        }

        private static GameObject InstSpotLight(float posX, float posY, float posZ, float LookX, float LookY, float LookZ, string scene, float R, float G, float B, float Intensity)
        {
            GameObject obj = new GameObject("SpotLight");
            obj.transform.position = new Vector3(posX, posY, posZ);
            obj.transform.LookAt(new Vector3(LookX, LookY, LookZ));

            Light light = obj.AddComponent<Light>();
            light.color = new Color(R, G, B);
            light.type = LightType.Spot;
            light.intensity = Intensity;
            return obj;
        }

        private static GameObject InstClimbingSurface(float posX, float posY, float posZ, float LookX, float LookY, float LookZ, float UpX, float UpY, float UpZ, string scene, float width, float height, PhysicMaterial mat)
        {
            GameObject obj = new GameObject("ClimbingSurface");
            obj.transform.position = new Vector3(posX, posY, posZ);
            obj.transform.LookAt(new Vector3(LookX, LookY, LookZ), new Vector3(UpX, UpY, UpZ));

            obj.layer = LayerMask.NameToLayer("Climb"); //make layer climb
            BoxCollider col = obj.AddComponent<BoxCollider>();
            col.isTrigger = true; //check is trigger
            col.material = mat;//add NoFriction material to collider
            Vector3 size = new Vector3(height, width, 0.01f); //create vector for box size
            col.size = size;//set collider height
           
            return obj;
        }
        #endregion

        #region Generic Functions
        public static List<string[]> parseCSV(string path)
        {
            //https://danashurst.com/parsing-a-csv-file/
            List<string[]> parsedData = new List<string[]>();
            using (StreamReader readFile = new StreamReader(path))
            {
                string line;
                string[] row;
                while ((line = readFile.ReadLine()) != null)
                {
                    row = line.Split(',');
                    parsedData.Add(row);
                }
            }
            return parsedData;
        }
        #endregion
    }

}

Still haven't decided on a name for the game yet. I'm going to go back to working on the urban materials and shaders before I dive deep into lighting.
Logged

Pages: 1 ... 7 8 [9]
Print
Jump to:  

Theme orange-lt created by panic