UKC

programming

New Topic
This topic has been archived, and won't accept reply postings.
 uppersharpnose 12 Nov 2012
Hello,
I'am wondering what would be the first step in becoming a games
programmer/designer. I have done no tests, as in A levels , GCSE's or been to Uni.

I know the basics of Html a tiny amount of JavaScript and im learning a small bit of PHP(a novice really).

Gratz

Seraphimian
 Milesy 12 Nov 2012
You mean in your spare time or as a job? If for your spare time then just pick a programming language and read some online articles/books.

Java is a good choice I think for learning. (I am a a Java programmer though so biased)

http://www.gamedev.net/page/resources/_/technical/game-programming/java-gam...

You never know you could be good at it, get into iPhone/iPad games development, make an award winning game, and make a million, or you could go to college or uni and do some courses, and a get a regular job as a games developer.
 elsewhere 12 Nov 2012
In reply to uppersharpnose:
It doesn't really matter which language you use - you can learn good habits or bad habits in any language, so stick with JavaScript because you can write games in JavaScript/HTML5.

http://www.codecademy.com has a good reputation.
KevinD 12 Nov 2012
In reply to uppersharpnose:

Not a sector I am directly involved in but a few random comments.
What sort of games you wanted to build. Full blown console/PC games or mobile gaming?

As someone else has mentioned JS/html games are a not bad option. Easy to get the tools and can start building basic games quickly.
Flash is dying off now so not the best choice.
Android using Java or iPhone with objective C. Of the two both have pros and cons, if you dont have a mac though Android would be the winner.
Another option would be to look at PC mods if you are into PC gaming eg for skyrim etc. Depending on the system chosen some can be started with relatively low knowledge, others need decent amount of programming first.
needvert 12 Nov 2012
In reply to uppersharpnose:

I generally advocate python. Hello world on python is a bit easier to understand than in java...But anything will do. Just don't waste your time with proprietary or platform specific languages.

C is a bitch, but very good to know. Being able to write x64 assembly is pretty handy at times too.
 Ramblin dave 12 Nov 2012
In reply to needvert: I'm a massive Python fan, although I didn't think it was specifically useful for writing games in - something like Java would probably be more useful there.

But my general advice for people who want to get into programming in order to write a particular sort of software is that you really have to enjoy coding and computers generally - liking games (or whatever) isn't going to pull you through if you have no aptitude or affinity for programming in general. So there are a lot of worse things to do than learn a comparatively easy general purpose language like Python to get the basic ideas of coding and then move to something like Java as and when...

Javascript / html would be another workable combination, although developing games in javascript always seems like the same sort of career plan as forming a band - you might get lucky and come up with the next Angry Birds or you might plug away for years getting nowhere...
In reply to Milesy:

This is for my job and I love doing it.
I want to be able to be with teams designing the next big MMO's.

Thanks for all comments.

Seraphimian
 Milesy 13 Nov 2012
In reply to uppersharpnose:
> (In reply to Milesy)
>
> This is for my job and I love doing it.
> I want to be able to be with teams designing the next big MMO's.

If you want to be involved in those sorts of big console games there is a good chance you will need to learn a lot of technical stuff such as graphics, animations, 3D modelling. You will need to learn about physics programming - gravity, momentum, deflections. There will likely be a large mathematics component in all of this. You will also likely need to learn low level programming as said such as C, C++ and the ASM. ASM is an absolute ball buster and I am glad I don't need to use it in my programming stream.

To be involved in that sort of thing I think you will probably need to get yourself a degree I am afraid. As a mature student you could still make a good go at it for a career move.
 Ava Adore 13 Nov 2012
In reply to uppersharpnose:

I worked briefly at De Montfort University and they actually did a degree course. Which, I gather, was an excellent one. They're in Leicester.
Wonko The Sane 13 Nov 2012
In reply to uppersharpnose: Question here.

It's been near 20 years since I did any programming (C, C++, machine code, but all quite basic stuff)

Has the speed of machines now changed the need for low level programming much?

 Milesy 13 Nov 2012
My bro in law did computer games programming at uni just a few years ago and low level programming was still a big part of it. OpenGL programming in C++. If you want to be developing native PS3, XBOX, Windows games you need to get into the nitty gritty still.
 67hours 13 Nov 2012
In reply to uppersharpnose: Try this: http://natureofcode.com/book/
 Ramblin dave 13 Nov 2012
In reply to Wonko The Sane:
I think it depends on the application - there's no need for everything to be optimised at low level, but some stuff does still need it.

I think there's been a gradual change in the industry that has moved people away from low level stuff as well: I've not been in software for that long, but my guess would be that we've probably got better at
* targeting optimisation (so not spending weeks optimising away one of the 7 miliseconds that the output formatter takes to present the results if the database query that produces the result takes three seconds...),
* modularising, so really performance critical stuff can be kept in one place for one team to worry about while everyone else writes nice clear high level code, and
* taking into account total costs, so we recognise when it's cheaper in the long run to just throw more hardware than to optimise code to the point that it's barely readable at a cost of loads of effort now and loads more effort in the future when someone has to make changes to it and has to spend three weeks trying to understand a mess of tightly optimised assembler before they can get started...
Wonko The Sane 13 Nov 2012
In reply to Ramblin dave:

Interesting, and I thought it might be the case.
I think choice of hardware back when I was learning was much more limited, but still very important, particularly given the cost of hardware was higher.

As I said though, the stuff I did was not at all complex. Just enough to get a good basic understanding of the subject.
 CurlyStevo 13 Nov 2012
In reply to uppersharpnose:
How old are you?
 CurlyStevo 13 Nov 2012
In reply to uppersharpnose:
It is possible to get in to large console games with no qualifications but you would need some very very good demos showing your work. To be honest I think 98% or more games programmers have a degree in something relevent. Although I know one very accomplished programmer with no degree (who has worked in games previously for many years). I would always advise people wanting to work in games to get a degree.

Nearly all large console and PC games are written nearly entirely in C++ and people tend to specialise in specific areas (AI, Gameplay, UI, Physics, Graphics / Hardware, Tools etc). A typical AAA console game has a team of 25+ programmers within a team of 75+ developers and takes 2.5+ years to make!

There is very little need to know assembler, it's only a very small percentage of games programmers actually professionaly write assembler now a days.

For most disciplines you need to have some 1st year degree level maths knowledge. You will need to be able to use Vectors and Matrices in 3D space, as well has having a good understanding of trigonometry to A level standard.

Smart phone and other handheld device based games can be much simpler to make, with much smaller teams. The languages you use for these depend to some extent on the device.
 wintertree 13 Nov 2012
In reply to Wonko The Sane:

> Has the speed of machines now changed the need for low level programming much?

I would say no - as performance increases, tasks that needed low level languages can now be accomplished in higher level languages, and indeed HLLs have much more widespread use these days.

However, the increasing performance of machines open up ever new and more complex tasks that can be best addressed with low level languages - they're as important as ever and and there are ever better tools for using them and deploying them. Certainly a lot of the people I know in science write C/C++ for performance critical sections of their projects, and is finding new uses with things like the Arduino boards etc.

Horses for courses really.

 Ramblin dave 13 Nov 2012
In reply to Wonko The Sane:
> (In reply to Ramblin dave)
>
> Interesting, and I thought it might be the case.

I'm willing to be corrected on any or all of that by someone who's actually been in the industry for 20+ years, by the way... it's mostly extrapolation from what things are like now vs a few stories about what things were like Back In The Old Days...
 CurlyStevo 13 Nov 2012
In reply to Ramblin dave:
> (In reply to Wonko The Sane)
> [...]
>
> I'm willing to be corrected on any or all of that by someone who's actually been in the industry for 20+ years, by the way... it's mostly extrapolation from what things are like now vs a few stories about what things were like Back In The Old Days...

Yeah I think I am the only person on this thread so far that satisfies that criteria.....
Wonko The Sane 13 Nov 2012
In reply to Ramblin dave:
> (In reply to Wonko The Sane)
> [...]
>
> I'm willing to be corrected on any or all of that by someone who's actually been in the industry for 20+ years, by the way... it's mostly extrapolation from what things are like now vs a few stories about what things were like Back In The Old Days...

Dave,
I'm not in the industry. My programming stopped at the end of my degree and I went back to construction.
 EeeByGum 13 Nov 2012
In reply to CurlyStevo:
> (In reply to uppersharpnose)
> It is possible to get in to large console games with no qualifications but you would need some very very good demos showing your work.

Agreed. We have just hired someone with no qualifications, but their online presence on http://www.stackoverflow.com left us in no doubt of his ability.
 CurlyStevo 13 Nov 2012
In reply to Ramblin dave:
As mentioned nearly all the code for large console and PC games is written in C++. We tend to write it in such a way that it is as easy as possible to understand and maintain, however certain areas are performance critical from conception and must be optimised from the off.

Optimisation is nearly allways done in C++ too, we do this by changing the algorithm or code in some way to be more optimal. This tends to make the code less readable and maintainable.
 Milesy 13 Nov 2012
In reply to CurlyStevo:

I might only be 31 but I have been programming since 1994 still for what it is worth. I can still program in Basic, Cobol, Fortran, Delphi, Pascal , Assembly, C, C++, Visual Basic, Visual C++, C#, and Java. I now work mainly as a Java developer.
 CurlyStevo 13 Nov 2012
In reply to Milesy:
Sorry I meant I am probably the only poster on this thread with 20+ years games industry experience, it wasn't meant to be a put down honest
 Coel Hellier 13 Nov 2012
In reply to CurlyStevo:

> It is possible to get in to large console games with no qualifications but you would need some
> very very good demos showing your work.

Don't worry, if you check his age on his profile you'll see he has plenty of time to acquire some qualifications.
 CurlyStevo 13 Nov 2012
In reply to Coel Hellier:
yeah I noticed that but I asked his age just to confirm.
 Milesy 13 Nov 2012
Upon calculation it was 1993 I started programming. Primary 7 at 12 years old.

uppersharpnose. You are a good age and a long time ahead of you. If you enjoy it just now and can get good at it you should have a good future ahead of you. I knew when I was 12 I wanted to be a programmer and 19 years later I am doing just that. Good on you.






 CurlyStevo 13 Nov 2012
In reply to Milesy:
Yeah I was around the same age when I started programming (I think it was quite popular for my age group to start programming then after all you could buy books with game programs in that you had to type in by hand!!!), I also knew I wanted to be a programmer from a young age and wanted to work in games.
 mattrm 13 Nov 2012
In reply to uppersharpnose:

I'm doing this:

https://www.coursera.org/course/interactivepython

It's (basic) game programming in Python.
 Milesy 13 Nov 2012
In reply to CurlyStevo:

I started on the BASIC and Assembly programs that were in the back of the magazines. I created my own RP game at a young age.

You get to the forest and there are two paths. Which do you take. Left or right?

I used to create some pretty cool levels on Magic Mushrooms and Chuckie Egg on the BBC Micro as well haha.
 Ramblin dave 13 Nov 2012
In reply to Coel Hellier:
> (In reply to CurlyStevo)
>
> [...]
>
> Don't worry, if you check his age on his profile you'll see he has plenty of time to acquire some qualifications.

Ah, cool. That makes the advice simpler, then!

In the long term, like other people have said, you'll probably want to do a computer science degree or something similar. You'll probably also want to learn C++, although it's entirely possible that the landscape will have altered completely in the next decade and that'll no longer be the case.

In the short term, learning a language or two and finding some projects to work at that interest you is a good plan, but there's no point trying to optimise your CV or plan your career trajectory at this point. Just try stuff out and see what you enjoy!

Finding an existing open source project that you can try to get your head around and tinker with might be a plan. Alternatively starting with javascript and writing browser based games would be a good way to get stuff up and running quickly, although you'll probably find yourself wanting to learn a more general purpose language at some point to try other stuff out with...
 Tim_C7 13 Nov 2012
In reply to uppersharpnose:

I'm an engineer who programs (i.e. I write awful but functional code) and I've found Python to be friendly, not a bad place to start. C++ sprang to kind reading the OP and many more knowledgeable guys have chipped in with the same.

Cool to see peoples interested in programming from early on.
In reply to Milesy:
Thanks,
I would just like to know what I should take for GCSE (for programming).
I love mathematics and i am at around a GCSE C at the moment.

Gratz

Seraphimian
 Milesy 13 Nov 2012
In reply to uppersharpnose:
> I would just like to know what I should take for GCSE (for programming).
> I love mathematics and i am at around a GCSE C at the moment.

3 small problems.

1. I am in Scotland so we don't have GCSEs
2. I left school 13 years ago lol
3. I failed everything at School.

