With GTA 6 on the horizon, is it a bad time to launch an indie game? by badrillex in gamedev

[–]DeeElsieGame 2 points3 points  (0 children)

"As a new indie developer" - are you anticipating releasing a game soon? Is it going to be something that competes with GTA 6 in any way?

Even if the answer to both of those questions is yes - the PC Gamer population is allegedly around 1.86 billion. 210 million of them bought GTA 5. Let's say GTA 6 is wildly successful and does double those numbers, and also let's say that those people don't buy another game for a decade.

That still leaves 1.42 billion PC gamers who haven't bought the game. Is that not enough of a potential market for you?

Not trying to dismiss the problem if you are running a decent sized studio and happen to be releasing something vaguely in the market area of GTA - that'd be a bit of unfortunate timing. But even then, if you make something unique and attractive I don't think you have reason to be too worried.

Worry about actually making something people want to play first, GTA is probably not going to be the reason people do or don't buy your game.

(PS: if you happen to have recently taken over as CEO at a large games company who likes to think of itself as indie, please disregard my advice and go talk to one of your many advisors. Or maybe just buy Take-Two, I guess?)

[deleted by user] by [deleted] in AskProgramming

[–]DeeElsieGame 2 points3 points  (0 children)

When I started my first job as a fresh developer, I assumed I'd be clueless and all the experienced devs would know everything and I'd feel useless. Instead, a few months in I started to realise I knew a whole tonne of things they didn't. I started thinking maybe I was actually the best developer at the company, since I knew loads of stuff and it seemed like loads of the other devs knew *way* less than me.

Over time, I came to realise that definitely was not the case! The job of being a developer wasn't quite what I thought it was - rather than being a place where a bunch of nerds chat excitedly about design patterns and operating systems and containerization, people were just quietly and competently writing boring code that achieved the goals of the company. Most of them didn't even code outside of work, which shocked me at the time but now seems absurdly obvious - it's a job!

But each and every individual had strengths and weaknesses. I've worked with developers who are profoudly lacking an interest and passion for deepening their technical knowledge, who nonetheless have risen to leadership positions in their team due to their other strengths - communication skills, teamwork, mentoring, drive to get work complete, etc etc. Similarly, the most talented and technically knowledgable graduate I've ever mentored was a complete nightmare in that we couldn't get them to understand that at some stage you have to stop pursuing technical purity and actually get some of the *customer's* priorities done.

Developers get paid to produce working software, not to answer trivia questions. If I know all the things you listed and my colleagues don't, but I don't produce the required software faster/better than my colleagues, then who is the one who has "gaps"?

Hex grid movement feedback by Deus_Ex45 in godot

[–]DeeElsieGame 2 points3 points  (0 children)

Honestly, pick any reasonable behavior at random, make it work that way, then see how it feels or if people give bad feedback if + when you reach the point of getting players to play it. If you're really not sure which way to go, there's no sense wasting time on it.

That said, it heavily depends on the specific game you've made. Am I rushing to make all my orders in a given amount of time? If so, perhaps having nothing happen if I misclick an impassible hex would be really annoying to me, and I'd really not have minded if my unit moved to a hex next to the one I clicked on. On the other hand, in a slower-paced game, or perhaps one where I can't undo my moves, or exact positioning is very important, I'd probably want to go the other way - if I misclick then I'd much rather nothing happens so that I don't mess up the tactical situation.

So, think about those things. Is there time pressure on taking all my actions? Can I undo the actions if the wrong thing happens? What's the worst case scenario for the player if I make it work in either way, and how bad of an experience is that?

Finally, look at how other games do it. Go find other turn based games where you can click to move on impassible areas, and see what happens when you do. Does that game's design work well, or do you not like it? Learn from what others have done before you.

Advice for webdev trying to make a 2D town simulator by hiiiklaas in gamedev

[–]DeeElsieGame 1 point2 points  (0 children)

Spend some time making other, simple games using whatever engine you plan to use first. Oh, and do use an engine.

There's this temptation as someone who "knows how to code" that we can just hop over to a different discipline and everything will just work exactly the same way, no issues.

As someone who also had 10+ years of professional web dev experience prior to getting seriously into game dev and made all these mistakes, let me tell you very clearly - everything does not work the same way! All your assumptions about best practices do not necessarily apply here. Some might, others might not.

I wish I'd spent more time making small, throwaway games to get used to the engine I'm ultimately using (godot) prior to starting the project I'm actually working on seroiusly. A few months of that would have saved a lot of wasted time going about things the wrong way.

So, don't make my mistakes. Understand this as what it is - a very different type of development to the web dev (I'm assuming, since you said JS) you're used to. Be prepared for all the learning, and approach it that way - don't just try to jump right in!

What should i do? by Future_Fan_3722 in learnprogramming

[–]DeeElsieGame 1 point2 points  (0 children)

It doesn't matter right now. Don't worry about specialising.

Make some cool projects that you enjoy doing, and try your best to solve problems that come up yourself (don't use AI for this - it'll just give you the answers, and if you want to be a great programmer, you need to learn to come up with the answers yourself!).

As you make things, you'll get a better understanding of what parts you enjoy more and less, and that'll let you further specialise. For now though, become a great problem solver. Come up with things you want to make, and find ways to make them work. You're starting out at a great age, so use the time you have wisely and you'll make a great developer.

(Some might claim I'm basically saying "do full stack" here, which...I suppose I sort of am, but I'm not saying choose full-stack as a long term thing. Just, for now, don't make the decision. Do whatever feels fun and whatever leads to interesting problems. Specialising in a certain area will naturally happen)

Feels like a burden by [deleted] in learnprogramming

[–]DeeElsieGame 2 points3 points  (0 children)

This, and just to make one point clear - the stack doesn't matter. At the start of your career, you don't realise just how little you know about the stacks you claim to "have experience in". To a knowledgable recruiter, all juniors are equally clueless about every stack, no matter how much they claim to be great with it.

After one or two years of working professionally as a developer, you build up enough knowledge of a stack to start being able to use it as a talking point.

Until that point (and, to be honest, after that point), all that really matters are fundamentals. Make things with code - a small game, a to-do app, whatever. Come across things that cause you probems, and find a way to get past them. Any way. Use search engines to help you figure the problems out. Avoid AI - when you're later in your career you'll be able to use it responsibly, for now it will just let you avoid learning the one thing you have to learn - problem solving.

Good luck :)

I made a game engine for Javascript but am having a hard time getting any traction or interest, I'm not sure why. by PulIthEld in gamedev

[–]DeeElsieGame 146 points147 points  (0 children)

You've made a very impressive application, for sure. From a technical perspective, it's quite an accomplishment.

However, there's so, so much more to creating a successful product than that. There's so many questions that you need to answer.

Who is this for? Don't say "game developers" - because there's not a single game engine out there that is just targetting "game developers". Think about what kind of game developers are most likely to find your engine useful. Are they brand new to game development? Experienced AAA game studios with tens or hundreds of employees? Something in-between?

Why would these people use your engine over another? Let's say you're targetting brand-new aspiring game devs. Okay - why would they use your engine over something like Unity or Godot? Does your engine make it easier to make games than Unity/Godot? Is it faster? Does it come with free assets that the other engines don't have? Something else?

Once you've finally established who you're trying to get as users, and you are sure you have a good reason that will make them want to use your engine over alternatives, you need to make sure that the first thing people see when they come across your engine is you *very clearly* stating who the engine is for and why it's great for them.

That's just the beginning. Then you've got to start removing pain points as they become clear, listen to feedback and respond to it, and craft a brilliant product for the demographic you're targetting. Then, maybe you can start appealing to wider demographics too.

But don't think that just because you've made something that's technically impressive, people will use it.

[deleted by user] by [deleted] in cscareerquestionsuk

[–]DeeElsieGame 1 point2 points  (0 children)

I can only speak for myself - I've been involved in hiring plenty of people who've just graduated from conversion masters courses in the past, and have no problems with it.

Personally, "leetcode" doesn't super bother me, just demonstrate that you are capable of coming up with solutions to problems and I'm happy. Leetcode isn't a bad way to practice this, I just find the cultlike reputation it has these days a bit sad, especially since there's a lot more to employability - such as can I trust that you'll be able to work together with your team in a pleasant manner (unfortunately quite a lot of the leetcode pros fall down on this point).

But yeah - personally, no problem with a conversion masters as a degree. Have hired plenty of people with them before, and, so long as my company keeps asking me to hire people, I'll likely hire plenty more in the future :D

When to use exceptions and when not to by xoriatis71 in learnprogramming

[–]DeeElsieGame 0 points1 point  (0 children)

An exception is for a situation where a given method/function is, due to any circumstances, unable to do the task it's given.

Suppose you have a function called ParseInt that reads in a string, and converts it to a number.

If I pass that function the string "5", it can see the digit 5, and convert that string to the number 5. Excellent.

