• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Programming |OT| C is better than C++! No, C++ is better than C

Lathentar

Looking for Pants
There are some improvements can still be made, e.g., better estimation of the value of remaining board, and faster stopping criteria for word searching, but the overall structure is pretty much set since you want the best solution. Switching to C++ and using some rudimentary data types (strings and arrays) should speed things up quite a bit (10x?). Another thing is to try make it parallel. That could be fun.

I think a better estimation of the value of the remaining board would be a wise approach. Basically scan the letters in the board and determine the longest possible word/words that can be built and compare that to the current best score.

Parallellizing the algorithm should improve speed and be fairly straightforward.

I'm not that interested in switching to C++. I've been coding in C++ professionally for a decade now, this exercise was primarily to force myself to use a new language by tackling a somewhat tricky problem. I'll probably try implementing it in D though.
 

Everdred

Member
What's the script do with that parameter?

If you make a barebones foo.php and just have it echo $_GET['n'], do you still get a 403 for 'eyelasers'?
The .php file can be completely empty and still error. I just don't understand what part of eyelasers is triggering it. Thousands of other words can replace it with no error. Once you add the rs it errors.
 
The .php file can be completely empty and still error. I just don't understand what part of eyelasers is triggering it. Thousands of other words can replace it with no error. Once you add the rs it errors.

I expect it is the webserver and not PHP then- though worth trying foo.html?n=eyelasers to confirm. Any of the web server's logs updated when you get the 403?
 
Is there an official Unity OT or does all programming go in here for everything? I've ran searches for Unity but end up with 5 pages full of Assassins Creed Unity threads lol, so sorry if it is somewhere easy to find.
 

BreakyBoy

o_O @_@ O_o
Is there an official Unity OT or does all programming go in here for everything? I've ran searches for Unity but end up with 5 pages full of Assassins Creed Unity threads lol, so sorry if it is somewhere easy to find.

I know we've got at least one guy here that is teaching C#/Unity to some students, and a few others have popped up saying that they're working with Unity in some capacity, so I'm sure you can get answers from some people here. I've been talking to another GAFfer about working on a game, so I picked out Unity to start working on as it seems to be the best combination of power and versatility out there. No questions yet, just trying to get re-acclimated to all the fun math.

There's also the Indie Game Development thread, which is a more specific focus. Not everyone there uses Unity, but I gather a fair number of them do, or have at some point. And a quick search pops up this GAF Learns Unity thread which didn't see a ton of activity, but it has some useful chats there for anyone starting out.
 
I know we've got at least one guy here that is teaching C#/Unity to some students, and a few others have popped up saying that they're working with Unity in some capacity, so I'm sure you can get answers from some people here. I've been talking to another GAFfer about working on a game, so I picked out Unity to start working on as it seems to be the best combination of power and versatility out there. No questions yet, just trying to get re-acclimated to all the fun math.

There's also the Indie Game Development thread, which is a more specific focus. Not everyone there uses Unity, but I gather a fair number of them do, or have at some point. And a quick search pops up this GAF Learns Unity thread which didn't see a ton of activity, but it has some useful chats there for anyone starting out.

Cool for some reason searching for Unity did not pull up the GAF learns unity thread. I'll read over that and see if there is anything cool in there. Been reading through the Indie Game Development thread now. Thanks!

I am more of a C# guy and have seen so many tutorials and videos online about Javascript which I can't stand lol. It is " quicker " though which is likely why people use javascript so much while making videos.
 

oxrock

Gravity is a myth, the Earth SUCKS!
Cool for some reason searching for Unity did not pull up the GAF learns unity thread. I'll read over that and see if there is anything cool in there. Been reading through the Indie Game Development thread now. Thanks!

I am more of a C# guy and have seen so many tutorials and videos online about Javascript which I can't stand lol. It is " quicker " though which is likely why people use javascript so much while making videos.

C# is pretty much the officially endorsed unity language. All the tutorials I've seen are in C#. A lot of people use unity in the indie game dev thread, so head over there if you have any questions. I know when I finish my current game and switch to unity that I'll be bugging them there.
 
C# is pretty much the officially endorsed unity language. All the tutorials I've seen are in C#. A lot of people use unity in the indie game dev thread, so head over there if you have any questions. I know when I finish my current game and switch to unity that I'll be bugging them there.

yeah the official archived live training sessions are all C# but I am currently also watching through this Unity3D student course that is really long and he does it all in JavaScript. Seen a bunch of youtube videos where the peeps do it in Java as well lol. Its not horrible as it is not too difficult to move that stuff over to c# as long as it is not too too complicated.

Been out of the programming game for a long time so just getting back into it again. Been using Unity for 48 hours. My current scene has objects moving around on their own and if they collide with another object or with each other they will reverse course with a nice rigidbody.Addforce push in the opposite direction. Still figuring out rotating. Also have it where any collisions sends to the console what object is being hit. Then I got a ball I can now control around the level and bounce it around and such. Anything it hits causes explosion noises. Then got ambient sounds along the level that flow in and out according to distances. Got it where key commands can change the color of the lighting in the level.

Such like that. Just playing with each new thing I learn about in various ways. I learn the script then rewrite it in various ways just to get it into my memory. Don't want to learn too fast and overload.

Unity is pretty fantastic stuff. Love the asset store and all the various music and sound files and 3D models and such you have access to for free. I'll be working on animations here soon too to try and get a character running around a level.

I had a really odd issue though last night. When I was trying to figure out how to get the void OnCollisionEnter(Collision collision1) to return a sound, I dunno why I just could not get it to work for me. Then I went back into an earlier file that just pushed messages to the Console whenever collisions occured and applied that one to the new object I was working with, and it worked fine. When I went back and forth the code was the exact same except for the collision.gameObject.name == " name " was different due to the object Tag / Name change. Couldn't figure that out at all lol. Was scratching my head for half an hour looking at 2 identical codes with only 1 working and the other not.
 
Today I had a programming phone interview with a pretty big company, and towards the end my stomach started to feel like it was going to explode. I was happy when the guy told me he had to end the interview quickly because there was no way I was gonna finish that algorithm question without needing to stop and take a massive crap.

I realize this is totally TMI, but I figured you guys would appreciate the pain of trying to optimize and algorithm while holding in a mudslide.

On another topic, do any of you guys have experience with particle systems?
 

usea

Member
On another topic, do any of you guys have experience with particle systems?
Nothing serious, but I have fooled around with them before. Basically I just made a thing where you could define emitters, behaviors and effects in json and you'd get some cool particles. Basic things like color, movement, gravity, collision.
 

hateradio

The Most Dangerous Yes Man
Does anyone know why I would get a Forbidden 403 error for the following URL:
u.php?n=eyelasers

But it works fine for other inputs like:
u.php?n=eyelase
u.php?n=dude

I've read a little about mod_security and I don't understand if it pertains to this.
Look at your error log. I don't know why that could be an issue. I don't think I've ever used mod_security, personally.
 

Everdred

Member
Look at your error log. I don't know why that could be an issue. I don't think I've ever used mod_security, personally.
Yeah, I'm totally stuck. I've ruled out PHP and my htaccess is pretty barebones. The only thing in my error log is "File does not exist: /home/site/public_html/403.shtml"
 
Currently RDP'ed into a barely-functioning laptop, over my company's spotty wifi, connected to a VM running on the laptop, and doing Sharepoint development inside said VM.

Please kill me
 
Could someone relay to me why this code is not working in Unity C#?

Code:
void Awake()
{
	private Color newColor;
	private int timer = 0;
	
}

void Update()
{

	ColorChanging();
        timer++;
	
}

void ColorChanging()
{

	while ( timer <= 100000 )
	{
	
		Color currentColor = transform.gameObject.light.color;
		newColor = Color.blue;
		
		light.color = Color.Lerp(currentColor, newColor, Time.deltaTime);
		
	}
	
}

I got a scene built in Unity where I am playing with lights. I built an enclosed room and got 2 backlights that are using a timer to move around the scene at various points. I created a bunch of spheres together each with their own spotlight and got them rotating around various axis so when the scene runs I have all these lights going all over. Everything is working fine but now I want to be able to change the color of the lights on the spheres by again using a background timer running to trigger the changes.

I read about Lerp and how it can be used for various things, so I would like to be able to grab the current color of the spheres, add a new color which in this case is Blue and then have the color change to the new color slowly via lerp.

When it runs though, nothing happens. Or if I do a public newColor declaration I can actually change the color of the light but there is no Lerp changeover to the new color, it just jumps to it. What am I missing? I worked on this for like an hour last night and just couldnt figure it out lol.
 
I've only dabbled in Unity but from looking at the docs it looks like your issue is probably with this line:

Code:
light.color = Color.Lerp(currentColor, newColor, Time.deltaTime);

http://docs.unity3d.com/ScriptReference/Color.Lerp.html

Color.Lerp should be given a value between 0 and 1, but you are passing the deltaTime which if I'm not mistaken will be the time in milliseconds that have passed since the last frame. That means that you are giving it an effectively constant value. Probably 16/17 each frame. It doesn't say what Color.Lerp does if the value is higher than 1 but it probably treats it as 1. What you want to do is scale your own timer so that the value for t is correctly positioned between 0 and 1, something like:

Code:
light.color = Color.Lerp(currentColor, newColor, timer / 10000.0);
 
I've only dabbled in Unity but from looking at the docs it looks like your issue is probably with this line:

Code:
light.color = Color.Lerp(currentColor, newColor, Time.deltaTime);

http://docs.unity3d.com/ScriptReference/Color.Lerp.html

Color.Lerp should be given a value between 0 and 1, but you are passing the deltaTime which if I'm not mistaken will be the time in milliseconds that have passed since the last frame. That means that you are giving it an effectively constant value. Probably 16/17 each frame. It doesn't say what Color.Lerp does if the value is higher than 1 but it probably treats it as 1. What you want to do is scale your own timer so that the value for t is correctly positioned between 0 and 1, something like:

Code:
light.color = Color.Lerp(currentColor, newColor, timer / 10000.0);

Damn your right lol. I totally missed that. I had been messing with time.deltaTime for so many hours straight I just threw it in there without even thinking much about it. Thanks for getting my mind back on track! I'm not at home to plug it in but yeah that looks correct.

My next task will be to figure out how to get this scene to run automatically without me going in and changing the code or adding more if (timer == x ) type statements. I was practically dancing around the house when I got the spheres to rotate on all 3 axis on their own and got the backlights to transition around the screen on their own based on the timers lol. Makes me realize I have missed programming like this alot. Best thing about Unity is you immediately get to see the results with a simple Play button hit.
 

Water

Member
On another topic, do any of you guys have experience with particle systems?
A bit. They are relatively easy as long as you don't need extreme performance, and as long as you don't have certain types of forces in the system. For an example of when it gets harder, a cloth simulation where you have spring forces between individual particles will need special integrators or it just explodes. I have written an exercise like that for a computer graphics course.
 

Water

Member
Is there an official Unity OT or does all programming go in here for everything? I've ran searches for Unity but end up with 5 pages full of Assassins Creed Unity threads lol, so sorry if it is somewhere easy to find.

Post in the "GAF learns Unity" thread - it's not dead, just sleeping...

I'm teaching a beginner Unity course a month from now. After stressing about it over the summer with little to show for it, I'm finally getting in the groove of pushing out exercise content that I'm actually happy with. I have some really cool ideas in store that I hope I have the time to incorporate. One I haven't touched yet is a game played on a grid with mouse cursor control and unit/object selection (so you click a square to select it, game highlights legal movement options, etc.).
 
I'm teaching a beginner Unity course a month from now

really? that's actually pretty useful. I wish my university would offer something like that.

incidentally, have any tips or anything useful you used? coming from using opengl and basically creating a few thing from scratch, unity seems overwhelming.
 
A bit. They are relatively easy as long as you don't need extreme performance, and as long as you don't have certain types of forces in the system. For an example of when it gets harder, a cloth simulation where you have spring forces between individual particles will need special integrators or it just explodes. I have written an exercise like that for a computer graphics course.

I think what I actually want for this project is a flocking algorithm. I've been reading up on Boids. Got a basic version going, just need to fine tune it.
 
Could someone relay to me why this code is not working in Unity C#?

Code:
void Awake()
{
	private Color newColor;
	private int timer = 0;
	
}

void Update()
{

	ColorChanging();
        timer++;
	
}

void ColorChanging()
{

	while ( timer <= 100000 )
	{
	
		Color currentColor = transform.gameObject.light.color;
		newColor = Color.blue;
		
		light.color = Color.Lerp(currentColor, newColor, Time.deltaTime);
		
	}
	
}

I got a scene built in Unity where I am playing with lights. I built an enclosed room and got 2 backlights that are using a timer to move around the scene at various points. I created a bunch of spheres together each with their own spotlight and got them rotating around various axis so when the scene runs I have all these lights going all over. Everything is working fine but now I want to be able to change the color of the lights on the spheres by again using a background timer running to trigger the changes.

I read about Lerp and how it can be used for various things, so I would like to be able to grab the current color of the spheres, add a new color which in this case is Blue and then have the color change to the new color slowly via lerp.

When it runs though, nothing happens. Or if I do a public newColor declaration I can actually change the color of the light but there is no Lerp changeover to the new color, it just jumps to it. What am I missing? I worked on this for like an hour last night and just couldnt figure it out lol.

I've only dabbled in Unity but from looking at the docs it looks like your issue is probably with this line:

Code:
light.color = Color.Lerp(currentColor, newColor, Time.deltaTime);

http://docs.unity3d.com/ScriptReference/Color.Lerp.html

Color.Lerp should be given a value between 0 and 1, but you are passing the deltaTime which if I'm not mistaken will be the time in milliseconds that have passed since the last frame. That means that you are giving it an effectively constant value. Probably 16/17 each frame. It doesn't say what Color.Lerp does if the value is higher than 1 but it probably treats it as 1. What you want to do is scale your own timer so that the value for t is correctly positioned between 0 and 1, something like:

Code:
light.color = Color.Lerp(currentColor, newColor, timer / 10000.0);

two things to keep in mind: Time.deltaTime returns a float of the delta time in seconds, so at ~60hz the delta values are going to be something like "0.01656" to represent 16ms. what you should be doing to get a smooth color transition is deciding on a transition time, like 5 seconds, and lerp by your deltaTime / transTime eg:

Code:
public transTime = 5.0f;
//blahblah
void Update() {
   light.color = Color.Lerp(currentColor, newColor, Time.deltaTime / transTime);
}

this will ensure the color change takes a constant time regardless of the current frame-rate. using a fixed timer without applying the delta time will is basically locking your color change to the framerate, and so on a different machine it might change at a different speed.

secondly, your while() statement will never break since timer is never incremented inside the loop, and since it never breaks unity never gets to render the next frame. i don't know how it's not locking up Unity for you because if I write a statement like that I have to shut down Unity from the task manager.

really you should dispense with the while loop entirely as what you should be doing is incrementing the color change some slight amount each frame and then letting unity get on with rendering etc. so ideally set the transition time and if you want to keep track use an if statement - either compare the current to the target color or keep track of the time passed. here is just one way to do it:

Code:
public float colorTimer = 0f;
public float transTime = 5f;
public color targetColor;

void Start() {
  startChange();
}

void Update() {
  updateColor();
}

void startChange() {
  colorTimer = transTime;
  targetColor = //blah
}

void updateColor() {
  if (colorTimer > 0) {

    // i pass in the light.color here instead of currentColor - if you want to use the currentColor variable like in your example,
    // you'll need to use an accumulator to set the final value so instead of transTime * Time.deltaTime
    // you'll have something like:
    // accum += Time.deltaTime / transTime;
    // and currentColor in the first param, accum in the last param.

    light.color = Color.Lerp(light.color, targetColor, Time.deltaTime / transTime);
    colorTimer -= Time.deltaTime;
  }

}

i hope that helps some. the code is untested but hopefully gets the intent across.
 
Code:
public transTime = 5.0f;
//blahblah
void Update() {
   light.color = Color.Lerp(currentColor, newColor, Time.deltaTime / transTime);
}

Won't this suffer from the original problem of being a constant value each frame though? You probably want a variant like:

Code:
public transTime = 5.0f;
public timePassed = 0;

//blahblah
void Update() {
   timePassed += Time.deltaTime;
   light.color = Color.Lerp(currentColor, newColor, timePassed / transTime);
}

But yes it is a good idea to compute the timing interval using actual time passed as opposed to frames so the transitions stay framerate independant.
 
Won't this suffer from the original problem of being a constant value each frame though? You probably want a variant like:

Code:
public transTime = 5.0f;
public timePassed = 0;

//blahblah
void Update() {
   timePassed += Time.deltaTime;
   light.color = Color.Lerp(currentColor, newColor, timePassed / transTime);
}

But yes it is a good idea to compute the timing interval using actual time passed as opposed to frames so the transitions stay framerate independant.

whoops yeah i missed that in the first example, the second i use the lerped value as the first param and show a time passed method in the comments. in my defence it was 2am and i have a cold :D
 

GabDX

Banned
Ending braces on a new line.
I find that having only ending braces on their own line makes the code more readable. If you see a brace on it's own line, you know immediately that it's the end of a block. Not to mention that you save vertical space as well.
 

Water

Member
really? that's actually pretty useful. I wish my university would offer something like that.

incidentally, have any tips or anything useful you used? coming from using opengl and basically creating a few thing from scratch, unity seems overwhelming.
I don't feel there is any particular trick to Unity in general; since you have already done programming it's just a matter of learning to use the features. You shouldn't get overwhelmed if you learn features as you need them (as opposed to trying to just learn everything).
 

upandaway

Member
I have to say I expected Python to be more... different from Java. As far as I can tell they're basically the same thing except Python has different syntax and just writes way cleaner, nicer more easily. Am I wrong?

On the other hand going through C I get the feeling that despite sharing so much syntax with Java they're really different beasts. Algorithms can change completely between the two languages.

I'm still only starting with both so I'm hoping for more experienced input
 
I have to say I expected Python to be more... different from Java. As far as I can tell they're basically the same thing except Python has different syntax and just writes way cleaner, nicer more easily. Am I wrong?

The main difference is that when you say that Java is bad at something you get fifteen guys telling you how Java is not bad at something but *reasons* when *you do something*
 

msv

Member
I find that having only ending braces on their own line makes the code more readable. If you see a brace on it's own line, you know immediately that it's the end of a block. Not to mention that you save vertical space as well.
If you see a brace right under some text, you know that it's the start of a block, and if you see it under but a bit before some text, you know its the end. And you can more easily link the two together, because they'll always be right under eachother. With a lot of nesting, of course it becomes an issue, but that's no different whereever you put your braces. Saving vertical space.. i never understood, we don't work on 640x480 screens anymore.

However, I do think that there should be visual support for code blocks in the IDE. It's fine to type braces, but the visual representation should be improved. The IDE needs to put an actual colored block on the background or something like that to improve recognition of code blocks.
 
I have to say I expected Python to be more... different from Java. As far as I can tell they're basically the same thing except Python has different syntax and just writes way cleaner, nicer more easily. Am I wrong?

