Recent posts by EndlessSporadic on Kongregate

Flag Post

Topic: Game Programming / Foreign Tax Id problem (Solved)

They seems quite selective on the documents they need. It doesn’t make much sense to ask for an original passport if you send it by fax.

What they mean is you can’t fax over an image of a copy (or another image). You need to copy the original passport.

 
Flag Post

Topic: Off-topic / What was the last thing you copy/pasted?

VARARGS

 
Flag Post

Topic: Game Programming / call function from another class

Welcome to the nuances of inheritance and typecasting =)

 
Flag Post

Topic: Game Programming / Making an Idle Game time update

My games really suck and were made when I just started making games, but thanks for the compliment.

 
Flag Post

Topic: Game Programming / Copyright Issue

This is not fair use as you are monetizing their content, even if you are altering it. One of those online city builders also took assets from Age of Empires 2 and slightly altered them and it got them into extremely hot water with Microsoft. There are many exceptions to what constitutes fair use, but if you are unfamiliar with the law you are best avoiding it altogether unless you are absolutely, positively sure the content is provided with a CC0 or GNU license (Age of Empires content is not).

Here’s a quick and dirty way to tell whether you are violating fair use: You can use whatever assets you want from whomever you want, but the moment you try to monetize the content it is no longer fair use. Even if you release it for free the original owners have the right to ask you to remove their content and you are legally obligated to do so.

 
Flag Post

Topic: Game Programming / Making an Idle Game time update

When the application saves, save the current DateTime with it. When the app loads up again, get the current DateTime and subtract the saved DateTime from it. That will give you a timespan duration. Use math and provide resources based on that time.

 
Flag Post

Topic: Game Programming / News: Firefox Blocking Flash Plugins

I’m not sure whether Adobe understands this, FlashGrenade. From what I gathered in the article this was a third party plugin. The company itself isn’t doing anything. Do correct me if I am wrong, though. Either way this feature should be natively supported, not with a plugin. Like I said above, however, it is a step in the right direction.

 
Flag Post

Topic: Game Programming / News: Firefox Blocking Flash Plugins

Originally posted by player_03:
Originally posted by revenant__:

Like they can kill flash plugin but make a compiler of as3 to html5.

They’ve thought of that

Color me interested. Not quite what I was hoping for, but definitely a step in the right direction even if it is a third party extension.

 
Flag Post

Topic: Game Programming / News: Firefox Blocking Flash Plugins

Of course demand for animation software that is easy to use is great, but if that software isn’t supported anywhere it doesn’t matter how easy it is to use. Ultimately Flash is built on an old and extremely outdated framework, and Adobe has shown no plans on bring it up to date. Their constant updates are nice but they are ultimately empty since the fundamental framework is weak. Many of the web providers are rather tired of implementing security features that should have been in the plugin itself. It is not their responsibility to keep third party applications updated, and they are getting sick of it.

I love the features that Flash and ActionScript provide. Really, I do. I don’t like how Adobe and fanboys both are putting outdated technology on a pedestal and claiming it to be the miracle programming language of game development (in my defense I have serious issues with C/C++ as well, but C++ is the main language of game development on almost every single platform for a reason). I believe we’ve clashed over this before, FlashGrenade. At least I think it was you….hmm.

Anyway, anyone who can recreate Adobe Flash and ActionScript (a more feature-rich version of it at least) on a newer, more secure framework and successfully win a lawsuit again Adobe will be one of my favorite companies of all time.

 
Flag Post

Topic: Game Programming / [UPDATED] Loading external assets

Thanks for the assistance, Aesica. I am extraordinarily bad at expressing my thoughts so people tend to pass off my advice (which is more often than not poorly worded anyway).

 
Flag Post

Topic: Game Programming / [UPDATED] Loading external assets

I use Unreal Engine 4 as my development tool, so I only use a single sprite for each GUI element (sprite-sheeted) and use post processing and animation to get it to do what I want to do. To go even further I also use the individual RGB channels for masking, and multiple textures use that single masking texture.

