Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Rottbott
Jul 27, 2006
DMC

tef posted:

The only effective way of tidying up of source code is deleting it. Everything else creates more work.
I'm not sure what you mean. Clearly it is possible to improve code.

Adbot
ADBOT LOVES YOU

Tres Burritos
Sep 3, 2009

Rottbott posted:

I'm not sure what you mean. Clearly it is possible to improve code.

I'm sure he's trying to stress the "effective" part.

tef
May 30, 2004

-> some l-system crap ->

Rottbott posted:

Clearly it is possible to improve code.

Yes, by getting rid of it :v: If you 'improve' your code by writing more code, you increase the maintenance, documentation and testing burden as a result. If you end up writing more code, building more abstractions, you're making a tradeoff, rather than just an improvement.

If you want to continue this argument in another thread i'm happy too, but let's not poo poo up the neat thread of cool stuff with agonising over a cheap joke :3:

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell


You use the emoticon a lot and I don't know what it means! Is tef mad? Is tef confused? Does tef's teeth hurt? I don't know!

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Thermopyle posted:

Is tef mad?

Come on man, you should know this by now. tef is never mad.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Thermopyle posted:

You use the emoticon a lot and I don't know what it means! Is tef mad? Is tef confused? Does tef's teeth hurt? I don't know!

It means tef has turned into a cat and is smiling.

tef
May 30, 2004

-> some l-system crap ->

Thermopyle posted:

You use the emoticon a lot and I don't know what it means! Is tef mad? Is tef confused? Does tef's teeth hurt? I don't know!

I guess I just like cats :confused:

It might be a marker to mean "I'm not trying to be an rear end in a top hat it's just how I speak"

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Thermopyle posted:

You use the emoticon a lot and I don't know what it means! Is tef mad? Is tef confused? Does tef's teeth hurt? I don't know!

tef is reminding us that he, too, has a stuck white pixel.

Rottbott
Jul 27, 2006
DMC

tef posted:

Yes, by getting rid of it :v:
I don't disagree with that! I do think it's an interesting discussion because I end up spending a lot of time on my personal projects fiddling about making the code better instead of the game (because I find it fun). Maybe one for the coding horrors thread.

On topic, I did somehow actually add a new feature to my game - weapons. Horrible programmer art ahoy:



This was more work than it looks. Turrets can either be fixed or tracking, each has its own tracking speed, shell velocity, rounds per minute and burst rate. Ships can die and float around as wrecks. Human players are provided with a new one by the server. The end result is that it's becoming an actual game instead of a physics demo.

Next up is missiles/CIWS and fixing the giant HUD.

seiken
Feb 7, 2005

hah ha ha
Tef I think you misunderstood. I love deleting code. Deleting code is wonderful :) but if you can't delete it, I didn't mean you should tidy up the code by adding more code (what?), I meant you should tidy it up by making it cleaner and more obvious and probably less code, and then it's easier to maintain.

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
I am guessing that tef was implying abstraction when he said deletion, since the abstraction of code generally (if not over-engineered) results in less code.

Police Automaton
Mar 17, 2009
"You are standing in a thread. Someone has made an insightful post."
LOOK AT insightful post
"It's a pretty good post."
HATE post
"I don't understand"
SHIT ON post
"You shit on the post. Why."
This thread always pops up in my subscribed threads and reading it always make me sad because I program for profit instead of working on my dream videogame. :(

The amount of code really is not an indicator for elegance or low maintenance. Really tightly packed together stuff can be a nightmare to maintain, document or expand. Double so when half of it relies on 3rd party libraries that are now outdated with quirks nobody working on the original code was aware of at the time. This isn't more elegant, you just outsourced the complexity to a black box you might not know anything about. I encounter this almost every other day and it's always a pain in the rear end. If your code just needs lots of lines, then let it have it, everything else is a pissing match.

Police Automaton fucked around with this message at 17:45 on Jul 24, 2013

hendersa
Sep 17, 2006

Police Automaton posted:

This thread always pops up in my subscribed threads and reading it always make me sad because I program for profit instead of working on my dream videogame. :(
After 15 years of industry work, I went back to school for my PhD. Now I do research work and use my free time to make neat things. I think the opportunity to have more time to make neat things was a big motivator to go back to school. :ssh:

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Orzo posted:

I am guessing that tef was implying abstraction when he said deletion, since the abstraction of code generally (if not over-engineered) results in less code.

tef posted:

If you want to continue this argument in another thread i'm happy too, but let's not poo poo up the neat thread of cool stuff with agonising over a cheap joke :3:

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
Yup, sorry for continuing the derail.

Police Automaton posted:

This thread always pops up in my subscribed threads and reading it always make me sad because I program for profit instead of working on my dream videogame. :(
For me, game making is a hobby. I have a full-time job as a software engineer in a totally non-game related industry. I'm guessing a lot of people who post here have a similar situation. I can't speak for you because I don't know your life (for example, if you have kids) but having a full time job by itself shouldn't be holding you back from pursuing a passion project.

seiken
Feb 7, 2005

hah ha ha
Anyway I don't think I posted any things from my game/engine Super Fungalisk in this thread so here's a shot of the support for lights that emit along a line I just added: GIF.gif

I like posting demos but I never know whether to post them here, the making games thread, or the game dev thread so I choose some at random each time!

seiken
Feb 7, 2005

hah ha ha

Orzo posted:

For me, game making is a hobby. I have a full-time job as a software engineer in a totally non-game related industry. I'm guessing a lot of people who post here have a similar situation.

This is also my situation. I'm kind of young though, so I don't have many other responsibilities eating up my time.

(Sorry, mean to add this in an edit instead of making a new post!)

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!

seiken posted:

Anyway I don't think I posted any things from my game/engine Super Fungalisk in this thread so here's a shot of the support for lights that emit along a line I just added: GIF.gif

I like posting demos but I never know whether to post them here, the making games thread, or the game dev thread so I choose some at random each time!
1. Your stuff is super cool. But why is it always a gif? I think youtube or something would be much more accessible / easy to load on mobile, etc.
2. I generally post here and the Making Games Megathread. If it's a tech-heavy update (like most of yours are) I sometimes post in the Game Development thread.
3. Are you really calling it Super Fungalisk?

KoRMaK
Jul 31, 2012



seiken posted:

Anyway I don't think I posted any things from my game/engine Super Fungalisk in this thread so here's a shot of the support for lights that emit along a line I just added: GIF.gif

I like posting demos but I never know whether to post them here, the making games thread, or the game dev thread so I choose some at random each time!
Same. Or all three. I notice a jump in my unique website hits when I do that but as I analyze the stats I think it's just more search engine crawlers hitting me.

I've also noticed a rise in @hotmail subscribers to my blog, which all seem to be fake so I guess I should upgrade that captcha plugin.

quote:

software engineer at the office, game maker at home.
Same. Working solo is sometimes a bummer though, I've been trying to find a partner who is preferably an artist and have gone as far to consider paying someone, but that would require too much planning. I basically want to start a band, but instead of making just music we would be making games. I'd like collaboration.

Orzo - I prefer gifs, even more so when I'm on my phone. Gifcam is way easier to use and upload to minus than recording a video and figuring out encoding and whatever it takes to get to youtube. That's just my personal feelings though. I have to upload a screencast sometime this week so I'll be finding out what it takes to get to youtube.

Police Automaton
Mar 17, 2009
"You are standing in a thread. Someone has made an insightful post."
LOOK AT insightful post
"It's a pretty good post."
HATE post
"I don't understand"
SHIT ON post
"You shit on the post. Why."
I took a year (well more like two) off from work in which I really wanted to do something like this. I ended up doing literally nothing and had a very hard time getting back into a normal working cycle, having so much free time pretty much almost destroyed me. Somehow I just don't function without deadlines. I *do* have a project on my harddisk (like probably every guy who's just vaguely interested in this) but if I work on it I end up being sidetracked by inconsequential stuff, like optimizing code for weeks to get that one frame more which really doesn't need that much optimization. It's funny because in my real work, this never happens.

On the other hand, I love drawing sprites regularly and do this on my Amiga like some kind of weirdo.

Police Automaton fucked around with this message at 20:43 on Jul 24, 2013

seiken
Feb 7, 2005

hah ha ha

Orzo posted:

1. Your stuff is super cool. But why is it always a gif? I think youtube or something would be much more accessible / easy to load on mobile, etc.
2. I generally post here and the Making Games Megathread. If it's a tech-heavy update (like most of yours are) I sometimes post in the Game Development thread.
3. Are you really calling it Super Fungalisk?

1. Mostly because I'm super lazy, partly because I'm a pretentious pixel purist and I like that gifs are lossless. When I have a game to show off rather than a tech demo I should probably start using youtube (right now I'm not really looking to promote this properly or anything).
2. Seems reasonable!
3. That was a joke for your benefit :)

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?
The buttons came out fantastic (Folmer's art, as usual)

Arkady Fireovitch
Aug 20, 2010

I'm just happy to have you here with me.

That really is beautiful documentation. I'm a complete novice who was convinced by this thread get a BBB and I've been enjoying learning linux on it, but I can't even get the wifi to work.

Sereri
Sep 30, 2008

awwwrigami





[Insert pun about how this is 'pretty Awful']

ugh, SALR loads the images so have a :nws: to prevent that

Sereri fucked around with this message at 16:51 on Jul 26, 2013

LP0 ON FIRE
Jan 25, 2006

beep boop
Thanks for making the proper YOSPOS themes. I'm excited. :D

e: Somehow I saw that as iOS at first glance, don't ask me how. Still cool though.

LP0 ON FIRE fucked around with this message at 18:33 on Jul 26, 2013

go play outside Skyler
Nov 7, 2005


Well, after a lot of playing around with a high-speed camera and fixing various timing issues, Xylobot is now playing sixteenths at 130 BPM!

https://www.youtube.com/watch?v=0Xwfvl7t2LM

In about a week I will have one of the greatest YouTube videos of all time. I can't wait to have my photographer friend come over and film it for me with a nice, clean background and a proper mic.

e: bonus 500fps footage! You can see how much the entire thing vibrates when subjected to high accelerations (almost 12'000 degrees per square second!)
https://www.youtube.com/watch?v=Ykn8ILEvhDU

go play outside Skyler fucked around with this message at 21:27 on Jul 26, 2013

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

That's really awesome.

If you ever did a detailed write up of what you did and the challenges you overcame, I'd read that like there was no tomorrow.

go play outside Skyler
Nov 7, 2005


Thermopyle posted:

That's really awesome.

If you ever did a detailed write up of what you did and the challenges you overcame, I'd read that like there was no tomorrow.

Well, this is my final bachelor's project actually so I am writing up a 60 page documentation, but it's all in french :) If the video gets a lot of success I'll definitely look into translating the interesting parts.

But to answer a few potential questions:
- It's coded in C++ on an real-time industrial-grade automaton
- I did not build the robot, I'm just the programmer.
- It's all object-oriented and super modular. The day someone decides to add more arms it will be a breeze
- I also made an app in C# that allows one to compose, attribute hands and calculate trajectories. The real-time app and the HMI (human-machine interface) can communicate via UDP and you can simply click "play" in the app and the robot starts playing



The real challenges were the following:
- Not breaking the drat thing. It's so powerful it could easily break your balls if you got hit in the sack. Many times I've had the arms cross themselves and had to press the emergency stop button before the thing breaks its own arms
- Figure out the physical limits of the thing, like what the gently caress is actually happening when it's doing <100ms movements, when it starts to vibrate too much, how much time does the hand take to go up and down, things like that
- Writing code and having a couple of LEDs as my only debugging method for at least 80% of development (I figured out a way to have some sort of console after a while but I needed to get the UDP server working)
- Solve the inverse kinematics problem (which turns out to be quite easy when you know "the trick")
- 64 megs of RAM and absolutely no OS protection, which means a segmentation fault results in OS corruption and a reboot of the entire thing which takes about 2 minutes. That adds up over time.

There are a lot more, but I would say debugging was the hardest part. It's just trial-and-error and when you've stood up to go turn the drat thing off and on for the millionth time you just get kind of frustrated.

go play outside Skyler fucked around with this message at 21:57 on Jul 26, 2013

Seven Round Things
Mar 22, 2010

Sir Davey posted:

- It's coded in C++
C++ is my language of choice for desktop apps/gamedev, but I thought it was usually avoided on embedded systems/realtime stuff? Could you use exceptions/virtual functions/RTTI/STL/new/delete/etc, or was it more "C with classes"?

go play outside Skyler
Nov 7, 2005


Seven Round Things posted:

C++ is my language of choice for desktop apps/gamedev, but I thought it was usually avoided on embedded systems/realtime stuff? Could you use exceptions/virtual functions/RTTI/STL/new/delete/etc, or was it more "C with classes"?

Well it's a little complicated, but I was basically using a framework developped at my school that extends a lot on C++. I basically had the whole thing, including a bunch of extra things like reflection which really helps when you're serializing/deserializing things and want to keep it flexible. It was a great tool and it's all implemented using a bunch of preprocessor directives.

For example, if I want to make a public attribute with a getter/setter, I'd write

code:
PROPERTY_GET_SET(int,SomeAttribute)
in my .hpp file, and it will automagically create GetSomeAttribute() and SetSomeAttribute(). Also it will keep it in a list somewhere and I'll be able to reflect upon that attribute. As I've said, it makes it really easy to serialize entire lists of objects without knowing what they contain.

C++ is really not that frowned upon on embedded systems, from what I've learned. It's just that it's usually overkill for most projects. But when you have Linux running on a processor, you can do whatever you like. You shouldn't stick to C just because you have more control or something like that. You should use the appropriate tool for the job. If you need the flexibility of python or something like that, go ahead. Embedded Systems are getting ridiculously powerful nowadays.

E: here is the website of the the framework I used. It's actually quite powerful when you start using their tools
http://objectis.ch/en-us/products/ostudio/conceptrt.aspx

go play outside Skyler fucked around with this message at 23:18 on Jul 26, 2013

Seven Round Things
Mar 22, 2010

Sir Davey posted:

C++ is really not that frowned upon on embedded systems, from what I've learned. It's just that it's usually overkill for most projects. But when you have Linux running on a processor, you can do whatever you like.
I see. It was less the embedded part and more the real-time part that surprised me- C++ encourages exceptions, dynamic memory allocation, etc which make for nondeterministic timing. Clearly that isn't as much of a problem as I thought with modern embedded stuff- I still think of 8-bit AVRs and such when I think "embedded", which rather clouds my judgement on the matter... :)

That Turkey Story
Mar 30, 2003

Seven Round Things posted:

I see. It was less the embedded part and more the real-time part that surprised me- C++ encourages exceptions, dynamic memory allocation, etc which make for nondeterministic timing.
As someone who does the vast majority of his coding in C++, this isn't really true. C++ supports exceptions and dynamic memory allocation, but they're not encouraged (as in, you still only use them when necessary, like anything else). Writing something in C++ as opposed to C shouldn't change what data you're dynamically allocating and what data you're not dynamically allocating, and similarly, using C++ as opposed to C shouldn't imply that you all of a sudden have more exceptional behavior (that would certainly be a scary thought).

In other words, in C++ you should still minimize dynamic memory allocation and aim to have operations that do not have exceptional behavior, just like in C, and this is true whether you're doing embedded work or not.

go play outside Skyler
Nov 7, 2005


That Turkey Story posted:

As someone who does the vast majority of his coding in C++, this isn't really true. C++ supports exceptions and dynamic memory allocation, but they're not encouraged (as in, you still only use them when necessary, like anything else). Writing something in C++ as opposed to C shouldn't change what data you're dynamically allocating and what data you're not dynamically allocating, and similarly, using C++ as opposed to C shouldn't imply that you all of a sudden have more exceptional behavior (that would certainly be a scary thought).

In other words, in C++ you should still minimize dynamic memory allocation and aim to have operations that do not have exceptional behavior, just like in C, and this is true whether you're doing embedded work or not.

I couldn't have said it better myself! My software uses dynamic allocation for the soft real time task that feeds notes to the hard real time task that controls the arms. It's quite elegant actually :)

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
In most military and vehicle coding (car, boat, plane) standards, dynamic memory allocation is strictly forbidden for any part of the system that's mandatory for vehicle control. If the plane stalls because it's out of memory, that's bad, but having the lighting systems or in-vehicle infotainment systems reboot is fine.

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
Placeholder cave tile assets...


Replaced with real ones:

Red Mike
Jul 11, 2011
Not sure if it's just me, but it looks more like a sort of brown forest than a cave. Especially the diagonals.

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
The diagonals are going to get some more work shortly, we're missing a few tiles.

Blue Footed Booby
Oct 4, 2006

got those happy feet

Null Pointer posted:

I've been writing an engine replacement for Dark Forces 2.



Video showing some scripts running: https://www.youtube.com/watch?v=V5T7nrU5210

Still pretty early so there isn't too much to talk about other than scathing criticism of 1997's finest computer software design. No idea if I'll ever finish it, but it's been keeping me busy between interviews.

Finish ittttttt. The XL Engine already supports the first Dark Forces, but I honestly think the second is better, and it's a much bigger pain in the rear end to get working on a modern machine.

lord funk
Feb 16, 2004

MIDI controller version of TC-11 (calling it TC-Data) now has a cool message stream on the performance view:



The high speed scrolling isn't that useful, but it is fun to watch. :) I'm going to have a few ways of visualizing the data, including one where the lines stay put so you can actually read them.

Adbot
ADBOT LOVES YOU

Grawl
Aug 28, 2008

Do the D.A.N.C.E
1234, fight!
Stick to the B.E.A.T
Get ready to ignite
You were such a P.Y.T
Catching all the lights
Just easy as A.B.C
That's how we make it right

Sir Davey posted:

Well, this is my final bachelor's project actually so I am writing up a 60 page documentation, but it's all in french :) If the video gets a lot of success I'll definitely look into translating the interesting parts.

Imagine the money you could make if you just put a webcam+mic there and have a site where people can request songs for $1.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply