Programmer applications

Programmer applications

Post Reply
User avatar
aegis
Posts: 2456
Joined: 11 Jul 2007, 17:47

Programmer applications

Post by aegis »

First, review these proposals.

Reply with the proposal you wish to implement and say why you think you're a good candidate for the proposal.

Feel free to submit a new proposal yourself before offering yourself as a candidate, if you don't see something you want to do.
User avatar
Erik
Posts: 283
Joined: 20 Aug 2009, 20:49

Re: Programmer applications

Post by Erik »

Is there anything small that i can do with C++ but low Spring engine knowledge?
imbaczek
Posts: 3629
Joined: 22 Aug 2006, 16:19

Re: Programmer applications

Post by imbaczek »

not really, but it isn't overly hard to get into the engine with some pointers, which you'll undoubtedly receive from a mentor or other community members here.
User avatar
Erik
Posts: 283
Joined: 20 Aug 2009, 20:49

Re: Programmer applications

Post by Erik »

Sure if yone wants to teach me i can do something.
User avatar
MidKnight
Posts: 2652
Joined: 10 Sep 2008, 03:11

Re: Programmer applications

Post by MidKnight »

It's 2012 and time once again for GSoC Student apps!

This year, we're doing things a little differently. Please fill out this application and post the completed application here.

We'll get back to you promptly.
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

Re: Programmer applications

Post by gajop »

Btw, I think you should be posting a project proposal on the google page before any student applies. But in case you need motivation/assurance that there will be applicants, here's mine:


Name: Gajo Petrovic

Email: gajo01@gmail.com, gajop@uns.ac.rs

Spring Forum user name: gajop

If you don't have one, please make one here
IRC or Spring Lobby nickname: *gajop (gajop with a clantag sometimes)


Your Projects (any of these would be fine, I'm also open to suggestions)

1. http://springrts.com/wiki/GSoC_Limited_play_area
Why did you select this specific project?
This would be a great addition for more customized RTS gameplay. Having restricted play area will probably allow for better singleplayer missions as well as new game possibilities. Also, it may allow for better looking map ends, where the play area will always be smaller than the actual map, allowing the map to be surrounded by map/feature boundaries.
What makes you suited to doing this project?
The project itself doesn't sound too hard. Most of the work (which should probably be spent before GSOC) will be in identifying the places where map based assumptions are used. After that it probably won't be too hard to modify those and lua-fication shouldn't be too hard (I've done similar stuff before with Java AIs).

Schedule
Please provide a plan of how you will spend the time on the task. You should aim to define a milestone roughly every week.
One item per week:
1. Identify the code areas that have to be changed. For now work on only a single custom rectangle (smaller than the map).
2. Restrict unit commands for only the play area.
3. Restrict player vision for only the play area.
4. Test, improve, consult with the mentor and consider future changes.
5. Expose Lua functions for controlling/viewing map boundaries.
6. Add different shapes (circles f.e). Add multiple shapes (conjunction).
7. Expose Lua control for different and multiple shapes. Consider adding area negation (f.e everything except this circle).
8. Test, review, improve.

2. http://springrts.com/wiki/GSoC_Ingame_lobby
Why did you select this specific project?
Most of the things that have to be done for this (changing mod during runtime, better spring GUI, lobby communication) is stuff I want done anyhow, both as a gamer and for my Scenario Editor.
What makes you suited to doing this project?
Regarding the UI part, I've created Chili editbox and combobox controls. As stated above, I want some of this stuff implemented for myself anyway, so I have the motivation I need to see it through. Even with all that said, it probably won't be easy, and I will have to depend/cooperate to have some fresh projects working (abma's Lua Sockets f.e).

Schedule
Please provide a plan of how you will spend the time on the task. You should aim to define a milestone roughly every week.
One per week:
1. Expose lua functions for fetching current games, channels, joining battlerooms and sending text to battlerooms and channels. Create lua callins for battlerooms closing and receiving text in battlerooms/channels. Expose lua function for logging in to the lobby, and implement some server call-ins.
2. Create a sample lobby for 1. using Chili.
3. Allow spring to persist after the game has ended by returning to the start screen, implement a call-in for the game end
4. Implement spring clean-up and allow mod changing.
5. Test, fix, review stuff.
6. Decouple Spring and lobby into separate processes. Have lobby persist during game loading and in-game.
7. Do the little things, such as adding missing lua functions, call-ins, load screens, etc.
8. Testing, fixes, improving the created example lobby.

3. Unicode, Lua exposing, the little things
What's your goal? What do you want to archive?
This project would add some small, generally unrelated features, such as Unicode support and a number of lua exposed functions. Some of these functions would be probably fully new features, other only a lua-fication of an already existing command (f.e /globallos 1). Examples of these functions would be the existing: /specfullview, /globallos, /team, /take, /ai*, and the new (some may exist): addTeam, addPlayer, addAlliance, changeAlliance. It would be great if certain other things could be added: 1) unexplored map, 2) unit coloring regardless of team, 3) custom (shape based) player vision/lack of vision
Why did you select this specific project?
I believe some of these features (Unicode especially) would be awesome to have. The lua exposure is imo necessary to have a wider variety of games/missions, and some features such as unexplored (completely black) parts of map, and custom vision would allow for new types of missions to surface.
What makes you suited to doing this project?
Most of this stuff will be a combination of C++ and Lua (and their bridge). I've been using the Spring lua interface a lot lately, so I know what things I've been missing, and which things would be great to have. In general, it doesn't feel hard, as some of these features have already been implemented as commands and only require lua exposing.

Schedule
Please provide a plan of how you will spend the time on the task. You should aim to define a milestone roughly every week.
1. Unicode in every reasonable place.
2. Start exposing the existing commands to lua. Test the new unicode interface.
3. Start implementing the new functions.
4. Test everything and review future prospects.
5. Add unexplored map and it's lua control/read.
6. Add custom player vision and lua control.
7. Add custom (per unit) based coloring.
8. Test stuff and add whatever's lacking.

Regarding all projects
How much time do you plan to invest in the project before, during, and after the Summer of Code?
If I get accepted to GSOC, I plan to spend at least 1-2h each day before GSOC begins to get familiar with what I will be doing, lay out general ideas and plan for future work. It is unlikely I will be making any code changes before it starts, but I should be able to lay the foundation so I don't run into any problems that can be avoided by proper planning.
Once it starts I will probably be working 5+h daily, including weekends, and will likely achieve an average of 7-8h daily (per workday). In case I or my mentor believe I'm falling back behind my schedule I will put some more hours into it.
When the GSOC ends, I will definitely keep tract of the project in the future for bugs that have been missed and look for user requests (probably just content devs, and that includes me, too).

Do you have any other commitments during the summer? Bear in mind that your commitment to the Summer of Code is full-time. If you have exams or other commitments that take place during the Summer, make sure you factor those into your schedule and plan to catch up later.
Probably not, I may find employment at my local university near that time, but since it's summer break it won't really be a problem.
After the summer, do you envision the project being extended into the future? No concrete plans are required here, just some ideas of where you might like to take the project once the Summer of Code has ended.
Yes, I will probably be using most of these projects in my AI and Scenario Editor (check the Toolbox site!), so I'd like them to be as usable as possible - meaning there'll probably be more requested use cases (and hopefully not by just me) one cannot think of right now.

Your Skills
What platform do you use to code? Hardware specifications and operating system
I use Arch Linux and Windows 7 to write code. For Spring and otherwise open source related stuff I prefer using Linux, but I've got it set up on Windows as well for occasional testing. I have a quad core intel CPU 2.6GHz, 8GB Ram, 1TB hard disk and Nvidia 8800 GT (cuda compatible)
Did you code in C++/Lua, yes/no? what's your experience? Did you contribute to other similar projects?
I coded in both of those languages for a couple of years now. A couple of projects you may find interesting:
C++: (a batch -> bash converter I did with a friend for a course project) https://github.com/ea/batch2bash
Lua: https://github.com/gajop/Toolbox (using toolbox as a framework for a scenario editor I'm working on, planning an initial release soon-ish)


Spring and You
Have you been involved in Spring development in the past? What was your contribution?
As far as the engine goes, I've only done a single patch for the AI interface (https://github.com/spring/spring/pull/31). However, in the past I have worked on projects that are related to spring:
1) MyAI - unnamed and unreleased, but WIP page is here: https://github.com/gajop/MyAI. This is how I first got into developing for Spring, after participating on the Starcraft AI competition.
2) https://github.com/gajop/Toolbox - mentioned above
3) https://github.com/gajop/springgrid - site for automated AI matches, along with https://github.com/gajop/botrunner - client for running AI matches, it's can be used by AI developers to queue and execute large amounts of AI matches in a distributed fashion. This was initially created by Hugh Perkins, after which I moved most of it to pylons, cleaned and optimized the code up a bit and added some basic functionality (you can actually view leagues and their results now).
Have you worked on other open-source projects in the past? If so, which, when, and in what role?
Nothing of note really, I only submitted a couple of patches to some open source (linux) programs that were buggy/I wanted to improve. F.e I submitted patches to tmux (terminal multiplexer similar to screen) to allow key movement to other windows other than left and right.
User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6240
Joined: 29 Apr 2005, 01:14

Re: Programmer applications

Post by FLOZi »

Perhaps an additional thread for comments?

gajop, I suspect that Unicode support is a big enough project in itself without the additional bits of lua-fication.
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

Re: Programmer applications

Post by gajop »

FLOZi wrote:Perhaps an additional thread for comments?

gajop, I suspect that Unicode support is a big enough project in itself without the additional bits of lua-fication.
Maybe, it doesn't sound so threatening though, even if there are some quirks other than a simple replace. Adding IME support for some languages may be a bit harder, but would probably be needed if this is to have a purpose.
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

Re: Programmer applications

Post by gajop »