Being good at programming means being good at computing in general. So learning about networking, data communications, operating systems, relational databases, web design, maths for computing.

I say maths for computing because this is likely what you will be taught in computing class rather than maths class. Stuff such as binary and hexidecimal arithmetic.

I wouldn't worry too much about study paths too much just now. Just make sure you get computing in there and you will likely get introduced to a broad aspect of IT and computing concepts.
 itsThere 13 Nov 2012
In reply to uppersharpnose: what choices do you have to pick from. do you have any courses that are relevent to programming. if not you may get to do it for A levels. as you have started now this wont be hard for you. however it is useful to do it as it shows what you can do and there may be someting you have missed. as for gcse take what is interesting for you. i dont have 20 years programming experience, or anything close. still at uni.
 CurlyStevo 13 Nov 2012
In reply to uppersharpnose:
Games dev obviously has quite unique demands on a programmer. An interest in maths is pretty much essential and youll definately need maths gcse and a level along with computer science. I would also suggest physics gcse wouldnt be a bad idea as it will get you started on forces, velocity and motion topics that are used in games as well as giving your more knowledge about the electrical components of computers.

Its a hard industry to get into but if its your dream and you work hard its possible!
 marsbar 13 Nov 2012
In reply to uppersharpnose: The good news is that GCSE computing is being offered now (not ICT which is more about using programs, not writing them) so maybe you will be able to do that if you have a good teacher.

Keep working well at maths, and spend time exploring things that interest you, try out some different programming languages, maybe try doing the same task in different languages so you can see what works well and how different languages work. Think about how you structure your programs to keep things neat.

Good luck.
 Ramblin dave 13 Nov 2012
In reply to Milesy:
> (In reply to uppersharpnose)

> I wouldn't worry too much about study paths too much just now.

Agree with this.

Certainly when I was a youth (which tbf was about as long ago as Milesy) most universities cared a lot more about how well you'd done at maths and physics than they did about what specific courses you'd done in IT or computing, because the stuff that you'd learn about computers at school was less than you'd pick up of your own accord if you were keen, and probably less than they could teach you in the first couple of weeks of undergrad. Whereas maths and physics use fairly similar sorts of intelligence to computer science as well as having some direct applications, and are a pretty good indicator of how you'll get on with programming.

On the other hand, hacking around with stuff of your own accord is definitely something worth doing.
In reply to itsThere:
I love maths so i'll do that and 3 science's.And all the general stuff you have to do.
Any other suggestions on what to take.

Gratz

Seraphimian
michaelc 14 Nov 2012
In reply to uppersharpnose:

Stick with maths, and as others said Physics is a good one to add. If you're really dedicated for games stuff, definitely do Physics. Can you also take Applied Maths and even a subject like technical graphics (I'm not from UK so don't know what the subjects are called in your system)?

