Author Topic: Lighter Tank Class For Eden  (Read 4746 times)

Offline 7842303

  • Jr. Member
  • **
  • Posts: 81
Lighter Tank Class For Eden
« on: August 25, 2007, 02:55:36 PM »
I was thinking that eden shoud get a new tank class.
please give feed back!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :heh:  
onword to battle!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
unless your tired, of cource

Offline Freeza-CII

  • Administrator
  • Hero Member
  • *****
  • Posts: 2308
Lighter Tank Class For Eden
« Reply #1 on: August 25, 2007, 03:56:37 PM »
there was a Idea of a small Eden unit in the Genesis sub forum

Offline 7842303

  • Jr. Member
  • **
  • Posts: 81
Lighter Tank Class For Eden
« Reply #2 on: August 27, 2007, 01:38:25 PM »
so will this be deletid??? :'(

edit: but i was thinking jagure or leppord
« Last Edit: August 27, 2007, 01:50:48 PM by 7842303 »
onword to battle!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
unless your tired, of cource

Offline Freeza-CII

  • Administrator
  • Hero Member
  • *****
  • Posts: 2308
Lighter Tank Class For Eden
« Reply #3 on: August 27, 2007, 03:12:56 PM »
No it will be pretty much ignored since alot of posts for smaller units exsist in the Genesis subforums.  Since there is no way in hell op2 will be modded.

Offline 7842303

  • Jr. Member
  • **
  • Posts: 81
Lighter Tank Class For Eden
« Reply #4 on: September 16, 2007, 05:37:59 PM »
tons of people mod op2
onword to battle!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
unless your tired, of cource

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3237
Lighter Tank Class For Eden
« Reply #5 on: September 16, 2007, 06:04:03 PM »
No, they mod certain files (techtrees, sheets, maps, mission files, etc) but not OP2 itself.
"As usual, colonist opinion is split between those who think the plague is a good idea, and those who are dying from it." - Outpost Evening Star

Outpost 2 Coding 101 Tutorials

Offline Leviathan

  • Hero Member
  • *****
  • Posts: 4055
Lighter Tank Class For Eden
« Reply #6 on: September 16, 2007, 06:36:14 PM »
meaning we cant add a new tank class to outpost 2.

Offline White Claw

  • Hero Member
  • *****
  • Posts: 854
Lighter Tank Class For Eden
« Reply #7 on: September 16, 2007, 07:53:06 PM »
Quote
so will this be deletid???

edit: but i was thinking jagure or leppord
I think these exact things have been suggested before. The problem with OP2 is that the unit stuff is hard coded into the program. (Hooman can correct me if I'm wrong) You could modify an existing unit and replace the graphics of the lynx or scout and make it faster. But there are limitations and you can't fully add an extra chasis type.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4954
Lighter Tank Class For Eden
« Reply #8 on: September 17, 2007, 01:36:36 AM »
Adding new units would likely require some major work. It would also require a lot of knowledge about how things are stored internally, and what functions handle what. There has been a significant amount of progress on some of the things we might need to know to create new units as of recent, but there are still fairly large gaps.

Editing existing units, or cloning them, and then making slight changes is a little easier than adding completely new units. There are also some limitations as to how far you can go with the idea without making significant changes to the code. Many things are controlled by virtual function tables, so they're fairly easy to replace for new or modified units, but many functions are hardcoded. You'd have to make sure any new units have their layout consistent with what those hardcoded functions expect.

Basically we're closer than we ever were before, but still a long way off. I've done a few small experiments with changing unit behavior, but they were more acedemic than practical.
 

Offline Combine Crusier

  • Sr. Member
  • ****
  • Posts: 456
Lighter Tank Class For Eden
« Reply #9 on: September 17, 2007, 08:03:54 AM »
Give me an idea of what I need to read the stuff and I'll give it a shot.
Fire at will!

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4954
Lighter Tank Class For Eden
« Reply #10 on: September 17, 2007, 03:18:07 PM »
Hmm, I'm tempted to suggest quite a lot of reading now. Ok, let's see what should be relevant "starter" material.  ;)

