public static int game_server_init(string file_name, int t, int e)
        {
            int version_x, version_y;

            int i;

            timer      = (float)t / 100;
            timer_down = (t > 0) ? 1 : 0;
            coins      = 0;
            status     = GAME.GAME_NONE;

            if (server_state != 0)
            {
                game_server_free();
            }

            if (Solid.sol_load_only_file(file, file_name) == 0)
            {
                return(server_state = 0);
            }

            server_state = 1;

            version_x = 0;
            version_y = 0;

            for (i = 0; i < file.m_dc; i++)
            {
                string k = file.Get_av(file.m_dv[i].m_ai);
                string v = file.Get_av(file.m_dv[i].m_aj);

                if (string.Equals(k, "version"))
                {
                    string[] parts = v.Split(new char[] { ' ', '.' }, StringSplitOptions.RemoveEmptyEntries);
                    if (parts != null &&
                        parts.Length > 0)
                    {
                        version_x = int.Parse(parts[0], System.Globalization.CultureInfo.InvariantCulture);

                        if (parts.Length > 1)
                        {
                            version_y = int.Parse(parts[1], System.Globalization.CultureInfo.InvariantCulture);
                        }
                    }
                }
            }

            input_init();

            game_common.game_tilt_init(tilt);

            /* Initialize jump and goal states. */

            jump_e = 1;
            jump_b = 0;

            goal_e = e != 0 ? 1 : 0;
            goal_k = e != 0 ? 1.0f : 0.0f;

            /* Initialize the view. */

            view_init();

            /* Initialize ball size tracking... */

            got_orig = 0;
            grow     = 0;

            solid_phys.sol_cmd_enq_func(enq_fn_game_proxy_enq.Instance);//game_proxy_enq);

            /* Queue client commands. */

            game_cmd_map(file_name, version_x, version_y);
            game_cmd_ups();
            game_cmd_timer();

            if (goal_e != 0)
            {
                game_cmd_goalopen();
            }

            game_cmd_init_balls();
            game_cmd_init_items();

            return(server_state);
        }