Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411421 Posts in 69363 Topics- by 58417 Members - Latest Member: JamesAGreen

April 18, 2024, 07:37:01 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Did you make special/custom tools to support your game development?
Pages: [1]
Print
Author Topic: Did you make special/custom tools to support your game development?  (Read 1191 times)
Dewfreak83
Level 1
*



View Profile WWW
« on: November 07, 2014, 12:46:02 PM »

Even with all the tools available to us game developers these days, sometimes its best to home-grow your own tools to get the job done faster or better.

What tools have you had to develop?
or
What open-source tools have you supported to provide a specific feature?


Screenshots and a brief postmortem would be wonderful!


Note: Please don't post about game engines or systems you made, but tools you had to create outside of the game (like Editors)!

Note2: This is a X-post on reddit. Just an experiement to see if folks are more comfortable sharing here versus reddit.
Logged

nox
Level 0
***



View Profile WWW
« Reply #1 on: November 07, 2014, 04:45:22 PM »

I was making a rhythm game and I needed an interactive way to synchronize lyrics to the vocal melody. I designed and started building a tool in some GUI framework or another, but it quickly became overly complex and I started to brainstorm alternatives. I opened Audacity and poked around; could there be a way to place exportable named markers at certain times in a track?

It turns out that Audacity has a type of track called a "label track" on which you can insert textual notes at certain times. I listened closely to the music as it played, pressed the pause button at the beginning of each vocal syllable, and inserted a labels with the pitch and syllabic information. I adjusted the label times/locations as needed to align more precisely with transients, and to improve game feel.

It looked like this:

You can export label tracks with their times by doing File > Export Labels. I wrote a script in Lua to convert the exported labels into a Lua table, which I then read from my game code to create the "notes on the fretboard" at the correct time and position(correspondent with pitch.)

I thought this was a pretty brilliant hack--utilizing an existing and generic tool in an unexpected way--but I later found Audacity's View > Karaoke option, which uses label tracks, exactly as I implemented them, to display timed karaoke lyrics...so I had really only been using a feature exactly as it was intended. Still, it was economical, and it worked as well as any tool I would ever have the patience to make.

TL;DR Audacity can do a lot of things.
Logged

Dewfreak83
Level 1
*



View Profile WWW
« Reply #2 on: November 07, 2014, 06:21:07 PM »

I designed and started building a tool in some GUI framework or another, but it quickly became overly complex and I started to brainstorm alternatives.

How long did you spend on your first prototype before finding the ideal solution?
Logged

ThemsAllTook
Administrator
Level 10
******



View Profile WWW
« Reply #3 on: November 07, 2014, 07:08:00 PM »

I write a lot of very small tools for daily tasks. Looking for a third-party tool to do the job you need it for, ensuring that it has an appropriately permissive license, paying for it if it isn't free (which is a risk if you can't verify whether it'll do the job or not before paying), and learning to use it often requires a much larger time investment than writing a few dozen lines of C to make a specialized tool just for one purpose.

For example, I had a need to create a circle texture not too long ago with specific anti-aliasing requirements. I tried an image editor or two and they weren't easily able to do what I needed, so I made myself a command-line tool that outputs a png with a circle drawn in an arbitrary size with a specified subpixel resolution. 156 lines, less than an hour to write, and it still comes in handy every once in a while.

I've seen a culture among significant numbers of programmers where "don't reinvent the wheel" is taken to a dogmatic extreme. When describing a tool or a solution to a problem I've invented myself, the usual reaction is derision, and a suggestion that I use their favorite third-party tool. I've lived both ways for long enough to know when a problem is specialized enough and/or easy enough to solve that it'll take less effort to invent a new solution than to find and fit an existing one to it. A custom solution is always an exact fit, while in many cases a generic solution has inefficiencies built in. Writing your own tools helps you learn intuitively where this line is drawn, which is another reason to do it when you can.
Logged

Randomasta
Level 1
*


wait, what?


View Profile
« Reply #4 on: November 07, 2014, 07:47:11 PM »