tick tock, tick tock,
this is the sound of there being only 4 days left until the deadline - March 9, 23:00 UTC

do we have any mentors? I promise I won't be too demanding if I get accepted!
carpeamentum
Posts: 3
Joined: 06 Sep 2012, 18:15

Re: Programmer applications

Post by carpeamentum »

So, I tried to go access the linked proposals before posting, but I appear to be not allowed to view them for some reason.

I would like to get involved with this project. I need to familiarize myself with spring before I do much for sure.

After I do that, I would like to work on some small things and work my way up to hopefully working in some automated build testing if it fits in with the methods being used. Clearly that will need some investigation, but I figured I would introduce myself here before I dig too deep.

I will start digging around the documentation for the next few weeks in my free time.

Feel free to point me in a direction if there is a particular part of Spring in need of more vigilant testing, etc.
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: Programmer applications

Post by hoijui »

wow.. cool! :D

so you say, you can not see this wiki page (for example):
http://springrts.com/wiki/GSoC_Limited_play_area
?
what error do you get?

as i am not sure whether you already know.. we already have some automated tests. very few unit tests, and a few tests that run short games where AI plays vs AI.

you may want to join #sy in the lobby (or #taspring on freenode IRC), if you want to talk to engine devs.
more interesting and informative then most docu will be, is probably to look at the git repo content directly.

can you probably tell us what your interests are in spring (except writing tests), and some about your experiences?
carpeamentum
Posts: 3
Joined: 06 Sep 2012, 18:15

Re: Programmer applications

Post by carpeamentum »

hoijui wrote: so you say, you can not see this wiki page (for example):
http://springrts.com/wiki/GSoC_Limited_play_area
?
what error do you get?
I can see that page just fine. The page linked at the top of this thread (http://springrts.com/phpbb/viewforum.php?f=61) causes me to get the text "You are not authorised to read this forum".
hoijui wrote: as i am not sure whether you already know.. we already have some automated tests. very few unit tests, and a few tests that run short games where AI plays vs AI.
I was not aware. I will look into perhaps augmenting the testing. I'm not sure when I am going to get to fully dig in, but it shouldn't be terribly long.
hoijui wrote: you may want to join #sy in the lobby (or #taspring on freenode IRC), if you want to talk to engine devs.
more interesting and informative then most docu will be, is probably to look at the git repo content directly.
Noted. I will have to do that once I get to setting up my working environment and/or to really looking over the project structure fully.
hoijui wrote: can you probably tell us what your interests are in spring (except writing tests), and some about your experiences?
I recently discovered that my C++ knowledge has gotten a bit fuzzier than I thought it had gotten (I work primarily in C at an aerospace/defense company). I resolved to find a good open source C++ project to re-hone my C++ skills on. As I am aspiring to get into a games industry company (as I imagine many of us here are), I figured a games related project would be the most advantageous as far as experience goes toward that goal.

My experience includes significant amount of time spent with rigorous testing. Also, the position I will be targeting at the game company is related to their testing and tools efforts. These two things combined meant that I figured I could work on improving testing scope and coverage for a project like Spring and have a very nice addition to the ol' resume.

I also have interest in graphics code and AI (though my experience in AI is largely in reference to the academic focus of heuristic search).

Oh, and I like RTS games... so, I figured that spring seemed like a good fit.
MajBoredom
Posts: 17
Joined: 24 Nov 2013, 09:14

Re: Programmer applications

Post by MajBoredom »

Hello,

I'm new to the springrts community. I play occasionally under a different name, but mostly I am interested in programming. The proposals page at: http://springrts.com/phpbb/viewforum.php?f=61 ...does not allow me to view (I am not authorized to view).

I run linux (Fedora / 64 bit). I would be happy to find and trace existing bugs. I've been reading the source code for some time now and I have some understanding of the main parts of simulation and networking. I know less about OpenGL and graphics than I do about systems, algorithms, and networking.

I'd like to contribute a patch that allows users to bind key sequences. For example the sequence [Ctrl-A, k] would bind to a separate action from merely pressing [k] if the duration between the Ctrl-A and the 'k' keypresses are less than some small interval, which is a configuration setting.

This seems relatively easy to add, can be made fully backward compatible, and does not interfere with any existing subsystems.

That said, I have not spoken with any of the existing developers and am seeking mentorship in the area of creating patches, submitting pull requests and so forth. I am familiar with git for parallel development.
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

Re: Programmer applications

Post by gajop »

Hey, welcome.
Seems like you could do that feature in lua entirely, no need to encumber engine with it.
Btw, the GSOC proposals (and big feature requests in general) can be found here too: http://springrts.com/wiki/Project_proposals
User avatar
Beherith
Posts: 5145
Joined: 26 Oct 2007, 16:21

Re: Programmer applications

Post by Beherith »

If you are looking for smaller issues to tackle, I recommend taking a look at the mantis bug tracker and see if you find anything you would like working on. Oh and welcome to Spring!
Post Reply

Return to “New Developer Discussion”