Jump to content

Serious games - Island wars


VeTaL
 Share

Recommended Posts

Okay, so... Serious game - is a game, where player learn/study something.

The main problem is to combine gameplay and learning in such a way, when player actually doesn't feel that he is stydying in common way.

 

Classic examples are different realistic game simulators.

Quite good example (as for me) is "Call of Duty: Black Ops" - after playing this common FPS, i went to wiki and read lot of stuff about Cold War - because of this game. So, actually, it can be counted as Serious game.

Also, Civilisation is quite nice example: they have their own civilipedia to provide some historical information.

 

Nowadays, serious games are very potential: lots of schools/colledges/universities are trying to combine learnin with playing and get successfull results.

 

This project is just "unfinished proof-of-concept". Gameplay is planned to be a "realtime historical strategy with undirect control"(Settlers/Majesty). As the main idea, I took nice small game, Breaking The Tower, which was written by Notch (hello, minecraft funs) for a contest in two days.

My thoughts was "game with undirect control are quite slow" -> "if i merge slow gameplay with some kind of civilopedia, that would give a player some time on learning" -> "why not to use wiki?" -> "why not to use LE+Blitzmax, as it provides render internet pages on the same form, where game can be rendered"

 

I spent all previous weekend on this project (+ some additional evenings... actually, not too much time: also, i opened about a half of map in Skyrim :) )

This is what i have now:

1321977572-clip-117kb.jpg

 

The main questions to all of the guys, who would decide to test it:

- fps. Btw, I was impressed by fps increasing in release version: i had about 40 fps in debug version and about 100 fps in release. There are 20 bots on level now.

- UI. Do you have any ideas/recommendations with UI placement? I also tried to place wiki undre the render window, but it also seems to be bad.

- Camera control. Any ideas are wellcome. I'm not actually satisfied with this camera. Of cource, it needs collision detection, but it proof-of-concept. I'm not satisfied by camera's behaviour: its hard to make some accurate movements when the camera is close to central pivot.

- AI. Bots are just running through the island in random direction. But they have 3 interrupters: by time (after Rnd(80, 120) they change their direction), by distance from main player's building, and by water (if the scanner "feels" water, they should turn back)

- Explorer component. What can be done with that nasty error?

 

 

The main logic function is

Method UpdateLogic()
UpdateWalkers()
timer.Update()

AvoidWater() ' if pick.y < 3, set isInterrupted =1, interruptionDetails = pick.y
AvoidLost() ' if distance to building is > 30, set isInterrupted =2, interruptionDetails  = dist

If timer.IsRinging()
	isInterrupted = 2 ' time to change direction, once per Rnd(80, 120) 
End If

If (isInterrupted > 0)

        rndRes = Rnd(0, 2) ' generates 0 or 1
        randomInt:Int = (rndRes * 2) - 1 ' generates -1 or 1

	Select isInterrupted
		Case 1 'water ahead
			TurnAtAngle(Rnd(80, 110) * randomInt)
			DebugLog "[@] Interruption by water(1). Scanner height is " + interruptionDetails
		Case 2 'timer interruption				
			TurnAtAngle(Rnd(45, 135))
			DebugLog "[@] Interruption by timer(2)."
		Case 3 'too far from buildings
			TurnAtAngle(Rnd(160, 200))
			DebugLog "[@] Interruption by distance(3). Dist is " + interruptionDetails
	End Select

	isInterrupted = 0
EndIf
End Method

Working on LeaFAQ :)

Link to comment
Share on other sites

The idea is very nice.

 

Some hints from my point of view:

- when using blitzmax, you don't need to provide the engine.dll

- protect and pak your assets

- write your own ingame gui, even if you want to integrate wikipedia, you may do this by manual parsing the page or

by using something like Awesomium or Berkelium

- i know the models are wip or placeholdes, but try to fix the materials of the palms.

 

texture0="abstract::palm_fronds.dds"
texture1="abstract::palm_frondsDOT3.dds"

alphatest=1
cullface=0

shader="abstract::mesh_diffuse_bumpmap_sway.vert","abstract::mesh_diffuse_bumpmap_alphatest.frag"
shadowshader="abstract::mesh_shadow_sway.vert","abstract::mesh_shadow.frag"

 

- take a look on "Steering Behaviors For Autonomous Characters" at http://www.red3d.com/cwr/steer/

  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

1322087737-clip-45kb.jpg

Version 0.45

 

Added "thoughts"

All buttons on form works now

Improved AI: now bots should never be in water or far from building.

 

 

Sharing experience:

In previous version, in case of interruption, bot turned at related random angle. Sometimes some sh*t happened and rotation function called twice or more times. So, but turns left, then once more time left, then - right. In worst case, he continued running from building.

Now i understood, that i need to give bot not related, but absolute angle. Now it is working in such way:

before:
TurnAtAngle(Rnd(80, 110) * randomInt)

now:
TurnToAngle(GetPlayerBulidingAngle() + Rnd(60) - 30)


Method GetPlayerBulidingAngle:Int()
closestPlayersBuilding = GetClosestPlayersBuildingModel(model)
PointEntity(scanPivot, closestPlayersBuilding)
Local retVec:Tvec3 = EntityRotation(scanPivot, 1)
DebugLog "[!!!] Returning angle: " + retVec.y
Return retVec.y
EndMethod

 

So, i'm pointing scanner (anyway he do nothing except raytracing down, it is not depends on scanner's rotation) at players building, getting it new angle and pointing player that direction +- 30 degrees. That looks mush better.

 

Just replace exe file.

 

Edited: found out, why some strings are still shown on the screen with the strange behavior: some bots are falling from terrain.

0.45.zip

Working on LeaFAQ :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...