This portfolio is designed as a <a href="http://twinery.org/">Twine</a> storytelling experience. I value your time, so I've tried to keep it simple. (Some pages may load slowly because of large animations.) What's your main interest? [[UX/IX Design|UX]], [[Game Design]], [[Programming]]My background in UX is based on my [[degree in economics]], practical experience in the [[feedback cycle for games]], and the development of [[tools to assist in game development]]. For portfolio development purposes I also made an example [[web app|Value]].<img src="http://www.ludamix.com/portfolio/igor.gif" width="238" height="145" alt="IGOR"> In my career as a game developer, I first gained some studio experience making [[console games|Console games at Santa Cruz Games]]. <img src="http://www.ludamix.com/portfolio/longcat.gif" width="255" height="254" alt="Longcat"> Following that I went [[independent|Indie games]]. Simultaneously I started thinking about [[tools to assist in game development]]. The trajectory of my career has gone from "mostly design" towards "mostly [[programming|Programming]]" and then back again.I became a competent programmer during my college years as it fed my interest in [[game design|Game Design]], although I gave up on the idea of a CS degree in favor of [[economics|degree in economics]]. My skills are weighted towards web and front-end development, with a streak of game-engine experience lying throughout. Much of my experience is in Flash, Javascript, Haxe, and Python. Although I have experience working with C and doing low level things, and can, for example, tell you about memory allocation patterns and cache coherency, I see myself as a designer and systems integrator. Here is an [[example web app|Value]] I made. One of my earliest goals with my programming was to make [[tools to assist in game development]], and this continues today. While working on [[Ace of Spades]] I gained experience doing online game server programming, serving a base of several thousands of players. I have also delved into some DSP in order to create [[real-time sound synthesis technology]].I have a B.A. in Economics from U.C. Santa Cruz. I apply concepts from that work regularly in constructing abstracted models of markets and social systems. I view my formal education as a complement to my [[Game Design]] self-education.While I was making [[games independently|Indie games]], I would seek out ways of developing a better feedback cycle for the games. I would post the games on portal sites like Kongregate and Newgrounds, observe the comments, and engage with them when I thought a comment with a simple sentiment like "control is bad" was hiding something more to it. I intuited the distinction between what people said about the game and what they were feeling or thinking. I also used data-driven approaches, measuring level progressions, time playing, and other KPIs. Finally, I would go to local events and present work and get live reactions there. I found that the higher-level feedback processes really were premised on deeper questions about what the game was about and whether that was being conveyed to an audience that cared, because game players are very "know it when they see it" about what they want to pay attention to and what they want to immediately give up on. If they're pressed into caring, as in a public situation, polite but vague remarks like "it seems promising" or "it's very interesting" tend to slip out to mask their desire to end the session. As I grew aware of this, was started feeling adrift - if I couldn't rely on feedback to give me clear directions, what should I make? Why am I pursuing this? However, it forced my design process to mature, because it led me to think about how to [[design intentionally]] and pursue "real conversations." Over the years I've coded a number of small tools and attempted more ambitious ones. An early goal was to "make games more quickly". Much of my [[programming|Programming]] efforts have gone towards exploring that problem. This goal has gradually shifted towards a [[design-centric approach|design intentionally]] as I came to recognize that any tool needs to be premised on a *particular* workflow or perspective on problem-solving. It's only after recognizing the goals that tools can be created. My most recent tools project is [[Pixelbound]]. It is part of a "weekly tool streak" that I am running through the end of 2015, logged on [[streak.club|https://streak.club/s/205/tool-development-2015]].<img src="http://www.ludamix.com/portfolio/ace.gif" alt="Ace"> Ace of Spades is a project originally developed as a freeware game by Ben Aksoy. I encountered the game as a player and started participating in modding it, designing original levels and contributing to an open-source server project, Pyspades, which grew into the defacto standard server for the game. Pyspades was the brainchild of Mathias Kærlev(mat^2) who reverse-engineered the original software. My role was to add some user and administrator-facing features - kick and ban functionality, map rotations, gameplay modes, etc. - and stayed in close collaboration with all the server operators during the peak period of the free game. My biggest contribution to this was probably the "federated ban list" which allowed independent server operators to subscribe to each other's ban lists and work as a more unified community. This gradually developed into a centralized global ban list. Later, Ben Aksoy sold the rights to the game to Jagex, and also bought up the parts of the game the community had developed, including Pyspades and my contributions, to develop an original commercial version. Their version, retailed on Steam, recieved hundreds of thousands of players, but many still prefer the dynamic of the "original." This project exposed me to many different community dynamics - I had somewhat of a public facing role with players as well as the administrators. When Jagex imposed their version of the game, the community was divided by fanaticism as well as the possibility of money entering a previously "passion-driven" effort. I see some of my thoughts about [[design|design intentionally]] being formed through those experiences.I developed a Soundfont 2 MIDI playback system in pure Haxe, with stereo sound, low-pass filtering, and maximum polyphony of about 64 simultaneous voices. You can see a demo <a href="http://ludamix.com/apps/triad-synth/index.html">here</a>. After achieving this goal I started revising the architecture I was using to fix some quality and performance issues. An ongoing side project... This technology inspired my largest game project, [[Ampliscape]].<img src="http://www.ludamix.com/portfolio/igor.gif" alt="IGOR"> //IGOR: The Game// At Santa Cruz Games, I worked on games for Wii, Nintendo DS, and the "Plug it in and Play" TV game series for Jakks Pacific. These games were third-party licenses for franchise companies like Disney and Hasbro. Here is the array of things I did while there: *Made key decisions about systems design implementation, including some technical constraints. For example, whether in-game cutscenes should exist in a world apart from the gameplay(less believable for the player), or be mixed together(harder to implement). *Wrote up pitch documents for new projects. Most such documents were 2-3 pages in length, containing descriptions of gameplay, mockup art, and target audiences. *Implemented ground-up prototypes of gameplay to demonstrate features and ideas. *Implemented original level designs. In addition to using proprietary tools, I wrote my own procedural level generation system. *Worked with a variety of formats and hardware, including consoles and portables, gamepads and motion controls, and wide spec variations(from 16-bit SoC hardware up to XBox 360). After SCG I started work on [[independent games|Indie games]] and [[tools development|tools to assist in game development]].<img src="http://www.ludamix.com/portfolio/ace.gif" alt="Ace"> The most prominent project I've worked on is [[Ace of Spades]]. I've contributed to numerous game jams and co-hosted some. Some examples of game jam games: <img src="http://www.ludamix.com/portfolio/desert_hike.gif" alt="Desert Hike"> <a href="http://twinbeard.com/desert-hike-ex">Desert Hike EX.</a> This riff on the intersection of Burning Man and SV startup culture builds on the format of Oregon Trail. <img src="http://www.ludamix.com/portfolio/tennisdate.gif" alt="Tennis Date"> <a href="http://www.ludamix.com/games/tennisdate/index.html">Tennis Date.</a> Made for a "dating sim" jam, it creates a very literal, two-player simulation. <img src="http://www.ludamix.com/portfolio/ampliscape.gif" alt="Ampliscape"> [[Ampliscape]] emerged from combining the search for more playful experiences with my music and synthesis experiences. I also run the <a href="http://www.meetup.com/SF-Bay-Area-Game-Jamming-Game-Design/">"SF Bay Area Game Jamming & Game Design" Meetup</a>, which currently has about 500 members. We run monthly and weekly developer meetings - casual coworking in a friendly environment. I also made a few sponsored "Flash games" for the web portal market, such as <a href="http://ludamix.com/games/longcat/">//Longcat Nomcat//</a>, shown below: <img src="http://www.ludamix.com/portfolio/longcat.gif" alt="Longcat"> My approach to design is to orbit around problems and concepts for a while, discovering the breadth of them, and then finally return with an approach that satisfies as many different viewpoints as possible. That is why it is "intentional design" - it tries to avoid preconceptions and catering to existing belief. To do this, I have to get into a lot of conversations. Although I will listen to the surface of it, I'm trying to find a hidden thing in the conversation, something that suggests a deep goal. A deep goal is not articulated well, not as well as what people [[say they want on the surface|feedback cycle for games]]. Once I spot that, I can start designing with the expectation that exploring the hidden thing will be fruitful and be "better than expected." Then I sit down and start doodling. I love making paper designs to quickly run through a bunch of ideas and "kill them" on the page by realizing what its context will be. When I kill an idea, my expectation is that if it's good, it doesn't just work well, it also comes back to life later, either in another design, or in someone else's head. I see design as the cumulation of a cycle that starts and ends with play. Play invites you to explore a space and to feel its boundaries for yourself. As you exhaust the possibilities of a play space, you start turning towards more intentional methods of going beyond its boundaries. It takes energy to pursue this because the feedback becomes more distant, and harder to interpret. A lot of trial-and-error experimentation is needed. But if it's successful, what you achieve is another form of play. While both my [[game design|Game Design]] and my application design intends to maximize affordances for play, I've noticed that both games and applications quickly reach a point where a complete design requires shaping the program around a designer-set goal - a type of work that is done and the expected types of results. For example, in a puzzle game design, simply providing puzzle pieces with interesting qualities doesn't result in anything to think about(unless you are a mathematician, maybe). The pieces have to be positioned in such a way that a challenge is posed, and it is while solving the challenge that the play takes place - not before. This form of engagement is more gratifying than simple addiction or reaction, because it involves learning and critical thought. Applications are the same way; large programs like Word or Photoshop provide many different tools with overlapping use-cases, which makes it harder to find the best workflow for any one task. The act of "designing the workflow" is left to the user in that case, which adds a lot of friction to finishing - a user can be fickle and unsure about when to call it done, and just give up instead. A streamlined tool like a "selfie app" becomes more playful than a professional photo editing tool because all of the design is done, maximizing the play potential. I don't think there is objectively better design, just designs that we believe in more. When a design works well, it's as if it was there all along; we have trouble imagining the world without it. As a designer I feel that the early part of the work, before you have a complete [[feedback cycle|feedback cycle for games]] and are still exploring the goals, is some of the most critical stuff. If you choose the wrong goals people won't be able to tell you that. [[Back to the beginning.|Start]]My approach to design is to orbit around problems and concepts for a while, discovering the breadth of them, and then finally return with an approach that satisfies as many different viewpoints as possible. That is why it is "intentional design" - it tries to avoid preconceptions and catering to existing belief. To do this, I have to get into a lot of conversations. Although I will listen to the surface of it, I'm trying to find a hidden thing in the conversation, something that suggests a deep goal. A deep goal is not articulated well, not as well as what people [[say they want on the surface|feedback cycle for games]]. Once I spot that, I can start designing with the expectation that exploring the hidden thing will be fruitful and be "better than expected." Then I sit down and start doodling. I love making paper designs to quickly run through a bunch of ideas and "kill them" on the page by realizing what its context will be. When I kill an idea, my expectation is that if it's good, it doesn't just work well, it also comes back to life later, either in another design, or in someone else's head. I see design as the cumulation of a cycle that starts and ends with play. Play invites you to explore a space and to feel its boundaries for yourself. As you exhaust the possibilities of a play space, you start turning towards more intentional methods of going beyond its boundaries. It takes energy to pursue this because the feedback becomes more distant, and harder to interpret. A lot of trial-and-error experimentation is needed. But if it's successful, what you achieve is another form of play. While both my [[game design|Game Design]] and my application design intends to maximize affordances for play, I've noticed that both games and applications quickly reach a point where a complete design requires shaping the program around a designer-set goal - a type of work that is done and the expected types of results. For example, in a puzzle game design, simply providing puzzle pieces with interesting qualities doesn't result in anything to think about(unless you are a mathematician, maybe). The pieces have to be positioned in such a way that a challenge is posed, and it is while solving the challenge that the play takes place - not before. This form of engagement is more gratifying than simple addiction or reaction, because it involves learning and critical thought. Applications are the same way; large programs like Word or Photoshop provide many different tools with overlapping use-cases, which makes it harder to find the best workflow for any one task. The act of "designing the workflow" is left to the user in that case, which adds a lot of friction to finishing - a user can be fickle and unsure about when to call it done, and just give up instead. A streamlined tool like a "selfie app" becomes more playful than a professional photo editing tool because all of the design is done, maximizing the play potential. I don't think there is objectively better design, just designs that we believe in more. When a design works well, it's as if it was there all along; we have trouble imagining the world without it. As a designer I feel that the early part of the work, before you have a complete [[feedback cycle|feedback cycle for games]] and are still exploring the goals, is some of the most critical stuff. If you choose the wrong goals people won't be able to tell you that. <a class="internalLink restartLink">Back to the beginning.</a><img src="http://www.ludamix.com/portfolio/ampliscape.gif" alt="Ampliscape"> Originally concieved as a way to make a "living sound landscape," and a different way of composing music, I've been iterating on the idea over the past few years, making a slew of prototypes to try to settle on some pillars that achieve the feeling I want. It's been super challenging! I expect it to take a few more years at the rate I'm going. <a href="https://soundcloud.com/ampliscape/sounds-of-ampliscape-001">audio example</a> Some notes on how this project has developed: I made a small game jam project based on my [[sound synthesis tech|real-time sound synthesis technology]] and got a few fanatically interested users from it. I figured I should do something more with it, and eventually(after about two years) came back and tried to flesh out the original prototype, using a second generation of technology. However, I found that adding more wasn't doing as much as I thought it would. It was hard to work with the new synthesizer(too many low level decisions exposed), and at the same time, I hadn't found a good way to expand on the Boulder-Dash-inspired puzzle-piece design I had. The setup wasn't really very game-like, which stopped it into a puzzle game. It also wasn't very immediate as a tool dedicated to making music - in user testing, people did not discover things about it easily and got lost in playing with the tools without ever creating a sound sequence. There was a lot of chaos in how things could fall down and change direction, but this didn't affect the resulting sequences as I thought it would. The next step for Ampliscape is tentatively planned: rework it as a dedicated music editor, with a third iteration of the synthesis method that makes use of small PCM samples and effects. The goal is to design it to the constraints of a "virtual console" like <a href="http://www.lexaloffle.com/pico-8.php">PICO-8</a>. This puts it in a position where more goals start to crystallize - to create soundtracks and sound effects in a restrained set of styles. The puzzle pieces will be streamlined out into a system that is still visual and spatial, but less chaotic and with more instantaneous feedback on the sequence. I see Ampliscape as the biggest example of my goal to [[design intentionally]].<img src="http://www.ludamix.com/portfolio/value.gif" alt="Value"> <a href="http://valueapp-993.appspot.com/">Value</a> is an example web application I made using Haxe/OpenFL for the editor, Foundation for other front-end controls, and App Engine for the backend. It is a painting/animation app that lets you publish your creations to a simple blogging platform. Value is one of numerous [[Programming]] projects of mine.