Jump to content

  • Log In with Google      Sign In   
  • Create Account

longshorts

Member Since 22 Feb 2012
Offline Last Active Aug 30 2014 02:32 PM

Topics I've Started

Stuck in a rut, need some advice!

30 July 2014 - 04:55 AM

Hi forum, I've spent a lot of time here reading FAQs and old threads, but still cannot seem to find an answer to my current dilema. I am a programmer, looking to take my skills into the gaming industry. I graduated with a Masters in Software Engineering in 2012, and a BSc in Computer Science in 2009. The town I work in has very little programming opportunities, and I currently work as a retail consultant in a phone shop.

 

My current occupation I know is odd, its a job to pay the bills which Ive been stuck in for several reasons (mostly due to refusing to travel long distances, which I realise is crippling me). That aside, I've been stuck to not applying for game industry jobs even if I find some available. Why? Take for example a position as a Server Application Engineer. They require the applicant to know SQL, PHP and Node.js. Brilliant, I know SQL and PHP, but I have never touched Node.js in my life. I suddenly feel Ive fallen short of the job's requirements, and dont apply for fear of wasting the employer's time.

 

So my first question is, how often do people get into jobs where they are hitting around half of the position's requirements? The few that I have replied for I tend to not get a reply. But as a programmer, and with so many different languages out there, I find it very difficult to hit 100% of an employer's requirements.

 

My next question is, what path should I take towards hitting these requirements to break into the industry? I currently have a few options.

  1. Do a Masters in Game Development. I'm extreemly reluctant to do this, because I feel having three degrees is overkill. I do realise however it would alow me to network well with other people in gaming and teach me some good specialist skills.
  2. Continue building my portfolio. I enjoy doing this, but don't think its giving me the necessary skills. I'm currently working on a strategy/survival android game which is built in Java with LibGDX, and I would like to finish the project. But hardly any employers seem to be looking for Java game developers, so perhaps I should make better use of my time?
  3. Widen my skillset. Probably the hardest path as I would have to self motivate myself with only the small amount of time available to learn technology like Node.js; something I feel nessesary to meet the requirements for a job, but other than that have little interest in knowing.

All of these paths I know are benificial to break into the industry, I'm just looking for the best place to focus my spare time at the moment. I seem to find so few graduate jobs available in the gaming industry, so it seems I need to work that much harder in order to compete with experienced game developers. Any advice is appreciated, and thanks in advance :)

 

 


Efficient Line of Sight Algorithm

12 April 2012 - 02:02 PM

I am currently trying to devise a good algorithm to test if point A is in line of sight of point B. It is for use in a 2D Tank game I am developing in C++ using SFML. Here is a video showing how my algorithm is currently functioning:

http://www.youtube.com/watch?v=Qwv_c1Oc78w

The problem I am trying to solve is that I want many (30+) enemies to track the player's location and react accordingly when the player is in line of sight (for example, fire at the player). Therefore the alorithm needs to be quite efficent. Currently what I am doing is making a sprite at the enemy's location, then fire it towards the player's location. As the sprite moves, it samples it's current location to check if it has either collided with an obsticle (where the method returns false) or it's target (returning true). In the video, the points at which the sprite is sampling is represented by yellow dots.

I am wanting to then ask two questions: is there a more efficient way of working out line of sight? Also, if someone could check my maths that would be extreemly helpful. The tracers dont seem to hit the player's center always so I know Im calculating something wrong.

Thanks for any help you can give, Im probably getting into stuff way too complex for me. This is in fact my first game and first C++ program. Yet I still need to go on to figure out how to do A* Jump point search! Argh!

The code for working out LOS is below:

#include "stdafx.h"
#include "Pathfinder.h"
#include "Game.h"

#define PI 3.14159265