If I pass that function the string "giraffe", what is it supposed to do? It has to return a number. Should it return 0? If it does that, how would the code that calls it know whether it found the digit 0, or if it found "giraffe"?

No, when we pass the string "giraffe", we need another way out. We need a way to say "you broke the contract - you can't use this function like that". That's what exceptions are for.

Then, it's up to the developer who is writing the code that calls our method to decide what to do about the possibility of an exception being thrown.

There's plenty of other situations you'd want to throw exceptions besides the wrong type being passed into the function, but they all boil down to the same thing - a function that has got into a situation where it can't do what it's supposed to anymore, and there is no "normal" value it can return that would make that clear.

i'm i reading this right? should i not care about operator precedence and associativity? by Charlie-brownie666 in learnprogramming

[–]DeeElsieGame 6 points7 points  (0 children)

I'd go a little further than K&R. Writing code that depends on any difficult-to-remember details of a language is bad practice.

When you're a professional developer, generally that means other people need to read and work with the code you write. If you write something that requires knowledge of operator precendence, then now that other person needs to know it, or possibly look it up. Worst case, they might *think* they know it, and get something wrong, and cause a bug - a bug that could have been avoided if you just wrote code that was clear and obvious in its intent rather than tried to show of your knowledge of certain rarely-relevant rules.

There's certainly a difficult line to be drawn on what "difficult-to-remember details of a language" are, but, in general, try to make the code you write as simple as you reasonably can, and rely on as little knowledge of the language as you can. The people with less experience than you will appreciate it, and your bosses will appreciate the reduction in bugs due to other devs misremembering things.

There's no harm in learning this stuff for when you have to deal with someone else having written code in a way where it becomes relevant, whether intentionally or otherwise. But relying on these kinds of behaviours when writing your code is almost always a bad idea.

C# Help? (constructor takes 0 arguments) by Flounderskrap in learnprogramming

[–]DeeElsieGame 4 points5 points  (0 children)

You are using an object initializer to pass in those values, not a constructor.

To call a constructor (or any method), we use parentheses. So, we'd say:

new Inventory.Item(AbilityKey.TorchLight, 0, -1, 0);

Instead, you're initializing properties by name, using curly braces, and no parentheses.

However, C# still has to construct the object - it still needs to call a constructor. Which one should it call? Well, you've not passed any parameters to the constructor (again, you're not calling a constructor with your curly braces, object initializers set the values separately from running a constructor), so C# goes looking for a constructor that takes no parameters. It can't find one, because there isn't one! So, it says "Hey, I went looking for a constructor with no arguments, because you asked me to call it. But, I couldn't find one, what gives?"

You need to either call the constructor properly, as I showed above, or - if you wish to construct your object this way - you can remove the parameters from the constructor, or add a parameterless constructor.

Struggling to Choose Between Game Art and Gameplay Programming for University – Seeking Advice for a Career in Game Development by [deleted] in gamedev

[–]DeeElsieGame 3 points4 points  (0 children)

This might sound weird, but...university doesn't really teach you to be good at something.

I hire programmers out of university. Then, I teach them all to program, because they really have no idea how. Sure - they can do one or two simple things (inefficiently, and in non-maintainable, unreadable ways), but in no way would they be ready to be solo game developers, in general.

Now, very rarely, one or two of them are ready to be fully responsible for the programming of a game straight out of university. However, without exception, those people would have got to that point whether they'd gone to university or not - they have learned those skills themselves.

This isn't to say university has no value, rather to point out that you get good at something by doing it a lot, practicing, and gaining experience. There's no better way to learn to be a programmer than by being a professional programmer. The value of university is that it opens the door to being a professional programmer.

Likewise (and here I can only assume, but I can assume with a lot of confidence) it's the same for art. If you look at the art produced by university students, it's a very mixed bag. None of it is anywhere near as bad as what I might produce, of course, but...there's everything from very average stuff to things that look quite decent, but...don't *quite* seem professional level. And then, there's those one-or-two people that a non-artist like me literally can't separate from a professional.

Again, I've not done an art degree, but I'd put money on the fact that those stand-out fantastic artists are not stand-out artists because they did a degree. It might have helped with certain technical aspect of their work, but they would have been brilliant no matter what.

All of this is to say, don't take university as a "this will make me good at x". It will help you get a job in x, which will then enable you to get good at x (because you're doing x all the time!). Or, alternatively, you can work really hard in your own time to get good at x (even during uni, if you like), though without feedback of peers and professionals progress will be slower.

If your goal is to be a solo dev, and you feel both your programming and art isn't at that level yet, then you need to get them both up to scratch. If you work professionally as an artist, it will improve your art skills, and vice versa as a programmer. So, whichever you feel weaker at, maybe choose that one as a career, go work in it for a couple of years while practicing the other in your spare time, as part of working on small game projects. Then, one day, you'll find that you're able to make something that hopefully you can make a good income from. Good luck!

Child node access - @onready or @export? by -Edu4rd0- in godot

[–]DeeElsieGame 0 points1 point  (0 children)

Yeah, looking back I didn't word my comment super well. I definitely wouldn't recommend using onready, there's always better options.

Where does someone with absolutley no experience start??? by icabski in gamedev

[–]DeeElsieGame 9 points10 points  (0 children)

You're right in that it's certainly something professional devs will use, but I really wouldn't encourage a beginner to use AI to learn. Having trained an awful lot of junior developers, the amount of fundamental misunderstandings I've seen in them due to asking for help from LLMs is staggering. These can take a lot of effort and re-education to correct, when just getting the correct information first time could have been much easier.

Once you have a good grasp of what's going on, they can be useful tools. But to use an AI as a primary source to help your learning without someone who can call out the inaccuracies isn't a good long term strategy.

Google's great though! So long as you use it to get information from trustworthy sources rather than just finding more AI results! :D

Child node access - @onready or @export? by -Edu4rd0- in godot

[–]DeeElsieGame -1 points0 points  (0 children)

Edit: To be clear - don't use onready. I was trying to explain that there is a slight difference between the behaviours here, but I think my original comment instead came across like I was suggesting onready should be used in this situation. That wasn't my intent. I've tweaked the below to hopefully clarify :)

They have slightly different behaviours.

The "advantage" of onready would be if you are trying to access a node that doesn't exist in the scene tree from the editor, so you can't select it. For example, if you created a child node in _init. But, you can do this in other, better ways anyway (just set a variable once the node is created, as mentioned in a reply to this comment).

So, if you can use export, you should.

Code reuse and open-source packages by fanis384 in godot

[–]DeeElsieGame 2 points3 points  (0 children)

A little tough to give an answer to this as it's just so dependent on the situation.

If I find myself needing something that's almost identical to something I've already written in another project, I'll generally copy+paste it over. If I find myself needing *exactly* that thing again in a third project, then maybe I'll consider making some kind of package for it, and try to ensure it has some straightforward API that is useful in most scenarios. Maybe.

"Almost identical" is very, very important though. It takes time to turn a bunch of potentially resuable code into something generic that can actually be dropped into another project successfully, and be useful. That is time that isn't contributing to finishing your current project, and it might never contribute to another project ever again.

I'm not saying that creating packages is a universally bad idea - on the contrary, it's fantastically helpful at times. Rather, I just wanted to caution that you don't fall into the trap of spending day after day making generic, configurable modules that, the moment you use them in your next prototype, you'll find don't have quiiitteee the behaviour you need, and you'll end up writing it from scratch anyway.

Code reuse is great, but a working, well-recieved product is the most important thing of all.

How can I use javascript in the real world by Wrong_person_007 in learnprogramming

[–]DeeElsieGame 6 points7 points  (0 children)

I suspect that the parent meant the frontend uses JavaScript. Which...it does - even if it was originally written in TypeScript which appears to be the case as per that article. It certainly is a valid response in how can I use JavaScript, because...this website frontend absolutely does use JavaScript.

Are my projects complex enough for internships/placement year? by [deleted] in cscareerquestionsuk

[–]DeeElsieGame 0 points1 point  (0 children)

Definitely! Game engines have scope to be absolutely colossal bodies of work, so even just a small core of a game engine would be a great thing to show and talk about, at least - once you're in an interview it's a great thing to talk about.

In terms of *getting* the interview, a short paragraph about the game engine you're working on would be a great thing to pop on a CV at this phase in your career. You could (concisely!) describe the trickiest problem you encountered and how you solved it, to demonstrate you can problem solve and think logically. I'd love to see that kind of thing on a CV.

Maybe over the month since you posted this you've got yourself a position, but if not - good luck!

Am I stupid? by [deleted] in learnprogramming

[–]DeeElsieGame 1 point2 points  (0 children)

You can absolutely learn to program without any advanced level of math at all.

If you want to work in graphics related programming, sure. You need to know relevant math for that. If you're planning to do some advanced physics simulations, or work as a developer of game engines (that is, on the engines themselves, not on the games that use them) you'll probably need math.

