Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Introducting a motey
#1
Big Grin 
Hello,
My background is decades of computer design, systems software and software from micro code to BIOS, device drivers, Windows and Linux,  and OS design. I have designed , programmed and installed dozens of computer systems for process control of manufacturing all over the world. I also worked in industrial robot programming, like pick and place ( at stuffing houses), as well as gate array design and semiconductor wafer processing and simulation.
The thing that fascinates me about Colobot is the concept itself and how it could be a real system that controls my own robots, 3D printers, Atomic force microscope, semiconductor fab, and drones.
It is a fun game and I breezed through the it in a few hours and then started looking at the source.
I also have experience with graphic card design and drivers as well as OpenGL dev experience.
I have 3D printers of my own design and play around with other people at the local Maker Space making weird things like a Porsche converted to all electric.
I also studied at the university in molecular genetics, biochemistry and did work in the lab on cloning and CRISPR.
[Image: ColoDrone2.png]
I began modifying the code to see how it works and apparently one should not drill near a reactor as it had a core malfunction and a scram, but I suspect it had a "prompt critical" and as a result the code escaped and modified the Colobot Model Converter python code to batch convert all files from txt to OBJ and then import them into blender headless and export them back to txt and then mod format. As a result it also took files from makehuman that were fully rigged and high poly and then created characters inside Colobot which ran amok and I had to go in and try to clean it up Wink

Okay, so jokes aside. I would like to help with development and have started doing a "goto" that is *I suspect* Big O  O(n ln(n)) instead of the rather quirky n factorial implementation. It does seem a bit like a Traveling Salesman complexity with a bit of Shortest Path and even convex optimization, but I think it can be done cleanly and handle hundreds of active objects traveling and keep the frame rate above 30 fps.
A wonderful game and great code. I thank everybody who has produced this.
I am not completely familiar with collaborating on github so please feel free to enlighten me when I do stupid things!
#2
Hello and welcome to the ColoBot Gold Forum! You boast some vast experience in many interesting fields. A welcome addition to any programmers' group, as newcomers to coding like myself benefit greatly from any and all advice lol

The game is indeed fun and leaves plenty of room to play around with the concept on every plausible level. Now if only I could set up some timber and stone usable resources so as to make the bots build a temple and sacrifice some friends to their All-Programming Lord! Yeah, I played too many games by now lol

May the coding be entertaining!
#3
Strangely enough I have been looking at building with blocks by modifying the terrain so that the ancient and mystical first colonize bot can ascend to their rightful place of honor.
Sink holes!
![Image: Sink2.png]
So I have modified the code to allow changes to the terrain when a block is dropped and a means to dig holes as well.
I also changed the f11 debug interface so I can spawn more types of things as well as debug the terrain and building level modifications on top of the terrain base. I changed the icons for objects to images of the actual objects instead of the symbolic icons.
#4
Now that is having some thorough modding fun! Lol That's the kind of mold-ability that what made me decide to pick up a keyboard and start hacking, slashing and semi-coloning my way to programming prowess!

The more I come to learn about and spend time contemplating coding, the more I realize that, what I thought would be small and simple changes to a program to get a desired result is actually significant work. All Devs forever have my undying respect. Never again will I complain about a game needing a "simple tweek" to fix an issue lol

Your changes gave me an idea... Robot Dig-Dug matches, 3D version! It worked for Worms lmao (Not a serious idea, all liabilities for loss of bots waved xD )
#5
Been spending a lot of time getting to understand the game and how all the parts interact.
Learning the tools that help to make the code useful in a collaborative environment.
Been using lint and valgrind as well as DDD and GDB as well as my own custom debugging framework ( with signal manager) that allows me to mix and match code sections to test new features.
The GoTo upgrade is coming along and I am testing the algorithms as well as trying to make the code clean with valgrind,
and lint and meet the guidelines for style  like tabs, indents, and other format issues.
I thought I would try lint on some of the code that already exists and an odd thing showed up in the very first file I tried


gl14device.cpp:87: style: Same expression on both sides of '&&'.

LINE 87
               while (v[0].coord.y < 60.0f && v[0].coord.y < 60.0f)

I wonder is lint run on the files??

How odd??
#6
There's a lot of odd code in Colobot. I don't think there's a single person who can comprehend it all at once. And there's tons of wrong code. Code that works on top of undefined behaviors in C++. We do have lint and we use it to detect bad changes in the code, but there's so much more to fix. We'll be glad if you can help us fix this mess.

I think krzys_h could explain how we use lint better than I can.
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#7
We are currently mostly using a custom linter made by @piotrdz - https://github.com/colobot/colobot-lint, but I don't think it has rules like the one you mentioned. It's usefulness is currently a bit limited anyway as it emits an awful amount of warnings related to old parts of original Colobot code, which in some places is horribly wrong like @tomaszkax86 mentioned.

The exact line you mention is a part of lights debugging code which is not really used so nobody noticed this error, it does appear to be wrong though.
#8
(11-04-2016, 10:25 PM)krzys_h Wrote: We are currently mostly using a custom linter made by @piotrdz - https://github.com/colobot/colobot-lint, but I don't think it has rules like the one you mentioned. It's usefulness is currently a bit limited anyway as it emits an awful amount of warnings related to old parts of original Colobot code, which in some places is horribly wrong like @tomaszkax86 mentioned.

The exact line you mention is a part of lights debugging code which is not really used so nobody noticed this error, it does appear to be wrong though.

openGLs 1.4, 2 and 3 all have that same lint err at the same exact place.
The colobot code doesn't seem bad at all in general, it is mostly good code and it works.
"cpplint" from the debian packages is good. It gives a lot of good answers without a lot of false positives and does identify bounds issues on arrays, which is the scariest stuff.
"geany" is a nice IDE editor that allows make and lint right on the panel so it is convenient.
The GoTo that I am working on is fairly complex ( very fast ) and comes from my actual robots.
A long explanation will be posted on my server( with pictures and charts) about how it works and where it might be integrated.

How do I communicate more effectively?

I appreciate what you all have done and I know it is a lot of work. It is a good framework and the concept of teaching programming in the game goals is a good thing to help people get started with programming.
#9
Some question:Is your stuff downloadable someday(I need it for userlevels)?
Work it harder
Make it better
Do it faster
Makes us stronger
More than ever hour
After our work is never over

#10
(11-09-2016, 02:49 PM)LRV Wrote: Some question:Is your stuff downloadable someday(I need it for userlevels)?

When the code is ready and tested I will submit it to the devs and they will decide what to do with it. It will be some time before it is completely ready as it is a very complicated thing to do right as well as do so in the proper style with enough documentation that it can be maintained.
#11
@moteybot : Well, I think he actually asked about assets you made (sprinters, textures etc.) instead about rewriting goto() etc.
#12
(11-09-2016, 07:00 PM)RaptorParkowsky Wrote: @moteybot : Well, I think he actually asked about assets you made (sprinters, textures etc.) instead about rewriting goto() etc.

I made some models by using makehuman and importing them to blender and then converting them to colobot models using modified (ColobotModelConverter) python code on my github. I also changed some of the menus to add pictures of the various machines instead of the icons, but that was all just done while I expanded the debug menu to add some code tests relating to GoTo(). I will certainly put all the stuff up on my web server and if anybody wants to use them they can. I will make an effort to create a main page with indexes to any new stuff I am creating.
I guess I have trouble even understanding my own primary language Smile
#13
A place has been made to put my musings on the goto() function and it doesn't really have much there , just a template of what is to come and some thoughts about how it works and how it might work in the future. I have consulted with ceiling cat and he thinks it is good also he suggested that a wall should be built to keep out the ants and that the ants would pay for it.

goto(!hades);
[/url]
[url=http://moteyways.com/colobot/colobotGoto.html]


Forum Jump:


Users browsing this thread: 4 Guest(s)