Ramendik

Finding a project to join and learn?

Recommended Posts

Hello,

I am in Ireland. I am in IT for 20+ years, I code in Python and Java, but never developed games and am not really familiar with game-specific libraries and engines.

My son is 12 and understands the basics of coding. He is interesting specifically in game development. I would support him in getting in there, but we don't have a good idea nor, really, the capability to do something from scratch.

I think it would be best for him to join some open source game project and do "grunt work", stuff that is boring for experienced adults. I would certainly help him in working out the technical particulars if he joins a project and needs to be using such-and-such tools.

But how can we find a project for him to join, one that would allow him to learn as he does mundane tasks for it? A sort of apprenticeship - except without money involved and without them having to teach him all the details. I can help him do the research if I know the general direction.

 

Share this post


Link to post
Share on other sites

Moving to the career area of the site since it is a slightly better fit.

At age 12 he should probably have a good idea of what he wants to work on. At that age I'd encourage him to follow whatever interests he has rather than trying to do the boring stuff. He should be exploring, tinkering, and learning freely as he goes to whatever interests he has, in addition to exploring ideas and subjects outside of computers.

There will be plenty of time in life to do the grunt work, to fill in all the pesky implementation details, and to do the drudgery and daily grind.

By freely exploring and experimenting he'll be highly motivated to do whatever he wants to do at the moment, and with that motivation he'll read and study more, he'll try more options and learn from mistakes, and he'll push harder to make the systems do whatever he wants them to do.

Share this post


Link to post
Share on other sites

Why don't you let him program by himself? Python is a good language, it has a friendly community, dad knows the language, and there is pygame, a simple SDL layer for displaying graphics, and play sound, etc.

Another option is Scratch, which is totally kids oriented. I browsed the site once, and was amazed at its size, but that's about all I know about it.

 

Give him some tools, and let him play and explore. Dad can learn too, before long he'll tell you how to do things :)

Share this post


Link to post
Share on other sites

Dad knows the language but dad stinks at graphics. And son is not great at that, too. We don't have an artist, which sort of makes independent development impossible, except if we head into roguelikes :)

I could theoretically write up a parody roguelike, but we're talking serious retro here. Just how many players would even understand a humorous rendition of current events that requires understanding of Nethack? Not to mention the fact that roguelikes are not generally entertaining for most 12 year olds.

Without an artist we're stuck with either text UIs or repackaging of current games (I sorta wanted to push him to remake Sopwith in Scratch but what's the point?). And yeah. he did use Scratch and more or less grew out of it. I was considering Stencyl, what with its really cool graphics engine - but again nothing works without original art.

And we're not bursting with really good ideas, either.  

Edited by Ramendik

Share this post


Link to post
Share on other sites

There are tons of free assets that you and your son can use to make your game without spending anything. Sure, the art style of some assets will not completely match the style of other assets, but you can't have everything. You might want to take a look at OpenGameArt or here.

Edited by Kercyn

Share this post


Link to post
Share on other sites

I would recommend tinkering with some libre games he likes, maybe even contributing to one. What kinds of (offline, non-MMO) games does he like? I'm a libre gamer, so I know of quite a few games that he could try tinkering with and could give some suggestions.

Edited by onpon4

Share this post


Link to post
Share on other sites

I asked what kind of games he likes, he tends towards realtime strategy.

A classic-style RTS (like my old favourite, WarCraft II) might be tricky to develop on one's own because an AI is not easy to make, but we could look into either PvP RTS (non-massive) or perhaps tower defence (unlike proper RTS, tower defence does not depend on an AI).

One idea I had right now is to make a WarCraft-like PvP RTS with a scripting mechanism, so that anyone (ourselves included) could develop a full AI or "assisted play", with AI vs AI play a possibility. But the idea sounds a tad too obvious. Someone probably already did this? (DOTA seems to have Lua scripting, is that it? Never actually played it, from people who do play I heard they abandoned the resource aspect of WarCraft and it was a huge turn-off).

Also, one still needs a server for non-massive PvP over the 'net, but this might be doable (especially if one piggybacks on a protocol like Jabber and the server is just a standard thing; one would need one of the clients to be the master, enabling cheating, but really who cares).

Despite all this talk, an RTS based on freebie graphics is likely to look like that much garbage. I'm decent at writing and could make up lore, but even good lore with bad graphics...

(I actually have a ready set of lore for some years, but it has IP issues and can be seen as 18+ ; basically, a somewhat alternate Earth military invading John Norman's Gor. Come to think of it, this can be laundered pretty quickly, but still, freebie graphics might mean a fail).

Share this post


Link to post
Share on other sites

Upon some research - should I just let him loose on SpringRTS, let him play a few games based on the engine, then point him to a Lua tutorial and see if we can build one of our own? This seems like a play+development community not unlike Scratch but not that kindergarten-ish? And it already has the approach to AI development that I like.

The main downside is that SpringRTS game development appears to be all in Lua, but really, it's just another language. Not as fun as Python, perhaps, but still a language.

 

Share this post


Link to post
Share on other sites
12 hours ago, Ramendik said:

A classic-style RTS (like my old favourite, WarCraft II) might be tricky to develop on one's own AI

It has more problems even without smart AI, there are lots of autonomous concurrent movement going on, and stuff like path-finding, it's a difficult genre to program.

What we usually suggest to beginning programmers are games like pong, tetris, space-invaders.  Much easier to program, yet plenty of challenge to get it all done. Maybe your son should start even simpler, with hangman, fifteen puzzle, 2048.

Don't aim for the high-end until your son can handle it.

13 hours ago, Ramendik said:

One idea I had right now is to make a WarCraft-like PvP RTS with a scripting mechanism, so that anyone (ourselves included) could develop a full AI or "assisted play", with AI vs AI play a possibility. But the idea sounds a tad too obvious. Someone probably already did this?

So who is programming here? Dad or Son?

Why does it have to be "new"?

13 hours ago, Ramendik said:

Also, one still needs a server for non-massive PvP over the 'net, but this might be doable (especially if one piggybacks on a protocol like Jabber and the server is just a standard thing; one would need one of the clients to be the master, enabling cheating, but really who cares).

Right, a 12-year old doing networking and servers, piggy-backing over jabber. Sure, tbh I'll believe it when I see it.

 

If you want to program games too, that's fine, by all means go for it, it's fun! Programmable RTS by Jabber sounds like a fun project even if it was already done.

However I think it's a bad idea to apply your capabilities and your standards onto your Son. Give him room to do things his way and let him make his own choices, be an enabler, be a guide, be a supporter, even if the result is not what you expect.

 

13 hours ago, Ramendik said:

Despite all this talk, an RTS based on freebie graphics is likely to look like that much garbage.

He isn't anywhere near an RTS, I think. Also, whose standards are speaking here?

Objectively, no doubt you are correct. I suck at graphics too. Truth is, getting good at graphics is as much work as learning to program, and I never spend the time. The question is, does it matter?

If you aim for selling the game, yes it does. If you aim for a 12-year old doing random programming and having fun, exploring the world, and finding his way around challenges, it does not, imho.

Let him find a solution for it. Maybe he'll draw something. Maybe he grabs something from somewhere, maybe he gets inspired in pixel drawing. Whatever it is, it works for him, be happy for him.

If stuff looks like it's going to be serious, buy him some art for his birthday or so.

Share this post


Link to post
Share on other sites
14 hours ago, Ramendik said:

I asked what kind of games he likes, he tends towards realtime strategy.

Oh, that's easy. There are tons of those. Just a few off the top of my head:

  • Warzone 2100
  • MegaGlest*
  • Globulation 2
  • 0 A.D.

* I would highly recommend MegaGlest. I've made scenarios for it before; it uses really simple Lua scripting. Plus it's an awesome game. OK, probably not as awesome as proprietary RTS games, but still awesome.

The Libre Game Wiki has its own category for RTS games, if he'd be interested in tinkering with others:

https://libregamewiki.org/Real-time_strategy_games

Share this post


Link to post
Share on other sites

Thanks, I think with this and the other RTS-specific thread I'm good.

There are advantages and disadvantages to different approaches. SpringRTS seems to be an easy pathway to RTS fun without spending the enormous time needed to implement the basic logic (including pathfinding), but somehow it is not very popular on this site. What I'll do is sit down with him and start tinkering with a few different things (Spring included) and see where it goes. This is the advice I got on the RTS thread, but I will also include the games mentioned here; MegaGlest, notably, seems to take a similar approach to scripting as SpringRTS but it might be more suitable as a start if he picks the "make a bot first" route.

I will certainly give him the option of starting with simple retro games, but I strongly doubt he will take it up. I suspect he will look for the shortest route to creating something with brag value (among his peers who can't really code). He would want to make a game that other kids his age, specifically those he knows personally, would find genuinely entertaining. This is certainly a lower bar than "marketable", but it is *a* bar. Taking a longer time to do it would probably be an acceptable trade-off.

At least, in woodworking (his other interest where I can help much less as he already can do much more than I ever could) he gravitates towards making whatever his classmates want to get, literally from a sword to a dollhouse part.

And in the modern software world, the easiest way to such a product is to stand on the shoulders of giants; learn to incorporate things that already exist and are freely available, not code everything on his own. This is one thing I am going to teach him, because it is quite true outside of the game world. And this is what might enable him even for RTS; I do realize the features I listed are complicated - more complicated than I thought at first - but they are all already implemented. So it will have to be a discussion of libraries and engines, followed by trials of same.

...and then he will watch a lot of videos. Because he always does that, whatever the subject. (That's where he gets his woodworking tricks...)

Edited by Ramendik

Share this post


Link to post
Share on other sites
2 hours ago, Ramendik said:

learn to incorporate things that already exist and are freely available, not code everything on his own. This is one thing I am going to teach him, because it is quite true outside of the game world.

The game world is much more pushing against the limits of a computer system, high frame-rate (16ms to do "everything"), complicated algorithms, big worlds, believable realistic environment all push in that direction. At mobile systems, reduced computer power is added. The embedded systems world has the real-time requirements (a little harder, often), but often less complicated algorithms, or less massive (simulating 2000 enemy soldiers isn't needed :P ). Any user-interactive program responds in matters of whole seconds, which is eons in computer terms.

In the latter the cost of developing everything dedicated to that program is not worth the benefit, faster response time isn't needed enough. In the game world, optimizing stuff to death is required to stay ahead of the competition, since that one killer feature makes or breaks the game sales. To get that, you write a fully dedicated program carefully tuned against the processor strong and weak points, exploiting the L1, L2 caches, etc.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Announcements

  • Forum Statistics

    • Total Topics
      628298
    • Total Posts
      2981890
  • Similar Content

    • By Vityou
      I'm looking to create some kind of simulation like game similar to rimworld and dwarf fortress.  I would also like to include a way to control units through programming, similar to screeps, I'm even thinking of using JavaScript as well.  I would like the graphics to be separate from the actual game, so that people can make their own if they don't like the default on (the game will be open source).  Are there any languages or engines that would be good for this task?  I mostly program in functional languages like racket, but I know some python, Java, and JavaScript.  I know how to use unity somewhat, but I'm not sure that it would be best for this.  Also, I'm not sure if this is important for picking out the right tools, but I am thinking of including a feature to run parts of the simulation at different levels of detail, for example, you could "zoom in" on a battle that's happening and see each individual shot, or you could just get the main idea of the battle, like if you won and how much gold you got or something like that.  Thanks for any suggestions.
    • By deltaKshatriya
      Hey all, 
      This isn't really a post that fits into any particular forum, so I'm posting it here, but feel free to move it mods, if you feel that it should move. I figured it isn't really specifically about game dev related careers.
      I'm a recent college grad, currently working as a software engineer as part of a rotational program, so I'll be spending some time in my current role then rotating to a new location and new software engineering related position. I did my undergrad in Computer Science, and while Computer Science had been my main career interest for quite some time before college, while working my way through college my main focus really was just to get done with the degree, get a job, and be done with the extreme stress/too much work during college. Now that I'm out, I'm not as sure about my career direction as I was before. While I do still do like Computer Science, software engineering, etc., my current position, although well paying, doesn't really involve me doing much on a day to day basis (for now at least though that's subject to change). The good news is that I've got a lot of control over where I rotate to next. Interestingly enough, initially I got interested in Computer Science because of game dev (as a teenager at least). Then that morphed into AI and machine learning. Now it's....unknown really.
      Now the thing is I've kind of been bouncing around in all sorts of directions. I absolutely love 3d art and have been actively trying to get better at it. I've also taken up writing and considered trying to write a novel in my spare time. Then I'm finding graphics programming very interesting as well (although that's not what my day job is), and I still have quite an interest in machine learning, data science, text mining, etc.
      In short, I have absolutely no clue which direction to move towards. My parents believe I need to get a graduate degree, either an MBA or an MS in Computer Science. I, honestly, have no clue. And so I'm here, wondering what I should do with very little actual idea of what I should do.
      So I'd like to here your thoughts, fellow people of this particular section of the Internet. 
      Thanks in advance!
       
    • By Levi Lohman
      First off, I have some experience in coding, and I've been told I am talented in the ways of mathematics, but I never learned an entire programming language well enough to make an actual game. But I'm not looking for a game engine where there is no coding or scripting at all, I would prefer something where you can set up the game world or levels by dragging and dropping objects in. But I could control the behavior of the objects through simple logic parameters that you set up by selecting things from lists and inputting data. 
      One example is that if you were dropping in the area the player would walk on you could select the object that the player would walk on and from a list that would come up you would select something like "Lable" or "Property" that would bring up a text box where you could input something like "solidSurface" and then you would select the level which would bring up a list where you could select an if/then choice and you would be guided through a thing called "Object Define" where it would say, "If object has lable/property, " and you would select from a list of lables or properties you already made like the "solidSurface" thing you entered in earlier, then you would select some things from a list saying "Player" and you would select an action like "Collide" and finally you would select an action that would happen on collision like "Stop" and you would end up with a surface the player can walk on top of.
      Or if you were making an RPG and you wanted to define how a certain attack worked and had already set up variables for the stats of the player, enemies, and equipment you could type in some things like "preDamage = (weaponAtk x 1.25) x ((playerStrgth / 100) + 1)" and "enemyDefence = enemyArmor x ((enemyEnd / 100) + 1)" and "actualDamage = preDamage - enemyDefence" then you would select an if/then/else template saying something like "if actualDamage < 0, actualDamage = 0, else enemyHP = enemyHP - actualDamage"

      If you know of a game engine that is like or similar to what I'm looking for or if you need more information to know for sure, please leave a reply.
    • By Giannis Marinakis
      Hello everyone!
      I have a GitHub repository on which I'm developing a Open Network Library for Java Developers and I'd like to share it so more people come in and contribute. Till now the repo is being developed only by me so the library is not 100% bug free. I'd really like this repo to be famous and got people working on it!
      [You will find more information in the repo]
      Here's the link for the repo: https://github.com/giannismarinakis/java-open-nl
      Thanks!
    • By deltaKshatriya
      Hey all,
      As some of you may know, I do have a Computer Science background, but either by chance/design/fate/insert stupid excuse here, I didn't take any graphics courses in my undergraduate degree, but now I'd be very interested in at least learning the basics of graphics and potentially pursuing more in graphics. I'm interested in all sorts of graphics in general, so everything from real-time engines to rendering engines like Arnold, Octane, etc. Can anyone point me in the right directions for books/tutorials?
      Thanks in advance!
      EDIT: Apologies in advance if I missed the proper channels for this as well
  • Popular Now