Download presentation
Presentation is loading. Please wait.
1
Dead Coders Society Lukas Sabota October 2010
2
A little about myself Junior at RSC CS major Programming enthusiast
3
Open Source Source code for programs available for use, reuse, modification, and redistribution (in some cases) GPL, BSD, Apache
4
Why should YOU care about Open Source
No need to reinvent the wheel Many open source libraries available for your use Borrow code Improve upon software that you use Add features yourself without having to just hope that the upstream develops might add the feature you want
5
My Contributions Various games written from scratch that probably no one outside myself and a few people will ever play/remotely care about It was fun to write; killed a lot of time in high school Learned a lot from building something from the ground up If anyone actually were to play the game outside myself, they're free to do whatever they want to it. Someone could actually make these games fun or something if they wanted. I recommend this to people who want to sharpen their coding skills
6
My less insignificant contributions
FCEUX FCE Ultra X FamiCom Emulator Ultra X X – One emulator to rule them all, one emulator to find them Was abandoned by its original creator, Xodnizel He probably got a life or job or something (both of which i'm currently working on) Since he licensed all his code under the GPL, others could modify and improve the codebase. If the code wasn't under an open license, FCEU would have most likely fallen into obscurity.
7
A little more about FCEUX
Other hobbyist coders began to add features and fork their own versions of FCEU that added their features (video recording/playback, Speedrun tools, debugger, etc etc) While this seems great, there were about eight different versions of the software being seperately developed. Because of this, a couple other NES-heads and I took the new features from the forks and merged them back into FCEUX. If GIT was used, or these developers would have just contributed directly to the project, this huge merge of code/features would never have had to take place MORAL OF THE STORY: Git is awesome, use it. If you fix a bug or add a feature to a peice of software, submit a patch to the developers.
8
Getting Involved FCEUX is hosted at SourceForge.net
There are other good code hosting sites, I'd recommend Google Code as well. FCEUX used to have some serious issues with configuring input, especially for gamepads. Fetched the code via subversion (svn) Found bug, created a patch, and submitted upstream. Upstream invited me to join the project, and I accepted and begun an epic 8 bit journey
9
So what have you actually done?
Started with baby steps; fixed some minor bugs that annoyed me. Revamped a lot of the code that was painful to deal with FceuX only had a GUI for win32; mac and linux users were S.O.L and had to use the command line Designed and wrote a GUI Overall maintainence of the SDL version of fceux, and a lot of things I can't remember
10
GUIs Options for writing a GUI: Write directly for the OS
ie: win32 API, Cocoa for OSX Pros: Look and feel is what you'd expect Cons: Platform dependant. Can also be ugly and fairly low-level Use a GUI toolkit library Ie: GTK, Qt, WxWidgets, Swing Pros: Portable across major three platforms, less messy than using the Win32 API Cons: Sometimes look out of place (think of pretty much any Java/Swing app)
11
Win32 API Can be messy Full control; doesn't ever give program control to a main loop Hello world: osrc.html
12
GTK Bindings for a variety of languages (C, C++, Java, python, C#)
Glade – A program to visually design your GUI for your application a lot more convienient than writing your GUI completely in code The most popular toolkit used for graphical linux/unix applications Not completely consistant look-and-feel on Win32 and Mac But pretty close. Pidgin and GIMP use GTK on windows Android uses GTK for all GUI elements
13
GTK example
14
GTK Hello World snippet
Link: tutorial/stable/c39.html#SEC-HELLOWORLD
15
WxWidgets A wrapper over Win32 (on win), Cocoa (on mac), and GTK (on linux/bsd/etc) From a users standpoint, there is barely any distinction from a wxWidgets application and one directly using native toolkits. Compatible with iPhoneOS and Windows Mobile Significantly easier to code than the Win32 API Excellent documentation
16
WxWidgets example (win32)
17
Playpower
18
Summary Use open source to your advantage
Know what options you have when creating a GUI for an application FceuX FTW
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.