Nothing fancy like the guys above me, just a level editor for an action platformer. It's kinda like the one Braid/Aquaria/Dust:AET has. Put resizable/rotatable non-tile based level elements, level exit/entrance, collision map (lines actually), enemies and player spawn points. Pretty standard I guess. It's rudimentary and very rough around the edges but still it only takes a day to make, finding an existing level editor and adapting it for my needs would probably takes longer. The game is doomed for failure so I don't get around to finish the editor and it's lost in the depth of my hard disk, but here is a crap partial (not showing the menus etc) screencap of it :
Logged
InfiniteStateMachine
Level 10
*****



View Profile
« Reply #5 on: November 07, 2014, 07:57:09 PM »

That's about 50% of my day job.

As for personal projects one of the things I've done lately is write a dialog editor in WPF and a loader/manager implementation in unity.

I like doing editors that run in the game for a lot of reasons. That's what I'm interested in these days.
Logged

Dewfreak83
Level 1
*



View Profile WWW
« Reply #6 on: November 07, 2014, 08:28:57 PM »

As for personal projects one of the things I've done lately is write a dialog editor in WPF and a loader/manager implementation in unity.

There are some guys on reddit looking for some words of wisdom for writing a dialog editor - should pass on any nuggets you have!
Logged

Dewfreak83
Level 1
*



View Profile WWW
« Reply #7 on: November 07, 2014, 09:03:24 PM »

It's rudimentary and very rough around the edges but still it only takes a day to make, finding an existing level editor and adapting it for my needs would probably takes longer. The game is doomed for failure so I don't get around to finish the editor

Very nice - a day?? What helped you to build it so quickly? Why would you say its doomed for failure?
Logged

Sik
Level 10
*****


View Profile WWW
« Reply #8 on: November 07, 2014, 09:49:35 PM »

Pretty much everything here
https://github.com/sikthehedgehog/mdtools

I know many people hate me for making them command line instead of GUI but that makes them much easier to use in build scripts (and easier to program too).
Logged
hammeron-art
Level 0
**



View Profile WWW
« Reply #9 on: November 07, 2014, 10:23:35 PM »

I'm not even a programmer (at least don't work with it beside personal projects) and I build tools to speed up my workflow doing art.

A custom solution is always an exact fit, while in many cases a generic solution has inefficiencies built in.
Indeed not always true.
Any professional, free or paid, heavy featured tool comes with a scripting language or plugin system nowadays.
You can automate things and write specific solutions even using the build-in software features.

What open-source tools have you supported to provide a specific feature?
Don't need to be open-source though.
I wrote a couple of small scripts to automate repetitive tasks or process and generate images the way my project need it to be in Photoshop.
The scripting support is so good that you can even put a Node.js server to communicate with Photoshop and do things like update/save your files in edition time.
I don't wrote the plugin above but I've write some lines to match my work though.

Also the Python API in Blender to genarete a custom map file (I miss those days  Tears of Joy).
« Last Edit: November 07, 2014, 10:32:20 PM by hammeron-art » Logged

nox
Level 0
***



View Profile WWW
« Reply #10 on: November 08, 2014, 06:32:42 AM »

I designed and started building a tool in some GUI framework or another, but it quickly became overly complex and I started to brainstorm alternatives.

How long did you spend on your first prototype before finding the ideal solution?

I didn't spend more than a few days on the initial tool, because it was apparent that I was basically reimplementing everything that any standard wave editor could do. It was when I thought to look at Audacity's source code for waveform drawing that it clicked for me. From there I had the whole process of Audacity label tracks -> playable notes in the game working in one day...the time consuming part was transcribing all of the songs manually, and there was no good way to optimize or tool that away as far as I could tell.

I actually have another tangentially tooly story having to do with my development of a technique to develop iOS apps from Linux. I wrote this wiki, http://synergy-project.org/wiki/Use_as_a_KVM, which demonstrates how I controlled and viewed a Mac from my Linux box. I documented the whole dev/build process in this video:

Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic