Posted on August 20th, 2016 by Goodlookinguy
I’m working on a game and server for a game called “Word Chain” which is based on
Chain Reaction. While scouring my code JetBrains ReSharper told me that a section of my code was redundant. ReSharper was sort-of right, but was actually quite wrong according to Roslyn. In fact that only reason the code looked the way it did was because of a bizarre “bug” in my code that was anything but that.
Here’s what was written down (UDPGameServer and TCPGameServer stem from abstract class GameServer)
gameServer = Program.SpArguments.ContainsKey("udp") ? (GameServer)new UDPGameServer() : (GameServer)new TCPGameServer();
This is what ReSharper recommended, but this errors out with the error message show below.
gameServer = Program.SpArguments.ContainsKey("udp") ? new UDPGameServer() : new TCPGameServer();
This is one way to cast that I tried, but failed with the error below.
(GameServer)(Program.SpArguments.ContainsKey("udp") ? new UDPGameServer() : new TCPGameServer());
This is another way to cast that I tried, but failed with the error below.
gameServer = (Program.SpArguments.ContainsKey("udp") ? new UDPGameServer() : new TCPGameServer()) as GameServer;
This is the error shown from the three changes I attempted at the code. As you might clearly see, this really shouldn’t error out and should be legal code by C# standards.
Error CS0173 Type of conditional expression cannot be determined because there is no implicit conversion between ‘ChainReactGame.UDPGameServer’ and ‘ChainReactGame.TCPGameServer’ ChainReactMPServerr
In closing I don’t have much to say other than I’d like to see a Microsoft dev tell me why they think this error is appropriate and where in the C# standards can I find a specification that says this error should be thrown by the roslyn compiler. I personally think this is a roslyn bug, but I don’t know. I’d like to hear your thoughts on it if you’ve been thrown this doozy.
Posted on June 28th, 2016 by Goodlookinguy
I’m going to be releasing the source code to some old projects that I’ve only released as freeware next Monday. “Why?,” you might be asking yourself. It’s because of this VirusTotal Link.
I laughed when I saw that PeerBlock List Unblocker was detected as “Trojan.MSIL.gen.18” by whatever “VBA32” is. The hilarious part is that the code is so incredibly innocent (and small) that I figured like the rest of my software, it would be detected as 100% clean (because it is). However, some PoS anti-virus proved to me that the most innocent software can be detected as bad. So I’m going to release the source code to disperse any doubts and at the same time I will also release DTF, PE, and BTT’s source code.
Edit: Oh hey, you know the newly released “WebP GUI”. You know, the one where I provided source code basically from the very start of development, that’s detected as a virus by 1 PoS anti-virus too. VirusTotal Link. This is further proof that the small anti-viruses need to dropout of the game because they hurt software developers by reporting false-positives.
Important Note: The reason I can’t release until Monday is because I’m not home and because of a hardcore brownout (that shut my computer off) in the city I’m from, while I’ve been away. So I can’t access my computer remotely, otherwise I would’ve already.
Edit: Ah ha, I got the Chinese company to not consider my software as a generic trojen. I couldn’t even figure out how to contact “VBA32” so I gave up. As a note, I am not going to release the software anymore. I now remember the reason why I didn’t release it in the first place. It wasn’t because of any “malwares”, it was because it had software dependencies in weird places that make it hard to upload online to a repository. For instance, the btt tool requires my private nrgsoft lib dependency module to compile.
Posted on June 28th, 2016 by Goodlookinguy
One day later and already a new release of WebP GUI. This is be expected though, as the first release was very incomplete. This version is too, but far less incomplete.
The software is about 30% done right now. The small remaining compression features will be added next and then the decompression features will start to be added. More releases are going to come.
Download: Windows (Vista & Above) | Source Code
- Added nearly all remaining compression features
- Added about dialog
- Changed right-hand items layout
Posted on June 27th, 2016 by Goodlookinguy
WebP is an image format developed and maintained by Google. While having a number of features, it lacks a lot of support from the general community at large. So I decided to help out a bit by introducing WebP GUI. It’s a piece of software designed to use Google’s webp binaries and manipulate them in a fashion people are more accustomed to instead of cryptically writing it out on the command line.
WebP GUI, like WebP itself, is definitely incomplete, but complete enough to release for now.
Download: Windows (Vista and above) | Source Code
Note to XP and below users: I’m officially not supporting Windows XP anymore. It’s time to upgrade. I’m not saying you have to go to Windows 10, but you can’t stay on XP either.
Posted on May 17th, 2016 by Goodlookinguy
For some reason I was loading the left repository updates sidebar on the main thread. Now it’s loading in the background and is speeding up the page delivery. Sorry about that screw-up.
Posted on May 3rd, 2016 by Goodlookinguy
I didn’t announce it, but after the Ludum Dare I went immediately on vacation. Oh, I also quit 4 hours in after completing my prototype because I saw 5 posts by other users who were making the exact same game. I guess we all had about as much creativity as a wet rag when it came to the theme ‘shapeshifting.’
Whatever the case, at least I wasn’t unhappy. I quit because of sheer number of similar games. Imagine how many people did the same idea and didn’t post! It was a valid quit. On a positive note, I completed the prototype in 4 hours. I’ve improved quite a bit since the last time I completed one. Now to get even faster. Sadly I only took away a few things from that compo, I was hoping for more, but whatever, at least I learned a new technique that is an optical illusion, but useful for certain things.
Whatever the case, back to the large project I’ve been working on in secret. It’s now been 8 months, so yay! (Did I even mention this project in any other post?)
Posted on April 14th, 2016 by Goodlookinguy
I’m in the process of preparing for the 35th Ludum Dare (LD). I haven’t attempted an LD since my 9th time at LD 29. Six Ludum Dares have passed since then. It’s also been 9 Ludum Dares since a complete game was made. Albeit, LD27 was more complex than any of my other games and wasn’t finished for valid reasons. LD 28 and 29 were both uninspiring and I quit hours into both.
I now have a new framework and a lot of experience in some newer areas that has helped to build up my experience for general and game dev. So I’m going at it again. This is why I’ve been relatively silent for the past months. It’s been a fairly consistent stream of framework development pertaining to a larger game. However, to ensure I’m traveling in the right direction, the framework will be put to the test at LD35 to ensure it both works and can pump out decent results.
I will likely stream it live, although not 100% of it. As in, the hours I’m asleep.
Posted on March 19th, 2016 by Goodlookinguy
I’ve put up a Patreon page for anyone who wants to support my continued software development. This can be found here: https://www.patreon.com/nrgsoft
Basically, I’m at a crossroads right now. Either I will have to start selling software or close up shop after the years end. It’s expensive to run this place and I’m broke. No one has donated via flattr yet, so I wouldn’t be surprised if no one gave me anything on Patreon. However, I figured it was better than doing nothing at all.
Important: If you honestly support any of my projects, give to my Patreon and make a comment about what software you specifically are pledging to help continue development of. I will seriously consider further development of software that is discontinued if you are donating money to me.
I think I know how PBS feels now, having to do all of those ridiculous pledge drives.
Posted on February 2nd, 2016 by Goodlookinguy
From here-on I am upgrading and switching to newer develop tools for ease. Which means in return you’ll need the newer runtime which can be acquired through Windows update.
1) VS2010 –> VS2015
2) C# 4.0 –> C# 6.0 (I’m in love with 6.0)
3) .NET 4.0 –> .NET 4.6.1. (get .NET 4.6.1 if on Windows 7/8/8.1)
I’m also going to start using Mono+GTK# whenever I can so that I can make cross-platform tools without having to go the C++ route. This of course depends on both the type of program and whether or not it is platform-specific.
For instance, if I was developing a Windows Registry editor, that would be done with .NET. If I was developing a UPnP Manager (wink wink), that would also be with .NET because I’m using the COM UPnP controls provided by Microsoft for Windows and haven’t a clue how to achieve the same results on Linux or OS X. Sure, I could learn, but my interest is weighed by both my everyday usage and that of most people. I also take into consideration how much time I’m willing to work on a project. Most of the time a few days is the limit because it doesn’t hold me long enough before I want to do something else.
Anyways, we have no plans for current new software this year (but we never do). We’re looking into trying to get a developer license for the 3DS. We wish to start a project on it and have been holding off until we could find a platform to develop for exclusively. If not the 3DS, we will just turn to Windows because, who cares I guess… Really we wanted to develop for the PS Vita, but not only is Sony unfriendly towards indie devs with little to no income, but they are blunt about their disinterest in us. This really annoys me to no end because I love portable gaming, but hate mobile phone gaming. I wanted to utilize the power of the PS Vita, but instead I’ll willingly opt-in for making a 3DS exclusive instead so that I can give Sony the middle finger for their poor treatment of indies.
Posted on December 21st, 2015 by Goodlookinguy
I really screwed up the first release when I set the minimum internal port as 1025. That was an accident because I wasn’t paying attention. So I’m essentially re-releasing the original version of the program, but now the minimum internal port value is 1.
Download: UPnPManager (21/12/2015)
In other news!
A) My ChainReact Server and Game Client are coming soon! I’ve been working on this one for a while. It’s based on the GSN gameshow, Chain Reaction, which I adore.
B) I’ve created an entire OS system in the browser and went way overboard on both the aesthetics and usability to the point where you could believe you were actually using a Virtual Machine. I’m not kidding. I got really obsessed and well…I think I might release it as an alternative to remote desktop. It supports software installation, permissions (sort of…), code obfuscation, full Window-management support, and way more than it ever should have. I originally set out to build an editor for a video game database and forgot what I was doing part way through.