The Student Room Group

Has anyone made an android game?

I have an idea of making an android game. I made "how it will look" images in photoshop and I guess it can be a cool game. I have no idea how and where to start. Target platform: Android

Have you ever made a game? Can you tell me where to learn the basics from and other necessary details?
How's your understanding of Java, Android programming and more general programming skills? The first thing to do is pick up the core Programming skills using Java, then get the foundations of Android Studio. It will take a while because there's a fair bit to learn about.

If you're completely new to Java and/or Android Studio then I'd recommend starting with these from Google and Udacity to learn Java and learn all the tools and libraries for creating android apps:


It's vital to make sure you're comfortable with all the tools and how to build apps with the device because you need that technical background in order to be able to do more interesting things. You'll need to understand how to handle touch/input events, how to create a 'game loop' in a thread, how to draw graphics on the display, how to calculate updates each time the game loop repeats, how to create a 'data model' of the game in memory which affects the game logic each time the loop repeats, etc.


For example - a classic snake game usually consists of 4 things:

Data in memory about the "pieces" of the snake (from head to tail), the locations of the food, locations of the walls, direction of the snake travelling,

A loop which constantly "ticks", updates the snake's position, checks whether the snake has collided with anything, checks whether it needs to grow.

An 'input' event handler which figures out whether the user has pressed a button to change the direction of the snake

A 'draw' function which runs at each tick, using the in-memory data to update the display for the snake and food positions.



Overall, game programming is exactly the same as programming pretty much anything else - start out with simple stuff (A snake game is probably a big leap -- even though you can do it with only a few hundred lines of code, there's a lot of interactions and moving parts). You might start out with a basic number guessing game or something much simpler and keep on chipping away at the basics until you feel comfortable with the core concepts.
(edited 5 years ago)
no noone has it is imposible, ...... dumgass
@winterscoming


Seeing as you're a programmer I'd like to ask a few questions:

1) I'm currently learning HTML & CSS and want to eventually make a game in the future one day - will theses 2 basic languages help me achieve my dream?

2) Whats the difference between Cyber security, Game developing and Software engineering when it comes to salary pay? I want the best salary that i can get for a worthwhile degree when living in the UK.

3) How long should i aspect to take to understand these languages before moving on to more complex languages like Python, Java and C++?
Original post by Jang Gwangnam

1) I'm currently learning HTML & CSS and want to eventually make a game in the future one day - will theses 2 basic languages help me achieve my dream?

Those are useful to know as general skills but realistically won't get you very far on its own. HTML and CSS aren't 'programming' languages because you can't use them computationally or algorithmically. (i.e. you cannot use HTML or CSS to build an algorithm or to solve computational 'logic' problems).

Their purpose of those are strictly limited to controlling the layout and appearance of web pages; or doing things within a browser such as letting a user type data into a text input or click a button, or maybe creating animations - you can't do much beyond that. HTML and CSS are deliberately simple since they'd never been intended to be used as programming languages.

Nearly all games are computational by their very nature so you need a 'proper' programming language. At the core of nearly every game there's always a whole bunch of logic (i.e. 'decision making' where there's some kind of input or data which may cause a program to do different things). For example, a snake game deciding which direction the snake should move in after a user presses a button, or repeatedly moving the position of a snake's body every few hundred milliseconds.

You could use JavaScript (totally different to Java despite the name) in a web browser alongside HTML and CSS to create web browser games, but realistically the main reason for learning all that stuff is web development; there are lots of other languages/technologies far more suited to game developers with much better tools and support. You probably won't find any triple-A game titles written in JavaScript with HTML any time soon - you'd mostly end up writing quirky "facebook" games instead.

Original post by Jang Gwangnam

2) Whats the difference between Cyber security, Game developing and Software engineering when it comes to salary pay? I want the best salary that i can get for a worthwhile degree when living in the UK.

Are you looking at a general Computer Science degree? That would keep your options open assuming you graduate with a good degree classification.

