<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_game_event(self, ge):
 """ Game events contain the combat log as well as 'chase_hero' events which could be interesting """


        if ge.name == "dota_combatlog":
            if ge.keys["type"] == 4:
                #Something died
                try:
                    source = self.dp.combat_log_names.get(ge.keys["sourcename"],
                                                          "unknown")
                    target = self.dp.combat_log_names.get(ge.keys["targetname"],
                                                          "unknown")
                    target_illusion = ge.keys["targetillusion"]
                    timestamp = ge.keys["timestamp"]

                    if (target.startswith("npc_dota_hero") and not
                        target_illusion):

                        self.kills.append({
                            "target": target,
                            "source": source,
                            "timestamp": timestamp,
                            "tick": self.tick,
                            })

                    elif source.startswith("npc_dota_hero"):
                        self.heroes[source].creep_kill(target, timestamp)
                except KeyError:
                    """
                    Sometimes we get combat logs for things we dont have in
                    combat_log_names. My theory is that the server sends
                    us incremental updates to the string table using
                    CSVCMsg_UpdateStringTable but I'm not sure how to parse
                    that
                    """
                    pass