Jump to content

  • Log In with Google      Sign In   
  • Create Account

Calling all IT Pros from Canada and Australia.. we need your help! Support our site by taking a quick sponsored surveyand win a chance at a $50 Amazon gift card. Click here to get started!


SimonForsman

Member Since 18 Oct 2005
Offline Last Active Yesterday, 12:51 AM

#4953462 Completely new. What do I do? Where can I start?

Posted by SimonForsman on 27 June 2012 - 03:30 PM

1) Lots of different jobs, on the production end you got programmers and various types of artists, (concept artists, 3d modellers, animators, composers, voice actors, regular actors, etc, etc, etc) and ofcourse mangement, (allthough managers tend to be recruited from the production teams), then you got quality assurance, marketing, etc aswell.

2) Yes, a CS degree is valuable for pretty much any programming related job.

3) it depends on what software you want, you can do everything with free software if you wish allthough the more expensive applications tend to provide a fairly solid productivity boost which pays off in the long run.

4) you can't make software without it so it is fairly big, for AAA games however you tend to need far more artists than programmers. (The main thing that separates AAA games from indie or hobbyist titles is the art budget)


#4953421 New To programming, Where to start?

Posted by SimonForsman on 27 June 2012 - 01:18 PM

I don't think any language is more conceptually difficult then any other language. They all have their quirks, even assembly is pretty easy if you start with it. Feel free to start with whatever language you want, but you need to master a computer language before you can do much. You will also find knowing one computer language helps you learn others.


The problem with some languages isn't just the quirks, its their usability.

Assembly is extremely easy to learn, there are almost no rules and a fairly limited set of instructions (Which you don't have to memorize), its an extremely tedious and difficult language to actually make something with though.

It took me roughly 2 hours from installing Unity and mono until i had my first completed C# game (with no prior experience using C#), i still don't know C# (take away my references and autocomplete and i can't get anything done with it), Ask me to do the same with C++ (which i have over 10 years experience with) and not only will making the same game take me atleast two days, maybe even a week, it will most likely be of lower quality, run slower and have more bugs, Those 2 hours spent with unity also taught me quite a bit about engine interface design and allowed me to experiment a bit with gameplay mechanics, skills that will carry over to anything gamerelated i make in the future, regardless of what language i choose for it.

Modern languages let you get away with not actually knowing the language while older languages such as x86 assembly, C, C++, etc not only requires you to have a fairly solid grasp of the language (to avoid fucking everything up) but also requires you to have decent knowledge about the underlying platforms and their quirks, Those all add up to push your focus towards learning things that are very likely to change in the near future(Why does sin(6.29) give a different result on my server than on the clients when they're all 64 bit intel machines running Windows causing my lockstep simulation to desynch in a horrible mess and why should a beginner have to worry about that instead of learning how to actually write a lockstep simulation ?).

(C++ has become alot better recently but the legacy crap is still there(a problem that Java also shares, backwards compatibility is a double-edged sword) and still causes unnecessary headaches for anyone who doesn't allready know the language well)


#4953148 Game Engine help?

Posted by SimonForsman on 26 June 2012 - 03:48 PM

I'd recommend Unity3D, it should fit pretty much perfectly.


#4953029 Best solutions in a real money bettable game to allow non-depositers to play...

Posted by SimonForsman on 26 June 2012 - 08:42 AM

How can you not know what epeen means when you are working in game biz?

Funny you should say that (and, to Tom Sloper). I've heard this word for the first time in my life too. Google brings up a lot of pages about a WoW cheat bot, and neither Wikipedia nor Wiktionary seem to know it. Posted Image

But, back to topic... what makes you think someone would not wager money if there is something to win, solely under the assumption that anyone else is better? Greed is a powerful motivator (the main device behind every kind of con and every kind of gambling). Of course people will put money on the table if everyone at that table does.


http://www.urbandictionary.com/define.php?term=epeen


#4952920 Unreal Engine 3: Code

Posted by SimonForsman on 26 June 2012 - 12:16 AM

Then in your opinion are there any limitations in unrealscript versus cpp?

Unrealscript can only be used with Unreal Engine / UDK and "only" lets you control the unreal engine.

C++ can be used for anything(almost) but supports almost nothing. it is great for building new systems but not really a nice language to use for controlling existing systems. (Which is why so many games these days use higher level scripting languages(unrealscript, lua, python, etc) for the game logic)


#4952742 Is it wise to check all objects in a given state for collision every cycle?

Posted by SimonForsman on 25 June 2012 - 12:45 PM

All moving objects have to check for collisions against nearby objects.

Store your objects in a tree structure based on location and you can avoid even looking at objects that are far away.

For 2D games a quadtree tends to be fairly efficient (it also works well for 3D games if the world is reasonably flat) , you could also look at octrees or bsp trees.


#4952710 Seperating game logic from game loop?

Posted by SimonForsman on 25 June 2012 - 11:25 AM

a fairly simple method to get a fixed timestep is:
const float timeStep = 0.016667; //60 logic updates per second)
float currentTime = lastFrameTime = getTimeInSecondsAccuratlyFromTheOs();
while(!done) {
    currentTime = getTimeAccuratlyFromTheOs();
    while(currentTime > lastFrameTime + timeStep) {
	    update(timeStep);
	    lastFrameTime+=timeStep;
    }
}
this gives you a stable simulation(the results should be the same regardless of the actual framerate) and also allows you to change the size of the timestep if needed (you shouldn't change it at runtime though).

the update method should then update the gamestate based on the timestep you pass to it, i.e to move a unit you do position+=velocity*timeStep.

To get an even better result you can store 2 gamestates, one current and one old and have the update method read from the old state and write to the new state (and on the following update switch them around), this lets you interpolate between the states when rendering and also makes paralellization easier (multiple components/entities/whateveryou'reusing can read from the old state at the same time and write to their own part of the new state without any synchronization)


#4952671 UDK or Unity? The best game engine for beginners?

Posted by SimonForsman on 25 June 2012 - 08:56 AM

Now, one big question as i start out, i need the proper mindset. And that question of how to create this always comes to mind, and i start thinking of things that could happen hours into the game or towards the ending. So my question is, what is the proper mindset? what should you do first when creating a game? what about cinematics? menus? scenes act as levels right? so should i start with terrain, skybox, creating buildings? When AAA-like game developers start a project, what is the first thing to do? do they start drawing up levels and such? or storyboards or what? If i can understand what i should start out with, i can actually begin. Right now i'm looking over the scripting tutorial on Unity, will have to print that out.


The first thing you should do is implement the core gameplay, a quick and dirty prototype works just fine for this purpose, being able to test

Make a concept of the kind of game you want to make, like genre, perspective and so on, and then pick the most important mechanic or the most important aspect of the game and start there. Make a small prototype containing only the needed features and make that work.
For a platformer that would be displaying some placeholder platforms and a placeholder character and let it jump from platform to platform.
After you are satisfied with that aspect start adding new features but always test them out before adding new ones.

In projects I worked with we always started with a bare prototype, in one case we even made a paper prototype before even starting the computer. Things like menues and HUDs always came later unless they were necessary for the prototype to work.


This is what i do aswell, core gameplay first, if the core mechanics are boring or if my own incompetence prevents me from making them fun it becomes pointless to add the rest, with Unity you can create a quick prototype in a few hours.

Also, to get you started with Unity (or any other engine), make a pong clone, it is one of the fastest games to make yet covers all the important aspects of a game, in Unity you'd do this by:
1) Create gameobjects for the paddles, the ball and a gamearea(2 walls and a floor). (The built in cube and sphere shapes are good enough for this, so no need to create custom models)
2) Write a script to let you control one (or both) of the paddles using the keyboard (or mouse).
3) Write a script to give the ball an initial push and reset it if it goes out of bounds.
4) Optionally: add GUI, scoring, sound effects(bonus points for 3D sound), AI(a separate script attached to the 2nd paddle), etc.

Here is the pong clone i made as a test to get familiar with Unity; http://www.reunited-guild.net/pong/ (Deployed as a flash app so no need to download anything)


#4952386 Newbie

Posted by SimonForsman on 24 June 2012 - 12:30 PM

In every search that i do everybody says that's is not important to know C in order to learn C++.


Its not, they're different languages, knowing one of them makes learning the other easier since they are related but learning one in order to learn the other is counterproductive.


#4952367 Texture Transparency Issue

Posted by SimonForsman on 24 June 2012 - 10:48 AM

Hmm, that might happen if you render the alpha blended parts before the other parts and use an alpha test to reject completely transparanent pixels. (That would cause the edge pixels to get written to the depth buffer while not adding much color at the same time).

It might help if you render the transparent parts last and disable depth writes for them. (you should still do the depth test though).

(If this isn't the case you might want to post the relevant code).


#4952047 The Open Source Concept when Applied to Games

Posted by SimonForsman on 23 June 2012 - 11:47 AM

Consider a open source fiction novel, or an open source painting. Would it work?

I think video games contain a certain creative element similar to novels and paintings that require either the direction of an individual "artist" or a very small team. While it is possible to create open source novels or paintings, they would lose something that single authored works possess. I suspect this is the same for video game.


Indeed, there are opensource games though but they are run in pretty much the same way as other hobbyist game projects and outside contributions tend to be focused on the technology rather than the game itself. (Application software is easier to contribute to in a meaningful way as any added feature usually adds value to the product)


#4952005 UDK or Unity? The best game engine for beginners?

Posted by SimonForsman on 23 June 2012 - 08:05 AM

What exactly will I have to use with Unity? So I can use monodevelop but what about middleware? Or 3ds max/ maya will I need any of those, or whatever would be helpful for Unity? And how does one upload art for a game in unity?


Any 3d modeller that can export to .FBX, .dae, .3DS, .dxf or .obj works, on the Unity website the following are listed as supported:
Maya, Cinema 4D, 3ds Max, Cheetah3D, Modo, Lightwave, Blender. (Allthough other tools will work aswell), FBX is probably the best format to export/import as since it includes everything, (some of the other formats can only store static or keyframe animated meshes for example)
for texture creation you can use tools like gimp, paint.net, photoshop, paintshop pro, ms paint, etc. (Any tool that can create/modify 2 dimensional images works here)
for sound/music anything goes aswell, Audacity is fairly popular(for sound effects atleast) but the built in sound recorder in windows work aswell Posted Image (Supported formats are ogg, mpeg(1/2/3) wav, aiff, mod, it, s3m, xm) (for good music apps you'd have to ask a composer, allthough something like fasttracker might work for you (its fairly easy to use)
You cannot add any middleware to Unity Free (you need the pro version to do that), most of what you need should be included allready though.

To add art assets to your game you just have to click the assets menu and select import assets.

Oh, and Unity 4 will be released soon (i just got my pre-order discount offer from them)(it adds quite alot of nice things)


#4951486 Talk to me about java in gaming

Posted by SimonForsman on 21 June 2012 - 02:39 PM


I always walk away disappointed... the same (meh) apps always dominate the sales charts, which is telling.

So by this do you mean there is a gap waiting for quality content, or perhaps the more depressing, people don't want quality content, and as the majority pretty much rules what makes it to the front pages..?


People do want quality and there is definitly a gap on Android (Allthough there are quite alot of high quality apps on the market), the primary reasons as i see them are:
1) The Android market is fragmented, if you make an app that puts some stress on the hardware it will run badly or not at all on a large portion of the devices out there (Which can lead to horrible reviews pushing your app down on the lists or force you to do extensive pre-release testing to find out which devices you can sell it to), for iOS you got what ? 4-5 different models to test your app on.

2) iOS users on average are younger and more likely to play with their phones (Which also makes them more likely to spend money on apps).

3) The iPhone hit the mainstream market first and has alot of momentum, users who want (and are willing to pay for) quality apps will buy iPhones since that is where the great apps are and developers who make quality apps will target the iPhone first since that is what most of their potential customers are using.

4) People in general don't play large, time consuming games on their phones, game apps are primarily played when nothing else is available, users want games that can be picked up, played for 1-2 minutes (or even less) and then put away again, they don't want to spend alot of money on them (as they aren't really played seriously anyway) which means developers can't spend alot of money on the games either.

As for the OPs question i can add that it doesn't make much sense, it is completely irrelevant if it is supported on consoles as the OP will not get a console devkit anyway, (They're not sold to individuals or small independent studios) nor does it matter what the big established studios use as he doesn't work for them nor will he work for them any time soon, any programmer who gets hired by one of the big studios(or even a smaller one) is likely to know several programming languages (including Java) and should be competent enough to pick new ones up when needed.

The skills involved in software development transfer between languages and APIs quite easily so the language you start with is pretty irrelevant, My language "progression" for game development thus far has been:

BASIC->Pascal->Pascal+x86asm->C++->Delphi(This was my DOS->Win95 transition when i was 14, i still remember my bluescreens from trying to switch to VGA mode13 from a Windows application and the frustration i felt when things didn't work as i was used to)->C++->Java->C++(my first OpenGL game)->ActionScript->C++->Java->C++&Lua(abandoned/postponed project, if i pick it up again it'll probably be ported over to Unity, UDK or some other third party engine)->Java(Android(This project was ported over to Unity/C# and is my current project))->C#(Unity)
Alongside that i've also used PHP, JavaScript, SML, Small(now called Pawn), VBScript and probably some other languages i've forgotten for non game purposes.

Some of those languages i might never use again but i don't think learning them was a waste, they all served a purpose at the time i used them and the projects i made with them has taught me alot, in my opinion there are two good ways to start:
1) Use whichever language you're most familiar with allready and get to work.
2) Grab a good engine and use whichever language it supports. Personally i just love Unity, despite learning a new language at the same time my productivity went up dramatically with it allowing me to add features, increase the overall quality and still reduce development time. I only downloaded it since i was asked to tutor a beginner and didn't think it would be that good. (I was wrong)


#4951377 What Should I learn first in Programming languages and Game engines?

Posted by SimonForsman on 21 June 2012 - 09:29 AM

That is very true. But I, like many other young ones coming it to the world of game development seek help and guidance so we don't end up in a dead end job making the next My little pony game.


There is nothing wrong with making my little pony games. If you get a job making my little pony games you've succeeded extremely well and could most likely move on to a job at any small to mid sized studio quite easily if you feel like it.


#4950714 Supporting 100000 objects in box2d

Posted by SimonForsman on 19 June 2012 - 02:25 PM

Is box2d scalable to 100000 characters? The problem with the engines out there including box2d is that they run a loop and in each loop check for collisions between objects. but if instead of checking for collision on each object in each loop if we calculate when the next collision for an object occurs using equations of motion then i think it will be the most efficient.


it really depends on what a character is, if it is just a box that you do collision detection on and nothing else then yes, Box2D should handle 100k of those unless you keep them all very close to eachother (But in that case you really don't need Box2D since detecting collisions between boxes is trivial), if you start adding in forces and actually use Box2D for what its meant for then it will most likely be far too slow for a game and there is no way around this, proper physics for 100k entities isn't really reasonable on todays hardware (Today this is solved by not doing any physic simulation at all for resting objects (objects tend to be put in a resting state if they havn't moved noticably for a few updates and are woken up again if a new force is applied to them or if the object they're resting against moves, this however doesn't work with characters as they tend to be constantly moving)




PARTNERS