Notifications
bg
Nicolas Borromeo
Dev, Entrepeneur and Teacher - Programmer
Buenos Aires, Argentina
67
Likes
212
Followers
27
Connections
All
Articles0
Games2
Showcases24
Column26
Jobs0
Hi Everybody! Just wondering how many of you are using ECS. Do you use it just for fun or are you using it for a full project? Which parts of the system are difficult to you? Which ideas do you have to improve it?

Greetings!

Porrith Suong
Technical Lead @ initialPrefabs
a month ago
Ah I use it very extensively in production projects since its way more natural for me. In terms of improvements I would very much like to see the project tiny workflow come into the entities workflow.
Hi Everybody! Which graphics optimization techniques do you take into account and use often?

Here's my list:
-Profiling (Profiler, Frame Debugger, Scene View Modes, Platform Specific Profilers)
-Metrics (Fillrate, Memory Bandwidth, CPU vs GPU Bound, Draw Calls and SetPass Calls, Memory)
-Batching (Manual, Static, Dynamic, Instancing, Atlasing)
-Dynamic Lighting (Forward vs Deferred, Pixel vs Vertex Lighting, Simulate Lighting trough shaders, Real Shadows vs Projector Shadows)
-Static Lighting (Lightmapping, Light Probes, Mixed Lighting)
-Shader Tweaking
-LOD and HLOD
-Culling (Occlusion, Per Layer Distances, Culling Groups)

Which others do your consider this list needs?

Greetings!

a month ago
Reply@Hanley Leung- you must learn to use RenderDoc as well: https://github.com/baldurk/renderdoc - can't over stress undering the two render paths (forward vs deferred) and the proper set up on dynamic and baked lighting in unity. this is the one of the most common problems and easiest way to kill your framerate. - understand overdraw and how to minimize it - eliminating unnecessary memory allocations and avoiding garbage collection hitches
the profiler doesn't give you relative gpu time used, only draw calls. renderdoc can give you some timings of gpu time so you can make better assessment of the trade offs and where to spend time optimizing
Nicolas Borromeo
Dev, Entrepeneur and Teacher
a month ago
Reply@Hanley Leung- you must learn to use RenderDoc as well: https://github.com/baldurk/renderdoc - can't over stress undering the two render paths (forward vs deferred) and the proper set up on dynamic and baked lighting in unity. this is the one of the most common problems and easiest way to kill your framerate. - understand overdraw and how to minimize it - eliminating unnecessary memory allocations and avoiding garbage collection hitches
Never tried RenderDoc, i will look to it, thanks for the data :)
2 months ago
- you must learn to use RenderDoc as well: https://github.com/baldurk/renderdoc - can't over stress undering the two render paths (forward vs deferred) and the proper set up on dynamic and baked lighting in unity. this is the one of the most common problems and easiest way to kill your framerate. - understand overdraw and how to minimize it - eliminating unnecessary memory allocations and avoiding garbage collection hitches
Nicolas Borromeo
Dev, Entrepeneur and Teacher
2 months ago
Reply@Michael WellsThat's pretty much my list as well. Profile profile profile.
Yea, essential. Which profiling tactics do you use?
View More Comments
Hi Everybody, this semester i will be teaching a Game Networking course for my university and im struggling to choose the proper technology and topics to teach due to the UNET deprecation.

For one side i have the new Transport API that as far as i know in the recent updates support differents QoS trough Pipelines, but the API is still in experimental phase, so im not sure about his stability. On the other side i have LLAPI that is very similar to the new Transport Layer but is gonna be deprecated. Finally i have HLAPI that is more simple but gonna be deprecated also but will not have anything similar to replace it.

In previous instances of the course i have used HLAPI for its simplicity, but now im pretty sure i will be using LLAPI to prevent my students to be overwhelmed by all the boilerplate code and new structures they have to use in the new Transport Layer (Native Lists, etc) and at the same time preparing them to easely migrate to it and understand the tools that will be built over it (like the FPS Sample). My idea is that they build their own game protocol over LLAPI, and mix it with HTTP services to persistence like the following link specifies:
https://www.ibm.com/developerworks/library/ar-powerup1/

What do you think? Greetings!

www.ibm.com
Introduction
Nicolas Borromeo
Dev, Entrepeneur and Teacher
2 months ago
Reply@Jens-Stefan MiksonHey, since you want to teach the low level concepts then perhaps you should check out Dark Rift 2. It is essentially a low level networking framework for Unity with minimal high level features (2 components for starting either a server or a client in Unity). With this it is possible to have the clients run a Unity build and the server could be either run using an independent command line application (not built from Unity) or a build (headless or fully graphical) from Unity. The former essentially allows developers to write plugins for the server. Dark Rift 2 has a tutorial, which goes through the command line version, but there are tutorials on the web for building for Unity. Another reason for why this is a good solution is that all that is given to the developers are essentially 3 functions: Connected callbacks, Disconnected callbacks, Custom messages. Every high level networking solution, in the end, is made up of these 3 general functions. And usually when people start developing using a high level framework, they do not really realize that all the RPC and Command attributes they are using, or the built in callbacks available to them, are actually just TCP or UDP messages with a message body, a message identifier and maybe an extra flag. So instead of teaching from top to bottom (high level to low level), it would be wise to teach from bottom to top (low level to high level). Make the student understand how it all works underneath and then they understand why and how high level frameworks are built.
... i prefer to use the official Unity solution that will be always prepared to work with latest versions and ensure compatibility. Anyway i will check that one, thanks for the recommendation!
Nicolas Borromeo
Dev, Entrepeneur and Teacher
2 months ago
Reply@Jens-Stefan MiksonHey, since you want to teach the low level concepts then perhaps you should check out Dark Rift 2. It is essentially a low level networking framework for Unity with minimal high level features (2 components for starting either a server or a client in Unity). With this it is possible to have the clients run a Unity build and the server could be either run using an independent command line application (not built from Unity) or a build (headless or fully graphical) from Unity. The former essentially allows developers to write plugins for the server. Dark Rift 2 has a tutorial, which goes through the command line version, but there are tutorials on the web for building for Unity. Another reason for why this is a good solution is that all that is given to the developers are essentially 3 functions: Connected callbacks, Disconnected callbacks, Custom messages. Every high level networking solution, in the end, is made up of these 3 general functions. And usually when people start developing using a high level framework, they do not really realize that all the RPC and Command attributes they are using, or the built in callbacks available to them, are actually just TCP or UDP messages with a message body, a message identifier and maybe an extra flag. So instead of teaching from top to bottom (high level to low level), it would be wise to teach from bottom to top (low level to high level). Make the student understand how it all works underneath and then they understand why and how high level frameworks are built.
Seems like a good approach! It's exactly what i intend to do. Anyway I prefer
Jens-Stefan Mikson
Game designer, Programmer
2 months ago
Hey, since you want to teach the low level concepts then perhaps you should check out Dark Rift 2. It is essentially a low level networking framework for Unity with minimal high level features (2 components for starting either a server or a client in Unity). With this it is possible to have the clients run a Unity build and the server could be either run using an independent command line application (not built from Unity) or a build (headless or fully graphical) from Unity. The former essentially allows developers to write plugins for the server. Dark Rift 2 has a tutorial, which goes through the command line version, but there are tutorials on the web for building for Unity. Another reason for why this is a good solution is that all that is given to the developers are essentially 3 functions: Connected callbacks, Disconnected callbacks, Custom messages. Every high level networking solution, in the end, is made up of these 3 general functions. And usually when people start developing using a high level framework, they do not really realize that all the RPC and Command attributes they are using, or the built in callbacks available to them, are actually just TCP or UDP messages with a message body, a message identifier and maybe an extra flag. So instead of teaching from top to bottom (high level to low level), it would be wise to teach from bottom to top (low level to high level). Make the student understand how it all works underneath and then they understand why and how high level frameworks are built.
Nicolas Borromeo
Dev, Entrepeneur and Teacher
2 months ago
Reply@Porrith SuongAgain, I keep forgetting to press shift + enter for a new line. ): But the reason behind that is, if your students happen to come from an OOP background, they should wrap their heads around processing batches of data first (something analogous to array based programming/vectorization). If they come from a more functional background, I think it's quite easier to switch over to a data oriented way of thinking.
Exactly that, anyway you can use the new transport layer whitout knowing much of the new data oriented design with regula mono behaviours, but all that overhead to connect both systems will overwhelm the students.
View More Comments
Hi Everyone! Here me again with my questions hehe. This time i wonder what do you think about Game Dev Degrees? Are they neccesary? Or just a CS Degree are enough?

