[QUOTE=Trumple;47437747]I don't really have anything to say other than the standard advice :(
Personally I always find myself procrastinating.
I do have one tip, though. Just write down a time log of what you get up to every day for a week. You don't have to plan anything, you don't need to start making a strict schedule, you just have to log.[/QUOTE]
I've put off working on [url]http://www.andrewmcwatters.com/spacetime/[/url] and have been using [url]https://www.rescuetime.com/[/url] to get a light sense of where my time is going.
It's not as detailed as I want it to be. Spacetime concept renders are similar to your spreadsheet above. I think some people in here said they didn't see the value in it. I'm a busy enough person where every minute of my time is valuable, and for the most part, monetarily accounted for, even outside of full-time work.
Some people operate at a level where they need to be [url=https://ma.ttias.be/obsessive-efficiency-disorder/]obsessive in their efficiency.[/url]
[QUOTE=andrewmcwatters;47437807]I've put off working on [url]http://www.andrewmcwatters.com/spacetime/[/url] and have been using [url]https://www.rescuetime.com/[/url] to get a light sense of where my time is going.
It's not as detailed as I want it to be. Spacetime concept renders are similar to your spreadsheet above. I think some people in here said they didn't see the value in it. I'm a busy enough person where every minute of my time is valuable, and for the most part, monetarily accounted for, even outside of full-time work.
Some people operate at a level where they need to be [url=https://ma.ttias.be/obsessive-efficiency-disorder/]obsessive in their efficiency.[/url][/QUOTE]
Come to think of it, I think it was your original Spacetime post that got me started on logging my time so thanks!
Rescue Time looks great, I'll certainly check that out
Good for you, dude! I hope you're a lot more productive or at least more informed now. Good developers need more hours in the day.
[QUOTE=DrogenViech;47437610]I have something to confess:
I feel as if i threw away the last ~11 years of my life by playing games whenever i had free time, instead of doing something useful :(
[url]http://facepunch.com/showthread.php?t=1458764[/url]
^
They are like 13, barely know any basic english grammar, but know how to mod the fuck out of battlefield, and i'm just sitting here, turning 25 this year, happy that i *finally* got an apprenticeship as an IT-specialist. ughh.
All my C++ programs have been shitty console applications so far...
I wish i could find the motivation to *learn* C++ and reverse
engineering, instead of just messing around a few minutes here and there whenever i feel like it :(
I'm so jealous of everyone in this thread :C[/QUOTE]
Oh no don't feel bad you're just the majority. Don't learn C++ if you don't have to if it's that big of a drain on you. I consider myself pretty good at C/C++ but I prefer using LuaJIT for everything just because of how much more fun it is to use. It's not really programming, it's thrilling to see what I finish next.
[QUOTE=bunguer;47437627]Not much programming on the game this time.
Testing a few animation sequences for a next pet. This pet is actually father/mother and child at the same time, the texture might be wip.
[vid]http://zippy.gfycat.com/BetterGrippingCanadagoose.webm[/vid][/QUOTE]
Your modeling work is pretty inspiring. Did you originally have a background in modeling or asset design? Or did you pick it up as a necessity for game development, and improve your skills dramatically over time?
When I moved away from Source to work on Grid, I didn't want to deal with the increased time expense of creating 3d assets, so I stuck to creating a 2d game engine on top of the LÖVE framework.
I plan on moving from LÖVE to Euclid, an in-house 3d framework in the distance future, but I want to know what I'd be getting into if I did more than 2.5d work.
I too decided to write a pixel sorter.
From:
[t]http://i.imgur.com/DJfGjpy.jpg[/t]
To:
[t]http://i.imgur.com/Cqlc7ej.jpg[/t]
Pretty simple, just sorts them from top to bottom in order of colour.
[QUOTE=andrewmcwatters;47437807]I've put off working on [url]http://www.andrewmcwatters.com/spacetime/[/url] and have been using [url]https://www.rescuetime.com/[/url] to get a light sense of where my time is going.
It's not as detailed as I want it to be. Spacetime concept renders are similar to your spreadsheet above. I think some people in here said they didn't see the value in it. I'm a busy enough person where every minute of my time is valuable, and for the most part, monetarily accounted for, even outside of full-time work.
Some people operate at a level where they need to be [url=https://ma.ttias.be/obsessive-efficiency-disorder/]obsessive in their efficiency.[/url][/QUOTE]
I do think being obsessive about efficiency might be troublesome and cause someone to burn out faster, nonetheless, keeping a sense of time and limiting your "fun time" is important to actually do some work, nowadays there's simply too much distraction everywhere.
Out of curiosity, I decided to see what it looks like on Windows 7 Aero. Backporting to .NET 4.0 only broke one line of XAML :D
[img]http://imgur.com/2uft8RI.png[/img]
I think it works :)
[QUOTE=andrewmcwatters;47438047]Your modeling work is pretty inspiring. Did you originally have a background in modeling or asset design? Or did you pick it up as a necessity for game development, and improve your skills dramatically over time?
When I moved away from Source to work on Grid, I didn't want to deal with the increased time expense of creating 3d assets, so I stuck to creating a 2d game engine on top of the LÖVE framework.
I plan on moving from LÖVE to Euclid, an in-house 3d framework in the distance future, but I want to know what I'd be getting into if I did more than 2.5d work.[/QUOTE]
Thanks! No background at all in those areas, I found 3d modeling important to do the things I enjoyed, so I simply practiced, even in a single year you can see big improvements. As it happens with most things, I think the important thing is to learn the mindset and keep improving (and hopefully, have fun doing it).
I started doing 2D stuff before doing 3D and 2D is definitely easier and less time consuming, but if you feel comfortable with 2D that's already an head start, especially in the creation of refs - one of the most important things when modeling, and also one of things I see get discarded the most. If you have a good ref you are already 50% of the way, the rest is like a puzzle you're trying to solve.
There's a lot of concepts in 3d besides simply modeling, such as good edge flows/topology, setting up normals, taking care of ngons, uvmapping, creating good normal maps etc but once you start you can learn these things as you go.
[QUOTE=Darwin226;47436583]So what you're saying is there are no good UIs?[/QUOTE]
Whoops, misread the parent comment. :derp:
[QUOTE=bunguer;47438813]There's a lot of concepts in 3d besides simply modeling, such as good edge flows/topology, setting up normals, taking care of ngons, uvmapping, creating good normal maps etc but once you start you can learn these things as you go.[/QUOTE]
I hear about these concepts from a friend of mine who's taking up modeling at the moment, it seems a little overwhelming, but I gather that it's not too big of a deal or you get used to thinking about those things. Thanks for your input, you've put out some really great work.
been messing around with OpenGL and SFML for the past few days
[img]http://i.imgur.com/bRD7fs9.png[/img]
not sure why the texture coordinates are freaking out but it's something
[editline]1st April 2015[/editline]
[img]http://i.imgur.com/HSA0iax.png[/img]
getting closer :v forgot to fix my layout in the shader
[QUOTE=DrogenViech;47437610]I have something to confess:
I feel as if i threw away the last ~11 years of my life by playing games whenever i had free time, instead of doing something useful :(
[url]http://facepunch.com/showthread.php?t=1458764[/url]
^
They are like 13, barely know any basic english grammar, but know how to mod the fuck out of battlefield, and i'm just sitting here, turning 25 this year, happy that i *finally* got an apprenticeship as an IT-specialist. ughh.
All my C++ programs have been shitty console applications so far...
I wish i could find the motivation to *learn* C++ and reverse
engineering, instead of just messing around a few minutes here and there whenever i feel like it :(
I'm so jealous of everyone in this thread :C[/QUOTE]
Looking at his videos he seems to be doing it in Java, and not very well:
[img]http://i.imgur.com/cftstiD.png[/img]
I'm not familiar with LWJGL but I don't think you should be mixing GL3, 2 and 1 like that
Yay, feels good to fix stuff that's broken.
[img]http://i.imgur.com/ZUW4vMF.png[/img]
I added a roadmap to the description so hopefully people will chime in on what they do/don't want.
[quote]
Current Feature Road-map:
2.2.0 - Add current track title
2.3.0 - Add notification with current track title and playback controls
2.4.0 - Show schedule
2.5.0 - Chromecast Support
2.6.0 - Lock screen widget?
2.7.0 - Allow users to see chat-room activity
[/quote]
[QUOTE=DrogenViech;47437610]I have something to confess:
I feel as if i threw away the last ~11 years of my life by playing games whenever i had free time, instead of doing something useful :(
[url]http://facepunch.com/showthread.php?t=1458764[/url]
^
They are like 13, barely know any basic english grammar, but know how to mod the fuck out of battlefield, and i'm just sitting here, turning 25 this year, happy that i *finally* got an apprenticeship as an IT-specialist. ughh.
All my C++ programs have been shitty console applications so far...
I wish i could find the motivation to *learn* C++ and reverse
engineering, instead of just messing around a few minutes here and there whenever i feel like it :(
I'm so jealous of everyone in this thread :C[/QUOTE]
Dude, we all started by messing around. I rarely open Visual Studio with a clear idea of what I'm going to make. In fact, I would consider my work something like improv. If I have a weird idea, I write code out of it. It's that simple, really.
If you find yourself struggling with a particular language, try something higher level. C++ can be pretty overwhelming because it gives you a lot more control than you probably need to perform basic tasks. For people who are relatively new to programming, I know that can really turn them away. Try C# or something, work your way up. They're both based on C, so the concepts transfer easily.
Work on things you enjoy. Don't learn to code because you feel like you have to. If I went into it thinking that, I would not have made it nearly as far as I did. Do something weird, something new. Have fun with it. You'll get better in no time.
[QUOTE=bunguer;47438677]I do think being obsessive about efficiency might be troublesome and cause someone to burn out faster, nonetheless, keeping a sense of time and limiting your "fun time" is important to actually do some work, nowadays there's simply too much distraction everywhere.[/QUOTE]
I think efficiency is fine, but there are times it can be counter productive, especially if you're shifting your focus a lot.
For example, at work I have many tasks I work on but sometimes high or critical incidents come up and I basically drop everything I'm currently doing and start working on those. There's a certain.. debt in constantly shifting your focus that can slow down your overall productivity.
Doing things while you're waiting is fine, but I find that shifting my focus too much just really throws me for a loop and makes it really hard to get anything done.
[editline]1st April 2015[/editline]
[QUOTE=DrogenViech;47437610]I have something to confess:
I feel as if i threw away the last ~11 years of my life by playing games whenever i had free time, instead of doing something useful :(
[url]http://facepunch.com/showthread.php?t=1458764[/url]
^
They are like 13, barely know any basic english grammar, but know how to mod the fuck out of battlefield, and i'm just sitting here, turning 25 this year, happy that i *finally* got an apprenticeship as an IT-specialist. ughh.
All my C++ programs have been shitty console applications so far...
I wish i could find the motivation to *learn* C++ and reverse
engineering, instead of just messing around a few minutes here and there whenever i feel like it :(
I'm so jealous of everyone in this thread :C[/QUOTE]
To add on to what Berkin said; No matter how good of a coder you think everyone else is, they're not. Every single one of us has [i]huggggggggggeeeee[/i] knowledge gaps so don't feel intimidated. Development is a... humbling experience, and people should really embrace that. Arrogance kills. Also if it makes you feel any better, I work on [i]Enterprise government accounting software[/i] for a living, doesn't that sound absolutely riveting?
Went back to one of my old projects to stress test it (for reasons)
[vid]http://a.pomf.se/nvwpuy.webm[/vid]
It can physically simulate ~5000 asteroids before starting to drop frames.
I'm so proud, because I wrote the collision code / collision checking system myself!
finally fixed the textures. i was passing the number 3 for the second argument in glVertexAttribPointer() for the texture coordinates instead of a 2, and i set the first argument to 1 when in the shader program the texture coordinates was 2. that was a great 2 hours that i spent for 2 numbers :/
[img]http://i.imgur.com/IkA94Ac.png[/img]
also fixed my lighting code to work with textured objects
Xamarin is pretty sweet
Though there are some noticeable gaps, or rather, some weird workarounds to how Java stuff is done.
For example Java has anonymous classes, C# doesn't.
e.g.
[code]
HelloWorld spanishGreeting = new HelloWorld() {
String name = "mundo";
public void greet() {
greetSomeone("mundo");
}
public void greetSomeone(String someone) {
name = someone;
System.out.println("Hola, " + name);
}
};
[/code]
The Android SDK more or less expects you to use anonymous classes if you want to "override" certain functionality instead of exposing events.
One example there was a case where in Java you'd use an anonymous class, but, in Java the anonymous class still has access to the parent classes members. In Xamarin you're supposed to inherit from an abstract class, and override the methods there. However, what if you need access to the parent object's members? Only way is doing it through the constructor, or static member (ew). It's a bit... odd because they basically work around these Java patterns.
I fucking hate the x86 architecture.
[editline]2nd April 2015[/editline]
[QUOTE=Bladezor;47440544]For example Java has anonymous classes, C# doesn't. [/QUOTE]
But C# has anonymous types, isn't that kinda same?
[code]
var v = new { Amount = 108, Message = "Hello" };
Console.WriteLine(v.Amount + v.Message);
[/code]
awww shucks
i was working on a funny april fool's day project last night but today i moved into my new apartment and i didn't have internet until just now, and the project needed internet to test it so progress came screeching to a 100% stop :(
and since i'm just stealing the (SUCKERRR) neighbor's unsecured wireless from my work laptop, i can't finish it since i need to go borrow a wireless dongle for my main computer so i can leech the neighbor's wifi bone dry
so i guess i'll just describe the project :v:
it is a winforms app that randomly generates a facepunch user's profile (and checks the url for the id generated to look for the word "Invalid" so if it's present it generates a new one until a valid one is generated) and shows their information (avatar, post count, posts per day, join date, etc) and their most recent post so you can rate them dumb
i wasn't gonna release it but i was gonna make a video showing it's functionality before deleting it
anyway new apartment woo
Virtual machine
[thumb]https://raw.githubusercontent.com/cartman300/CarpOS/master/screenshots/csod.png[/thumb]
Actual computer but with no video drivers because x86 IS A FUCKING BITCH
[thumb]https://raw.githubusercontent.com/cartman300/CarpOS/master/screenshots/real.png[/thumb]
And also later i got them working
[thumb]https://raw.githubusercontent.com/cartman300/CarpOS/master/screenshots/csod2.png[/thumb]
[editline]2nd April 2015[/editline]
Oh yeah, also because my computer is kinda new i tried network booting. It turns out legacy BIOS is not supported when network booting (UEFI only) and because of that i had no legacy console or video (GRUB doesn't like it). Booting from USB was kinda not an option because i had to reflash the iso onto the usb constantly, so i burned a generic (and a bit customized) version of GRUB onto a CD and used that to boot my kernel files from usb.
TL;DR It's a clusterfuck.
A bunch of the things I make are because I am dissatisfied with the other options. Wanted a wallpaper rotation that used PNG so I made a wallpaper cycler that doesn't save the image as a JPG then save it as a BMP. (Seriously why the fuck would you do that microsoft) Had hundreds of songs with the artist and title in the file name but no tags so I made a program to set them all at once.
Then there are dozens of other tiny little things that I only used once where it would have been faster to just do it manually.
[QUOTE=cartman300;47440683]I fucking hate the x86 architecture.
[editline]2nd April 2015[/editline]
But C# has anonymous types, isn't that kinda same?
[code]
var v = new { Amount = 108, Message = "Hello" };
Console.WriteLine(v.Amount + v.Message);
[/code][/QUOTE]
Similar in some ways I guess, but the classes allow functionality not just variables, I think even inheritance is available.
Anonymous classes are(or at least usually are) super messy but anonymous types are just implicitly declared variables, it's pretty hard to make a mess with them.
I hate Java.
[QUOTE=cartman300;47440683]But C# has anonymous types, isn't that kinda same?
[code]
var v = new { Amount = 108, Message = "Hello" };
Console.WriteLine(v.Amount + v.Message);
[/code][/QUOTE]
The ones in Java are fully typesafe while the C# ones don't even support interfaces and as such can't be used as parameters for those methods without reflection.
However Xamarin's solution is pretty suboptimal too (but can be easily remedied with user code).
Taking Bladezor's example, it can be easily made nice like this:
[code]//C#
class Thing : HelloWorld // Put this somewhere easily accessible.
{
public Action Greet { get; set; }
public Action<string> GreetSomeone { get; set; }
public override void greet() { Greet(); }
public overrid void greetSomeone(String someone) { GreetSomeone(someone); }
}
// Use it like this:
HelloWorld spanishGreeting;
{
string name = "mundo";
Action<string> greetSomeone = someone =>
{
name = someone;
Console.WriteLine("Hola, " + name);
};
spanishGreeting = new Thing()
{
Greet = () => greetSomeone("mundo"),
GreetSomeone = greetSomeone
};
}[/code]
Still a bit cumbersome (though your example is especially roundabout in a imo rather useless way that forces me to define some variables beforehand) but the lambda captures behave exactly like Java's parent class access with more flexibility.
(If you use a local class member in a lambda then the [I]this[/I] reference is captured.)
If you need to work with simple events taking only one method override, you can also provide them as custom events:
[code]AutoInit<Dictionary<Action, EventClass>> _blaHandles; // I didn't actually write this but it's trivial to make a struct that auto-creates objects without having to write a full property with backing field each time. Of course it's not that "clean".
public event Action Bla
{
add
{
var handle = new EventClass(value);
_blaHandles.V.Add(value, handle);
TrueEvent.Subscribe(handle);
}
remove
{
TrueEvent.Unsubscribe(_blaHandles.V[value]);
_blaHandles.V.Remove(value);
}
}[/code]
Usage is like with normal events.
If you need to subscribe to events on specific instances with this utility method, use a ConditionalWeakTable<InstanceType, Dictionary<Action, EventClass>> to store the handles so it can be garbage-collected.
[editline]2nd April 2015[/editline]
Here's the [I]AutoInit[/I] struct, use it with care:
[code]struct AutoInit<T> where T : class, new()
{
T _value;
public T V { get { return _value ?? (_value = new T()); } }
}[/code]
[editline]2nd April 2015[/editline]
I suppose the empty [I]Dictionary<,>[/I] is technically small enough to not cause issues anyway.
I just usually try to avoid creating unused instances in static code.
[QUOTE=Quark:;47441054]awww shucks
i was working on a funny april fool's day project last night but today i moved into my new apartment and i didn't have internet until just now, and the project needed internet to test it so progress came screeching to a 100% stop :(
and since i'm just stealing the (SUCKERRR) neighbor's unsecured wireless from my work laptop, i can't finish it since i need to go borrow a wireless dongle for my main computer so i can leech the neighbor's wifi bone dry
so i guess i'll just describe the project :v:
it is a winforms app that randomly generates a facepunch user's profile (and checks the url for the id generated to look for the word "Invalid" so if it's present it generates a new one until a valid one is generated) and shows their information (avatar, post count, posts per day, join date, etc) and their most recent post so you can rate them dumb
i wasn't gonna release it but i was gonna make a video showing it's functionality before deleting it
anyway new apartment woo[/QUOTE]
You should release it but make it return only moderator profiles, disguised as other users. :v:
[QUOTE=cartman300;47441094][...]
Oh yeah, also because my computer is kinda new i tried network booting. It turns out legacy BIOS is not supported when network booting (UEFI only) and because of that i had no legacy console or video (GRUB doesn't like it). Booting from USB was kinda not an option because i had to reflash the iso onto the usb constantly, so i burned a generic (and a bit customized) version of GRUB onto a CD and used that to boot my kernel files from usb.
TL;DR It's a clusterfuck.[/QUOTE]
As far as I've heard, the UEFI specification is supposed to be a bit nicer than legacy BIOS booting.
[QUOTE=Tamschi;47441406]As far as I've heard, the UEFI specification is supposed to be a bit nicer than legacy BIOS booting.[/QUOTE]
not even once
[QUOTE=Tamschi;47441312]The ones in Java are fully typesafe while the C# ones don't even support interfaces and as such can't be used as parameters for those methods without reflection.
However Xamarin's solution is pretty suboptimal too (but can be easily remedied with user code).
Taking Bladezor's example, it can be easily made nice like this:
[code]//C#
class Thing : HelloWorld // Put this somewhere easily accessible.
{
public Action Greet { get; set; }
public Action<string> GreetSomeone { get; set; }
public override void greet() { Greet(); }
public overrid void greetSomeone(String someone) { GreetSomeone(someone); }
}
// Use it like this:
HelloWorld spanishGreeting;
{
string name = "mundo";
Action<string> greetSomeone = someone =>
{
name = someone;
Console.WriteLine("Hola, " + name);
};
spanishGreeting = new Thing()
{
Greet = () => greetSomeone("mundo"),
GreetSomeone = greetSomeone
};
}[/code]
Still a bit cumbersome (though your example is especially roundabout in a imo rather useless way that forces me to define some variables beforehand) but the lambda captures behave exactly like Java's parent class access with more flexibility.
(If you use a local class member in a lambda then the [I]this[/I] reference is captured.)
If you need to work with simple events taking only one method override, you can also provide them as custom events:
[code]AutoInit<Dictionary<Action, EventClass>> _blaHandles; // I didn't actually write this but it's trivial to make a struct that auto-creates objects without having to write a full property with backing field each time. Of course it's not that "clean".
public event Action Bla
{
add
{
var handle = new EventClass(value);
_blaHandles.V.Add(value, handle);
TrueEvent.Subscribe(handle);
}
remove
{
TrueEvent.Unsubscribe(_blaHandles.V[value]);
_blaHandles.V.Remove(value);
}
}[/code]
Usage is like with normal events.
If you need to subscribe to events on specific instances with this utility method, use a ConditionalWeakTable<InstanceType, Dictionary<Action, EventClass>> to store the handles so it can be garbage-collected.
[editline]2nd April 2015[/editline]
Here's the [I]AutoInit[/I] struct, use it with care:
[code]struct AutoInit<T> where T : class, new()
{
T _value;
public T V { get { return _value ?? (_value = new T()); } }
}[/code]
[editline]2nd April 2015[/editline]
I suppose the empty [I]Dictionary<,>[/I] is technically small enough to not cause issues anyway.
I just usually try to avoid creating unused instances in static code.[/QUOTE]
The particular issue I was having is with the BroadcastReceiver, and is a little closer to this.
Java:
[code]
public class MainActivity extends Activity {
public void SomeMethod()
{
// Do stuff
}
@Override public void onCreate(Bundle savedInstanceState){ // Activity onCreate
super.onCreate(savedInstanceState);
mFilter=new IntentFilter();
mReceiver=new BroadcastReceiver(){
@Override public void onReceive(Context context, Intent intent){
SomeMethod();
}
}
}
}
[/code]
Issue with C# + Xamarin:
[code]
public class MainActivity : Activity
{
MainActivityBroadcastReceiver _broadCastReceiver;
public void SomeMethod()
{
// Do stuff
}
protected override void OnCreate (Bundle bundle) // Activity onCreate
{
base.OnCreate (bundle);
_broadCastReceiver = new MainActivityBroadcastReceiver();
LocalBroadcastManager.GetInstance(this).RegisterReceiver(_broadCastReceiver, new IntentFilter(GetString(Resource.String.PlaybackServiceMessage)));
}
}
public class MainActivityBroadcastReceiver : BroadcastReceiver
{
public MainActivityBroadcastReceiver()
{
}
public override void OnReceive(Context context, Intent intent)
{
// No access back to activity. Context is not the activity.
// Passing it via the constructor causing me issues too.
}
}
[/code]
The problem I have is probably compounded by this
[quote]
A BroadcastReceiver object is only valid for the duration of the call to BroadcastReceiver.OnReceive(Context, Android.Content.Intent). Once your code returns from this function, the system considers the object to be finished and no longer active.
This has important repercussions to what you can do in an BroadcastReceiver.OnReceive(Context, Android.Content.Intent) implementation: anything that requires asynchronous operation is not available, because you will need to return from the function to handle the asynchronous operation, but at that point the BroadcastReceiver is no longer active and thus the system is free to kill its process before the asynchronous operation completes.
[/quote]
[editline]2nd April 2015[/editline]
Basically I'm trying to use the BroadcastReceiver to allow a Service to do callbacks to the Activity.
Sorry, you need to Log In to post a reply to this thread.