//Returns true if target is in line of sight
bool Pathfinder::LineOfSight(float startx, float starty, float endx, float endy)
{
	//Load tracer image
	if(!_isLoaded)
		Load("images/tracer.png");
	_tracer.SetPosition(startx, starty);

	//Get the angle between the start and end point
	float angle = GetAngle(startx, starty, endx, endy);

	//Calculate movement in x y coords depending on rotation
	float xvel = 1;
	float yvel = 1;
	if(angle >= 0 && angle < 90)	//q1
	{
		xvel = (angle/90);
		yvel = 1 - (angle/90);
	}
	if(angle >= 90 && angle < 180)	//q2
	{
		xvel = 1 - ((angle - 90)/90);
		yvel = 0 - ((angle - 90)/90);
	}
	else if(angle >= 180 && angle < 270) //q3
	{
		xvel = 0 - ((angle - 180)/90);
		yvel = ((angle - 180)/90) - 1;
	}
	else if (angle >= 270 && angle < 360) //q4
	{
		xvel = ((angle - 270)/90) - 1;
		yvel = ((angle - 270)/90);
	}

	float increment = 15;	//Distance traveled before sampling
	float error = 10;		//Max error when targeting end point
	
	//While tracer is not at goal
	while(((_tracer.GetPosition().x < endx - error) ||
		(_tracer.GetPosition().x > endx + error)) &&
		((_tracer.GetPosition().y < endy - error) ||
		(_tracer.GetPosition().y > endy + error)))
	{
		
		//Move the tracer to next sampling point
		_tracer.Move(xvel*(increment), yvel*(increment));
		if(_isLoaded)	//Draw tracer at this location
			Game::GetWindow().Draw(_tracer);

		//Check if the tracer collides with a impassable
		//object on the tilemap
		if(Game::GetGOM().GetTileMap()->Collision(_tracer.GetPosition()))
		{
			return false;
		}
	}

	return true;

}

//Get angle between two points
float Pathfinder::GetAngle(float startx, float starty, float endx, float endy)
{
	float mX = endx;
	float mY = endy;

	mX = mX - startx;
	mY = mY - starty;
	
	return atan2(-mY,mX) * (180 / PI) + 90;
}

void Pathfinder::Load(std::string filename)
{
  if(_image.LoadFromFile(filename) == false)
  {
	_filename = "";
	_isLoaded = false;
  }
  else
  {
	_filename = filename;
	_tracer.SetImage(_image);
	_isLoaded = true;
  }
}

sf::Sprite Pathfinder::_tracer;
sf::Image Pathfinder::_image;
std::string Pathfinder::_filename;
bool Pathfinder::_isLoaded = false;

Choosing a dissertation topic...

22 February 2012 - 11:24 AM

Hey there forum,

I am currently studying a masters degree in Software Engineering, and I am struggling at the moment to decide what dissertation I should do. As I do not have a degree directly relevant to Games Programming (what I would like to do in the future) I wanted to pick a dissertation which would give me a good skill set for the gaming industry and would also look good on my CV to potential employers. I am currently deciding between two projects:

1) Develop a tank strategy game in C++. I currently have very little experience programming in C++ (only one year experience in C) so I believe this could be quite beneficial in order to learn the language that pretty much every games company wants you to program in. I of course would love to program in Java instead for the likes of an Android game as I have nearly five years of experience programming in Java, but it just doesn't seem to be in demand. The problem I see with this project is that it doesn't seem to be very interesting as a dissertation.

2) Develop a puzzle game in Java for Android distributed for free over the Android Market. The puzzle game would monitor how quickly a user can resize, drag and rotate objects around the touchscreen while attempting to solve the puzzles the game presents. The resultant data would then be sent back to a database over a wifi connection from the android device for analysis. The idea is that this data could be studied in order to figure out what a wide range of users find easy and quick to do on a touch screen, possibly resulting in a model which can be used in the future to influence good UI design. This project seems highly interesting, but my fear is that it may not develop valuable skills required in the real world for game development.

So I ask those who are already in the gaming industry; which should I choose? What would be more valuable for me and my potential future as a game developer?

PARTNERS