good to know, thanks,
I'll study that.
You don't have to just help me fix the build system, and I will ether
A. Help you.
or
B. Do it my self if you don't have the time.
You are not logged in. Please login or register.
Maratis forum » Posts by zester
good to know, thanks,
I'll study that.
You don't have to just help me fix the build system, and I will ether
A. Help you.
or
B. Do it my self if you don't have the time.
I noticed in the experimental branch we have
tinycthread
tinyutf8
tinyxml
windirent
And that Maratis compiles with the Boost fix for Bullet.
My suggestion is to use the Poco C++ library's. Its under the Boost license meets all of the requirements above. Bullet will use Poco as a replacement to Boost threads.
This is what I use with my more advanced projects that use Ogre. And as Maratis progresses we are going to want 99% of what is listed below.
Basic Edition
No external dependencies — start developing immediately
Complete Edition
Requires OpenSSL, MySQL Client and ODBC
Note: there is also these build options ...
--poquito
Omit a few features for smaller codesize when linking
statically for embedded targets.
--unbundled
Use system-provided zlib, pcre, expat and sqlite instead of
bundled ones.
--static
Build static libraries. Overrides default mode, which
depends upon target. Can be specified together
with --shared to build both.
--shared
Build shared libraries. Overrides default mode, which
depends upon target. Can be specified together
with --static to build both.
Supports Platforms and Compilers
AIX Darwin64-gcc Linux-stlport
Android Darwin-clang MinGW
Angstrom Darwin-clang-libc++ MinGW-CrossEnv
ARM-Linux Darwin-gcc NIOS2-Linux
BeagleBoard DigiEL OSF1
CEGCCARM ELDK PPC-Linux
CygLinux FreeBSD QNX
CYGWIN GCCEMBEDLINUX SH-Linux
Darwin HP-UX SSV-LINUX
Darwin32 iPhone SunOS
Darwin32-clang iPhone-clang SunOS-GCC
Darwin32-clang-libc++ iPhone-clang-libc++ SunOS-stdcxx-x86_64
Darwin32-gcc iPhoneSimulator SunOS-SunForte
Darwin64 iPhoneSimulator-clang SunOS-SunStudio
Darwin64-clang iPhoneSimulator-clang-libc++ SunOS-SunStudio11
Darwin64-clang-libc++ Linux
Core Features
1. Any and DynamicAny classes for dynamic typing
2. cache framework
3. date and time
4. events (signal/slot mechanism) and notifications framework
5. regular expressions (based on PCRE)
6. shared libraries and class loading
7. smart pointers and memory management (buffer, pool)
8. string formatting and string utilities
9. tuples
Compression
1. stream classes for zlib-based compression/decompression
2. ZIP file creation and extraction
Cryptography
1. cryptographic hashes
2. X509 certificate handling
3. symmetric and RSA ciphers
4. streams for encryption and decryption
5. based on OpenSSL
Database
1. unified access to different SQL databases (SQLite, MySQL, ODBC)
2. automatic data type mappings
3. collections support (std::vector, std::set, std::map, etc.)
4. record sets and tuples
5. session pooling
Filesystem
1. platform-independent path construction and manipulation
2. directory listing
3. globbing
4. directory change notifications
Logging
1. extensible logging framework with pluggable log channels and message formatters
2. console logging, log files, syslog, remote syslog, Windows event log service file attributes
Multithreading
1. thread and thread synchronization classes
2. thread pool
3. work queues
4. active objects and activities
5. task management
6. timers
Network
1. stream, datagram, multicast, server and raw sockets
2. TCP Server framework (multithreaded)
3. reactor server framework
4. HTTP(S) client and server framework
5. HTTP Basic and Digest authentication
6. C++ server page compiler for embedding C++ code into HTML pages
7. FTP client
8. SMTP and POP3 client for sending and receiving email
9. URI and UUID handling
10. HTML forms processing
11. MIME multipart messages
12. SSL/TLS support based on OpenSSL
13. WebSocket (RFC 6455) client and server
Processes and IPC
1. launching and stopping processes
2. process synchronization
3. shared memory
Streams
1. Base64 and HexBinary encoding/decoding
2. compression (zlib)
3. line ending conversion
4. memory streams
5. text encoding conversions
6. URI stream opener
Text Encodings
1. UTF-8 and Unicode handling
2. text encodings and conversions
3. character classifications
Utility Classes
1. frameworks for command-line and server applications
2. command-line options handling
3. configuration file parsing
4. unix daemons and windows services
XML
1. fast XML parsing based on Expat
2. SAX2 (Simple API for XML, version 2) parser
3. DOM (Document Object Model, Level 1-3) parser
4. XML writer
My Toolkit consist of ...
1. Premake4 (Build System)
2. Fossil DVCS (Self Contained Version Control System) It comes with a web interface, supports distributed bug tracking, distributed wiki, and a distributed blog mechanism all in a single integrated package. And was designed and developed by the creator of Sqlite. Search the web and you will see it is as good if not better than Git or Mercurial. Very easy to learn and use.
3. xDelta (Delta Patches) <-- No more repackaging the entire Maratis project, just upload the binary deltas and the enduser just patches there current maratis binary. Works on library's also. This is how most linux distros ship there updates. My last update was 250 patches and the download size was 12mb.
I mention these things because Maratis's single largest problem, is its build system and dependence. Building the thirdparty packages the way it does now is a massive head ach and instead of managing the build system for just Maratis code we have to do it for the third-part packages also.
I am one of the best C++ Qt developers I have managed to create Ogre3D, Irrlicht, SFML2, Horde3D, Panda3D widgets because its as simple as Build, Install (Ogre3D .... Panda3D), Include the Headers Location if in a non standard location set Linker Flags in my project and build..
Anytime I try this with Maratis it blows up in my face. The only way I can even hack on Maratis is to edit what code is already in the archive and then re-run scons.
I dont know of a single oss project that even uses scons anymore. Anything would be better, CMake, Premake, plane old Makefiles!.
Help me solve these problems and I will become a fulltime active developer I promise.
I can provide everything you have seen me do so far (Art and Content/Tutorials)
1. A new Qt based Editor (Gui would even be scriptable with Lua)
2. Particle Effects Editor (If I can get Spark2 in Maratis then a new Particle Effects Engine)
3. Lua Scripting would use Luajit instead of plane Lua and we could directly link to any C library
4. Online Asset Browser
5. Shader Editor.
6. C++ and Lua code editor based on QScintilla, Code Folding, Syntax Highlighting, Code Completion, ...
7. Complete Amazon Web Service and Google support in the editor and in MSDK
8. AES 256 Encrypted Sqlite Databases.
9. Rendering Video to Textures
10. Motion tracking (The camera moves with your head)
This is just of the top of my head.
As Jerry Mcquire(Movie) would put it .... Help Me .... Help You
math.randomseed() is only useful for really large ranges of numbers. Besides I think the math.random problem only exists on Windows and Mac on Linux it appears from that thread you posted it works fine.
I think if we switch over from standard Lua in Maratis to Luajit we can use the FFI interface and just bind c code directly.
No changes to maratis should be needed, except compiling against the luajit lib instead of the standard lua lib.
FFi Example
local ffi = require("ffi")
ffi.cdef[[
void Sleep(int ms);
int poll(struct pollfd *fds, unsigned long nfds, int timeout);
]]
local sleep
if ffi.os == "Windows" then
function sleep(s)
ffi.C.Sleep(s*1000)
end
else
function sleep(s)
ffi.C.poll(nil, 0, s*1000)
end
end
for i=1,160 do
io.write("."); io.flush()
sleep(0.01)
end
io.write("\n")
I will have to give it a try.
I really like that dice system, however i think math.random function could possibly ruin everything.
I have read it is not working like a true dice (not so random.. at all) and from my test i can confirm it behave very weirdly.
for example, generate a number between 1 and 10, sometimes (pretty often even) it looks like it's stuck on a given number for 5-6 times
You are correct math.random does not well lets just quote the lua docs ...
This function is an interface to the simple pseudo-random generator function rand provided by ANSI C. (No guarantees can be given for its statistical properties.)
So there is no guarantees on its randomness, I am not exactly sure what to do about it. We could bind something a bit more high quality like Boton? Don't know but I am defiantly up for suggestions.
A Test I did.
> print(math.random(-5, 5))
4
> print(math.random(-5, 5))
-1
> print(math.random(-5, 5))
3
> print(math.random(-5, 5))
3
> print(math.random(-5, 5))
5
> print(math.random(-5, 5))
-3
> print(math.random(-5, 5))
-2
> print(math.random(-5, 5))
3
> print(math.random(-5, 5))
-2
> print(math.random(-5, 5))
1
>
For the moment I am not going to really worry about it until I have something working I was going to write a GameMechanics class
in lua.
But I am also using math.random in a AI system I am writing.
Introduction
The Ladder
Fate Points
Rolling the Virtual Dice(11D)
Difficulty
Skills
Aspects
Stunts
Stats
Alignment
When building a game the most important aspects of not only its play-ability but also its creation is that
it's fun and exciting, with that in mind what follows is a special game mechanic's creation engine
inspired by the “Fate Engine” that will aid you in accomplishing just that.
Most things in the system are rated according to the ladder below. The ladder operates on the
math.random(-5, 5) function and Returns a random number between a min and max (-5 or +5).
Lua Function
print(math.random(-5, 5))
+5 Epic
+4 Fantastic
+3 Superb
+2 Great
+1 Good
0 Neutral
-1 Fair
-2 Average
-3 Mediocre
-4 Poor
-5 Terrible
A Positive (+) result equals success, a Negative (-) results equals failure, and a Neutral (0) result might
equal a draw.
Positive Result Example:
Your character attempts to attack an enemy, and the result of the roll is +2 (Great) so the
amount of damage equals that of your characters hit points +2.
Negative Result
Could mean that not only did your character “Miss” when attempting to strike
his/her opponent but in the process they might have stumbled and injured them selfs. So not only did
they “Miss” but they took 2 points of damage, to there Health, Armor or possibly there Reputation.
Neutral Result
Could possible mean that your opponent had simple blocked your attack.
Character Hero's or Villon's push the very boundaries of what “normal” characters are capable of, and
as such, they tend to be Superb at whatever their central passion is. Because “special” characters exist
beyond the boundary's of what is considered normal, We have Fate Points. A Fate Point is used to skew
the “Ladder Result” so that we can raise them above what would be considered typical.
Fate Point Example
Your character attempts to attack another character, and the result of the roll is -2 (Average),
this character has failed at an attempt to attack his/her opponent and in doing so they stumble
and fall, injuring them selfs and take 2 points of damage to there armor. We then use a Fate
Point and reverse the “Ladder Result” making the outcome become +2 (Superb) and our
opponent is dealt an mount of damage equal to our characters hit points +2 additional points of
damage.
Earning and Losing Fate Points:
Fate Points can be earned and lost, several different ways.
Earned on a +5 and lost on a -5 result.
Completion or Failure of a difficult task.
Enchanted or Cursed objects
Note: None of this is meant to be offensive, or an attack on anyone's Religious beliefs its simply a story.
Typically in Medieval RPG Games you will find things like "Ogre's, Dragons, Giants" etc. I choose to go a different route and make Medieval Times fears into a reality. So instead we have as enemy's "Demon's, Dark Magic, Evil, ..." you get the point. And "Angels" are the force of good but we wont directly interact with them there "Help" come's via "Voice in the back of your head, Luck, Dreams, etc" There presence isn't even know by our characters and npc's there more of a "Hope or Twinkle of light in a very dark hole".
We called it gods last great gift.
In the beginning of the story there is a reference made "We called it gods last great gift.", this is meant to be taken literally in story terms.
In some "religion's" ones who have the concept of "angels". The one thing angels do not normally have is "free will" at-least not to the extent of what humans have. This leaves the impression in my mind that angels are more or less shells in comparison to humans meaning they appear pre-programmed or drone like.
In this sense the creation of "humanity" is special "like birthing a child", the creation of life is random "We don't get to pick what our children look like or what traits our children might have."
So what I did was removed "Gods" influence from the story, when god created humanity He/She/It cease to exist as a "singular" entity and instead shattered into the millions of souls that is humanity its self. Basically we are each a piece of god. And He/She/It doe not exist as a single being.
The guardians Note: I haven't fully figured this out.
The Guardians are heavens angels, there only purpose is to guard to soul's of humanity. "
1. Insure soul's can always find there way back to the light <- Note: This need further explanation
2. Maintain some form of balance. Note: This can mean anything, (Like having a Butterfly land on the nose of a child who is sitting in a field and morning the loss of a family pet. The butterfly brings some comfort).
When god cease to exist as a "singularity", the Angles(Guardians) were given "free will", so they could make educated guesses about who, what, when they should intervene in the evolution of humanity.
There purpose was never to interfere in away that would have a dramatic effect on humanity.
We never thought that the most powerful of us, would corrupt such beauty.
In the beginning of the story we hear the Narrator say "We never thought that the most powerful of us, would corrupt such beauty. ", this is in reference to "Lucifer" or the "Devil". I am not going to follow tradition here. I will follow the same basic story line on how the "Devil" came to be who/what it is know today. But events leading up to that will play-out differently.
Instead the story will go, that once god had become what we know as humanity, "Lucifer" seen this as his opportunity to take the throne of god and rain over all creation, unfortunately for him and his followers, regardless of how smart and powerful "Lucifer" was/is his power and influence does have its limits.
A war breaks out in heaven, and eventually "Lucifer" is cast-out of heaven by the other Angels(Guardians).
This results in "Lucifer" the Devil wanting to tip the balance of power and begins raining his terror on humanity. For every corrupted soul is one more addition to his army.
If you understand how to do "Object-Oriented Programming" in Lua then your totally ready for C++
I am going to upload a version of him with out his long beard, I like the beard just not how I modeled that one. I need to practice making hair and beards.
Note: These gimp brushes work good for hair.
http://jesuslover488448.deviantart.com/
-308857763
Here is the next Character ...
He has a "Ring" threw his nose and some-kind of "Cloth or Leather bottoms" I am thinking chain attached to the ring in his nose somehow, An Armor Helmet? or a Leather Apron? and a Big Meat Cleaver as a weapon. idk
He is meant to be huge and severely mentally challenged, and frighting. I in-vision something you might see in the movie The Hills Have Eyes.
Like This (Isnt this guy from Goonies?)
Ah nice trick, usually i was just putting AO maps in the emit slot,
Going to try that in few hours (going to sleep now, im toast)See you later
O.O ohhh didn't know you could do that, going to have to try it out!!!!
lol later
That's perfect, thanks
and the AO baking worked like a charm
Cool and no problem, I also updated the d/l link on the wiki so that one has the boots also.
Oh and I dont know how you appy your ao. But what I do is in gimp.
1. Load ao map and "Colors" -> "Color to Alpha"
2. Load defuse map
3. Import ao map with transparent background
4. With the ao map as top layer I "Merge it down with the defuse"
And that will overlay the shadows on your diffuse map.
Like this or did you want something different?
Download https://zester.googlecode.com/files/Cha lend_1.zip
zester wrote:Let me know if you guys want boots for him and I will model some. I was going to use him bare footed.
haha i was searching in my stock for some boots atm
But yes that would be really cool, i was thinking of some armor boots that also cover the tibialisBy the way do you remember the settings you used for this AO ?
I used Texture Atlas its in Addons -> UV
1. Click the " + " to add a new Texture Atlas
2. Choose texture size (4096 x 4096) is what I used for the whole character
3. Click "Auto Unwrap"
4. Click "SelectGroup"
5. Change Bake Mode to "Ambient Occlusion"
6. Click Bake
Great model, thank you
No problem Vegas.
Let me know if you guys want boots for him and I will model some. I was going to use him bare footed.
Note: If you are easily offended, my suggestion would be not to read this.
This is meant to show how a screenplay can be used to map out a dynamic story-line for your game. I included violence and tragedy in this example as an attempt to manufacture feelings of shock, empathy and revenge in the player, just as some movie's might.
This content is under the same license as Maratis assets. Everyone is welcome to participate and or take it and create there own derivative works.
No contributions will be rejected.
Audio (Narrator):
Earth (The garden) was once a beautiful and peaceful place. The guardians would spend great lengths of time admiring this creation and its inhabitants. We called it gods last great gift.
Music:
Kevin MacLeod - At Rest http://incompetech.com/music/royalty-fr
20Rest.mp3
Camera:
Flying down a dirt road at night.
Audio (Narrator):
We never thought that the most powerful of us, would corrupt such beauty.
Camera:
Flies thru a small decimated village on fire, into a cottage and up the stairs passing two men reeking with demonic influence.
As the camera approaches the bedroom door, sounds of a woman in distress and a man panicking can be heard.
Action:
Door Opens
Camera:
We witness three men, in the process of committing great acts of evil, One is forcing himself onto the woman he has pinned to the bed and the Other two are holding her husband down forcing him to watch.
All three men notice the camera entering the room and scour with disappointment.
The first man ”holding woman down” looks at the camera, shrugs with a grin, and then slowly pushes the knife he has in hand into the woman.
This action signals one of the other two men(holding the husband) to quickly cut the man's throat.
The first man pulls the woman by her limp arm as he is getting off the bed, resulting in the woman falling limply to the floor.
Both husband & wife stare into each other eyes as they die, eyes clouding over.
All three men exit the room.
Audio (Narrator):
We were wrong.
The Camera is an angel, this is why the 3 men (NPC's) above look up at it and scour with dissapointment.
Audio:
A female adult “Angelic” voice can be heard speaking to a child “Angelic” voice…
Audio: (Adult Angelic Voice)
Anna let him go ….
Audio: (Child Angelic Voice in a whisper)
This isn’t right!!!
Audio: (Adult Angelic Voice)
You must not interfere, doing so will only result in continued suffering.
Audio: (Child Angelic Voice in anger)
HE “DESERVES” A CHANCE!!!!
Audio: (Adult Angelic Voice insisting)
You must not interfere!!!
Audio: (Child Angelic Voice in disgust)
And Evil must not be allowed to rule this world.
Action:
And with those words the face of the female child angel enters the cameras view and gently kisses the man on the head.
The man’s wounds begin to rapidly heal, his color comes back, eyes clear.
Camera:
Flies out the door, down the stairs and exits the cottage,
continues to fly back in the direction that it had come from.
Audio:
The man is heard letting out, a great scream he is hollowing with great despair. For everything he ever loved and ever was has been destroyed.
Action
Right before the screen fades out ... "We hear the distant whisper" - "Seek the Necromancer" from the Female Child Angel.
Action
We are at the Game Menu, presented with a save game dialog.
Act 1 Scene 1
Our player begins to wake, he is cold and weak "vision blurry". he is face down in muddy snow.
Audio
Flames/Crackling - The Town is smoldering ruins. Wolves can be heard snarling, snapping at each other.
Action
The Wolves are fighting over the remaining corpses not taken by the fire.
Quests
A. Our character most chase the wolves off.
1. Find a weapon
B. The Sun is going Down.
1. Find food
2. Find Shelter
3. Find material to make a fire
Action
AI kick's in and wolves return
Quest
1. Fight wolves off who are attempting to breach shelter.
2. Repair damage to shelter.
3. Rest
Act 1 Scene 2
Character Download
http://wiki.maratis3d.org/index.php?title=Characters
I think he is about done. Ill add him to the assets on the wiki for those who want to use him.
Here is another update, I am really liking this character.
--I can't quite get clothes that are separate objects to Rig correctly, but I needed to put something on the model.
I can help with this if your still having trouble, parenting clothes and getting them to deform to your model properly during animation is just generally a pain.
Thanks Zester and Anael!! Hey Zester, perhaps this normal map thing will help your characters look EVEN BETTER (you could use it for that belt to make it shine correctly. )
Lol that was the plan, right now I am just modeling him separate from texture painting and effects. Eventually I will start to combine them. I am just playing with him right now looking for that special "look/feeling".
I use the material colors for place holders, gives the sense of what might be metal and what might be leather, also material colors can help with hiding seams if you have any that are being a pain.
This is still a "Character Texture Painting Tutorial", we need some more things to paint I like to show progress. So keep that in mind post frequently. I look forward to seeing what you guys/gals are working on.
Here is progress update on that character. This was easy to do, and honestly done by anyone in 15 - 20 min. All additional parts were taken from the base character mesh and modified.
Ill make a tutorial soon for those that have trouble with modeling there characters.
zester wrote:I am surprised you don't have BVHacker in your software links http://davedub.co.uk/bvhacker/ you can use it to edit those BVH files. You can for example delete the frames/animations you don't need and replace them with ones from other bvh files that you do want.
I had downloaded it, didnt want to put it up (had trouble with it).
After using it for a bit I see it doesn't handle large bvh files as quickly as BVHPLAY:
https://sites.google.com/a/cgspeed.com/cgspeed/bvhplaySo to view bvh files I will use bvhplay, and to re-sample I will use bvh hacker. Thanks zester.
Blender can re-sample BVH files to some extent also, but BVHacker has a few menu options that will allow for better control like "T Pose, Changing Origin Point" etc. I will normal "prep" my BVH files in BVHacker and then work on them in Blender.
I have Autodesk Motion Builder, haven't played with it much yet thou.
TD see this post http://forum.maratis3d.com/viewtopic.php?id=535 and yes to (The way it interacts with the light when the light is moved)
zester wrote:Is that some love for Blender I am sensing Tutorial Doctor?
Haha. Isn't it all about learning to love? Hehe
Lol, true.
Is that some love for Blender I am sensing Tutorial Doctor?
Maratis forum » Posts by zester
Powered by PunBB, supported by Informer Technologies, Inc.
Currently installed 3 official extensions. Copyright © 2003–2009 PunBB.