Pre-Code Review Excavation of Blitz3D

Categories Computer Science, Game Engine, Graphics Programming, Legacy, Open Source, Software0 Comments

How I stumbled upon Blitz3D

Growing up, one of my favorite coding languages and platforms was Blitz3D.

Blitz3D is part of the Blitz language family which was used in the Amiga platform. Open-sourcing of the latter, enabled grassroots efforts to emerge, and from this wave, a New Zealand company called Blitz Research Ltd,  launched Blitz3D.

During that time I was exhausting VisualBasic and getting bored of reverse engineering videos games on the Dreamcast/Playstation/PSP.

When I started getting into game development, Blitz3D presented a platform and a rich bustling community that allowed me to learn quickly while exchanging expertise and ideas.

I met many mentors and friends that I still keep in touch with today!

So I was plenty surprised when Blitz3D went open source a few months back!


Building Blitz3D

I chose the latest and greatest in the Windows ecosystem resulting in using Windows 10 and Visual Studio 2015 Community Edition.

    • 1. Opening the Project
      • 0
    • Visual Studio will begin the auto-migration process…
      • 1
    • Thankfully it is quasi perfect!
      • 2
  • Error Fixing

    • Now onto actually building the project follow the steps in README.
      • 4
    • We’re sitting on 221 errors/327 warnings (more appear as I fix this first wave)
    • Errors are all accross the board
      • Float type
      • Template code fixing
      • Casting issues
      • 5
  • DirectX7 and Windows10

  • Path Environments Through Scripting

    • Setting environment variable for DirectX7 before launching visual studio
      • 7
      • Add variable to “Project > Properties > VC++ Directories”
        • 7.1
  • New Bugs and Errors

    • Now onto fixing build breaks, updating definitions, protecting macros and fixing coding related to upgraded C/C++ standards
       no suitable conversion function from "std::_Vector_iterator<std::_Vector_val<std::_Simple_types>> 
        "char *" exists bbruntime blitz3d\bbruntime\bbsockets.cpp 105   
        -fix: in_buf.begin() to in_buf[0]
           n=::recvfrom( sock,&in_buf[0],sz,0,(sockaddr*)&in_addr,&len );
        -Other: bbsockets.cpp 119
      Fixing "INFINITY" definition
         #ifndef INFINITY
         const float INFINITY=10000000.0f; //big value
      Error (active)  identifier "__RPC__inout_xcount" is undefined bblaunch c:\Program Files (x86)\Windows Kits\8.1\Include\um\OAIdl.h 5331 
  • A few hundred bugs and compile errors later we have an error-free build!
  • Config project doesn’t output lib file due to lacking a .cpp. (create and include headers)
    • 11

Successful Build




This will be followed by an extensive multipart code review of this engine!