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.
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:
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.
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.
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.
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?
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.
Users browsing this forum: No registered users and 1 guest
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum