Melkon Posted July 17, 2013 Report Share Posted July 17, 2013 (edited) Position: Gameplay programmer, i am not really sure i can help in that because i am lack of experience, but i will try to be useful.Do you understand that Wildfire Games is a non-commercial project, work for 0 A.D. is volunteer, and work is done for free?YesDo you agree to distribute all your work for Wildfire Games under Creative Commons Attribution Share-Alike license?YesName:Attila Szenczi (alias Melkon)Email:melkonka (at) gmail (dot) comSkype:m3ikonLocation:HungaryAvailability:I guess about 20h a week, i can guarantee at least 10 in the next 6 month.Age:22Occupation:Study, hopefully slowly works too.Skills and Experience:I am lack of experience, i learn programming in my university.Motivation:I want to make games.Personality:"Just one more chapter and i go to sleep." Short Essay:Today, i searched for C++ game projects in google, i saw a topic from last year where you searched for developers, and i am lucky because you still do it. Actually nowadays i work on my first project (http://code.google.com/p/melkontd/), i know it's not a big deal and the code is terrible, i like to join you because i want to improve myself. I always wanted to make games, so when i saw your project it was no question for me that i must try to join you.Interests and Hobbies:I really enjoy to play board games, there was a half year when we played through every night. I like to read fantasy books, actually i mostly read the same books over and over again. I also like to play table tennis and of course i enjoy to playing video games. When i can go to a concert from some of my favourite band i always go.I am also a big fan of Trading Card Games, i was a professional HKK (It's a hungarian TCG that started in 1995, a bit similar to MTG) player, i try most online TCG and i can spend alot of time to play with them.Staff:NoCommunity:(Optional) What communities, websites, or forums do you frequent that relate to your interests and the gaming world?Favorite Game:At the moment it's League of Legend, i am not bad in that (statistically i am in the best 2%), and because i really love how Riot improve their game and how they communicate with player base i think it's my overall favourite too.Work Examples:As i mentioned before, i am lack of experience, i can only give you that: http://code.google.com/p/melkontd/ i know that's not too much. Edited July 17, 2013 by Melkon Quote Link to comment Share on other sites More sharing options...
plumo Posted July 18, 2013 Report Share Posted July 18, 2013 Welcome, Attila (epic name by the way )!One of the programmers will get to you soon, or go on our IRC irc://irc.quakenet.org/0ad Quote Link to comment Share on other sites More sharing options...
sanderd17 Posted July 18, 2013 Report Share Posted July 18, 2013 (edited) I've just started programming for 0AD too, and it's organised a bit archaic. You just pick a task you'd like to do, work on it and ask for review.The tasks can all be found on trac: trac.wildfiregames.com/report/1 with some easy ones in this list: trac.wildfiregames.com/report/15To get to know the code, I propose to also check out the wiki: http://trac.wildfiregames.com/wiki (it also mentions the process for patch submission and reviewing)And when you have questions, irc://irc.quakenet.org/0ad-dev is a better choice to be as a developer.Also, if you want to change gameplay, you have to play the game. Just to avoid introducing oddities in the gameplay. Edited July 18, 2013 by sanderd17 Quote Link to comment Share on other sites More sharing options...
RedFox Posted July 18, 2013 Report Share Posted July 18, 2013 Hello, Atilla, glad to have another programmer signing up to help with 0 A.D. Taking a look at the code, you still have some fields to improve in, but I think you can definitely do it What I found:Comments - If you're a beginner, then this doesn't make sense, but honestly, you should comment every function of your project with even a brief description - even if the function itself is obvious. This habit has saved me a lot of trouble in the past when I have to edit code I wrote years ago. I suggest you follow the Doxygen commenting style, since that is what we use in 0 A.D. http://en.wikipedia.org/wiki/DoxygenReferences - You don't seem to use pass-by-reference for objects. In general, it is a good habit to forward structures like Vector2f as 'const Vector2f&', to avoid a copy-constructor. In general, everything bigger than 8 bytes should be passed as a const reference (like Vector3f, which we use a lot). Here's a few articles on const correctness: http://www.parashift...view-const.html.Const Correctness - If you want to write good C++, you must also write your code to be const correct - functions that don't modify object state, should be declared as const and return const reference to a non-POD (plain-old-data) type:sf::Vector2i ClickableArea::getChoord1(); // beforeconst sf::Vector2i& ClickableArea::getChoord1() const; // afterCode Formatting - While this is a philosophical debate at its heart, in general we want code to stick to this standard, which is the most readable: http://trac.wildfire...ions#FormattingCode Quality - You should try to make code simple and readable. Over-complicating code can make it harder to read for others. For example:This code:bool Tower::haveValidTarget(std::vector<Minion*> minions){ if(true==haveTarget && isInRange(target)) return true; else { for(auto it=minions.begin();it!=minions.end();++it) { if(isInRange(*it)) { target=*it; return true; } } } haveTarget=false; return haveTarget;}Could be better written as:/** * Updates the current target minion. * The first minion that appears in range is chosen. * @param minions Vector of minions * @return True if a minion is targeted, False if no target. */bool Tower::haveValidTarget(const std::vector<Minion*>& minions){ // old target still in range? if (haveTarget && isInRange(target)) return true; // keep firing at it // we need a new target: for (Minion* minion : minions) { if (isInRange(minion)) // pick the first minion in range as new target { target = minion; // target in sight haveTarget = true; // you should set this value if you want to use it return true; } } haveTarget = false; return false; // no targets in sight}You should also notice that you made a serious programming error by passing 'std::vector<Minion*>' By-Value. This means it copied the entire vector instead of passing it as a reference 'std::vector<Minion*>&'.For now I recommend joining the IRC Developer Chat, grabbing a copy of the SVN repository via our Trac and then find yourself a Ticket you feel comfortable with.Here's our guide for submitting patches: http://trac.wildfire...bmittingPatchesHave fun! Quote Link to comment Share on other sites More sharing options...
Melkon Posted July 18, 2013 Author Report Share Posted July 18, 2013 Thank you for answers and code review, i will do my best to improve. Quote Link to comment Share on other sites More sharing options...
RedFox Posted July 18, 2013 Report Share Posted July 18, 2013 Great If you have any more questions, feel free to join our IRC Dev Chat: http://webchat.quakenet.org/?channels=0ad-dev Quote Link to comment Share on other sites More sharing options...
Melkon Posted July 18, 2013 Author Report Share Posted July 18, 2013 Great If you have any more questions, feel free to join our IRC Dev Chat: http://webchat.quake...hannels=0ad-devI am here. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.