You're not completely wrong, there are many similarities between the 2 languages, but idiomatic Python can be very very different from Java. Some of these differences are less relevant with the advent of java 1.8 but there are still things lacking from the language.
Some key differences:
  • Python has literal notation for most built in collection types. e.g.
    Code:
    x = {'a': 1, 'b': 2}
    instead of
    Code:
    Map<String, Integer> map = new HashMap<>();
    map.put("a", 1);
    map.put("b", 2);
    On the surface this may appear to be simply an ease of expression thing, but it also has other uses. It enables multiple return types through tuple literals; tuples can be properly immutable with this syntax which is generally considered a good thing; it allows dicts to be used as configuration objects very easily and I'm sure there are plenty of other uses that are escaping me right now.
  • List Comprehensions
    List comprehensions are not just a convenient way to avoid loops, they allow for more powerful expressions of filtering and mapping in a clean way while reducing the amount of ways that errors can creep in. A comprehension is almost impossible to write incorrectly and is very clean and expressive at the same time.
    Code:
    [x + 1 if x % 2 != 0 else 0 for x in range(10)]
    >>> [0, 2, 0, 4, 0, 6, 0, 8, 0, 10]
    Filtering and mapping with no way to mess up the iteration parts. Good use of list comprehensions can simplify code a great deal while reducing errors.
  • Optional arguments to functions are a big deal. Any kind of domain object that requires a great deal of configuration benefits enormously from optional arguments. Since java lacks them, alternate design patterns such as the Builder Pattern need to be employed instead. IMO this is one of the biggest weaknesses of Java in its current form.
  • Functions as objects and closures. This is somewhat ameliorated in Java 1.8 although the syntax leaves a lot to be desired. Basically, being able to pass functions around allows for a whole lot of control flow boilerplate to be omitted and makes code much clearer and cleaner. Maybe not the greatest example but here's something from one of my projects that uses a message passing system:

    Code:
    class QuestionListView(CursesView):
        def __init__(self, model=None):
            super(QuestionListView, self).__init__()
            self.listeners = {
                self.on_list_updated: EventType.TOPIC_LIST_UPDATED
            }
            self.key_map = {
                'k': lambda: event_bus.publish(
                    Event(EventType.TOPIC_LIST_UPDATE_REQUEST, self)),
                'u': lambda: event_bus.publish(
                    Event(EventType.UNSUBSCRIBE, self))
            }

    Here the key_map uses both literal dict syntax and function objects to bind event dispatch functions to specific keypresses. This is far cleaner, simpler and less prone to mistakes then the Java equivalent would be. Additionally, if I wanted to swap the type of event that fired on a keypress dynamically for example, I could just assign a different function to a key in this dict and we're done.
    Code:
    key_map['a'] = some_function
  • Generators
    Generators are one of the most underused features of Python and also one of the most powerful. They provide built in language support for lazy evaluation and if you know your stuff well enough you can even build threadless concurrent systems using them.
    Again this example is a little bit simple, it's from a different current project, where I use a generator as a super simple way to get deferred http requests without any work on my part at all:

    Code:
    def get_pages(*urls):
        '''
        return a list of response objects that were OK
        '''
        for url in urls:
            response = requests.get(url)
            if response.status_code == 200:
                yield response
    
    for url in get_pages(*urls):
        thread_handler.process(url)

    This way, the actual http request isn't made until the url is actually requested. In this case each url can be fetched and handed off to a separate handler and I can keep the 2 concerns (fetching a url and handling it) separate without any work at all. In other cases, I may not even need to perform each request and a generator enables those options without requiring any extra logic in the request section.
  • Decorators and more flexible metaprogramming
    Decoraters can be used to implement features such as properties, I've personally used them to add consistency checking to code that is structured as a pipeline with dependencies on other parts of the pipeline. Aspect oriented programming can be performed with decorators as well as mocking and dependency injection, as well as a lot of other things. Java annotations are sort of similar but decorators can do a whole lot more.