I think Game Dev Degrees are neccesary because CS are not representative of what being a Game Dev be, not about the topics you need to learn, but in the applications, that usually are more encouraging to do.

Excited to know your opinions. Greetings!

Nicolas Borromeo
Dev, Entrepeneur and Teacher
2 months ago
Nice book! I will add it to my courses bibliography.
2 months ago
Reply@Nicolas BorromeoGreat info Hanley, how you do differentiate poor and good cs fundamentals? Which topics do you expect your Juniors should have?
the trend in the valley has been to go standardized testing for CS fundamentals. google and facebook have really pushed this trend. check out this book. it's a great place to start: http://www.crackingthecodinginterview.com/
Nicolas Borromeo
Dev, Entrepeneur and Teacher
2 months ago
Great info Hanley, how you do differentiate poor and good cs fundamentals? Which topics do you expect your Juniors should have?
2 months ago
Reply@Hanley Leungif you want to get a job as a game programmer you're better off getting a CS degree and making some games on your own.
here's my matrix. Degree doesn't matter much to me actually, but it's the CS fundamentals that are important. here's my matrix as a hiring manager in the game industry: - Good CS Fundamentals (if you got a CS degree from a strong CS university like Berkeley or CMU or USC etc) + Good portfolio: easy hire on the technical and ability front. - Poor CS fundamentals + Good Portfolio: hire if their protfolio work matches what we need right now, might have trouble working well with the rest of the team and on bigger more complex projects in a professional environment - Good CS Fundamentals + Poor portfolio: won't hire. if you want to make games you'll spend time doing it. - Poor CS fundamentals + Poor portfolio: pass
View More Comments
Hi everybody!

Just wondering how do you typically approach AI for decision making? Do you use FSM, Behavior Trees, Utility Theory or any other system?

I personally love BTs, with a few custom nodes you can add a Utility and FSMs in the tree, combining the systems and getting the best of them.

I'm excited to see your approaches! Greetings!

Porrith Suong
Technical Lead @ initialPrefabs
2 months ago
Reply@Nicolas BorromeoNice approach! Maybe you probably alredy seen this, but here its a great paper about GOAP from the creators of F.E.A.R.
Yep, I was just about to link Jeff Orkin's paper about GOAP :) but then I accidentally hit back button on my reply.
Nicolas Borromeo
Dev, Entrepeneur and Teacher
2 months ago
Reply@Nicolas BorromeoNice approach! Maybe you probably alredy seen this, but here its a great paper about GOAP from the creators of F.E.A.R.
Nicolas Borromeo
Dev, Entrepeneur and Teacher
2 months ago
Nice approach! Maybe you probably alredy seen this, but here its a great paper about GOAP from the creators of F.E.A.R.
Porrith Suong
Technical Lead @ initialPrefabs
2 months ago
Reply@Nicolas BorromeoSorry for my english, im from Argentina :).
No worries, I can't really speak much about the art exhibit but general information can be viewed here: http://iancheng.com/emissaries As for GOAP, the cost is of said actions are usually generated by a heuristic of my choosing mixed with a preference of an agent to do an action. For a very simple GOAP, you can scan through a collections of actions you need to do, compute the heuristic and then build a stack of actions.
View More Comments
Hi Everyone! My name is Nicolas Borromeo, i am a game developer and teacher located in Argentina and recently became a Unity Certified Instructor. I really love Unity and Teaching, and i am excited to be part of this community, hope to help you and learn together.

To start i am sharing with you a little video i made about how i created a wireframe effect for a game i am developing.

Greetings!

About Me
Along all my life i have developed a deep knowledge in different programming areas, like web...
Ucumari Interactive
Co-founder
Escuela DaVinci
Game Dev Technician
See more
Certifications (7)
Import
Unity Certified Instructor
Jun 2019
Unity Certified Programmer
Sep 2018
Unity Certified Expert Gameplay Programmer
Jan 2018
See all
Nicolas Borromeo's liked projects (4)
Following (170)
Followers (212)
Following Companies (0)
Not following anyone yet