If you would have me, I would like to help where I can.

Subject: If you would have me, I would like to help where I can. Thu Nov 27, 2014 6:27 pm

Hello.I am Joshua Jimenez.I have two degrees in computer science, one in software development and one in Networking and Hardware.I haven't had a lot of experience coding anything but Java, but I am willing to learn and I can put in extra hours currently, seeing as I am currently unemployed.I have Asperger Syndrom. This means, I am absolutely honest and socially incompetent. I also have a rather... bullheadedness and in combination with my perfectionism, that means I do things right or I don't do them at all. The Perfectionism in particular slows my working speed quite thoroughly, so I do myself difficult with deadlines, but what I do get finished is always as high a quality as I can produce.My specialty is developing a program's structure, testing (code & usability) and fixing.My weak points are mostly graphical in nature. I can't draw or design anything by myself and tend to have quite an unique taste to it myself.

As a part-time writer, I have a certain experience with formulating text and crafting a story, but I do need somebody to spellcheck and fix some grammatical errors. (mostly ','s and my tendency to capitalize random words.)

I also have some rather basic experience in crafting mathematical algorithms.

As for how dedicated I am to projects... I've eradicated the Grox in SPORE... Twice... That should give you an idea.

As for the reason I want to join. SPORE has been one of my favourite games of all times and this game would be a dream come true for me.

Subject: Re: If you would have me, I would like to help where I can. Fri Nov 28, 2014 12:46 am

Hi Joshua,

So, every software dev team needs people able to architect, or maintain/refactor, or harden the code against bugs. It isn't particularly flashy or sexy, but I'd wager you already know that, since it's your specialty. Not knowing the languages we work in isn't going to be much of a hindrance, as Lua, in which much of the ugly code is written, is very easy to learn. I doubt Asperger's Syndrome will hinder you in your communications on this forum, and absolute honesty at least should be helpful when you're trying to convince us that some code we wrote months ago needs to be rewritten. My advice there is to stick to the technical discussions, where subtexts, humour, etc aren't going to throw you a loop as often, and where the things you say matter much more than how you say them. Thanks for the warning about not being graphically inclined; we have a lot of programming to be done that doesn't involve visuals, so you won't lack for work because of it. I'm not sure how we can leverage your writing skill right now; but as the project codebase matures and the team grows; we'll likely start needing some serious internal documentation -- not only for developers, but modders too. Having some experience with mathematical algorithms is always useful. Dedication is great too!

Anyway, it's taken me long enough to get to talking about how I suggest we'll make use of you:

Learn some Lua -- syntax, tables, that kind of thing.

Become (or already be) familiar with the Entity-Component-System pattern, which we use pretty consistently.

Have a copy of the scripts handy, either by forking and cloning the repo, downloading a copy of the game, or just by reading the code online first.

Let me know once you get here, so I can give you some pointers about what code to look at.

After some more looking and discussion, you'll probably feel comfortable enough to start tweaking the code. By this time you'd need a playable and current copy of the game...

... So we'll have to have gone through the work of getting the game to compile on your computer by then. Perfectionism and persistence come in handy here.

By this time, we (me, crovea, you) will have figured out what you can work on, so then you'll start working on it.

This whole list could take us from a few days to a few weeks -- the focus is on getting you ready to develop, in terms of both necessary knowledge, and build system. If you think this is a poor use of your skills/interests, or you need more/less detailed instructions, or you have any other questions or concerns, just bring them up here.

I'll put you into the developer usergroup on the forum soon (I prefer to wait until the applicant has proved that they'll do more than show up, apply, and leave; so your dedication will come in handy here too). All you need to do is ask, and I'll put you in right away, 'cuz I'm nice.

Edit: Oh, and a note about dedication that I couldn't fit in somewhere else: Being dedicated to things you're invested in is all well and good, but that doesn't really happen until you've invested a lot already, so I'm patiently waiting to see if you'll pass that threshold. I'm not pressuring you to, though it would be really nice to have you on the team from what you've told us so far.

Welcome to the forums!

Last edited by moopli on Fri Nov 28, 2014 1:24 pm; edited 2 times in total (Reason for editing : and current)

Lua looks reasonable enough, although I find it kind of hard to read right now. (losing my point, having to look up what something is etc.)

I have installed the LDT (Lua Development Tools) for Eclipse. Despite them being still in development themselves, they should come in handy.I've looked up the ECS and... I don't know how I feel about it. It sounds easy to manipulate, which is great for a game that wishes to include mods in an out-of-the-box fashion. But it sounds very... wasteful when it comes to runtime efficiency. I have never before optimized an ECS (I usually work on MVC) and I don't know yet how this 'partitioning' works. But I intend to figure that out.

You also haven't mentioned what you use for the System Code. If it's not Java (and I am guessing chances are good that it is not), I will have to do some extended research to optimize properly. (for example, Booleans in Java are significantly more efficient than in Basic, because every 8 Booleans share a header, reducing bytesize drastically. Also, Java has a fully automated garbage collector which, if the render cycle allows it some time, can greatly increase runtime performance during more extensive applications.)I have to research that background information for whatever language you are using.