There are lots of other reasons the language is more expressive than Java, (and I don't hate java, especially with 1.8, but the language has issues) and this is just a brief list with some crappy examples but no it's not just a character count thing. Although code being simpler and clearer is still a massive advantage in itself, dynamic typing not so much.
 
New post because it's unrelated to the last one. I've been playing around with Java 1.8 recently and I'm actually enjoying using the language a little bit for the first time in a long time. Anyway, I wrote a simple argument parsing library for Java 1.8 (which is a bit redundant since there are around 12 of them already and who even writes command line java apps on any kind of regular basis). I'd really appreciate any feedback from programming GAF either on public interface for the library or style or anything really. I have it on github: jargparse (I was also thinking of calling it jargle since that's a hilarious name). Anyway if anyone has the time to check it out I'd really like to know what you think.
 

Granadier

Is currently on Stage 1: Denial regarding the service game future
First week into my Comp Sci 2 course and I feel lost programming wise. The course uses C++, which I used in comp sci 1 not 2 months ago, yet all my knowledge and understanding has vacated my brain.

My summer was all C# and Javascript, my fundamentals are from Java, my concepts mentally are very object based, and C++ just throws a wrench into everything that I think should work.

I've spent hours on this stupid simple assignment and just feel like an idiot. Instead of "Here's a hammer and some nails, go build something." it's "You need to build something, but first you need to build this hammer from this tree and these nails from this iron ore."

Rant/venting over, but has anyone else experienced this?

really? that's actually pretty useful. I wish my university would offer something like that.

incidentally, have any tips or anything useful you used? coming from using opengl and basically creating a few thing from scratch, unity seems overwhelming.

I don't feel there is any particular trick to Unity in general; since you have already done programming it's just a matter of learning to use the features. You shouldn't get overwhelmed if you learn features as you need them (as opposed to trying to just learn everything).

Might be late, but I couldn't pass up a chance to discuss Unity since I love it.

It's a fantastic engine for beginners. If you're into the programming/scripting side it has that (start with C#, not Javascript aka Unityscript), or if you just into making games with prebuilt stuff it has that through the asset store. You can build shaders for rendering, or models and animations for games using Blender or some other modeling software....the possibilities are so damn vast and so damn fun!

Personally I started at Catlike Coding. It's based around scripting in C# and learning how to manipulate your 3D objects through your code. This is what really fascinated me and hooked me on Unity right away.

Anyways, if you're more interested stop on over in the IndieGAF thread. There are a lot of us that use Unity, and they are very helpful with questions.
 

upandaway

Member
Thanks lorebringer, haven't gotten to some of those stuff yet actually. Tuples definitely changed my perspective on a lot of things.
 

Water

Member
Personally I started at Catlike Coding. It's based around scripting in C# and learning how to manipulate your 3D objects through your code. This is what really fascinated me and hooked me on Unity right away.
Catlike Coding tutorials are excellent quality. However, they mix relatively complicated algorithms, advanced programming techniques and Unity functionality together in a way that I think would be hard to follow without significant pre-existing programming skill. A lot of the content is also pretty abstract and not directly applicable to most games.

For my course I'm trying to design the exercises so that Unity features are introduced gradually and roughly in order of importance, and overall program complexity stays low enough for the students to handle; no previous programming experience assumed. I try to incorporate a good variety of typical and widely applicable mechanics and patterns, and finally, avoid the "abstract task in a vacuum" syndrome and make the exercises coherent wholes (with at least one, but preferably two fully functional games).

I'm considering releasing some of the course content when it's done, but shaping it into "tutorial" form would take work since much of the content won't be on paper. I'll be doing a lot of live coding, involving the students in the process, and explaining theory on the way.
 

Granadier

Is currently on Stage 1: Denial regarding the service game future
Catlike Coding tutorials are excellent quality. However, they mix relatively complicated algorithms, advanced programming techniques and Unity functionality together in a way that I think would be hard to follow without significant pre-existing programming skill. A lot of the content is also pretty abstract and not directly applicable to most games.

For my course I'm trying to design the exercises so that Unity features are introduced gradually and roughly in order of importance, and overall program complexity stays low enough for the students to handle; no previous programming experience assumed. I try to incorporate a good variety of typical and widely applicable mechanics and patterns, and finally, avoid the "abstract task in a vacuum" syndrome and make the exercises coherent wholes (with at least one, but preferably two fully functional games).

I'm considering releasing some of the course content when it's done, but shaping it into "tutorial" form would take work since much of the content won't be on paper. I'll be doing a lot of live coding, involving the students in the process, and explaining theory on the way.

These are very good points when talking about learning. A lot of times tutorials will go through steps without explanation of "why" or "how this helps".
edit: a series that I have enjoyed is QuillCreates. He tends to go into detail about the concepts when creating the games. It's helped me further understand a lot of the behind the scenes operations.

If you decide to release your lectures or content I would be very interested in watching them.
 

Chaos

Member
Post in the "GAF learns Unity" thread - it's not dead, just sleeping...

I'm teaching a beginner Unity course a month from now. After stressing about it over the summer with little to show for it, I'm finally getting in the groove of pushing out exercise content that I'm actually happy with.

There was a Unity book recently released by an Award-winning game designer and professor Jeremy Gibson, in it he covers stuff that he taught his students, might be worth a look for some ideas.

Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C# by Jeremy Gibson
 

Water

Member
These are very good points when talking about learning. A lot of times tutorials will go through steps without explanation of "why" or "how this helps".
edit: a series that I have enjoyed is QuillCreates. He tends to go into detail about the concepts when creating the games. It's helped me further understand a lot of the behind the scenes operations.
I'll check him out.
If you decide to release your lectures or content I would be very interested in watching them.
I'm going to try to get video recording for quality improvement purposes, but it wouldn't make sense to release. I'll run the classes in a manner where the bulk of the "lecture content" is spread over the duration of the class in short pieces, and most of the class is hands-on coding time, with the students working to reproduce the functionality I just discussed (and usually, live coded an implementation of). The class will move roughly at the speed of the slowest students, but the fast ones won't have to twiddle their thumbs, I'll provide plenty of suggestions for extra work (of various difficulty levels) they can do. The end of the course will be less pre-digested and scripted.

I can easily share the code / projects - the first one is pretty much done already - but since this is aimed at absolute beginners, there won't be anything of interest to you I think. In fact, for non-beginners the code will set a bad example. I'm deliberately doing a lot of things in inferior ways when the better ways would require complicating the code, introducing a Unity or C# feature that is outside the scope of the course, or introducing too many features at the same time.
 

Granadier

Is currently on Stage 1: Denial regarding the service game future
I'll check him out.
I'm going to try to get video recording for quality improvement purposes, but it wouldn't make sense to release. I'll run the classes in a manner where the bulk of the "lecture content" is spread over the duration of the class in short pieces, and most of the class is hands-on coding time, with the students working to reproduce the functionality I just discussed (and usually, live coded an implementation of). The class will move roughly at the speed of the slowest students, but the fast ones won't have to twiddle their thumbs, I'll provide plenty of suggestions for extra work (of various difficulty levels) they can do. The end of the course will be less pre-digested and scripted.

I can easily share the code / projects - the first one is pretty much done already - but since this is aimed at absolute beginners, there won't be anything of interest to you I think. In fact, for non-beginners the code will set a bad example. I'm deliberately doing a lot of things in inferior ways when the better ways would require complicating the code, introducing a Unity or C# feature that is outside the scope of the course, or introducing too many features at the same time.

This is probably true. Good luck with your course! Pretty awesome that the students get the chance to take a course in Unity.

Just started learning Javascript.

I like this guy's voice.
https://www.youtube.com/watch?v=zzq-ZYlYaUA

Oh god, he's the "Jaaavascript" guy!
 
I don't feel there is any particular trick to Unity in general; since you have already done programming it's just a matter of learning to use the features. You shouldn't get overwhelmed if you learn features as you need them (as opposed to trying to just learn everything).

I think I'm just running into the "trying to learn everything" issue.

I'm just running into a slight mental block with translating some underlying scripts to work with the game environment (in a round about way), but I may just need more patience and time that I haven't had in a while. *shrug* An extremely light final semester should give me ample time to get through it.

Personally I started at Catlike Coding. It's based around scripting in C# and learning how to manipulate your 3D objects through your code. This is what really fascinated me and hooked me on Unity right away.

Cool. I'll check this out. Thanks.
 
Don't know if this is right thread to ask, I've been unemployed for a while, the job I had previously was in research and development in material science. I want to switch in to a career that allows me to work close to new york city, which material science doesn't allow. So on the advice of a web developer friend, I've been trying to learn Ruby on Rails as that's the new hot shit and there seems to be a lot of jobs compared to the few material science jobs that are all in the middle of no where Penn.

I know with Ruby on Rails for web development you are expected to know the entire vertical stack. I am trying to get a grasp at the type of competency i would need to get an entry level job, and would a masters in comp sci help out?

I would love if any of you guys can point me to an example web app written with ruby on git hub so i can get a grasp the type of knowledge i should have for a fully deployed site.

My current experience with Ruby on Rails is, hey gems are fucking cool you can do so much with them, to wait there's no IDE, wait there's no hand holding? Configuring your gem packages is a pain in the ass? and there's a million versions of these Gems?
 
Top Bottom