Reading:
Intel's IA32 - Vol1  (which is a basic architectural overview of x86 assembly)
Intel's IA32 - Vol2  (used as an instruction set reference)
OOP and Inheritance  (Object oriented programming, base classes, derived classes)
Virtual Functions     (make sure you understand OOP and Inheritance first, as virtual functions are only relevant in that context, and try to learn some assembly first, as you'll probably need to know how this is implemented at the assembly level to truely understand what is needed. I suppose you can get by without really understanding it in this much depth, but it will certainly help).
Stack Frames         (and C++ calling convenctions)

Tools/files:
OllyDbg                 (a disassembler/debugger, free download, google it)
Outpost2.udd         (a comment file for OllyDbg, check the programming forum)
C++ compiler        (use the microsoft one of course, version 6, or 5 if you need to)


I would like to first point out that the Intel docs are very large. Here's how big the (older) versions I have are. The first one, Vol 1, is 432 pages, and the second one, Vol 2, is 954 pages. Only use Vol 2 as a reference. If you need to know what an instruction does, look it up in Vol 2, otherwise don't waste your time. Only a very small subset of the total opcodes are likely used in any given program, and you don't need to know all 300 or so.

It may help to read through some of Vol 1 like a text book if you're not familiar with assembly. There are other ways to learn though, this is just a possible suggestion. One thing about using the Intel docs is they're very thorough, and you won't need to know about every aspect they talk about. Most assembly tutorials tend to focus only on the core set of instructions which is what you need. You basically just need to know about the 8 general purpose registers, and the basic integer artihmetic, logic, and flow control instructions.

You don't need to know anything about processor hardware layout, or certain operating modes, like real mode, virtual 8086 mode, system management mode (SMM), or specifics of how protected mode works (although your code will be running at user priveldge in a protected mode environment) and you don't need to know certain instruction families such as floating point (x87 FPU), MMX, SSE (uses XMM registers), or about any of the data types larger than a double word (DWORD, which is 32 bits) since the larger data types only apply to those extra instruction families. You also don't need to know about interrupts or exceptions (but you do need to know about procedure calls and the stack, which is talked about in the first part of the same chapter). You also don't need to worry about the deimal arithmetic instructions (which work on the general purpose registers). If it says BCD anywhere, then it's decimal arithmetic and it's not relevant. Also ignore I/O instrutions and Segment Register instructions, as you won't see these, nor will you be priviledged enough in user code to actually make use of them.

Basically, if you read Vol 1, you want to read parts of chapters 3-7. Skipping the above sections. Everything beyong chapter 7 deals with those extra instruction sets and is quite irrelevant.


It would be helpful to play around with the C++ compiler and OllyDbg to familiarize yourself with them. Write a few simple C++ programs, compile them, and the open the exe with OllyDbg. Take a look at the assembly code, and try to find where your main function is. (This is much easier when you have a small example with very little code, as the entry point in the assembly file will be in the C runtime (CRT), and not at the entry point of your main function). Try to understand how the assembly works, and that it does correspond to what your C++ program is doing. Also try to match up the first few instructions of the function and the last few instructions of the function with how the stack frame is layed out. Having a good understand of stack frames and calling conventions will help you understand function calls, and recognize the few oddities that occasionally occur.



Well, now that I've taken the time to write that up, you'd better start reading.  ;)  

Offline 7842303

  • Jr. Member
  • **
  • Posts: 81
Lighter Tank Class For Eden
« Reply #11 on: September 24, 2007, 05:53:36 PM »
so i could make the scout faster, and make it shoot...  emp missiles and stinky shoes!!!!!!!!!!!!!!!!!!!!!!!!!! B)
« Last Edit: September 24, 2007, 05:53:51 PM by 7842303 »
onword to battle!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
unless your tired, of cource