Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 30 Jan 2011
Online Last Active Today, 01:56 AM

Posts I've Made

In Topic: Creating a game launcher.

24 November 2014 - 11:12 AM

1) Agent is primarily responsible for launching and updating the games, so a broken agent leads to a couple of problems. The launcher application launches agent which will go about updating the BNet launcher if needed. If agent requires an update the launcher will update Agent before it finishes opening.


2) I believe bundled with the steam updates is a process called SteamUpdater.exe which is launched either by pressing restart when steam bugs you for an update, or launched when steam opens after an update. The updater handles restarting the steam client as necessary.


Since Blizzard changed their update process when WoW came out here is what they did both before, and up until the BNet launcher came about:


Back in the Diablo 1 and SC1 days Blizzard had a program that would handle swapping out exes and what not. Since the exe's were stored inside the MPQ's all that was needed was to extract the file. This replaced the old one with the new one. Due to their archives having priority/chaining, all you needed was a new patch archive and the exe in order to continue playing the game. Users still had to manually press update as nothing was really automatic about it like it is now.


Something similar to this is still perfectly viable as the updater would be able to update everything but itself. How was the updater updated then? It was just replaced on the server and required a specific version number for the game exe in order to run. This also prevented patching your game multiple times, or patching to an earlier version.


For WoW they used a similiar two part process - they used a custom bittorrent downloader (see this for some more background information on that) which downloaded the data. This allowed them to leverage off users who already downloaded their game to save their own bandwidth. Each patch came with the downloader and upgrader application, with the upgrader being newer versions of their upgrade app they had been using over the years. Before this SC1, D1, and D2 all handled downloading the newest patch data themselves then running the updater.


With that said the DLL approach is definitely the easiest, but if that wouldn't work with your game exe just use the separate programs.


Using the launcher to download and run an updater program will work. Just beam over your game version to get the correct patches smile.png If the launcher needs updating just make the updater end the launcher, or exit the launcher right after you start the updater. Hope that helps!

In Topic: How to destroy an Audio at a specific place in Unity3d?

14 November 2014 - 01:12 PM

As a quick solution, if you are defining the audio sounds using the inspector you can use an array to store the sound clips. I am assuming maybe these sounds are used for background music, or maybe some basic ambient noises. For example changing from birds chirping during the day to crickets at night.


Note that there are indeed more elegant solutions but for something basic it will work. I haven't used Unity in awhile but something along the lines below will allow you to change the audio. I am also assuming you aren't wanting to dynamically add a new sound component but rather change the audio from the existing one. It is also untested but if memory serves right it should work:

public class BackgroundMusic : MonoBehavior
	public AudioClip[] audioClips;
	public int currentSound;
	// Somehow you are going to change an audio sound
	// Maybe via trigger collision or time elapsed.
	void PlayNextClip()
	// Play a sound based off 
	void Update()
		audioClips[(currentSound % audioClips.Length)].Play();

You essentially just store the clips into an array, add them via inspector, and then have a position of the current audio you wish to play. For example, if you have a radio/jukebox with 7 tracks you will just add the songs after you place the object into the world. You then can press the next button, insert some pocket change, ect. to adjust the song.


For some basic background ambient the idea is the same. Maybe when the sun goes down play crickets otherwise play birds chirping ect. When the sound changes is entirely up to what you would like to do (trigger, collision, time elapsed ect). 


I hope that helps some. Good luck! smile.png

In Topic: What I want for a simple entrance into the industry

12 November 2014 - 04:19 PM

Perhaps the Breaking In FAQ or the For Beginners FAQ will be of help? 


You generally will not be able to have someone make an engine for you without monetary compensation. As well, there are many viable free options available. Have you perhaps looked into them? 


Focusing your ideas into a single (or few) thoughts will definitely help us help you better :)

In Topic: Building A Game Engine + Game

12 November 2014 - 04:09 PM

As for Tim Sweeney, I think he summed up his background leading to the first Unreal quite well in this keynote. The first 20 minutes or so are more important as it really shows that even he had to start somewhere.


Based off the first sentence of making a game from scratch - having an engine is entirely up to you. An engine is not a requirement to make a game at all, though in certain aspects it helps get you started. Making pong in UE4 or Unity is, in my opinion, pretty overkill and completely unnecessary.


Many of my first games had no engine at all. I had a tiny wrapper over DirectX 9 which really just contained a pointer to my device and took a texture to draw a sprite. Since I was using circles as my characters writing a basic collision detection system was easy. I could have used libraries but my goal was to learn how the innards worked, while also making a game I thought was fun. 


Now did I make mistakes? Yes, I made so many mistakes it was astonishing the game would even run. For example after the enemies on the screen died I made more spawn. This really meant - reloading the textures for my enemies and allocating memory each time. The noticeable lag this caused was eventually fixed and I learned from it. Granted external libraries might have solved this for me..maybe.. I wanted to learn how to make those libraries compared to just how to use them.  


If your goal is to just make a game without all that extra effort just use middleware. It is indeed much faster to develop with :)

In Topic: I'm Eidolon.

28 October 2014 - 10:15 PM

Not asking, not denying, just leaving the door open.

 I see pardon me then, welcome to the site! cool.png