Beyond that, I'd suggest getting into Linux and learning your way around that too. You get tonnes of programming tools included on a typical Linux machine and you can learn a lot there about networking, filesystems, even device drivers if you put your mind to it. From a learning point of view, don't stick with Ubuntu, but go and get Debian or even Slackware/Arch or another big but "hardcore" distribution. Ideally you want an old machine that you can keep stripping and rebuilding (so that you're not completely blocked when your install of linux-from-source takes longer than expected!).

You could find one of the open source games that you think you could enjoy contributing to. Start lurking on their mailing lists, reading up on programming and reading their source code. Eventually contribute some bug-fixes, even features. You'll learn a lot if you do that, and I have to say that the standard of free games has improved a lot (especially as ID has opensourced some of their older 3D engines). If you did that in earnest, get a bit of a reputation, it will be like gold whenever you start to look for jobs (see earlier comment about hiring from Stackoverflow)

And really, what you're trying to do now is get in your 10k hours to become really proficient. Not much point focussing too much on what technology to get into, if you go to college it could be 10 years until you are working a job. Things change, especially tech.If you do really well at this and get very lucky indeed, have a bright idea and implement it well, you might not even need to go to college (but still go for the giggles!, better yet, you might not need to get a job!).

However, throughout your career it's a good bet there'll still be a lot of Unix, and the basic principles of programming will be there too.

 CurlyStevo 14 Nov 2012
In reply to michaelc:
Do you actually work in computer games?

I don't know any Linux and have worked on multiple AAA PC/console games.
 CurlyStevo 14 Nov 2012
In reply to Ramblin dave:
Computer Games is quite different to standard computer programming. You pretty much won't get empolyed unless you are a generalist (which will requrie the need for fairly advanced maths to atleast A level) and have a very broad range of knowledge of games engines or a specialist (Graphics, Ai, Physics, Tools, UI, Networking, Gameplay etc). You can't become a specialist without either the right education and / or a lot of home dedication to gain the same knowledge. At the current time and for the last 15+ years if you want to work on the large console and/or PC titles an advanced knowledge of C/C++ is also a requirement.

Computer games programming for AAA games titles is highly competitive (much more so than most normal programming), it's hard to get in to, companies will go months interviewing programmers for one role without finding someone they like! But if it's your dream it is achievable with hard work and persistence.
michaelc 14 Nov 2012
In reply to CurlyStevo:
No I don't, didn't say I do. I did work previously in high performance computing, highly parallel cluster computing, and simulation development. Also did some sysadmin work.

In any case, it's definitely not a pre-requisite and so doesn't surprise me that people (like yourself) work in the industry and have never used Linux. However, if you want to learn a lot, and don't have much money, I think Linux (or BSD, or any other open source operating system) is a great place to start out. If you start with a rawer distro, you'll become more aware of networking etc., than you would otherwise be. Also, opportunities to look lower level at device driver level etc.,
Most importantly, the community is good and knowledgeable once you're away from the more main-stream distros. You can go open-source without being on Linux (help out on a project, etc.,) but it's not as easy I would say.

Now, if someone was 17/18 and wants to get into game devel, then sure, they should be more single-track, find a college course, etc., However, for an 11 year old I think a more root-and-branch approach is appropriate, and will lay down some good deep skills.

Just my 2c
 ceri's 14 Nov 2012
In reply to michaelc: I'm a programmer (approx. 10 years in the industry) and occasionally use basic unix/linux/ms-dos commands when installing or upgrading systems, and especially when applying scripts to databases remotely, which in my experience are often not on Windows boxes. I find a basic understanding of how to navigate directories, move files about and edit files very useful.
 CurlyStevo 14 Nov 2012
In reply to michaelc:
I know a fair bit about working with networking (but not so much about the actual libraries, I always work on a level above that) and nothing about device drivers My specialisation is AI / Gameplay.

If the OP has his head set on getting in to games, doing everything to maximise that would help. Personally though I'd tend to take an approach to give me a broad range of skills too as you suggest, just in case he ever wants to change job or doesn't get in to games (which is pretty difficult). OR shock horror decides not to be a programmer.
In reply to michaelc:
So you are saying I should do a range of programming
languages like html, Java, ph,p css, c, c++, c and c#.

Or are there any other languages designed for games.

Gratz

Seraphimian
 wintertree 14 Nov 2012
In reply to uppersharpnose:
> (In reply to michaelc)
> So you are saying I should do a range of programming
> languages like html, Java, ph,p css, c, c++, c and c#.
>
> Or are there any other languages designed for games.

With the exception of CSS and HTML, everything you list Is derived from the same basic concept. Another similar language, often praised for its simplicity, is LUA and this is often used in aspects of gaming.

I would pick on accessible language such as Python (add in pygame for making simple games) and learn about programming in general. Then you can look at extending your new abilities to other languages and game engines etc. learning to program is more important than learning a language; if you know how to program you can use them all common moden languages with little additional effort
KevinD 14 Nov 2012
In reply to uppersharpnose:
> (In reply to michaelc)
> So you are saying I should do a range of programming
> languages like html, Java, ph,p css, c, c++, c and c#.

a range is always best and there tends to be broad "families" of languages which all share similarities (since language designers dont hesitate to borrow bits from others or specifically aim to take one language and "fix" the issues with it by creating a new related language).
Initially though i would concentrate on a couple to get the foundations in place and then start looking at others.
Its somewhat tricky though which one to start with. There are two schools of thought, one start with the more lower level languages to really give solid foundations the other to start with higher ones.
needvert 14 Nov 2012
For what it's worth, don't neglect how hard it is to write in a given language well.

C and even more so C++, certainly take a /very/ long time before you can write anything that isn't crap.
needvert 14 Nov 2012
In reply to needvert:

(I guess my point is, I'd avoid the jack of all trades master of none approach.)
In reply to uppersharpnose:

Thank you everyone for your help.

Gratz

Seraphimian
 CurlyStevo 15 Nov 2012
In reply to uppersharpnose:
I definitely wouldn't start on C or C++ as your first proper (non script) language, not only are they not really high level enough but as they are quite old languages they are now fairly cumbersome and inelegant, also the memory management is a bit of a pig.

If I was you I'd start on some thing like Python or Lua. If you feel up to starting on an object orientated language Python makes sense. Lua isn't really object orientated but is incredibly simple to use and powerful so if your struggling with Python this is maybe a good idea.

In a year or two I'd aim to learn C# if I was you as this is a very popular and powerful language and would give you insights in to other similar languages you will need to learn later on to get in to games.

If I was you I'd set your self some simple projects, here's some ideas:
http://social.msdn.microsoft.com/Forums/en-US/smallbasic/thread/5ab73098-15...
michaelc 15 Nov 2012
In reply to uppersharpnose:

Like others say, don't go crazy learning different languages all at the same time from the get-go. I'd say pick 1 language to start with (not critical which one, might be one you have a good book for, or that a friend knows, or just because you like the style (ruby anyone!)). My favourite would be Python, but Java would be fine too, or C# or Java or Ruby or Javascript or...

Until you get your teeth cut on a project don't be too much of a language slut and "get" that language. Then (maybe in a few months/year) pick another language that complements the first and where you can see a use for it (or e.g. because it's used in a project you'd like to join), and start looking at that too... do another project.

The games developers may be able to tell you if this slide-deck from Tim Sweeney is representative of languages used in (3D) gaming
http://www.cs.princeton.edu/~dpw/popl/06/Tim-POPL.ppt

Other reading (and I'll proselytise shamelessly for Python here):
* Loads of reference material: http://docs.python.org/2/
* Tutorial: http://docs.python.org/2/tutorial/index.html
* A good follow on book to teach some style (free): http://www.diveintopython.net/
* Learn some matrices: http://numpy.scipy.org/
* Try game programming: http://www.pygame.org/news.html
* And another free book on that: http://inventwithpython.com/pygame/chapters/
* Think like a computer scientist: http://www.openbookproject.net/thinkcs/python/english2e/

note there are versions of that last book in other languages too (all free & legal PDFs):
* Java: http://www.greenteapress.com/thinkapjava/
* Python: http://www.greenteapress.com/thinkpython/thinkpython.html
* C++: http://www.greenteapress.com/thinkcpp/index.html
* OCaml: http://www.thinkocaml.com/


All of that is completely free, as is the language itself (interpreter/bytecode compiler, libraries, etc.,). You won't write the next 3D magnum opus in it, but you will learn some skills, and you'll learn the limitations of the language... and then you'll go on and learn some more.

Doesn't have to be Python, lots of other options out there (e.g. see all the "Think" books above). Pick one, and treat it like a climbing goal: get the hang of it, and then use that base to move onto the next challenge (achieving which will even improve your first language appreciation), and all the time keep the big picture goal of games-programming specific challenges as your pole-star.

(sorry for long-windedness!)
 CurlyStevo 15 Nov 2012
In reply to michaelc:
"The games developers may be able to tell you if this slide-deck from Tim Sweeney is representative of languages used in (3D) gaming
http://www.cs.princeton.edu/~dpw/popl/06/Tim-POPL.ppt"

Yeah the next version of the UnrealEngine is scrapping Unreal script entirely. Pretty much the whole engine will then be in C++.
michaelc 15 Nov 2012
In reply to CurlyStevo:
I love the way some technologies just keep popping up again and again (like C++, Unix, Lisp, etc.,). Sometimes because they keep getting used and won't die (like C++). Sometimes because they're always the "next big thing" (like, I would say, Lisp).

Now and again you get surprises. I was not expecting to see Erlang break out when I first heard of it a few years ago, yet I see now it's used in a couple of high profile noSQL databases (CouchDB, Amazon's SimpleDB) and Facebook chat.

"Those who don't understand Unix are condemned to reinvent it, poorly." – Henry Spencer http://en.wikipedia.org/wiki/Unix_philosophy

New Topic
This topic has been archived, and won't accept reply postings.
Loading Notifications...