Journalism Interview: Forum_Account
Interviewed by EnigmaticGallivanter
EG: What is the little background information to how you stumbled across BYOND.com?
F_A:A co-worker and I were talking about hobby game development and he mentioned BYOND.
EG: You have made -many- great libraries that users (including me) happen to love, What makes you decide to provide us with these libraries?
F_A:I make libraries that I think are useful for game development. I'm one of the biggest users of my own libraries so I'd be making them even if I had no plan to release them. Posting them is beneficial all around. It benefits you because you can use the libraries. It benefits me because I feel obligated to put more effort into them and make sure the code is organized. And there's a global benefit that everyone who uses the library is testing it for everyone else - problems that one user identifies are fixed for everyone. Having 100 people download and play with the Sidescroller library is like having 100 people testing the movement system for my games.
EG: Well seeing as you make libraries for things that you deem useful, will we see a 'over head textbox' library in the future? (Reference to Tiny Heroes Screenshot)
F_A: Probably not. It's a very minor thing with a lot of potential for options and settings (font sizes and colors, letter spacing, speech bubble size/shape/color, etc.). And it's not the type of library that'd make something new possible. It's a minor feature for a game. If you don't have the library to do it you'll just use an output control. It also seems like a topic that is sufficiently covered by existing libraries.And my code for that part is a mess and I'd rather not take the time to fix it up and make a library out of it =)
EG: If you had a to make a library on something that is already covered, what would it be?
F_A: I'm not sure. A lot of the topics that are covered aren't that useful for game development (XML parsers, regular expressions, etc.), they're just not the kinds of things I'd make.Maybe I'd make some kind of RPG framework. There are tons of demos and examples, quest libraries, and things like that, but there'd be some benefit to bringing it all together in a single resource.
EG: Do you have an idea for a new library, or any plans to update any existing ones?
F_A:I'm working on a library for making realtime strategy games. It's not close to being complete yet, probably because I'm not that interested in making an RTS. I try to update my libraries somewhat regularly. I don't have any big updates planned but I'm sure some updates will be made.
EG: Why an RTS library?
F_A: Because BYOND has huge potential for RTS games. It's a genre that people love to play aganist other people and BYOND would support it well. In terms of networking and performance, BYOND would handle an RTS game with 4-8 players much better than it handles "MMORPG" type games with 100 players on a server. Technically, I don't see any reason why BYOND couldn't support a game like Warcraft 2.
EG: In this new RTS library, what types of functions would be included into it?
F_A: It'd handle the mouse/keyboard input, fog of war, basic unit AI (to handle commands like move, attack, patrol, etc.), and possibly the interface (HUD). My goal would be to make it possible for someone to use the library to make an RTS by just providing graphics and unit definitions - define what units exist, what buildings produce what units, etc.
EG: Do you think that your libraries offer something more than the other similar ones out there?
F_A:I try to make my libraries very easy to use. If they were hard to use, nobody would use them. If they're easy to use there's a chance people might use them. I can't recall any DM libraries I've seen that were as easy to use. The other day I downloaded a library that had 130 lines of code in the "demo" part and only 80 lines in the "library" part - can you even call it a library if the code to use it is more complex? I try to keep my demos very simple, maybe just 3-10 lines that are specific to using the library. Some don't require any code at all, they just need to be included.
I'm not aware of too many direct comparisons between my libraries and existing ones because I try to make libraries for topics that aren't already covered.
EG: Seeing how you use libraries within your own projects, do you reccommend that developers start to try to implement their own libraries into their games, or even make libraries from existing systems in them?
F_A: It's just good design. Even if you don't release it as a library, it's good to separate code as if it were a library whenever possible. I'm not big on software engineering terms, but this is a way to decouple your code. I can treat the Sidescroller library as a completely separate project and fix bugs in it or add features without worrying about what the implications are for Tiny Heroes because they are separate projects
EG: One game you're developing (what seems to be on and off) is Tiny Heroes, it also seems to utilize every library you have made, are your libraries just key functions of the game?
F_A:The libraries handle a lot of the work, but there's still a lot of code I have to write. The libraries keep the general code out of the Tiny Heroes project so it's more organized - the code I write for Tiny Heroes is just the stuff that's specific to it. I don't have to write code that detects when a player enters a region, I just have to write the code for the boss fight that's triggered by entering that region. The Sidescroller library simplifies a lot of things too - it's just one line of code to create a background image and another three lines of code to make it scroll as the player moves.
The libraries I use (Sidescroller, Interface, Region, and Handy Stuff) contribute about 2500 lines of code to the project. Tiny Heroes has about 6000 lines itself. Keeping that much code in libraries so it's separated keeps things simple. I've been working on the game off and on for over eight months and the only reason I can still pick it up and work on it (after not opening the project for 4-6 weeks) is because the code is simple and organized.
EG: What can you tell us about Tiny Heroes for those who don't follow the development?
F_A:It's an RPG/platformer that's ending up as more of a platformer and less of an RPG. You'll pick a character class and play through the game, gaining new abilities specific to your class as you go. When you beat the last boss you can start again and play as a different class - you'll keep the abilities from the first time through and gain the new class's abilities. As you gain new abilities (ex: wall climbing, anti-gravity, etc.) you'll find ways to use them to access new areas. You'll have to play through more than once to see everything there is to see.
EG: I like the idea for you have for Tiny Heroes in regards to classes, but do you think there is a chance for it to become unbalanced?
F_A: I figure most people will play the game by themselves in a single player mode, so I'm not too concerned about balance. I plan to support multiplayer, but I'm planning more for PvE than PvP.
Each character can have six abilities mapped to keys. You can switch at any time but I figure players will tend to pick six abilities and use them for a while. What I want to avoid is having a clear "six best abilities" that everyone uses. If you're playing together with friends, I want it to be beneficial for each player to use slightly different sets of skill
EG: How do you feel about the outdated DM guide and its affect on new programmers?
F_A:The guide is designed for people with little to no programming experience. It's hard to learn to program from scratch so it'd be very difficult for the guide to be effective. Even if it was updated it's still hard to teach people how to program. Being outdated doesn't hurt it too much in this regard, but it does hurt BYOND because the guide is one of the few things a potential user can look at that'll persuade them to use BYOND. Because the guide doesn't really reflect what you can do with BYOND or see how it works, it's not going to impress many potential users.
EG: Would you call for ammendments to be made to the DM guide, or to be started over?
F_A: I think the guide is fine for what it does. It does cover the basic aspects of the DM language. There's never going to be one single guide that everyone uses to learn DM. There are things I'd add to it but there are always going to be things it doesn't cover. In a sense this is starting over, instead of fixing up the DM guide to address any problems we'd be creating new documents to cover them.
EG: Lets say the user community wanted to remake the DM guide themselves, would you contribute? If so, what?
F_A: I think it'd be more beneficial to create guides centered around specific resources. Explaining how to learn DM from scratch and use it to make games is a tall task. Creating a guide to say "here's how to use the RTS library to make a realtime strategy game" is a lot easier and a lot more practical. It would take a complete game development newbie years to be able to produce games using general programming resources like the DM guide. These more specific resources would get newbies making games a lot faster. I'd certainly contribute to a project like that.
EG: How did you become proficient in DM, and do you think your method works for others?
F_A:I became proficient in other languages first so DM was easy to pick up. I'm sure it'd work for other people as long as they can become proficient in other languages first. It sounds like a lot of work but it's probably not a bad way to learn DM because you can find more resources, books, and classes for learning Java than you can for DM.
EG: Are their any factors that influence your work? Anything that influences the games you like to make, or even what you put into them?
F_A: The project ideas usually come from songs, movies or something else, not from games. But once I start working on the gameplay there are a lot of influences from other games. I try to copy aspects of games that I like while avoiding doing something that's been done before.
A lot of the influences are on the graphics and sound. My games have a cartoony feel to them but I'm not sure why. Maybe it's just easier to draw cartoony graphics than it is to draw realistic icons. I like a lot of old games where the graphics were more abstract.
EG: What interested you in programming?
F_A:Hobby game development. Some people paint, write stories, or make movies in their spare time as a creative outlet. Designing and making computer games is my creative outlet.
EG: where did you start out in programming? classes? books? or self education?
F_A:First it was self-education, but most of the learning occurred while I was taking classes. I don't want to give the idea that you have to take a class to learn, but it really did help. Still, in classes I rarely ever felt like I learned something. The classes forced me to be exposed to things and pushed me to do things, but I always felt like I was figuring it out on my own.
That's why I don't like books or self-education. It's rare that someone can work in a vacuum and still push themself to have the same exposure to topics and make the same amount of progress. When you read a book about programming it's easy to say "yeah, I understand that" even if you don't - because you want to understand it you can easily convince yourself that you do. Classes give you objective feedback (tests, grades, etc.) so you'll know when you don't get it. The objective feedback is what's important and you don't have to get the from a class, you could get that from the BYOND community!
EG: Is what interested you in programming, what kept you going or was it something else?
F_A:Hobby game development is what interested me. It's not the only thing that kept me going - I studied programming in college and do it for a living. But, even if I didn't make a career out of it, I'd still have stuck with it and make games as a hobby.
EG: Be honest, with programming, have you ever done anything malicious?
F_A:Not really. I never had any interest in that kind of stuff.
EG: Do you have more fun programming for a game, applications, or just-for-fun types of programs?
EG: Has your interest in programming effected your profession or current/past education?
F_A:I got interested in programming before I decided to go to school and make a career of it. My interest in programming probably impacted my decision to make a career of it. Even though I always liked game development I never had any interest in being a professional game developer, so maybe it didn't influence my decision much.
EG: What was your favorite video game when you were younger, and what is your favorite now?
F_A:I always liked the Dragon Warrior and Mega Man games. Those were my favorites then and they still are. I also liked Doom because the graphics were so impressive. I've always played games because I was curious to see what would come next - what's the next level look like, what do the enemies look like, etc. My newer favorite games are things like Knytt Stories.
EG: What is your 'out of BYOND' Hobby?
F_A:I watch a lot of TV.
EG: What do you do to relax or let your mind go to relieve stress?
F_A:Work on BYOND projects.
EG: What is your highest education (optional)?
F_A:I have a Masters Degree.
EG: In all your schooling, what was your favorite class / subject?
F_A:I was a Computer Science major. My favorite CS topic was artificial intelligence. My favorite non-CS topic was psychology.
EG: What is your current profession?
F_A:I'm a software developer.
EG: Can you inform us a bit about what you do as a Software Developer? What work do you do at your job?
F_A: Software design and development for a government project. It's not particularly interesting, there's a lot of planning for a little amount of work. I find it odd when DM developers talk about design - the beauty of BYOND game development is that you don't have to burden yourself with tons of design work. You can code up a game and if you don't like it, you can change it later. You don't need to go through rigorous review meetings to get an aspect of gameplay changed. I think a lot of BYOND developers psych themselves out because they think that game development has to be hard so they don't try to make things easy for themselves.
EG: Would you say you enjoy your job?
F_A: It's not bad, but it's not the kind of job I'd keep doing if I won the lottery and didn't need to work.
EG: Has your education taken part of your current profession (if you have one)?
EG: Anything else about your life you want us to know that you think is interesting or maybe something we missed?