You can potentially achieve a high salary in all 3 areas. Once you've got the skills and experience under your belt, a senior engineer/analyst who keeps their skills up-to-date can reasonably find themselves in a technical leadership position for £70k-£80k outside of London. But typically Game development is by far the most competitive field, therefore the hardest to reach a high salary - your success depends upon being able to deliver successful games which people want to play and pay for, which isn't an easy thing to do.

Cyber security is all about risk analysis, understanding security and being able to identify threats - at the moment there's a shortage of people who understand risk and security as well as having strong technical and analytical skills. There's intense pressure on a lot of industries to protect themselves and their clients/customers against criminals, so this is one of the best areas to get into right now, and will be for many years to come because security tends to be an 'arms race' - naturally that means it's a career choice where you need to be part of that race, so it's fairly intense but skill and experience are well rewarded.

Software Engineering is also a rapid growth area because there is (and has been for a long time) a shortage of competent software engineers who have the right skills. It's fairly easy to stagnate in Software engineering while staying on a respectable mid-level salary after 10 years (e.g. £35k-40k). Keeping up with Software engineering takes the same amount of effort as keeping up with Cyber security; people who excel at their job and don't allow their skills to stagnate can earn a similar salary. (By the way, security is a useful theme here too because software engineers really should understand how to write secure software which doesn't leave their users open to attack or compromise their data)

To summarise - your degree may affect your initial starting salary immediately after you graduate (e.g. being accepted into competitive graduate schemes), but after 5-10 years it will be all about your efforts to progress and how much effort you put in to being valuable to your employer. Whatever path you choose, success involves constant improvement and learning throughout your career; you're much more likely to be successful if you're doing something that you're enthusiastic and passionate about.

Original post by Jang Gwangnam

3) How long should i aspect to take to understand these languages before moving on to more complex languages like Python, Java and C++?

You really don't need either HTML or CSS to pick up one of those general purpose languages - it's a completely different skillset really. You can jump into one of those languages straight away.

If game design and game programming interests you specifically, then C# might be a good place to begin so that you can get to grips with Unity3D (C# is very similar to Java). There's some really good material from University of Colorado about designing/developing games with Unity3D and C# on Coursera (it's free and no need for previous experience in programming for that one).
(edited 5 years ago)
Original post by winterscoming
Those are useful to know as general skills but realistically won't get you very far on its own. HTML and CSS aren't 'programming' languages because you can't use them computationally or algorithmically. (i.e. you cannot use HTML or CSS to build an algorithm or to solve computational 'logic' problems).

Their purpose of those are strictly limited to controlling the layout and appearance of web pages; or doing things within a browser such as letting a user type data into a text input or click a button, or maybe creating animations - you can't do much beyond that. HTML and CSS are deliberately simple since they'd never been intended to be used as programming languages.

Nearly all games are computational by their very nature so you need a 'proper' programming language. At the core of nearly every game there's always a whole bunch of logic (i.e. 'decision making' where there's some kind of input or data which may cause a program to do different things). For example, a snake game deciding which direction the snake should move in after a user presses a button, or repeatedly moving the position of a snake's body every few hundred milliseconds.

You could use JavaScript (totally different to Java despite the name) in a web browser alongside HTML and CSS to create web browser games, but realistically the main reason for learning all that stuff is web development; there are lots of other languages/technologies far more suited to game developers with much better tools and support. You probably won't find any triple-A game titles written in JavaScript with HTML any time soon - you'd mostly end up writing quirky "facebook" games instead.


Are you looking at a general Computer Science degree? That would keep your options open assuming you graduate with a good degree classification.

You can potentially achieve a high salary in all 3 areas. Once you've got the skills and experience under your belt, a senior engineer/analyst who keeps their skills up-to-date can reasonably find themselves in a technical leadership position for £70k-£80k outside of London. But typically Game development is by far the most competitive field, therefore the hardest to reach a high salary - your success depends upon being able to deliver successful games which people want to play and pay for, which isn't an easy thing to do.