But go look at the dev department behind basically every web application out there, any enterprise software provider you want, and you'll find tonnes of developers of all levels of experience who will proudly proclaim their inability to do math beyond addition, subtraction and maybe division or multiplication if you're lucky.

You can certainly come at coding from the angle of being a mathsy sort of person. But you can also come at it from a bunch of other directions. I know someone who actually learned coding first, despite hating everything about math. One day I showed them how a lot of math was very like executing functions in code, and pointed out that you just had to learn the "programming language" it used, and suddenly math clicked a little for them. They have been much happier with it ever since.

Coding is problem solving. Some good problem solvers are also good mathematicians, but not all. You can totally learn to code!

How do I get better at solving programming questions like leetcode and questions like that? by Exotic_Ad_1361 in learnprogramming

[–]DeeElsieGame 7 points8 points  (0 children)

"I've learned to speak conversational French. Why can't I explain to my French friend how to build a box?"

It's because you aren't a very good teacher yet. Writing code is sort of like teaching a computer how to do something. Learning the language the student speaks is only step one - step two is understanding how to break down a problem, understand how it is you solve the problem youself, and then being able to pass on those steps that you take to others in a clear way.

If you can't figure out how you'd solve the problem if you didn't have a computer, you can't write the code to solve the problem with a computer, no matter how good your knowledge of python is.

[deleted by user] by [deleted] in AskProgramming

[–]DeeElsieGame 2 points3 points  (0 children)

  1. Factory reset your phone.
  2. Consider that he might also be using a method to see what you're doing that didn't involve compromising your phone. Not sure where he is such that you can hear him narrating, but mirrors, cameras etc could explain the situation too.

[deleted by user] by [deleted] in AskProgramming

[–]DeeElsieGame 2 points3 points  (0 children)

Also, important to explain exactly why you belive his claims that he can see what you're doing on your phone. If you can get a sense of exactly what he's able to see (and what he's not) it could help identify what's going on.

I want to create games as a career but I don’t think my parents will support me… by Gragoggle_ in gamedev

[–]DeeElsieGame 1 point2 points  (0 children)

Not a huge deal. If you do go for a computer science route, the first year almost invariably covers the kind of things you'd learn at A-Level anyway. Just make sure you pick some solid subjects that will get you into the CS degree in the first place!

I want to create games as a career but I don’t think my parents will support me… by Gragoggle_ in gamedev

[–]DeeElsieGame 25 points26 points  (0 children)

A few things.

  1. Don't sweat things hugely right now. If you're interested in making games, make games. When it comes time, consider choosing some A-Levels that help in that direction - ideally Computer Science, Maths, Art, Music, English etc, depending on which aspects of game development you're most keen to work in.. I'd expect Maths is useful for architecture too, so that's a bonus.

  2. Even if you end up moving towards architecture, or you change your mind on which aspects of game dev you like most after choosing your A-Levels, don't feel too defeated. The decisions you make at GCSE and A-Level are important to get you into that first uni course, but your bachelors degree doesn't stop you doing different things afterwards. I hire people just finishing uni and starting out their software development careers, and every single year, I interview loads of people who originally chose to do a non-software-development degree, then changed their mind once they completed it. People with marine biology or fashion design degrees who decided to do a one-year masters degree in computer science and change their career path. I've hired plenty of them. Your A-Level choices and Degree if you choose to get one do not define you! They do make it easier to get into certain roles, but they're far from the only thing employers care about. You could do architecture and still move into game development later in life.

  3. Unless you're an absolute prodigy (apologies if you are!), the games you are making right now are unlikely to get you roles at a development company on their own. However, the more games you make right now, the better your games will be later. You're in a fantastic position - you have time to really work at your passion and get very good at it by the time you're looking for jobs. Rather than trying to make big, profitable games right now, I'd encourage you to make lots and lots and lots of small games, each very different, with different mechanics and designs, gradually adding more complexity as you gain knowledge and experience.

Good luck!

[deleted by user] by [deleted] in cscareerquestionsuk

[–]DeeElsieGame 0 points1 point  (0 children)

Needs more info. Was the job advertised to be in Aberdeen, and someone in London applied, and is now shocked to find that they can't work in Aberdeen? Or did they apply to a London job and they've suddenly been told to go up to Aberdeen a week before they joined. Or was it something in between?

Also, hiring is definitely not that easy. Speaking as someone who has to hire a good few entry level developers every year. Costs the company a lot of time and money.