A while ago(2008), one of the best reverse engineers I know gave myself and a friend a pretty in-depth lesson about process hooking and DLL injection, and also covered how to get around many common issues faced when doing so. You can find the transcript of the conversation here: http://www.assembla.com/wiki/show/openbook/Hooking_Lesson_1
Note: It is an IRC conversation, so it starts off at a bit of a random point.. keep reading however, there is a lot to be gleaned from it that I think would be helpful to you.
I'm not sure how far you are through your schooling. Since you're asking this, I'm going to assume that you haven't learned about version control yet.
A broad overview of version control is that you have some software that manages your code for you. It will retain old versions of your code automatically, so that in the case you that eff something up, you can revert to an older version. As you make changes, you submit your changes to the "repository" and the system updates to reflect the most version of your code. You can think of it broadly as just a really fully featured save.
What is common is to have this system running somewhere on the internet, so you can access your code from anywhere. You just contact your version control host and be like "yo, give me the latest version", and then you've got it, and you can work on it, and save your updates. When you do it like this, it kinds of end up being like a fancy dropbox with programming in mind.
This is super important. It's essential to have in a professional setting (it allows for much better collaboration on projects). Even if it's just your own personal projects, it's a really good idea to get used to using it.
As for what type of version control software you want to use, you have a few choices. I think SVN is a good one to start with, mainly because its workflow is pretty intuitive right off the bat. You can also use "git", or if you're a student I think you can get a cloud based microsoft team foundation server through dreamspark which is also pretty intuitive if you're working out of visual studio.
There are webservices that will offer small free repositories which will likely be more than enough for a student. I think assembla has something along those lines. We used it for a student project a few years ago.
Basically the same requirements as the first game. In the first game, dynamic shadows and SSAO could be enabled to really eat a good chunk of GPU resources, and I'm sure that Nvidia's FXAA (or this external FXAA injector which has more options and tweaks you can set) will work too, so yeah, you'll be able to stretch your video card to its limits as long as you like making the kinds of tradeoffs that these features want from you.
And I highly recommend adding some FXAA to Borderlands 1 (and presumably 2) if you can, because it really makes those graphic novel strokes look amazingly smooth. For some games with photorealistic visuals, FXAA kind of muddles it, but I find that it's just damn near perfect for a game that looks like BL.
Python is a great glue language, for specialist tasks (in your case, image manipulation) you can use Python as the glue that binds specialist libraries.
ImageMagick is a solid 30 year old library of image manipulation routines written in C with an API that crosses many languages, including the CLI (command line interface). Look into it, it has a Python Interface.
This post looks relevant, your mileage may vary . . .
Take a look at this script I made: https://github.com/nemec/Automaton/blob/master/Automaton/plugins/google.py
Basically, you need to make a request to the url
> http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=QUERY&start=START
Where QUERY is what you're searching for (eg. hello+world) and START is which result offset you want - I think it only returns four results by default, so you'll definitely want to make a number of calls.
Here's a link to extra (possibly unofficial?) search arguments: http://www.assembla.com/wiki/show/SAMS/Google_standard_search_arguments
You can change the filters manually by editing the mission files. You can also easily use the FXAA injector an apply your own filter.
Last but not least, downsampled and filtered pictures unfortunately do not show off what the engine can do, but rather how good you are at taking screenshots. The VR Engine needs hoards of work. Bohemia has had a decade to produce a competent engine.
It's only a small project to help me learn C, but you are more than welcome to take a look at the code.
I have submitted it to an SVN respository -- http://www.assembla.com/code/uwinconsole/subversion/nodes
I haven't implemented a few things yet, such as ping and zip/unzip. I did start working on unzip/zip, but I was struggling with the zlib library so it'll probably be something I implement later on.
Eventually I hope to find a way to call the executable using a symlink like how busybox works on *nix, although I'm not entirely sure if that will be possible. Nonetheless, it's an interesting project to work on for learning C.
Also, if you notice anything I'm doing wrong, or want to make improvements, feel more than welcome!
Ok feels like I'm ready to turn this one in (homework rc1?). Again working in Java on top of the Slick library. JAR packed with JarSplice to work cross-platform (win, mac, linux).
Game is called Crack Shot, because you shoot. All pixel art done (poorly) by myself, all sounds courtesy of Freesound.org. Use WASD to move, mouse to aim and shoot. There are 3 different types of bullets and 6 different guns. Goal is simply to survive as long as possible, and to set a high score. (just scored 239 myself)
EDIT : Updated the download since I worked on the game slightly more last night. I'd consider the game more or less "complete" for what it is. Only changes are a prettier title screen and addition of the explosions when rockets hit something.
-
I'm not sure how the balancing turned out and I'd love any feedback from anyone willing, this is the first game that I've made myself.
it does not. some people have hooked up their bots to directly post to d2jsp but i am not into that sort of botting.
the c++ core hooks into the game. the actual code i've only glanced at a time or two. its called d2bs, an open source implementation of the core.
now, people have made clients for d2bs. the client i used is a closed source one called d2nt, based off d2bs and OOG. OOG is a client interface written in VB8 by a guy named bobode (i believe) and you can find that svn here
http://www.assembla.com/code/bobode/subversion/nodes/OOG
the guys on the irc will want you to use the open source oog + d2bs, they don't like d2nt for good reasons.
but i had trouble getting more than one window to open with it, and i almost edited the VB source since i'm sadly very good at VB. but then i said fuck it i'll try the easy way and i've been modding that since
sure. i think you mean running a bot right? the one i use for more than one acct is http://www.blizzhackers.cc/viewforum.php?f=221
the other major one is http://www.assembla.com/spaces/bobode/documents/bV-oVYzhCr4kkceJe5cbLA/download/bV-oVYzhCr4kkceJe5cbLA
You are unemployed so you may not want to shell out any cash, but many of the free repositories offer paid private services. Assembla offers a $9 month plan and is a pretty decent site. Just create a read only guest account for resumes. You are using source control, right?
Another option would be to host your own. I use trac with svn on a cheap Ubuntu box. Reasonably simple to setup. You have to be mindful of security, but it would look nice to a potential employer that you had the knowledge to setup your own and it's a great tool to have for personal development.
I purchased a cheap SVN solution from Assembla
I'm not sure if it is still actively being sold, but there was a hobbyist subscription that allowed ~3 users, and ~15Gb of storage for less than $10/month. Full SVN controls meant I was able to use Tortoise SVN and Visual Studio SVN to manage check ins/versioning.
Ship Name: Titus.
Faction: The Red Storm.
Authorization Number: Sunder-BC-09
Ship History: A surprise find not too long ago, the Titus has been refurbished like most other ships of the Storm. Titus has advanced cloaking systems, able to stealth completely for hours at a time. Titus was once used as an exploration vessel, to scope out foreign or even hostile sectors, reporting back to the main ship. Evidently, the previous owner of Titus decided to head into the wrong sector, and the ship became a wreck until the Storm stumbled upon it.
AI: Basic navi systems.
Ships | Chart | Rationale |
---|---|---|
Hull Strength | 4 | |
Shield Strength | 4 | In a pinch, Io can sheild her ship with a force field. While in stealth, the shield system is down. |
Shield Charge | 5 | |
Weapon Strength | 3 | |
Crew Size | Nonnumerical | One - Io. She doesn't let anyone else touch it, excepting Voxel. |
Speed(Out of Warp) | 7 | |
Armaments | Nonnumerical | The Stealth system, one small EM canon, and a plasma laser designed for breaching hulls. |
Crew Skill/Experience | 5 | |
Ship Price | Nonnumerical | Mid-range, pretty costly for a light ship. |
Fuel/Engine Power | 5 |
There is another (paid) option: Assembla
If you take each tool (git, wiki, subversion, tickets, support, stand up reports, etc) individually, none of them is best of its breed. But the fact that they all are integrated makes Assembla as a whole a great solution.
slightly off topic, this post inspired me to re-install freelancer.
i decided to use this to upgrade the graphics a little, but dont know where to chuck it, as putting it in the EXE folder does nothing.
Any tips?
SourceForge is very powerful, yes, but there are three reasons why I discarded it at work:
It does not allow us to pay for hosting closed-source projects (I don't want to set up our own servers for a number of reasons, including availability, administration, ease of access for telecommuters, etc)
The UI is very very complex
No project management (Scrum, etc)
We tried GitHub (issue management is looks like a toy, people need to learn markup to edit the wiki), Launchpad (again, too complex, people were lost), Codesion (awful, disconnected parts put together), and a lot more.
In the end, we went for Assembla instead and we are very very happy. Everybody is using it: developers, managers, doc writers, support and testers (it's lacking a dedicated test management tool, though). In Assembla all the tools are very tightly integrated, and the Stream makes it very easy to keep track of what's going on.
If you didn't it running you need to download all the files in the package and save them to the same location. Then you can use the .exe (remember to run as admin)
Didn't have a ton of time to work on this assignment but wanted to get in at least the basics! I used Slick in Java. Also learned about setting up an executable JAR using JarSplice, so it should work cross-platform.
EDIT: Repackaged the JAR and source code following the naming convention that was requested in the lesson 2 dropoff post.
When we went to git we were working a project with about 4 or 5 people (some of them outsourced to the Ukraine). Our repository was hosted on Assembla, which at the time was very convenient because it was also tracking our projects and tickets. Their concept of spaces is cool, but they're a little pricey.
As for IDEs, I never really asked around to see what the team was using. Myself and the other main coder like the control of having a local copy with drush on Apache2 so we both code from Ubuntu VMs. We use the free NetBeans IDE, cause it's free and works just fine on debugging PHP code.
It's sort of hidden. http://www.assembla.com/catalog
At the bottom of the list it says "We also have some limited free options where you can't add extra tools". Then select "Free Git Repository – Commercial Quality". Then on the next page under Security where it says Non-member access, select "Allow [None] for public access" to make it private.
> I'm pretty happy with tool support. When did you try it the last time?
I tried both the Eclipse and Netbeans plugins about 6 months ago. I've been trying the new Eclipse one today. It's still a bit rough on the edges, specially on error reporting, but it improved a lot. Now, it builds my code instantly, so I'm pretty satisfied with it.
Note: If anyone wants to try it with Eclipse Helios, don't use 'http://download.scala-ide.org/update-current' as the update URL. Instead use: 'http://download.scala-ide.org/releases/wip_experiment-2.0.0-beta2' for the time being or it will trigger this bug and won't even install.
I have to use private repositories for school work, because I'll be liable for misconduct if classmates find and copy my code. Most free repositories are public and only let you publish under an open source license. The best option I found for this semester is Assembla. They'll give you a private SVN repo for free, in hopes that you'll pay for upgrades.