I am Downloading Thrive 0.2.3.? As I write this. (I am used to using the 4 placed versions. [Release.Patch.Build.Alteration])Don't be confused if you get something like that from me.

Subject: Re: If you would have me, I would like to help where I can. Fri Nov 28, 2014 1:18 pm

The forum ate my reply; so here is a condensed version from memory:

Python 2 and 3 have a few important syntax differences, so whatever you're doing was probably written in 2, and would be incompatible with 3

We use C++ for engine code

We use luabind for Lua, which extends the language to also have objects and inheritance. I'm not suer if you'll be able to use any debugging or execution tools that come with LDT, since the Lua code is meant to extend stuff in the engine, and call functions from there, etc.

We use a port of the Artemis ECS framework. Artemis is optimized and in Java, but I am not sure how optimized the port is, so we may have to do a bunch of work optimizing, how Components are laid out in memory in particular.

We use Major.Minor.Patch version numbers, but they're meaningless to developers since we use GitHub's tools much more when we need information about the source of some code, a bug, etc. We won't mind if you add extra numbers at the end.

Thrive currently has very simple graphics, so low-resource mode is the only mode.

I forgot to mention this before: we use GoogleTest for our unit tests; but this is a C++ testing framework, and most of our developer time nowadays is spent working with Lua, so a test framework for Lua is worth looking into.

Edit: Ah wait, what exactly needs Python 2? It shouldn't be the game itself, from what I know.

I got into the habit of executing every .exe before going deeper into a system, because it often shows missing components (such as Python on my machine) as well as occasionally showing relics. (not-used-anymore code or files)

P.S.: It still does, even though I have installed it by now. May be an issue with the path. I assume it might be using a variable path that assumes that Thrive is in an folder in the programs folder. (I have it on an external disc drive)

Also, I am in Switzerland if you haven't figured that out yet.

Great, the forum edited my other post instead of this one... not to myself, don't open two edits simultaneously, can freak the forum out. I will restore it.

Subject: Re: If you would have me, I would like to help where I can. Fri Nov 28, 2014 2:33 pm

Crash course:

Cells are bags of fluid, containing "organelles". Organelles are structures that carry out some function, for example, digesting large particles, or doing photosynthesis (light --> energy). ATP is the energy "currency" of the cell, that is, it's the middle-man that carries energy from catabolic reactions (breaking down food for energy) to anabolic reactions (producing stuff, to grow, or for maintenance). With that in mind, the organelles currently available are:

Mitochondria: Use oxygen to decompose glucose, using the energy to produce ATP. These are the "power stations".

The chloroplast didn't have a button in the editor in 0.2.3, that's actually what we've been working recently on, updating the GUI, so when 0.2.4 comes out that will be fixed.

The disjointed cell issue is currently a feature, not yet a bug. By that I mean we'll fix it eventually, but until then it isn't particularly important, and is more fun anyway.

Edit: Ah yes, the evolutionary goal of any organism is to reproduce, so in-game that means you have to eat, grow, and eventually you can split. We're currently ironing out some details on how the growth and reproduction will work, so what's in-game is still simplistic.

Just tell me what part of the code to look at first and send me the documents for that part of the code to make it quicker. (Flowchart, UML diagrams[Especially the Class Diagram] and any other applicable diagram that is available)

If you don't have any diagrams yet, I can make them in Dia.

I do suggest you add that crash course you send me to the tutorial text as a second page that opens on left-click and goes back on right-click. Should be quick and easy to code.

P.S.: The poison is so slow, that you can run into it by yourself if you are moving quickly into that direction. Is that on purpose? And what's the idea behind these 'chemical dispensers'?

Subject: Re: If you would have me, I would like to help where I can. Sat Nov 29, 2014 12:18 pm

Wasn't poison supposed to be a 'toxin cloud' of sorts that dissipates into the environment, since it's a bit difficult to aim one tiny particle as a cell? Also wouldn't it make more sense for the player's cell to be immune to a toxin that it produces?

Subject: Re: If you would have me, I would like to help where I can. Sat Nov 29, 2014 1:16 pm

Welcome!

Quote :

send me the documents for that part of the code

We unfortunately aren't great with documentation but I threw this UML ish thing together for you: http://i.imgur.com/obIq63q.png It doesn't show every detail, but it shows the bigger picture! If you want to do some better diagrams you are certainly welcome to do so! Could be a good way to learn the code.

Quote :

Just tell me what part of the code to look at first

Start by looking at the lua scripts in scripts/microbe_stage/setup.lua and microbe.lua would be my recommendation!

Quote :

I do suggest you add that crash course you send me to the tutorial text as a second page that opens on left-click and goes back on right-click. Should be quick and easy to code.

Yeah that would be fairly easy to make! We're currently working on drastically updating the GUI so it would probably be worth waiting for that to finish up.