The example below shows how you can use a single texture and programmatically alter the color using color multiplication. Note that the texture sample node is white, but when multiplied by that orange color the resulting color is orange.

The example below shows how each individual channel can be used to change the appearance of something. Don’t worry about what the following explicitly does, but just note that the node in the yellow box has multiple wires coming out of its red, green, and blue channels. The following is used to calculate the color of a chair. In the boxed texture sample node, the base color is stored in the red channel, the metal color is stored in the green channel, and the padding color is stored in the blue channel. Three textures combined into one.

 
Flag Post

Topic: Game Programming / [UPDATED] Loading external assets

even optimizing everything and using spritesheets instead of individual images might speed up the load progress but prob wont further reduce the swf filesize, pixels stay pixels.

Depends on the padding you give each image. In an ideal spritesheet there are 0 pixels between images as apposed to the 4 or 6 you are probably giving them now. Multiply the height and width by 4 and 6 and do that for each image and I assure you it adds up.

But as you notice above im working with 1000+ assests

Is it not possible to reduce that number by doing runtime processing? For example if you have two identical images, one red and one blue, can you not make a white image and apply a filter onto it at runtime? Not only will this drastically reduce file size but it will allow you to create even more potential images at no cost. See some documentation as well as a live example of image filtering.

one of the reasons i want to look into external dataLoad is cause i want to reduce the dataLoad for users not increase it.

Either way the data needs to get to the player somehow. All you are doing is avoiding the limitation set by Kongregate. The data is hosted externally, yes, but that data is still ultimately sent to the user. Ignoring network processing which does not apply here your computer can’t use data it doesn’t have locally.

Correct me if im wrong but talking about datacaps woudnt it take less data to start a game with like 50 assets and only load those who are needed when entering a certain level or menu? … or am i totaly missing the point here cause its gonna cost alot of extra “transfer” data to load externaly?

It would, yes, but once again the data will ultimately need to be sent to the user when requested. This includes extra header bandwidth as well as potential ping requests.

Part of me believes that if you are using that many assets this early in your development life you set your scope way too big. This is your first game, yes? You shouldn’t require 1200 assets. Even some of the larger games uploaded to this website, and I mean the super large ones, are well optimized and only use around half of that.

I want you to do me a huge favor and really look through your assets and remove what is superfluous. Find a way to alter your assets via programming instead of making a new asset for each type. The following are primary targets for post-processing:

1) Bullets
2) Flora
3) Text
4) Terrain

An important thing to note: you have a 20MB file limit, but upwards of 500MB of RAM on desktops. Create the images you need at runtime and store them in RAM. Mobile development is all about being innovative with how you handle your data. Unlike desktop applications you are not given unlimited resources. Mobile development is not about finding ways to circumvent the limit – it is about how to best utilize what you are given.

 
Flag Post

Topic: Game Programming / [UPDATED] Loading external assets

First try reducing the filesize of your existing assets before you attempt to pull from elsewhere. People still have data caps (screw the US internet companies grumble grumble) and may not appreciate loading more data than is expected.

A few things you can try:

1) Reduce the audio files to no larger than 128kbps (VBR6). Some people claim that Flash has issues with VBR. If you run into problems re-encode it to CBR. Depending on the song and overall quality of your game you can probably get away with 96kbps. People aren’t expecting lossless-quality audio from Flash games.

2) See if you can get away with creating smaller images then upscale them to the required size within the application.

3) Put your assets into a spritesheet. See if you can make a single 1024×1024 image and shove as many sprites onto the image as possible (keeping in mind that all assets need to be contained within squares that do not overlap with other images). There are a few articles that explain how to do it and a few good applications that can do this for you.

 
Flag Post

Topic: Off-topic / Anime Addicts Anonymous (AAA)

Unfortunately my experience with VNs is practically zero. Feel free to talk about them, though. I believe others would be able to comment. I’m always looking for a good starter VN.

 
Flag Post

Topic: Off-topic / Anime Addicts Anonymous (AAA)

I never got around to watching Higurashi. It’s been on my list for years. The version I have defaulted to dub and both audio players I have do not allow me to switch the audio language to Japanese. I tried watching the first episode dubbed but it was too painful to continue. I’ll get there eventually.

 
Flag Post

Topic: Game Programming / Maximum Game Resolution

I know for a fact it supports games larger than 800×600. You can upload a dummy project to check. Upload it like usual and get to the preview stage then delete it without publishing.

As for the web player issue just export to HTML5.

 
Flag Post

Topic: Off-topic / What was the last thing you copy/pasted?

template <typename A, typename B>
struct TAreTypesEqual
{
enum { Value = false };
};

template < typename T >
struct TAreTypesEqual<T, T>
{
enum { Value = true };
};

 
Flag Post

Topic: Game Programming / Maximum Game Resolution

You can go whatever you want, but that doesn’t mean your players will appreciate it. 800×600 is standard because it fits nicely on all resolution monitors and it leaves enough GUI space required for Flash games. Unity games can call for higher resolutions due to the nature of what type of games are possible with the engine, but you risk isolating people who still use 1336×768 resolution monitors (this is mainly the laptop crowd and is still a surprisingly non-negligible percentage).

The answer is how much screen space you require (not how much you want) and how much of your audience you want to exclude.

 
Flag Post

Topic: Game Programming / Which languages does Kong accept?

If you can host a Java Applet (or other web format) externally, then you can use an iFrame to submit it to Kongregate.

I always thought you couldn’t do that. Runescape was the exception. Would be nice if I was wrong.

 
Flag Post

Topic: Kongregate / Found in the office: Real life Shiny Nikhil!

I remember stopping by the office 2 or so years ago while I was in California for GDC. I wasn’t let in =(

 
Flag Post

Topic: Game Programming / Crap

I’m a sucker for idle games since I’m a busy person, but most of them are pretty low quality.

 
Flag Post

Topic: Game Programming / Unity - save game approach

you’re very limited to the data types you can store

Only if you don’t know how to serialize.

getting and setting each individual variable.

Once again if you don’t know how to serialize.

PlayerPrefs allows for 15MB of data which is way more than you need for saving. Even AAA games don’t use more than 2MB. Serializing your data means saving the entire object as a string then saving the string.

public string ObjectToString(object obj)
{
   using (MemoryStream ms = new MemoryStream())
   {
     new BinaryFormatter().Serialize(ms, obj);         
     return Convert.ToBase64String(ms.ToArray());
   }
}

public object StringToObject(string base64String)
{    
   byte[] bytes = Convert.FromBase64String(base64String);
   using (MemoryStream ms = new MemoryStream(bytes, 0, bytes.Length))
   {
      ms.Write(bytes, 0, bytes.Length);
      ms.Position = 0;
      return new BinaryFormatter().Deserialize(ms);
   }
}
 
Flag Post

Topic: Game Programming / Unity C# API Tutorials?

I couldn’t tell you, sorry =(

 
Flag Post

Topic: Game Programming / News: Firefox Blocking Flash Plugins

http://www.engadget.com/2015/07/14/firefox-blocks-flash/

Firefox has just announced that they will be blocking the Flash plugin by default until Adobe overhauls the system and/or improves security. Users can still enable Flash, but they need to go into the menu to do so.

Discuss, or not. Thought I’d leave this here.

 
Flag Post

Topic: Technical Support / Unity is such a temperamental pile of crap

Originally posted by ktrout42:

Games should no longer use Unity, it is a poor piece of technology and should no longer be supported by Kongregate.

For clarity, Unity’s plugin uses Netscape’s API called NPAPI. This is technology created in the 90’s and is incredibly unstable by today’s standards. Chrome no longer supports NPAPI and therefore does not support Unity’s plugin. As a fun fact Java and Silverlight also use NPAPI and are no longer supported in Chrome either.

You can re-enable the feature in Chrome by entering “chrome://flags/#enable-npap” into your address bar while using Chrome and clicking the “Enable” button under “Enable NPAPI”. This option will be removed completely in September. Unfortunately, however, it seems that Kongregate ignores this flag and does browser checking on their side before displaying content to you.

Take a look at a similar thread and see if any of the responses can help you.