Why I don’t like modding games August 7, 2007
Posted by deltawing in Games.add a comment
I’m not being game specific but my experience is with Unreal Tournament 2004
1. Locked in by proprietary scripts such as UnrealScript
2. Spend way too long finding “work-arounds” to do what you really want. I’ve been known to be a masochist but, gee, not like this
3. Lack of that feeling of achievement that I’ve actually made something. Seriously, I’d rather make a crappy Flash game from scratch
4. Don’t learn as much, as I would if I coded my own engine/game. E.g. maths, physics, industry standard coding practices.
5. I feel like I’m learning something that will be obsolete in 6 months
6. Feel like a hacker
7. Have to spend ages figuring out how to do something exactly the way I want it but after 10 hours realize it’s not possible, after searching through incomplete documentation. (I think I mentioned that already in point 2)
Free Vector Graphics for your Flash project July 28, 2007
Posted by deltawing in Flash, Games.add a comment
Here are some free vector graphics for your Flash project, including shiny orbs, shiny buttons, design elements, weapons (!), aircraft and others.
Gehirnjogging mit Mindflex July 23, 2007
Posted by deltawing in Flash, Games.add a comment
Wie schnell kannst du denken? Hier herausfinden. Keine Feder und Papier erlaubt beim Spielen des Spiels. Das betrügt:P
Mindflex ist eine Gehirnjogging-Software, die ich mit Flash entwickelt habe. Sie ist noch in der BETA-Entwicklung, also verbessert sie im kommenden Monate. Ich habe diese Features geplannt:
- Sound und Musik
- Feedback-form funktionieren ![]()
- Neue Module (ahhh, das ist ein Geheimnis)
- Weltweite Ergbinisse
- Personale Ergibnisse
Tut mir leid, fuer meine sehr schlectes Deutsch! Ich bin Australiener =D
Artificial Intelligence – Goal Oriented Behaviour June 4, 2007
Posted by deltawing in Computer Science, Games, Programming.add a comment
The AI must have goals if it’s to achieve something. Each goal is assigned a priority. At each game tick, the AI considers the situation in the world and extrapolates from that, what to do. E.g. if its based is under heavy attack, it would need to defend it, instead of trying to expand elsewhere.
So what happens is a character has a goal or motive, and can choose from a set of actions. It chooses the action that best fulfills the motive. There’s a complication – choosing an action can have consequences. E.g. in an RTS the computer might want to build a fleet of air units that specialise in attacking other air units, to fend off the enemy’s air presence. This seems like a good idea to a problem. However, this game air units are hugely expensive and the construction will lead to a resource problem. With this deficit how can the computer build other defenses? Can the computer find another action that won’t have such large consequences. Perhaps they could build cheaper, but less effective, ground to air units.
Here is some pseudocode copied from a page of Swinburne University lecture notes, which was probably copied from Ian Millington’s AI For Games Books:
def chooseAction(actions, goals):
# find the lowest discontentment action
bestAction = actions[0]
bestValue = calcDiscontent(actions[0], goals)
for action in actions:
thisValue = calcDiscontent(action, goals)
if thisValue > bestValue:
bestValue = thisValue
bestAction = action
# provide the action we found
return bestAction
class Goal:
value
def getDiscontent(newValue):
return newValue * newValue
def calcDiscontent(action, goals):
# keep the running total of discontent
discontent = 0
# total up the value change for each goal of this action
for goal in action.goals:
newValue = goal.value + action.getGoalChange(goal)
discontent += goal.getDiscontent(newValue)
return discontent
Oh by the way, I was just playing Starcraft (practising for Starcraft 2), and I noticed something. Sometimes when I’m approaching the enemy base, the Zerglings will try to both attack me and run back to defend its base at the same time. They want to do both equally. So, what happens is they can’t decide and just run toward me, then back towards the base, and then towards me again – in a constant loop