Cyber security is all about risk analysis, understanding security and being able to identify threats - at the moment there's a shortage of people who understand risk and security as well as having strong technical and analytical skills. There's intense pressure on a lot of industries to protect themselves and their clients/customers against criminals, so this is one of the best areas to get into right now, and will be for many years to come because security tends to be an 'arms race' - naturally that means it's a career choice where you need to be part of that race, so it's fairly intense but skill and experience are well rewarded.

Software Engineering is also a rapid growth area because there is (and has been for a long time) a shortage of competent software engineers who have the right skills. It's fairly easy to stagnate in Software engineering while staying on a respectable mid-level salary after 10 years (e.g. £35k-40k). Keeping up with Software engineering takes the same amount of effort as keeping up with Cyber security; people who excel at their job and don't allow their skills to stagnate can earn a similar salary. (By the way, security is a useful theme here too because software engineers really should understand how to write secure software which doesn't leave their users open to attack or compromise their data)

To summarise - your degree may affect your initial starting salary immediately after you graduate (e.g. being accepted into competitive graduate schemes), but after 5-10 years it will be all about your efforts to progress and how much effort you put in to being valuable to your employer. Whatever path you choose, success involves constant improvement and learning throughout your career; you're much more likely to be successful if you're doing something that you're enthusiastic and passionate about.


You really don't need either HTML or CSS to pick up one of those general purpose languages - it's a completely different skillset really. You can jump into one of those languages straight away.

If game design and game programming interests you specifically, then C# might be a good place to begin so that you can get to grips with Unity3D (C# is very similar to Java). There's some really good material from University of Colorado about designing/developing games with Unity3D and C# on Coursera (it's free and no need for previous experience in programming for that one).


Bro/Sis, there are no amount of words I can use to describe my sincere thanks for this detailed reply - I really really really appreciate it.

If I could give you more likes, I would definitely give you more than a 1000. I'd also like to go ahead and ask if i could continue to contact you for more advice.
Original post by winterscoming
How's your understanding of Java, Android programming and more general programming skills? The first thing to do is pick up the core Programming skills using Java, then get the foundations of Android Studio. It will take a while because there's a fair bit to learn about.

If you're completely new to Java and/or Android Studio then I'd recommend starting with these from Google and Udacity to learn Java and learn all the tools and libraries for creating android apps:


It's vital to make sure you're comfortable with all the tools and how to build apps with the device because you need that technical background in order to be able to do more interesting things. You'll need to understand how to handle touch/input events, how to create a 'game loop' in a thread, how to draw graphics on the display, how to calculate updates each time the game loop repeats, how to create a 'data model' of the game in memory which affects the game logic each time the loop repeats, etc.


For example - a classic snake game usually consists of 4 things:

Data in memory about the "pieces" of the snake (from head to tail), the locations of the food, locations of the walls, direction of the snake travelling,

A loop which constantly "ticks", updates the snake's position, checks whether the snake has collided with anything, checks whether it needs to grow.

An 'input' event handler which figures out whether the user has pressed a button to change the direction of the snake

A 'draw' function which runs at each tick, using the in-memory data to update the display for the snake and food positions.



Overall, game programming is exactly the same as programming pretty much anything else - start out with simple stuff (A snake game is probably a big leap -- even though you can do it with only a few hundred lines of code, there's a lot of interactions and moving parts). You might start out with a basic number guessing game or something much simpler and keep on chipping away at the basics until you feel comfortable with the core concepts.


rep on recharge
Original post by Jang Gwangnam
Bro/Sis, there are no amount of words I can use to describe my sincere thanks for this detailed reply - I really really really appreciate it.

If I could give you more likes, I would definitely give you more than a 1000. I'd also like to go ahead and ask if i could continue to contact you for more advice.


Feel free to fire away any questions, but I usually lurk around the CompSci forum anyway unless I'm away in the week so if you post anything on the forum I'll probably see it - and I'm sure there are other people here who can answer too :smile:

Quick Reply

Latest

Trending

Trending