Quote :

The poison is so slow, that you can run into it by yourself if you are moving quickly into that direction. Is that on purpose? And what's the idea behind these 'chemical dispensers'?

The toxin is just a mechanic being implemented (agents affecting other cells) and then a quick example of the mechanic being thrown into the game, it's not something that was taken from the design docs. We're focusing on adding features atm and then we can add the right content and polish it up later!

Subject: Re: If you would have me, I would like to help where I can. Sat Nov 29, 2014 1:43 pm

@Atrox: We're working on a system for that which will integrate well with auto-evo rigth now, actually. In summary, yes to clouds, no to immunity. We've got a model where you evolve resistance to each toxin, and sometimes you can't do it independently (so sometimes becoming more resistant to one means you're less resistant to another, sometimes you can become more resistant to multiple toxins with the same mutation).

Subject: Re: If you would have me, I would like to help where I can. Sat Nov 29, 2014 2:45 pm

moopli wrote:

@Atrox: We're working on a system for that which will integrate well with auto-evo rigth now, actually. In summary, yes to clouds, no to immunity. We've got a model where you evolve resistance to each toxin, and sometimes you can't do it independently (so sometimes becoming more resistant to one means you're less resistant to another, sometimes you can become more resistant to multiple toxins with the same mutation).

Subject: Re: If you would have me, I would like to help where I can. Mon Dec 01, 2014 3:48 pm

Alright, I have taken a surface look at the code, but right now I think we should start somewhere else.Namely, the directories.I feel like the directories could use some optimization just for orientation's sake, especially since this is a community project.

For that purpose, I am currently making an 'is' diagram. I will then make a 'suggestion' diagram.However, I wish to upload them both to a community server with backup, since documentation lost to hardware failure ranks among the worst things possible for a project.

Subject: Re: If you would have me, I would like to help where I can. Tue Dec 09, 2014 4:38 am

Sure!

If you're using windows I'd recommend downloading and installing TortoiseGit that gives you right-click menu options for git stuff!Then you can find some general git: https://try.github.io Note that github is the git hosting service we use!

Subject: Re: If you would have me, I would like to help where I can. Wed Dec 10, 2014 7:56 pm

Is this Game still happening, or did everyone just get my hopes up for a huge over estimated pile of non-finished poop. I am no trashing this idea, i think its awesome, but there hasnt been ANY news or way to get news, so im in the dark. If you know whats going on please tell me. Thanks

Subject: Re: If you would have me, I would like to help where I can. Thu Dec 18, 2014 10:50 am

Okay, here's an update:I have absolutely nothing... but there is a reason.First off, I can't figure out where I should place my diagram. no biggie.Secondly, I got a really bad cold, then a bad cough, then the cold again, and now the cough. If you actually check my youtube channel (JOSHItheDrako) You will see that I haven't been able to keep my LP schedule up either. So I am WAY behind everything. I probably just cut my losses and return to schedule rather than catching up.Or I would... if the Heating in this place hadn't just broken down in the middle of December!

Subject: Re: If you would have me, I would like to help where I can. Thu Dec 18, 2014 4:44 pm

JOSHItheDrako wrote:

Secondly, I got a really bad cold, then a bad cough, then the cold again, and now the cough. If you actually check my youtube channel (JOSHItheDrako) You will see that I haven't been able to keep my LP schedule up either.

Get well soon, man! (Never knew Pink Yoshi used to be raspberry...)

JOSHItheDrako wrote:

Or I would... if the Heating in this place hadn't just broken down in the middle of December!

Belgium. Me being from Houston, it sounds dreadful to lose heating way up there (or wherever you are, really)! Probably on par with us losing air conditioning at any time down here! Hope things get better! Maybe the circuit breaker's just off... unlikely, but still.

Subject: Re: If you would have me, I would like to help where I can. Thu Dec 18, 2014 6:06 pm

MitochondriaBox wrote:

Get well soon, man! (Never knew Pink Yoshi used to be raspberry...)

Thanks, I hope I will.

MitochondriaBox wrote:

Belgium.

Switzerland actually. (Not to be confused with Sweden or Swatziland) It's not so bad here. Really, we have a really warm winter. (varying between 6 and 14°C), but it's still not particularly comfortable.

Subject: Re: If you would have me, I would like to help where I can. Thu Dec 18, 2014 8:07 pm

JOSHItheDrako wrote:

Switzerland actually. (Not to be confused with Sweden or Swatziland) It's not so bad here. Really, we have a really warm winter. (varying between 6 and 14°C), but it's still not particularly comfortable.

P.S.: Houston, We've got a problem! XP

I meant "Belgium" as in the forum in-joke (swearwords used to be censored with "Belgium"), but good to know.

Man, imagine having a space rocket you painstakingly made in the Tech Editor going horribly wrong... Or anything in any editor, really. Good thing there's Test Mode! ... Except for the Nation Editor, but catastrophic anarchy's never been that bad, right?